<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5902920467646767794</id><updated>2011-12-27T10:05:46.246+07:00</updated><category term='C#'/><category term='JavaCard OpenPlatform'/><category term='JCOP error'/><category term='create service'/><category term='debug service'/><category term='JCOP'/><category term='Test tools'/><category term='tours'/><category term='Tools'/><category term='đi chơi'/><category term='contactless'/><category term='.Net Tools'/><category term='JavaCard programming'/><category term='JavaCard'/><category term='.Net 2005'/><category term='window service'/><title type='text'>Hung.Trinh's notes</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://trinhquochungnotes.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://trinhquochungnotes.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Hung.Trinh experiences notes</name><uri>http://www.blogger.com/profile/15879504538337047633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_J3Ejob9sTKI/TLfQC-4TxWI/AAAAAAAAAH0/DXwYRgjBiEA/S220/avtnew.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>50</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5902920467646767794.post-5665323813909263906</id><published>2011-09-07T14:40:00.011+07:00</published><updated>2011-09-26T14:42:49.540+07:00</updated><title type='text'>Android: Implementing Word Prediction and Completion on Android IME</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://dl.dropbox.com/u/33747052/misc/AndroidIME_suggestionDFD.png"&gt;&lt;br /&gt;&lt;/a&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Implementing Word Prediction and Completion on Android IME&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This thread is giving an lightly explanation of Android Input Method Framework (IMF), life-cycle of Input Method (IME) and the word prediction/completion in composing.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;I. Architecture&lt;/span&gt;&lt;br /&gt;&lt;p&gt;There are three primary parties involved in the IMF architecture:&lt;/p&gt;    &lt;ul&gt;&lt;li&gt; The &lt;span style="font-weight: bold;"&gt;In&lt;/span&gt;&lt;strong&gt;put method manager&lt;/strong&gt; as expressed by this class  (InputMethodManager) is the central point of the system that manages interaction between all  other parts.  It is expressed as the client-side API here which exists  in each application context and communicates with a global system service  that manages the interaction across all processes.  &lt;/li&gt;&lt;li&gt; An &lt;span style="font-weight: bold;"&gt;I&lt;/span&gt;&lt;strong&gt;nput method (IME)&lt;/strong&gt; service implements a particular  interaction model allowing the user to generate text.  The system binds  to the current input method that is use, causing it to be created and run,  and tells it when to hide and show its UI.  Only one IME is running at a time.  &lt;/li&gt;&lt;li&gt; Multiple &lt;strong&gt;client applications&lt;/strong&gt; arbitrate with the input  method manager for input focus and control over the state of the IME.  Only  one such client is ever active (working with the IME) at a time.  &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;II. InputMethod (IME) Overview&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt; An input method (IME) is implemented as a Service, typically deriving from &lt;span class="twikiNewLink"&gt;InputMethodService&lt;a href="https://wiki.cybersoft-vn.com/bin/edit/EmbeddedSystem/InputMethodService?topicparent=EmbeddedSystem.IMEFrameworkInAndroidAndXT9Android" rel="nofollow" title="Create this topic"&gt;?&lt;/a&gt;&lt;/span&gt; . It must provide the core &lt;span class="twikiNewLink"&gt;InputMethod&lt;a href="https://wiki.cybersoft-vn.com/bin/edit/EmbeddedSystem/InputMethod?topicparent=EmbeddedSystem.IMEFrameworkInAndroidAndXT9Android" rel="nofollow" title="Create this topic"&gt;?&lt;/a&gt;&lt;/span&gt;  interface, though this is normally handled by &lt;span class="twikiNewLink"&gt;InputMethodService&lt;a href="https://wiki.cybersoft-vn.com/bin/edit/EmbeddedSystem/InputMethodService?topicparent=EmbeddedSystem.IMEFrameworkInAndroidAndXT9Android" rel="nofollow" title="Create this topic"&gt;?&lt;/a&gt;&lt;/span&gt;  and implementors will only need to deal with the higher-level API there. &lt;/li&gt;&lt;li&gt; The &lt;span class="twikiNewLink"&gt;InputMethodService&lt;a href="https://wiki.cybersoft-vn.com/bin/edit/EmbeddedSystem/InputMethodService?topicparent=EmbeddedSystem.IMEFrameworkInAndroidAndXT9Android" rel="nofollow" title="Create this topic"&gt;?&lt;/a&gt;&lt;/span&gt;   provides a basic framework for standard UI elements (input view,  candidates view, and running in fullscreen mode), but it is up to a  particular implementor to decide how to use them. For example, one input  method could implement an input area with a keyboard, another could  allow the user to draw text, while a third could have no input area (and  thus not be visible to the user) but instead listen to audio and  perform text to speech conversion. &lt;/li&gt;&lt;li&gt; The normal Service lifecycle methods, the &lt;span class="twikiNewLink"&gt;InputMethodService&lt;a href="https://wiki.cybersoft-vn.com/bin/edit/EmbeddedSystem/InputMethodService?topicparent=EmbeddedSystem.IMEFrameworkInAndroidAndXT9Android" rel="nofollow" title="Create this topic"&gt;?&lt;/a&gt;&lt;/span&gt;  class introduces some new specific callbacks that most subclasses will want to make use of:  &lt;ul&gt;&lt;li&gt; &lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;onInitializeInterface()&lt;/span&gt;&lt;/span&gt; for user-interface initialization, in  particular to deal with configuration changes while the service is  running. &lt;/li&gt;&lt;li&gt; &lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;onBindInput()&lt;/span&gt;&lt;/span&gt; to find out about switching to a new client. &lt;/li&gt;&lt;li&gt; &lt;span style="font-weight: bold;font-size:85%;" &gt;onStartInput(&lt;span class="twikiNewLink"&gt;EditorInfo&lt;a href="https://wiki.cybersoft-vn.com/bin/edit/EmbeddedSystem/EditorInfo?topicparent=EmbeddedSystem.IMEFrameworkInAndroidAndXT9Android" rel="nofollow" title="Create this topic"&gt;?&lt;/a&gt;&lt;/span&gt; , boolean)&lt;/span&gt; to deal with an input session starting with the client. &lt;/li&gt;&lt;li&gt; &lt;span style="font-weight: bold;font-size:85%;" &gt;onCreateInputView(), onCreateCandidatesView(), and onCreateExtractTextView()&lt;/span&gt; for non-demand generation of the UI. &lt;/li&gt;&lt;li&gt; &lt;span style="font-weight: bold;font-size:85%;" &gt;onStartInputView(&lt;span class="twikiNewLink"&gt;EditorInfo&lt;a href="https://wiki.cybersoft-vn.com/bin/edit/EmbeddedSystem/EditorInfo?topicparent=EmbeddedSystem.IMEFrameworkInAndroidAndXT9Android" rel="nofollow" title="Create this topic"&gt;?&lt;/a&gt;&lt;/span&gt; , boolean)&lt;/span&gt; to deal with input starting within the input area of the IME. &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;To create an input method (IME) for entering text into text fields and other Views, you need to extend &lt;code style="font-weight: bold;"&gt;android.inputmethodservice.InputMethodService&lt;/code&gt;.  This API provides much of the basic implementation for an input method,  in terms of managing the state and visibility of the input method and  communicating with the currently visible activity. The typical life-cycle of an &lt;code style="font-weight: bold;"&gt;InputMethodService&lt;/code&gt; looks like this:&lt;br /&gt;&lt;br /&gt;&lt;a href="https://docs.google.com/a/google.com/File?id=ad9xdxhtb4_043qn7phd_b"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 374px; height: 871px;" src="https://docs.google.com/a/google.com/File?id=ad9xdxhtb4_043qn7phd_b" alt="" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;CandidateView&lt;/span&gt; is the place where potential word corrections or completions are presented to the user for  selection. Again, this may or may not be relevant to your input method  and you can return &lt;code&gt;null&lt;/code&gt; from calls to &lt;code style="font-weight: bold;"&gt;InputMethodService.onCreateCandidatesView()&lt;/code&gt;, which is the default behavior. By creating a layout for candidates and implement &lt;code style="font-weight: bold;"&gt;onCreateCandidatesView()&lt;/code&gt; method, developer can show the word prediction/completions when user is typing on the virtual keyboard.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;III. Implementation&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The DFD below in basically show the most popular implemented in Android's IME applications (Android's IME, Latin IME, ZhuYin IME ...)&lt;br /&gt;&lt;a href="http://dl.dropbox.com/u/33747052/misc/AndroidIME_suggestionDFD.png"&gt;&lt;span style="font-size:78%;"&gt;plz click to enlarge&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://dl.dropbox.com/u/33747052/misc/AndroidIME_suggestionDFD.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 100%; height: 100%;" src="http://dl.dropbox.com/u/33747052/misc/AndroidIME_suggestionDFD.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;And here is the architecture for a new prediction/completion method on IME:&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-PpxMAFNvHX8/ToAsaS7BOQI/AAAAAAAAAJY/5wwd7bzPDAA/s1600/AndroidIME_suggestionModel.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 221px; height: 320px;" src="http://1.bp.blogspot.com/-PpxMAFNvHX8/ToAsaS7BOQI/AAAAAAAAAJY/5wwd7bzPDAA/s320/AndroidIME_suggestionModel.png" alt="" id="BLOGGER_PHOTO_ID_5656569962244946178" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(192, 192, 192);font-size:85%;" &gt;(not yet complete...)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5902920467646767794-5665323813909263906?l=trinhquochungnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://trinhquochungnotes.blogspot.com/feeds/5665323813909263906/comments/default' title='Đăng Nhận xét'/><link rel='replies' type='text/html' href='http://trinhquochungnotes.blogspot.com/2011/09/android-implementing-word-prediction.html#comment-form' title='0 Nhận xét'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/5665323813909263906'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/5665323813909263906'/><link rel='alternate' type='text/html' href='http://trinhquochungnotes.blogspot.com/2011/09/android-implementing-word-prediction.html' title='Android: Implementing Word Prediction and Completion on Android IME'/><author><name>Hung.Trinh experiences notes</name><uri>http://www.blogger.com/profile/15879504538337047633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_J3Ejob9sTKI/TLfQC-4TxWI/AAAAAAAAAH0/DXwYRgjBiEA/S220/avtnew.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-PpxMAFNvHX8/ToAsaS7BOQI/AAAAAAAAAJY/5wwd7bzPDAA/s72-c/AndroidIME_suggestionModel.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5902920467646767794.post-3006281729857539027</id><published>2011-05-10T10:27:00.003+07:00</published><updated>2011-05-10T10:35:31.846+07:00</updated><title type='text'>Android: Problem with "Unparsed aapt error(s)! Check the console for output."</title><content type='html'>Sometimes, on Eclipse ADT, you can get into this problem:&lt;br /&gt;   &lt;span style="color: rgb(0, 153, 0);"&gt;Unparsed aapt error(s)! Check the console for output.        &lt;project-name&gt;    line N&lt;/project-name&gt;&lt;/span&gt;&lt;br /&gt;The result for this error was: there has some error(or conflict) in a *.xml in the project&lt;br /&gt;Solution:&lt;br /&gt; - Fix/remove the xml that lead to the error.&lt;br /&gt; - Clean up project and rebuild.&lt;br /&gt;&lt;br /&gt;Just research and note!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5902920467646767794-3006281729857539027?l=trinhquochungnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://trinhquochungnotes.blogspot.com/feeds/3006281729857539027/comments/default' title='Đăng Nhận xét'/><link rel='replies' type='text/html' href='http://trinhquochungnotes.blogspot.com/2011/05/android-problem-with-unparsed-aapt.html#comment-form' title='0 Nhận xét'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/3006281729857539027'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/3006281729857539027'/><link rel='alternate' type='text/html' href='http://trinhquochungnotes.blogspot.com/2011/05/android-problem-with-unparsed-aapt.html' title='Android: Problem with &quot;Unparsed aapt error(s)! Check the console for output.&quot;'/><author><name>Hung.Trinh experiences notes</name><uri>http://www.blogger.com/profile/15879504538337047633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_J3Ejob9sTKI/TLfQC-4TxWI/AAAAAAAAAH0/DXwYRgjBiEA/S220/avtnew.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5902920467646767794.post-511058896032274879</id><published>2010-12-27T09:59:00.002+07:00</published><updated>2010-12-27T10:10:55.638+07:00</updated><title type='text'>Android: Problem with "Debug Certificate expired on.."</title><content type='html'>This note is created for anybody who have the same issue like me when built an Android project by Eclipse and got &lt;span style="color: rgb(255, 0, 0);"&gt;"&lt;/span&gt;&lt;span style="color:red;"&gt;Error generating final archive: Debug certificate expired on &lt;long&gt;!&lt;/long&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="font-size:130%;"&gt;&lt;/span&gt;"&lt;span style="color: rgb(0, 0, 0);"&gt;. It occurs to me when i tried to open and build a very old Android project.  The reason for it happened is:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;blockquote style="color: rgb(204, 0, 0);"&gt;Android required the applications to be signed even in the debug mode. So it uses a keystore file called &lt;strong&gt;debug.keystore&lt;/strong&gt;  to provide keys for signing applications in debug mode. This key store  file has a validity period by default 365 days from its creation date.&lt;br /&gt;&lt;span style="font-size:78%;"&gt;(From &lt;a href="http://android-pro.blogspot.com/2010/08/android-error-error-generating-final.html"&gt;Android-pro&lt;/a&gt;)&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;And there have 2 ways to resolve this issue:&lt;br /&gt;&lt;blockquote&gt;&lt;span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;A. &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;Navigate to the ".android" folder in your home directory&lt;br /&gt;   “&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;" &gt;~/.android&lt;/span&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;” (Linux,Mac OS)  or &lt;/span&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;br /&gt;"C:\Documents and Settings\[User Name]\.android&lt;/span&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;" in windows XP or &lt;/span&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;br /&gt;"C:\Users\[User Name]\.android"&lt;/span&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;  in windows Vista or Windows 7,&lt;br /&gt;then delete &lt;span style="color: rgb(204, 0, 0);"&gt;debug.keystore&lt;/span&gt; file. Then go  to eclipse clean the project, this will create a &lt;span style="color: rgb(153, 0, 0);"&gt;new debug.keystore&lt;/span&gt; file  with default validity period 365 days.&lt;/span&gt;&lt;span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;."&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;Or&lt;br /&gt;&lt;blockquote style="color: rgb(102, 0, 0);"&gt;Create a new default.keystore file with custom validity period (say 1000 days).&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Navigate to the ".android" folder.&lt;/li&gt;&lt;li&gt;Delete the old &lt;strong style="color: rgb(0, 102, 0);"&gt;default.keystore&lt;/strong&gt; file.&lt;/li&gt;&lt;li&gt;We will use &lt;strong&gt;JDK &lt;span style="color: rgb(0, 102, 0);"&gt;Keytool.exe&lt;/span&gt;&lt;/strong&gt; to generate the new key file. It is found in &lt;span style=";font-family:&amp;quot;;" &gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Run the following command in the "cmd" (or terminate):&lt;br /&gt;&lt;span style=";font-family:&amp;quot;;" &gt;keytool  -genkey -keypass android -keystore debug.keystore -alias  androiddebugkey -storepass android -validity 1000 -dname “CN=Android  Debug,O=Android,C=US”&lt;/span&gt;&lt;/li&gt;&lt;li&gt;This will generate a new default.keystore file with validity period 1000 days.&lt;/li&gt;&lt;li&gt;Copy the generated file to the ".android" folder, go to eclipse and clean projects and it should work.&lt;/li&gt;&lt;/ol&gt;&lt;/blockquote&gt;Good luck,&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5902920467646767794-511058896032274879?l=trinhquochungnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://trinhquochungnotes.blogspot.com/feeds/511058896032274879/comments/default' title='Đăng Nhận xét'/><link rel='replies' type='text/html' href='http://trinhquochungnotes.blogspot.com/2010/12/android-problem-with-debug-certificate.html#comment-form' title='0 Nhận xét'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/511058896032274879'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/511058896032274879'/><link rel='alternate' type='text/html' href='http://trinhquochungnotes.blogspot.com/2010/12/android-problem-with-debug-certificate.html' title='Android: Problem with &quot;Debug Certificate expired on..&quot;'/><author><name>Hung.Trinh experiences notes</name><uri>http://www.blogger.com/profile/15879504538337047633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_J3Ejob9sTKI/TLfQC-4TxWI/AAAAAAAAAH0/DXwYRgjBiEA/S220/avtnew.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5902920467646767794.post-1250956356240605652</id><published>2010-11-15T14:49:00.004+07:00</published><updated>2010-11-15T16:11:35.057+07:00</updated><title type='text'>Android: Problem with "DalVM" when build project</title><content type='html'>This note is created for anybody who have the same issue like me when built an Android project and got &lt;span style="color: rgb(255, 0, 0);"&gt;"&lt;span style="font-size:130%;"&gt;Conversion to dalvik format failed with error 1&lt;/span&gt;"&lt;span style="color: rgb(0, 0, 0);"&gt;. It occurs to me when i tried to open and build a very old Android project.  The reason for it happened is:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;blockquote style="color: rgb(204, 0, 0);"&gt;DX tool can not convert all java classes to dex  format then this error occurs. In my case when i was getting error  because there are some class which are using Java standard edition  references and can not converted to dex. Generally it will convert all  J2Me lib to dex format. &lt;p align="justify"&gt;Second scenario is that when you are changing target  platform or work space then there might be some inconsistency in build  and it was fixed by just cleaning and rebuilding workspace.&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-size:78%;"&gt;(From &lt;a href="http://bimbim.in/post/2010/09/24/Reason-of-Conversion-to-dalvik-format-failed-with-error-1.aspx"&gt;Bimbim.in&lt;/a&gt;)&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p align="justify"&gt;&lt;/p&gt;As the suggestion from Bimbim.in, they said:&lt;br /&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;&lt;blockquote&gt;"please clean your project and rebuild it when you are getting this exception."&lt;/blockquote&gt;&lt;/span&gt;but, one more thing had to be done before:&lt;br /&gt;&lt;blockquote style="color: rgb(0, 0, 153);"&gt;Right click on the project, move the cursor to Android Tools and choose "Fix Project Properties"&lt;/blockquote&gt;&lt;br /&gt;Good luck,&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5902920467646767794-1250956356240605652?l=trinhquochungnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://trinhquochungnotes.blogspot.com/feeds/1250956356240605652/comments/default' title='Đăng Nhận xét'/><link rel='replies' type='text/html' href='http://trinhquochungnotes.blogspot.com/2010/11/android-problem-with-dalvm-when-build.html#comment-form' title='0 Nhận xét'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/1250956356240605652'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/1250956356240605652'/><link rel='alternate' type='text/html' href='http://trinhquochungnotes.blogspot.com/2010/11/android-problem-with-dalvm-when-build.html' title='Android: Problem with &quot;DalVM&quot; when build project'/><author><name>Hung.Trinh experiences notes</name><uri>http://www.blogger.com/profile/15879504538337047633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_J3Ejob9sTKI/TLfQC-4TxWI/AAAAAAAAAH0/DXwYRgjBiEA/S220/avtnew.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5902920467646767794.post-2181233719195097008</id><published>2010-10-25T10:14:00.002+07:00</published><updated>2010-10-25T10:55:39.249+07:00</updated><title type='text'>Android: SDK - Development Tools 01</title><content type='html'>&lt;h2 style="color: rgb(0, 0, 153); font-weight: bold;"&gt;&lt;span style="font-size:180%;"&gt;DX&lt;/span&gt;&lt;/h2&gt;  &lt;p&gt;The &lt;span style="color: rgb(0, 0, 153);font-size:130%;" &gt;dx&lt;/span&gt; &lt;span style="color: rgb(204, 0, 0);"&gt;tool lets you generate Android bytecode from .class files&lt;/span&gt;. The tool  converts target files and/or directories &lt;span style="color: rgb(153, 0, 0);"&gt;to &lt;span style="color: rgb(204, 0, 0);"&gt;Dalvik executable format (.dex) files&lt;/span&gt;&lt;/span&gt;,  so that they can run in the Android environment. It can also dump the class files  in a human-readable format and run a target unit test. You can get the usage and  options for this tool by using &lt;code&gt;&lt;span style="color: rgb(0, 0, 153);font-size:130%;" &gt;dx&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;--help&lt;/span&gt;&lt;/code&gt;.&lt;/p&gt;&lt;p&gt;This tool was placed in : %sdk%\platforms\%androidplatform%\tools\&lt;br /&gt;&lt;/p&gt;&lt;h1 style="color: rgb(0, 0, 153);"&gt;&lt;span style="font-size:180%;"&gt;AAPT&lt;/span&gt;&lt;/h1&gt;     &lt;div id="jd-content"&gt;      &lt;div class="jd-descr"&gt;     &lt;p&gt;&lt;strong&gt;aapt&lt;/strong&gt; stands for &lt;span style="color: rgb(204, 0, 0);"&gt;Android Asset Packaging Tool&lt;/span&gt; and is included in the &lt;code&gt;tools/&lt;/code&gt;  directory of the SDK. This tool &lt;span style="color: rgb(204, 0, 0);"&gt;allows you to view, create, and update  Zip-compatible archives (zip, jar, apk)&lt;/span&gt;. It can also compile resources  into binary assets. &lt;/p&gt; &lt;p&gt; Though you probably won't often use &lt;strong&gt;aapt&lt;/strong&gt; directly, build scripts and IDE plugins can utilize this tool to package the apk file that constitutes an Android application.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;This tool was placed in : %sdk%\platforms\%androidplatform%\tools\&lt;/p&gt;&lt;p style="color: rgb(0, 0, 153); font-weight: bold;"&gt;&lt;span style="font-size:180%;"&gt;AIDL&lt;/span&gt;&lt;/p&gt;&lt;p&gt;AIDL (&lt;span style="color: rgb(204, 0, 0);"&gt;Android Interface Definition Language&lt;/span&gt;) is an &lt;a href="http://en.wikipedia.org/wiki/Interface_description_language"&gt;IDL&lt;/a&gt; language &lt;span style="color: rgb(204, 0, 0);"&gt;used to generate code that enables two processes on an Android-powered device to talk using interprocess communication (IPC)&lt;/span&gt;. If you have code in one process (for example, in an Activity) that needs to call methods on an object in another process (for example, a Service), you would use AIDL to generate code to marshall the parameters.&lt;/p&gt; &lt;p&gt;The AIDL IPC mechanism     is interface-based, similar to COM or Corba, but lighter weight. It uses a proxy     class to pass values between the client and the implementation.&lt;br /&gt;(In detail at &lt;a href="http://developer.android.com/guide/developing/tools/aidl.html"&gt;Android - aidl&lt;/a&gt;)&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:85%;"&gt;(Refer from &lt;a href="http://developer.android.com/guide/index.html"&gt;Development Android&lt;/a&gt;)&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5902920467646767794-2181233719195097008?l=trinhquochungnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://trinhquochungnotes.blogspot.com/feeds/2181233719195097008/comments/default' title='Đăng Nhận xét'/><link rel='replies' type='text/html' href='http://trinhquochungnotes.blogspot.com/2010/10/android-sdk-development-tools-01.html#comment-form' title='0 Nhận xét'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/2181233719195097008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/2181233719195097008'/><link rel='alternate' type='text/html' href='http://trinhquochungnotes.blogspot.com/2010/10/android-sdk-development-tools-01.html' title='Android: SDK - Development Tools 01'/><author><name>Hung.Trinh experiences notes</name><uri>http://www.blogger.com/profile/15879504538337047633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_J3Ejob9sTKI/TLfQC-4TxWI/AAAAAAAAAH0/DXwYRgjBiEA/S220/avtnew.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5902920467646767794.post-1322496596843750357</id><published>2010-06-28T14:43:00.004+07:00</published><updated>2010-07-01T10:00:22.035+07:00</updated><title type='text'>Android: How to upgrade your Nexus One from Android 2.1 to 2.2?</title><content type='html'>&lt;p&gt;&lt;strong&gt;To manually install Android 2.2 on the Nexus One,  perform   the following steps&lt;/strong&gt;:&lt;/p&gt; &lt;ol&gt;&lt;li&gt;Download the official Android 2.2 firmware for the Nexus One.&lt;/li&gt;&lt;li&gt;Copy the file to your microSD card and name it update.zip (&lt;em&gt;newb    warning: not update.zip.zip&lt;/em&gt;)&lt;/li&gt;&lt;li&gt;Power off your phone.&lt;/li&gt;&lt;li&gt;Hold down the VOLUME DOWN button and power it  back on.&lt;/li&gt;&lt;li&gt;The phone will now search for files like PB00IMG.zip, etc. This is   normal. Scroll down to recovery and press the POWER button.&lt;/li&gt;&lt;li&gt;When you see the “/!\” symbol, press the POWER button and the Volume  Up  button at the same time. You should be presented with a menu and  one of  the options should be “Apply  sdcard:update.zip”.&lt;/li&gt;&lt;li&gt;Use the trackball to navigate to “apply sdcard:update.zip” and   select  it.&lt;/li&gt;&lt;li&gt;When you see “Install from sdcard complete”, select “reboot system    now”.&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;Enjoy and once you’ve had a chance to play for awhile let us know  what you think.&lt;/p&gt;The resources:&lt;br /&gt;- Upgrade from &lt;a href="http://www.mediafire.com/?kdnnmm2duk1"&gt;Android 2.1 (ERE27) to FRF50&lt;/a&gt;.&lt;br /&gt;- Upgrade from &lt;a href="http://android.clients.google.com/packages/passion/signed-passion-FRF83-from-FRF50.38d66b26.zip"&gt;FRF50 to FRF83&lt;/a&gt;.&lt;br /&gt;- Upgrade from &lt;a href="http://android.clients.google.com/packages/passion/signed-passion-FRF83-from-FRF72.684bd56a.zip"&gt;FRF72 to FRF83&lt;/a&gt;.&lt;br /&gt;- Upgrade from &lt;a href="http://android.clients.google.com/updates/passion/signed-passion-ERE27-from-ERD79.a487b405.zip"&gt;ERD79 to ERE27&lt;/a&gt;. (~16MB),&lt;br /&gt;     &lt;a href="http://www.mediafire.com/?m2wmlmmz4zm"&gt;22607-ERD79-update-nexusone-stock-signed-boot-img&lt;/a&gt;. (~2MB)&lt;br /&gt;- Update for &lt;a href="http://www.romraid.com/paul/nexusone/update-nexusone-ERE27-signed.zip"&gt;ERE27&lt;/a&gt;. (~65MB)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;(Referred from: &lt;a href="http://androidandme.com/2010/05/news/how-to-manually-install-android-2-2-on-your-nexus-one/"&gt;AndroidAndMe&lt;/a&gt;, Links from the Net)&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5902920467646767794-1322496596843750357?l=trinhquochungnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://trinhquochungnotes.blogspot.com/feeds/1322496596843750357/comments/default' title='Đăng Nhận xét'/><link rel='replies' type='text/html' href='http://trinhquochungnotes.blogspot.com/2010/06/android-how-to-upgrade-your-nexus-one.html#comment-form' title='0 Nhận xét'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/1322496596843750357'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/1322496596843750357'/><link rel='alternate' type='text/html' href='http://trinhquochungnotes.blogspot.com/2010/06/android-how-to-upgrade-your-nexus-one.html' title='Android: How to upgrade your Nexus One from Android 2.1 to 2.2?'/><author><name>Hung.Trinh experiences notes</name><uri>http://www.blogger.com/profile/15879504538337047633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_J3Ejob9sTKI/TLfQC-4TxWI/AAAAAAAAAH0/DXwYRgjBiEA/S220/avtnew.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5902920467646767794.post-2206017243004902764</id><published>2010-04-19T15:59:00.001+07:00</published><updated>2010-04-19T15:59:38.673+07:00</updated><title type='text'>Avoiding Memory Leaks</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p&gt;From: &lt;a href='http://developer.android.com/resources/articles/avoiding-memory-leaks.html'&gt;http://developer.android.com/&lt;wbr/&gt;resources/articles/avoiding-&lt;wbr/&gt;memory-leaks.html&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Android applications are, at least on the T-Mobile G1, limited to 16 MB of heap. It's both a lot of memory for a phone and yet very little for what some developers want to achieve. Even if you do not plan on using all of this memory, you should use as little as possible to let other applications run without getting them killed. The more applications Android can keep in memory, the faster it will be for the user to switch between his apps. As part of my job, I ran into memory leaks issues in Android applications and they are most of the time due to the same mistake: keeping a long-lived reference to a Context.&lt;br/&gt;&lt;br/&gt;On Android, a Context is used for many operations but mostly to load and access resources. This is why all the widgets receive a Context parameter in their constructor. In a regular Android application, you usually have two kinds of Context, Activity and Application. It's usually the first one that the developer passes to classes and methods that need a Context:&lt;br/&gt;&lt;br/&gt;@Override&lt;br/&gt;protected void onCreate(Bundle state) {&lt;br/&gt;  super.onCreate(state);&lt;br/&gt;  &lt;br/&gt;  TextView label = new TextView(this);&lt;br/&gt;  label.setText("Leaks are bad");&lt;br/&gt;  &lt;br/&gt;  setContentView(label);&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;This means that views have a reference to the entire activity and therefore to anything your activity is holding onto; usually the entire View hierarchy and all its resources. Therefore, if you leak the Context ("leak" meaning you keep a reference to it thus preventing the GC from collecting it), you leak a lot of memory. Leaking an entire activity can be really easy if you're not careful.&lt;br/&gt;&lt;br/&gt;When the screen orientation changes the system will, by default, destroy the current activity and create a new one while preserving its state. In doing so, Android will reload the application's UI from the resources. Now imagine you wrote an application with a large bitmap that you don't want to load on every rotation. The easiest way to keep it around and not having to reload it on every rotation is to keep in a static field:&lt;br/&gt;&lt;br/&gt;private static Drawable sBackground;&lt;br/&gt;  &lt;br/&gt;@Override&lt;br/&gt;protected void onCreate(Bundle state) {&lt;br/&gt;  super.onCreate(state);&lt;br/&gt;  &lt;br/&gt;  TextView label = new TextView(this);&lt;br/&gt;  label.setText("Leaks are bad");&lt;br/&gt;  &lt;br/&gt;  if (sBackground == null) {&lt;br/&gt;    sBackground = getDrawable(R.drawable.large_&lt;wbr/&gt;bitmap);&lt;br/&gt;  }&lt;br/&gt;  label.setBackgroundDrawable(&lt;wbr/&gt;sBackground);&lt;br/&gt;  &lt;br/&gt;  setContentView(label);&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;This code is very fast and also very wrong; it leaks the first activity created upon the first screen orientation change. When a Drawable is attached to a view, the view is set as a callback on the drawable. In the code snippet above, this means the drawable has a reference to the TextView which itself has a reference to the activity (the Context) which in turns has references to pretty much anything (depending on your code.)&lt;br/&gt;&lt;br/&gt;This example is one of the simplest cases of leaking the Context and you can see how we worked around it in the Home screen's source code (look for the unbindDrawables() method) by setting the stored drawables' callbacks to null when the activity is destroyed. Interestingly enough, there are cases where you can create a chain of leaked contexts, and they are bad. They make you run out of memory rather quickly.&lt;br/&gt;&lt;br/&gt;There are two easy ways to avoid context-related memory leaks. The most obvious one is to avoid escaping the context outside of its own scope. The example above showed the case of a static reference but inner classes and their implicit reference to the outer class can be equally dangerous. The second solution is to use the Application context. This context will live as long as your application is alive and does not depend on the activities life cycle. If you plan on keeping long-lived objects that need a context, remember the application object. You can obtain it easily by calling Context.getApplicationContext(&lt;wbr/&gt;) or Activity.getApplication().&lt;br/&gt;&lt;br/&gt;In summary, to avoid context-related memory leaks, remember the following:&lt;br/&gt;&lt;br/&gt;    * Do not keep long-lived references to a context-activity (a reference to an activity s&lt;/p&gt;có liên quan tới: &lt;a href='http://developer.android.com/resources/articles/avoiding-memory-leaks.html'&gt;Avoiding Memory Leaks | Android Developers&lt;/a&gt; (&lt;a href='http://www.google.com/sidewiki/entry/hung.trinh.vn/id/dP34YR3BFNN6ymPH583djw9KamY'&gt;xem trên Google Sidewiki&lt;/a&gt;)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5902920467646767794-2206017243004902764?l=trinhquochungnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://trinhquochungnotes.blogspot.com/feeds/2206017243004902764/comments/default' title='Đăng Nhận xét'/><link rel='replies' type='text/html' href='http://trinhquochungnotes.blogspot.com/2010/04/avoiding-memory-leaks.html#comment-form' title='0 Nhận xét'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/2206017243004902764'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/2206017243004902764'/><link rel='alternate' type='text/html' href='http://trinhquochungnotes.blogspot.com/2010/04/avoiding-memory-leaks.html' title='Avoiding Memory Leaks'/><author><name>Hung.Trinh experiences notes</name><uri>http://www.blogger.com/profile/15879504538337047633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_J3Ejob9sTKI/TLfQC-4TxWI/AAAAAAAAAH0/DXwYRgjBiEA/S220/avtnew.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5902920467646767794.post-3488084502215356600</id><published>2010-04-08T11:57:00.001+07:00</published><updated>2010-04-08T11:57:22.444+07:00</updated><title type='text'>Android - Killing Processes</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p&gt;&lt;a href='http://developer.android.com/reference/android/os/Process.html#killProcess%28int%29'&gt;http://developer.android.com/&lt;wbr/&gt;reference/android/os/Process.&lt;wbr/&gt;html#killProcess%28int%29&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Due to kernel restriction, Process.killProcess(processID) is not allowed to kill processes that they did not in the application package/system-default application like: Calculator, BrowserActivity, ...&lt;br/&gt;&lt;br/&gt;Using:&lt;br/&gt;&amp;gt;adb -[option d/e] shell top&lt;br/&gt;to show updated running processes.&lt;/p&gt;có liên quan tới: &lt;a href='http://developer.android.com/reference/android/os/Process.html#killProcess(int)'&gt;Process | Android Developers&lt;/a&gt; (&lt;a href='http://www.google.com/sidewiki/entry/hung.trinh.vn/id/BsIQVGRb0uv4WLwhU3GaIANXcZ0'&gt;xem trên Google Sidewiki&lt;/a&gt;)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5902920467646767794-3488084502215356600?l=trinhquochungnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://trinhquochungnotes.blogspot.com/feeds/3488084502215356600/comments/default' title='Đăng Nhận xét'/><link rel='replies' type='text/html' href='http://trinhquochungnotes.blogspot.com/2010/04/android-killing-processes.html#comment-form' title='0 Nhận xét'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/3488084502215356600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/3488084502215356600'/><link rel='alternate' type='text/html' href='http://trinhquochungnotes.blogspot.com/2010/04/android-killing-processes.html' title='Android - Killing Processes'/><author><name>Hung.Trinh experiences notes</name><uri>http://www.blogger.com/profile/15879504538337047633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_J3Ejob9sTKI/TLfQC-4TxWI/AAAAAAAAAH0/DXwYRgjBiEA/S220/avtnew.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5902920467646767794.post-7353572907086404651</id><published>2010-01-22T11:10:00.004+07:00</published><updated>2010-01-22T11:24:24.630+07:00</updated><title type='text'>Android: Emulator</title><content type='html'>Using "&lt;span style="color: rgb(0, 153, 0);"&gt;-cpu-delay&lt;/span&gt; &lt;&lt;span style="color: rgb(0, 0, 153);"&gt;delayinMs&lt;/span&gt;&gt;" to slow down your emulator. Put this string to your emulator run command (or emulator arguments in EclipseIDE). The range is 0 -&gt; 1000. Effective performance does not always  scale in direct relationship with &lt;delay&gt; values.&lt;br /&gt;&lt;br /&gt;Using "-&lt;span style="color: rgb(0, 153, 0);"&gt;netdelay &lt;/span&gt;&lt;&lt;span style="color: rgb(0, 0, 153);"&gt;delayinMs&lt;/span&gt;&gt; &lt;delayinms&gt;" to set the network latency. The default value is none.&lt;/delayinms&gt;&lt;/delay&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5902920467646767794-7353572907086404651?l=trinhquochungnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://trinhquochungnotes.blogspot.com/feeds/7353572907086404651/comments/default' title='Đăng Nhận xét'/><link rel='replies' type='text/html' href='http://trinhquochungnotes.blogspot.com/2010/01/android-emulator.html#comment-form' title='0 Nhận xét'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/7353572907086404651'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/7353572907086404651'/><link rel='alternate' type='text/html' href='http://trinhquochungnotes.blogspot.com/2010/01/android-emulator.html' title='Android: Emulator'/><author><name>Hung.Trinh experiences notes</name><uri>http://www.blogger.com/profile/15879504538337047633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_J3Ejob9sTKI/TLfQC-4TxWI/AAAAAAAAAH0/DXwYRgjBiEA/S220/avtnew.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5902920467646767794.post-1363824313647646073</id><published>2009-12-30T09:13:00.005+07:00</published><updated>2009-12-30T13:14:27.107+07:00</updated><title type='text'>Android: Native Android Action</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Native Android Action&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Native Android applications allow Intents to launch Activities and Sub-Activities.&lt;br /&gt;Actions list:&lt;br /&gt;&lt;ul&gt;&lt;li&gt; &lt;p&gt;&lt;b&gt;&lt;code&gt;&lt;a href="http://developer.android.com/reference/android/content/Intent.html#ACTION_VIEW"&gt;ACTION_VIEW&lt;/a&gt;&lt;/code&gt;&lt;/b&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;                 =&gt; &lt;b&gt;&lt;i&gt;+ content://contacts/people/1&lt;/i&gt;&lt;/b&gt; -- Display      information about the person whose identifier is "1".&lt;br /&gt;                =&gt; + &lt;b&gt;&lt;i&gt;content://contacts/people/&lt;/i&gt;&lt;/b&gt; -- Display      a list of people, which the user can browse through.&lt;br /&gt;                =&gt; +&lt;b&gt;&lt;i&gt;tel:123&lt;/i&gt;&lt;/b&gt; -- Display the phone dialer with the given number filled in. Note how the VIEW action does what what is considered the most reasonable thing for a particular URI. &lt;ul&gt;&lt;li&gt;&lt;b&gt;&lt;code&gt;&lt;a href="http://developer.android.com/reference/android/content/Intent.html#ACTION_DIAL"&gt;ACTION_DIAL&lt;/a&gt;&lt;/code&gt;&lt;/b&gt;&lt;b&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;                 &lt;b&gt;&lt;i&gt;=&gt; +content://contacts/people/1&lt;/i&gt;&lt;/b&gt; -- Display      the phone dialer with the person filled in.&lt;br /&gt;                =&gt; +&lt;b&gt;&lt;i&gt;tel:123&lt;/i&gt;&lt;/b&gt; -- Display      the phone dialer with the given number filled in.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;&lt;code&gt;&lt;a href="http://developer.android.com/reference/android/content/Intent.html#ACTION_EDIT"&gt;ACTION_EDIT&lt;/a&gt;&lt;/code&gt; &lt;i&gt;content://contacts/people/1&lt;/i&gt;&lt;/b&gt; -- Edit      information about the person whose identifier is "1".&lt;/li&gt;&lt;li&gt; &lt;p&gt;&lt;b&gt;&lt;code&gt;&lt;a href="http://developer.android.com/reference/android/content/Intent.html#ACTION_MAIN"&gt;ACTION_MAIN&lt;/a&gt;&lt;/code&gt; with category &lt;code&gt;&lt;a href="http://developer.android.com/reference/android/content/Intent.html#CATEGORY_HOME"&gt;CATEGORY_HOME&lt;/a&gt;&lt;/code&gt;&lt;/b&gt; --      Launch the home screen.&lt;/p&gt;    &lt;/li&gt;&lt;li&gt; &lt;p&gt;&lt;b&gt;&lt;code&gt;&lt;a href="http://developer.android.com/reference/android/content/Intent.html#ACTION_GET_CONTENT"&gt;ACTION_GET_CONTENT&lt;/a&gt;&lt;/code&gt; with MIME type      &lt;i&gt;&lt;code&gt;&lt;a href="http://developer.android.com/reference/android/provider/Contacts.Phones.html#CONTENT_URI"&gt;vnd.android.cursor.item/phone&lt;/a&gt;&lt;/code&gt;&lt;/i&gt;&lt;/b&gt;      -- Display the list of people's phone numbers, allowing the user to      browse through them and pick one and return it to the parent activity.&lt;/p&gt;    &lt;/li&gt;&lt;li&gt; &lt;p&gt;&lt;b&gt;&lt;code&gt;&lt;a href="http://developer.android.com/reference/android/content/Intent.html#ACTION_CALL"&gt;ACTION_CALL&lt;/a&gt;&lt;/code&gt; &lt;/b&gt;Bring up a phone dialer and immediately initiates a call using the number suplied in the data URI. In generally, it's considered better form to use the DIAL_ACTION if possible.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;code&gt;&lt;/code&gt;&lt;/b&gt;&lt;b&gt;&lt;code&gt;&lt;a href="http://developer.android.com/reference/android/content/Intent.html#ACTION_GET_CONTENT"&gt;ACTION_DELETE&lt;/a&gt;&lt;/code&gt; &lt;/b&gt;Start an Activity that lets you delete the entry currently stored at the URI location.&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;code&gt;&lt;/code&gt;&lt;/b&gt;&lt;b&gt;&lt;code&gt;&lt;a href="http://developer.android.com/reference/android/content/Intent.html#ACTION_GET_CONTENT"&gt;ACTION_ANSWER&lt;/a&gt;&lt;/code&gt; &lt;/b&gt;Open an Activity that handles incoming calls. This is handled by native phone dialer.&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;code&gt;&lt;a href="http://developer.android.com/reference/android/content/Intent.html#ACTION_GET_CONTENT"&gt;ACTION_PICK&lt;/a&gt;&lt;/code&gt;&lt;br /&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;code&gt;&lt;a href="http://developer.android.com/reference/android/content/Intent.html#ACTION_GET_CONTENT"&gt;ACTION_INSERT&lt;/a&gt;&lt;/code&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;code&gt;&lt;a href="http://developer.android.com/reference/android/content/Intent.html#ACTION_GET_CONTENT"&gt;ACTION_SEARCH&lt;/a&gt;&lt;/code&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;code&gt;&lt;a href="http://developer.android.com/reference/android/content/Intent.html#ACTION_GET_CONTENT"&gt;ACTION_SENDTO&lt;/a&gt;&lt;/code&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;code&gt;&lt;a href="http://developer.android.com/reference/android/content/Intent.html#ACTION_GET_CONTENT"&gt;ACTION_SEND&lt;/a&gt;&lt;/code&gt;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;code&gt;&lt;a href="http://developer.android.com/reference/android/content/Intent.html#ACTION_GET_CONTENT"&gt;ACTION_WEB_SEARCH&lt;/a&gt;&lt;/code&gt;&lt;br /&gt;&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5902920467646767794-1363824313647646073?l=trinhquochungnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://trinhquochungnotes.blogspot.com/feeds/1363824313647646073/comments/default' title='Đăng Nhận xét'/><link rel='replies' type='text/html' href='http://trinhquochungnotes.blogspot.com/2009/12/android-native-android-action.html#comment-form' title='0 Nhận xét'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/1363824313647646073'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/1363824313647646073'/><link rel='alternate' type='text/html' href='http://trinhquochungnotes.blogspot.com/2009/12/android-native-android-action.html' title='Android: Native Android Action'/><author><name>Hung.Trinh experiences notes</name><uri>http://www.blogger.com/profile/15879504538337047633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_J3Ejob9sTKI/TLfQC-4TxWI/AAAAAAAAAH0/DXwYRgjBiEA/S220/avtnew.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5902920467646767794.post-8206020520253794954</id><published>2009-12-29T14:06:00.003+07:00</published><updated>2009-12-29T14:53:48.028+07:00</updated><title type='text'>Android: SharedPreferences</title><content type='html'>&lt;span style="font-weight: bold;font-size:130%;" &gt;Shared Preferences&lt;/span&gt;&lt;br /&gt;SharedPreferences let you save groups of key/value pairs of primitive data as named preferences. SharedPreferences is a lightweight mechanism to store a known set of values such as: user preferences, configuration, application settings...&lt;br /&gt;The data which had created by SharedPreferences can be shared between applicaton components running in the same "&lt;span style="font-style: italic; color: rgb(0, 102, 0);"&gt;Context&lt;/span&gt;".&lt;br /&gt;Creating and Saving SharePreferences&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;//Define SharePreference Name&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;private static final&lt;/span&gt; String STRING_SHAREREF_NAME_USERREF = "USER REFERENCES";&lt;br /&gt;//SharedPreferences object&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;private&lt;/span&gt; SharedPreferences mShareRefs = null;&lt;br /&gt;//Create and save&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;protected void&lt;/span&gt; savePreferences() {&lt;br /&gt;      //get value from ui&lt;br /&gt;      &lt;span style="color: rgb(153, 0, 0);"&gt;boolean&lt;/span&gt; bAutoUpdate = mCbxAutoUpdate.isChecked();&lt;br /&gt;      &lt;span style="color: rgb(153, 0, 0);"&gt;int&lt;/span&gt; iFrequency = mSpinnerFrequency.getSelectedItemPosition();&lt;br /&gt;      &lt;span style="color: rgb(153, 0, 0);"&gt;int&lt;/span&gt; iMinMag = mSpinnerMinMagtitude.getSelectedItemPosition();&lt;br /&gt;&lt;br /&gt;      //Create SharedPreferences object&lt;br /&gt;      mShareRefs = getSharedPreferences(STRING_SHAREREF_NAME_USERREF,&lt;br /&gt;                          Activity.MODE_PRIVATE);&lt;br /&gt;&lt;br /&gt;      //update to Preference by editor interface.&lt;br /&gt;      Editor editor = mShareRefs.edit();&lt;br /&gt;      editor.putBoolean(STRING_SHAREREF_USERREF_AUTOUPDATE, bAutoUpdate);&lt;br /&gt;      editor.putInt(STRING_SHAREREF_USERREF_FREQUENCYUPDATE, iFrequency);&lt;br /&gt;      editor.putInt(STRING_SHAREREF_USERREF_MINMAG, iMinMag);&lt;br /&gt;      editor.commit();&lt;br /&gt;  }&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;Notes&lt;/span&gt;:&lt;br /&gt;- If you want to save information that doesn't need to be shared with others component, you can call Activity.getPreferences(Mode) without a specifying preference name.&lt;br /&gt;&lt;blockquote&gt;(Activity).getPreferences(Activity.MODE_PRIVATE);&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Retrieve the saved values:&lt;/span&gt;&lt;br /&gt;SharedPreferences object offers some method to get persist data (type boolean, String, int, Long, ..):&lt;br /&gt;&lt;blockquote&gt;&lt;ul&gt;&lt;li&gt;getBoolean(..);&lt;/li&gt;&lt;li&gt; getInt(..);&lt;/li&gt;&lt;li&gt; getString(..);&lt;/li&gt;&lt;li&gt; ...&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Ref:&lt;br /&gt;- Pro Android June 2009&lt;br /&gt;- Profession Android Application Development.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5902920467646767794-8206020520253794954?l=trinhquochungnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://trinhquochungnotes.blogspot.com/feeds/8206020520253794954/comments/default' title='Đăng Nhận xét'/><link rel='replies' type='text/html' href='http://trinhquochungnotes.blogspot.com/2009/12/android-sharedpreferences.html#comment-form' title='0 Nhận xét'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/8206020520253794954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/8206020520253794954'/><link rel='alternate' type='text/html' href='http://trinhquochungnotes.blogspot.com/2009/12/android-sharedpreferences.html' title='Android: SharedPreferences'/><author><name>Hung.Trinh experiences notes</name><uri>http://www.blogger.com/profile/15879504538337047633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_J3Ejob9sTKI/TLfQC-4TxWI/AAAAAAAAAH0/DXwYRgjBiEA/S220/avtnew.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5902920467646767794.post-6098401032761925322</id><published>2009-12-29T09:24:00.008+07:00</published><updated>2009-12-29T14:06:27.960+07:00</updated><title type='text'>Android: Services</title><content type='html'>Because of the limited screen size of the mobile devices, typically only one application is visible and activate on device screen at any given time. &lt;span style="font-style: italic;"&gt;Android offers &lt;span style="color: rgb(0, 102, 0); font-weight: bold;"&gt;Service &lt;/span&gt;class to create application components specifically to handle operation and functionality that should run silently&lt;/span&gt;, without a UserInterface. &lt;span style="font-weight: bold;"&gt;Android &lt;span style="font-style: italic; color: rgb(0, 102, 0);"&gt;Services&lt;/span&gt; is higher priority than an inactive Activity&lt;/span&gt;, so they're less likely to be killed when the system requires resources. By using &lt;span style="font-weight: bold; font-style: italic; color: rgb(0, 102, 0);"&gt;Service&lt;/span&gt;, you can ensure that applications continuous to run and response to events, even when they're inactive.&lt;br /&gt;&lt;br /&gt;Android offers several techniques for application to communicate with users with an Activity providing a direct UserInterface, for ex: &lt;span style="font-weight: bold; font-style: italic; color: rgb(0, 102, 0);"&gt;Notifications&lt;/span&gt;, &lt;span style="font-weight: bold; font-style: italic; color: rgb(0, 102, 0);"&gt;Toast&lt;/span&gt;.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold; font-style: italic; color: rgb(0, 102, 0);"&gt;Toasts&lt;/span&gt; are a transient, non-modal Dialog-box mechanism used to display information to users without stealing focus from the active application.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold; font-style: italic; color: rgb(0, 102, 0);"&gt;Notifications&lt;/span&gt; represent a more robust mechanism for alerting users. Many users, when they're not actively using their mobile phones, they sit silent and unwatched in pocket or on a desk until it rings, vibrates or flashes. Should a user miss these alerts. This case, status bar icons are used to indicate that an event has occurred. All of these attention-grabbing antics are available within Android as Notifications.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold; font-style: italic; color: rgb(0, 102, 0);"&gt;Alarms&lt;/span&gt; provide a mechanism for fi ring Intents at set times, outside the control of your application lifecycle. &lt;span style="font-style: italic;"&gt;An Alarm will fire even after its owner application has been closed, and can (if required) wake a device from sleep&lt;/span&gt;.&lt;/li&gt;&lt;/ul&gt;If your application regularly, or continuously, performs actions that don't depend directly from a user input, Services my be the answer. Start Service receive higher priority than inactive or invisible Activity, making them less likely to be terminated by run time's resource management. &lt;span style="font-style: italic;"&gt;The only time Android will stop a Service prematurely is when it’s the only way for a foreground Activity to gain required resources; if that happens, your Service will be restarted automatically when resources become available&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Creating and Controlling Service&lt;/span&gt;&lt;br /&gt;Services is extended from Service base class. Services are designed to run in the background, so they need to be started, stopped and controlled by other application component.&lt;br /&gt;&lt;br /&gt;Notes:&lt;br /&gt;- Once you've contructed a new Service, you have to register it in the application manifest file within the service tag:&lt;br /&gt;&lt;blockquote&gt;&lt;service name=".ServiceName" enabled="true"&gt; ... &lt;/service&gt;&lt;/blockquote&gt;&lt;br /&gt;(... to be continuous...)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ref:&lt;br /&gt;- Pro Android June 2009&lt;br /&gt;- Profession Android Application Development.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5902920467646767794-6098401032761925322?l=trinhquochungnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://trinhquochungnotes.blogspot.com/feeds/6098401032761925322/comments/default' title='Đăng Nhận xét'/><link rel='replies' type='text/html' href='http://trinhquochungnotes.blogspot.com/2009/12/android-services.html#comment-form' title='0 Nhận xét'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/6098401032761925322'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/6098401032761925322'/><link rel='alternate' type='text/html' href='http://trinhquochungnotes.blogspot.com/2009/12/android-services.html' title='Android: Services'/><author><name>Hung.Trinh experiences notes</name><uri>http://www.blogger.com/profile/15879504538337047633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_J3Ejob9sTKI/TLfQC-4TxWI/AAAAAAAAAH0/DXwYRgjBiEA/S220/avtnew.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5902920467646767794.post-8490400069810584383</id><published>2009-12-28T08:54:00.008+07:00</published><updated>2009-12-29T08:57:59.455+07:00</updated><title type='text'>Android: Http Connection</title><content type='html'>This time, I'm going to building a service in Android. There are a lot of types of services with Android included: IPC (communication between applications on the same device), get resources outside the devices by various type of connections. I'll focus on Http connection first.&lt;br /&gt;Although Android included web-browser application in the basic applications, but there are several benefits to creating thick and thin native application rather than relying on entirely web-base:&lt;br /&gt;- Bandwidth&lt;br /&gt;- Caching&lt;br /&gt;- Native features.&lt;br /&gt;With currently connection methods:&lt;br /&gt;- GPRS, EDGE, 3G.&lt;br /&gt;- Wi-Fi.&lt;br /&gt;more details could collected from reference books below.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Connection permission for Android application&lt;/span&gt;&lt;br /&gt;By Eclipse ADT plug-in:&lt;br /&gt;- Open AndroidManifest.xml file (in design mode)&lt;br /&gt;- Select "Permissions" tab ==&gt; click "Add" and select "Uses permission"&lt;br /&gt;- At the "Name" property, select "android.permission.INTERNET"&lt;br /&gt;- Save setting.&lt;br /&gt;&lt;br /&gt;By XML editor:&lt;br /&gt;- Open AndroidManifest.xml file (in editor mode)&lt;br /&gt;- Add below code:&lt;br /&gt;&lt;blockquote&gt;&lt;uses-permission name="android.permission.INTERNET"&gt;&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;Open an URL connection and get content:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;public static&lt;/span&gt; String getHttpContent(String prURL) {&lt;br /&gt;        String strResult = "";&lt;br /&gt;        StringBuffer sbfResult = new StringBuffer();&lt;br /&gt;        String newline = System.getProperty("line.seperator");&lt;br /&gt;       &lt;br /&gt;        &lt;span style="color: rgb(153, 0, 0);"&gt;try &lt;/span&gt;{&lt;br /&gt;               URL url = new URL(prURL);&lt;br /&gt;               URLConnection urlcon = url.openConnection();&lt;br /&gt;               HttpURLConnection httpurlcon = (HttpURLConnection) urlcon;&lt;br /&gt;           &lt;br /&gt;               int responseCode = httpurlcon.getResponseCode();&lt;br /&gt;               if (responseCode == HttpURLConnection.HTTP_OK) {&lt;br /&gt;                    InputStream in = httpurlcon.getInputStream();&lt;br /&gt;                    BufferedReader br = new BufferedReader(new InputStreamReader(in));&lt;br /&gt;                    String line = "";&lt;br /&gt;                    while ((line = br.readLine()) != null) {&lt;br /&gt;                        sbfResult.append(line).append(newline);&lt;br /&gt;                    }&lt;br /&gt;                    br.close();&lt;br /&gt;                    in.close();&lt;br /&gt;                }&lt;br /&gt;           } &lt;span style="color: rgb(153, 0, 0);"&gt;catch &lt;/span&gt;(Exception e) {&lt;br /&gt;                sbfResult.append(e.getMessage()).append(newline);&lt;br /&gt;           }&lt;span style="color: rgb(153, 0, 0);"&gt;finally&lt;/span&gt;{&lt;br /&gt;                if (sbfResult != null) {&lt;br /&gt;                     strResult = sbfResult.toString();&lt;br /&gt;                }else{&lt;br /&gt;                    strResult = "StringBuffer has failed.";&lt;br /&gt;                }&lt;br /&gt;           }&lt;br /&gt;           &lt;span style="color: rgb(153, 0, 0);"&gt;return &lt;/span&gt;strResult;&lt;br /&gt;       }&lt;br /&gt;}&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Referenced:&lt;br /&gt;- Pro Android June 2009&lt;br /&gt;- Profession Android Application Development.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5902920467646767794-8490400069810584383?l=trinhquochungnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://trinhquochungnotes.blogspot.com/feeds/8490400069810584383/comments/default' title='Đăng Nhận xét'/><link rel='replies' type='text/html' href='http://trinhquochungnotes.blogspot.com/2009/12/android-http-connection.html#comment-form' title='0 Nhận xét'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/8490400069810584383'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/8490400069810584383'/><link rel='alternate' type='text/html' href='http://trinhquochungnotes.blogspot.com/2009/12/android-http-connection.html' title='Android: Http Connection'/><author><name>Hung.Trinh experiences notes</name><uri>http://www.blogger.com/profile/15879504538337047633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_J3Ejob9sTKI/TLfQC-4TxWI/AAAAAAAAAH0/DXwYRgjBiEA/S220/avtnew.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5902920467646767794.post-2655908989186056592</id><published>2009-12-24T14:15:00.002+07:00</published><updated>2009-12-24T14:17:47.482+07:00</updated><title type='text'>Android: Overridable functions in Application's lifecycle</title><content type='html'>&lt;span style="font-weight: bold;"&gt;onSaveInstanceState&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;onSaveInstanceState()&lt;/span&gt; is called by Android if the &lt;span style="color: rgb(51, 102, 255);"&gt;Activity &lt;/span&gt;is being stopped and may be killed before it is resumed! This means it should store any state necessary to re-initialize to the same condition when the &lt;span style="color: rgb(51, 102, 255);"&gt;Activity &lt;/span&gt;is restarted. It is the counterpart to the&lt;span style="color: rgb(51, 204, 0);"&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;onCreate()&lt;/span&gt; &lt;/span&gt;method, and in fact the &lt;span style="font-weight: bold;"&gt;savedInstanceState Bundle passed in to onCreate() is the same Bundle that you construct as outState&lt;/span&gt; in the &lt;span style="color: rgb(0, 153, 0);"&gt;onSaveInstanceState()&lt;/span&gt; method.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5902920467646767794-2655908989186056592?l=trinhquochungnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://trinhquochungnotes.blogspot.com/feeds/2655908989186056592/comments/default' title='Đăng Nhận xét'/><link rel='replies' type='text/html' href='http://trinhquochungnotes.blogspot.com/2009/12/android-overridable-functions-in.html#comment-form' title='0 Nhận xét'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/2655908989186056592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/2655908989186056592'/><link rel='alternate' type='text/html' href='http://trinhquochungnotes.blogspot.com/2009/12/android-overridable-functions-in.html' title='Android: Overridable functions in Application&apos;s lifecycle'/><author><name>Hung.Trinh experiences notes</name><uri>http://www.blogger.com/profile/15879504538337047633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_J3Ejob9sTKI/TLfQC-4TxWI/AAAAAAAAAH0/DXwYRgjBiEA/S220/avtnew.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5902920467646767794.post-8166852745238519929</id><published>2009-12-23T15:45:00.003+07:00</published><updated>2009-12-23T16:06:24.909+07:00</updated><title type='text'>Android: Introduction</title><content type='html'>&lt;div id="preview"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;What is Android ? &lt;/span&gt;&lt;br /&gt;&lt;div style="display: block;" id="previewbody"&gt;&lt;p:colorscheme colors="#ffffff,#000000,#808080,#000000,#bbe0e3,#333399,#009999,#99cc00"&gt;  &lt;div shape="_x0000_s1026"&gt;  &lt;div class="O" style=""&gt;&lt;span style="font-size:111%;"&gt;&lt;span style="position: absolute; left: -2.73%; top: 0.61em;font-family:Wingdings;font-size:60%;"  &gt;q&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:20pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p:colorscheme&gt;Is a Platform:&lt;br /&gt;&lt;ul&gt;&lt;li&gt; §Built on Linux kernel.&lt;/li&gt;&lt;li&gt; §For open handset devices.  &lt;/li&gt;&lt;li&gt; §Open-source libraries for Web, SQLLite, OpenGL, SSL,…&lt;/li&gt;&lt;/ul&gt;Also included Middle-ware&lt;br /&gt;&lt;ul&gt;&lt;li&gt; §Base on C/C++ Linux kernel.  &lt;/li&gt;&lt;li&gt; §Fully support for Java developer (by JNI).  &lt;/li&gt;&lt;li&gt; §Use XML for flexible UI and Effect definition.&lt;/li&gt;&lt;/ul&gt;And is Key Applications with Android Software Stack&lt;br /&gt;&lt;ul&gt;&lt;li&gt; §Have a lot of applications fully support for PIM. (Contacts, Calendar, Phone, SMS Manager, Browser, Player, ..)          &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Android Application Software Stack&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://developer.android.com/images/system-architecture.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 390px; height: 279px;" src="http://developer.android.com/images/system-architecture.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;div style="display: block;" id="previewbody"&gt;&lt;meta equiv="Content-Type" content="text/html; charset=utf-8"&gt;&lt;meta name="ProgId" content="PowerPoint.Slide"&gt;&lt;meta name="Generator" content="Microsoft PowerPoint 11"&gt;&lt;!--[if !mso]&gt; &lt;style&gt; v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} p\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} v\:textbox {display:none;} &lt;/style&gt; &lt;![endif]--&gt;&lt;title&gt;Slide 4&lt;/title&gt;&lt;meta name="Description" content="12/23/2009"&gt;&lt;!--[if !ppt]--&gt;&lt;style&gt; .O 	{font-size:149%;} &lt;/style&gt;&lt;style media="print"&gt; &lt;!--.sld 	{left:0px !important; 	width:6.0in !important; 	height:4.5in !important; 	font-size:103% !important;} --&gt; &lt;/style&gt;&lt;!--[endif]--&gt;&lt;o:shapelayout ext="edit"&gt;&lt;/o:shapelayout&gt;&lt;o:idmap ext="edit" data="1"&gt;&lt;/o:idmap&gt;&lt;p:colorscheme colors="#ffffff,#000000,#808080,#000000,#bbe0e3,#333399,#009999,#99cc00"&gt;  &lt;div shape="_x0000_s1026"&gt;  &lt;div class="O" style=""&gt;&lt;span style="font-size:56%;"&gt;&lt;span style="position: absolute; left: 77px; width: 129px; top: 659px;"&gt;-&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p:colorscheme&gt;Linux Kernel 2.6         -Set of C/C++ open-source libraries had been converted to Java protocol for Java developer.   -Surface Manager - manages access to the display subsystem and seamlessly composites 2D and 3D graphic layers from multiple applications    -Android runtime with multi Dalvik VM instances and GC,.. Each Android Application (process) have it own Dalvik VM.   -Application Framework: include so many services for management:   -   Content Providers: share data between components or applications. -   Activity Manager: manages the lifecycle of applications and provides a common navigation back stack. (based on Android Software Stack) -   Window Manager: -  View System: Create interfaces for user. -  Package Manager: manage installed applications, packages, librabries. -  Telephony Manager: Phone’s services. -  Resource Manager: providing access to non-code resources (strings, graphics, and layout files) -  Location Manager:  -  Notification Manager: display custom alerts in the status bar.                    -APIs (JDK or NDK) for fully interacted with services and devices.      &lt;br /&gt;The Dalvik Virtual Machine&lt;br /&gt;The Dalvik VM is a registered-base virtual machine. It is optimized for low memory requirements, and is designed to allow for multiple VM instances to run at once, relying on underlying operating system for process isolating, memory management and threading support. Dalvik use .dex files format:&lt;br /&gt;A dx tool will compile Java class files to. dex file format. Multi classes are included in one .dex file, alls duplicate string or resource will be reduced for smallest size. Java byte codes are also converted into a alternative instruction set used by Dalvik VM. Dalvik executables may be modified again when they get installed onto a device.&lt;br /&gt;Dalvik VM was slimmed down to use less space. Dalvik has modified constant pool to use only 32-bit indexes to simplify the interpreter. Dalvik VM use it own byte code, not Java byte code.       The name “Dalvik” is belong to the name of a village in Iceland where Dan Bornstein’s ancestors lived.   -The executable code on Android, as a result in Dalvik VM, is based not on Java byte code, but on .dex files format instead.   -The java compiled class or .jar standard executable file are not compatible with Android.   Why no “JIT” : Google has fine-tuned the garbage collection in the Dalvik VM, but it has chosen   to omit a just-in-time (JIT) compiler, in this release at least. The company can justify this   choice because many of Android’s core libraries, including the graphics libraries, are implemented   in C and C++. For example, the Java graphics APIs are actually thin wrapper classes   around the native code using the Java Native Interface (JNI). Similarly, Android provides an   optimized C-based native library to access the SQLite database, but this library is encapsulated   in a higher-level Java API. Because most of the core code is in C and C++, Google reasoned that   the impact of JIT compilation would not be significant. &lt;p:colorscheme colors="#ffffff,#000000,#808080,#000000,#bbe0e3,#333399,#009999,#99cc00"&gt;&lt;div shape="_x0000_s1026" class="O"&gt;&lt;div style=""&gt;&lt;span style="font-size:12pt;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p:colorscheme&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5902920467646767794-8166852745238519929?l=trinhquochungnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://trinhquochungnotes.blogspot.com/feeds/8166852745238519929/comments/default' title='Đăng Nhận xét'/><link rel='replies' type='text/html' href='http://trinhquochungnotes.blogspot.com/2009/12/android-introduction.html#comment-form' title='0 Nhận xét'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/8166852745238519929'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/8166852745238519929'/><link rel='alternate' type='text/html' href='http://trinhquochungnotes.blogspot.com/2009/12/android-introduction.html' title='Android: Introduction'/><author><name>Hung.Trinh experiences notes</name><uri>http://www.blogger.com/profile/15879504538337047633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_J3Ejob9sTKI/TLfQC-4TxWI/AAAAAAAAAH0/DXwYRgjBiEA/S220/avtnew.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5902920467646767794.post-6716360553825440644</id><published>2009-12-17T15:31:00.002+07:00</published><updated>2009-12-17T15:37:54.529+07:00</updated><title type='text'>Android: Error on missing resource</title><content type='html'>Now in Android - Eclipse IDE technique.&lt;br /&gt;Have you ever got into an error like:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;"&lt;/span&gt;&lt;img style="font-weight: bold;" src="file:///C:/DOCUME%7E1/hungtq/LOCALS%7E1/Temp/moz-screenshot.png" alt="" /&gt;&lt;span style="font-weight: bold;"&gt;"is missing required source folder: 'gen'"&lt;/span&gt;&lt;br /&gt;or this pic:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_J3Ejob9sTKI/SyntwmOyXLI/AAAAAAAAAHU/85857qYpo20/s1600-h/android_err_01.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 92px;" src="http://4.bp.blogspot.com/_J3Ejob9sTKI/SyntwmOyXLI/AAAAAAAAAHU/85857qYpo20/s320/android_err_01.JPG" alt="" id="BLOGGER_PHOTO_ID_5416121446041803954" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;On Eclipse IDE, just right click and delete "gen" folder in your Package Explorer and Build project again. Got that ?&lt;br /&gt;&lt;br /&gt;Gook luck,&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5902920467646767794-6716360553825440644?l=trinhquochungnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://trinhquochungnotes.blogspot.com/feeds/6716360553825440644/comments/default' title='Đăng Nhận xét'/><link rel='replies' type='text/html' href='http://trinhquochungnotes.blogspot.com/2009/12/android-error-on-missing-resource.html#comment-form' title='2 Nhận xét'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/6716360553825440644'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/6716360553825440644'/><link rel='alternate' type='text/html' href='http://trinhquochungnotes.blogspot.com/2009/12/android-error-on-missing-resource.html' title='Android: Error on missing resource'/><author><name>Hung.Trinh experiences notes</name><uri>http://www.blogger.com/profile/15879504538337047633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_J3Ejob9sTKI/TLfQC-4TxWI/AAAAAAAAAH0/DXwYRgjBiEA/S220/avtnew.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_J3Ejob9sTKI/SyntwmOyXLI/AAAAAAAAAHU/85857qYpo20/s72-c/android_err_01.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5902920467646767794.post-1077467545630058470</id><published>2009-12-10T13:47:00.003+07:00</published><updated>2009-12-10T14:06:21.964+07:00</updated><title type='text'>How to create a certificate with "makekeys"</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Duty:&lt;/span&gt;&lt;br /&gt;Create a self-sign certificate to sign on MIDlet, Symbian apps, Applet, .Net appls, ..&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Resource:&lt;/span&gt;  &lt;a href="http://www3.symbian.com/faq.nsf/fde6224c17e6012780257130004f0a7c/0a641d4666011f9c002572250023f01c/$FILE/makekeys.exe"&gt;&lt;img alt="makekeys.exe" src="http://www.blogger.com/faq.nsf/fde6224c17e6012780257130004f0a7c/0a641d4666011f9c002572250023f01c/FAQAnswer/0.62C?OpenElement&amp;amp;FieldElemFormat=gif" border="0" width="76" height="47" /&gt;&lt;/a&gt; executable file&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Command:&lt;/span&gt;&lt;br /&gt;%prompt%&gt;makekeys -expdays 3650 -cert -password yourpassword -len 2048 -dname "&lt;span class="faqQuestion"&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;CN=CertificateName OU=OrganizationUnit OR=ORganization CO=COuntry EM=yourEMail@now&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;here.com" keyfilename.key certificatefilename.cer&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Result:&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_J3Ejob9sTKI/SyCbatWZOjI/AAAAAAAAAHM/iMGsaRg2OYQ/s1600-h/certificate_01.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 474px; height: 55px;" src="http://2.bp.blogspot.com/_J3Ejob9sTKI/SyCbatWZOjI/AAAAAAAAAHM/iMGsaRg2OYQ/s320/certificate_01.JPG" alt="" id="BLOGGER_PHOTO_ID_5413497635251763762" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:78%;"&gt;Reference from &lt;a href="http://www3.symbian.com/faq.nsf/AllByDate/0A641D4666011F9C002572250023F01C?OpenDocument"&gt;Symbian.com&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Good luck!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5902920467646767794-1077467545630058470?l=trinhquochungnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://trinhquochungnotes.blogspot.com/feeds/1077467545630058470/comments/default' title='Đăng Nhận xét'/><link rel='replies' type='text/html' href='http://trinhquochungnotes.blogspot.com/2009/12/how-to-create-certificate-with-makekeys.html#comment-form' title='0 Nhận xét'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/1077467545630058470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/1077467545630058470'/><link rel='alternate' type='text/html' href='http://trinhquochungnotes.blogspot.com/2009/12/how-to-create-certificate-with-makekeys.html' title='How to create a certificate with &quot;makekeys&quot;'/><author><name>Hung.Trinh experiences notes</name><uri>http://www.blogger.com/profile/15879504538337047633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_J3Ejob9sTKI/TLfQC-4TxWI/AAAAAAAAAH0/DXwYRgjBiEA/S220/avtnew.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_J3Ejob9sTKI/SyCbatWZOjI/AAAAAAAAAHM/iMGsaRg2OYQ/s72-c/certificate_01.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5902920467646767794.post-4895808365750838313</id><published>2009-12-08T10:09:00.003+07:00</published><updated>2009-12-08T10:27:54.669+07:00</updated><title type='text'>Symbian - Carbide: Compilation Fails: Bareword Found Where Operator Expected (Wrong Active Perl version)</title><content type='html'>&lt;h2&gt; &lt;span class="mw-headline"&gt; Compilation Fails: Bareword Found Where Operator Expected &lt;/span&gt;&lt;/h2&gt; &lt;p&gt;&lt;b&gt;Problem:&lt;/b&gt;  When compiling an application, the process fails. The Problems view of Carbide.c++ reports that a &lt;tt&gt;.hlp.hrh&lt;/tt&gt; file cannot be opened. In the Console view, problems with a Perl script are obvious (params.pm). &lt;/p&gt; &lt;div class="floatnone"&gt;&lt;a href="http://developer.symbian.org/wiki/index.php/File:Perl-NewVersionNeeded1.png" class="image" title=".hlp.hrh file cannot be opened"&gt;&lt;img alt=".hlp.hrh file cannot be opened" src="http://developer.symbian.org/wiki/images/thumb/5/51/Perl-NewVersionNeeded1.png/1000px-Perl-NewVersionNeeded1.png" width="1000" border="0" height="154" /&gt;&lt;/a&gt;&lt;/div&gt; &lt;div class="floatnone"&gt;&lt;a href="http://developer.symbian.org/wiki/index.php/File:Perl-NewVersionNeeded2.png" class="image" title="Problems with the perl script"&gt;&lt;img alt="Problems with the perl script" src="http://developer.symbian.org/wiki/images/thumb/c/cb/Perl-NewVersionNeeded2.png/1000px-Perl-NewVersionNeeded2.png" width="1000" border="0" height="288" /&gt;&lt;/a&gt;&lt;/div&gt; &lt;p&gt;&lt;b&gt;Cause: &lt;/b&gt; The version of Perl on your system is newer than 5.6.x. The Symbian OS toolchain is not fully compatible to the 5.8.x/5.10.x release – you will probably not notice it for most projects, but, for example, compiling help files does not work with ActivePerl 5.8/5.10. &lt;/p&gt;&lt;p&gt;&lt;b&gt;Solution: &lt;/b&gt; Either install Perl 5.6.1 , or follow the steps at &lt;a href="http://wiki.forum.nokia.com/index.php/KIS001302_-_Compiling_context-sensitive_help_fails_with_latest_version_of_Perl" class="external free" title="http://wiki.forum.nokia.com/index.php/KIS001302_-_Compiling_context-sensitive_help_fails_with_latest_version_of_Perl" rel="nofollow"&gt;http://wiki.forum.nokia.com/index.php/KIS001302_-_Compiling_context-sensitive_help_fails_with_latest_version_of_Perl&lt;/a&gt;:&lt;/p&gt;&lt;p&gt;Go to your SDK installation's "&lt;tt&gt;Epoc32\tools\perllib&lt;/tt&gt;" path:&lt;/p&gt;&lt;p&gt;- Open file args.pm, change the following line (# 688)  &lt;/p&gt;&lt;pre class="cpp" style="font-family: monospace; font-style: italic;"&gt;$self&lt;span style="color: rgb(0, 0, 64);"&gt;-&lt;/span&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;&gt;&lt;/span&gt;_iSpecArray&lt;span style="color: rgb(0, 0, 64);"&gt;-&lt;/span&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;{&lt;/span&gt;$aName&lt;span style="color: rgb(0, 128, 0);"&gt;}&lt;/span&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;=&lt;/span&gt; New CArgsSpec&lt;span style="color: rgb(0, 128, 0);"&gt;(&lt;/span&gt;$aName, $aDefault, $aPattern,&lt;br /&gt;$aExclusions, $aMandatory, $aRepeatable&lt;span style="color: rgb(0, 128, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;;&lt;/span&gt;&lt;/pre&gt; &lt;p&gt;to &lt;/p&gt; &lt;pre class="cpp" style="font-family: monospace; font-style: italic;"&gt;$self&lt;span style="color: rgb(0, 0, 64);"&gt;-&lt;/span&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;&gt;&lt;/span&gt;_iSpecArray&lt;span style="color: rgb(0, 0, 64);"&gt;-&lt;/span&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;{&lt;/span&gt;$aName&lt;span style="color: rgb(0, 128, 0);"&gt;}&lt;/span&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;=&lt;/span&gt; CArgsSpec&lt;span style="color: rgb(0, 0, 64);"&gt;-&lt;/span&gt;&lt;span style="color: rgb(0, 0, 128);"&gt;&gt;&lt;/span&gt;New&lt;span style="color: rgb(0, 128, 0);"&gt;(&lt;/span&gt;$aName, $aDefault, $aPattern,&lt;br /&gt;$aExclusions, $aMandatory, $aRepeatable&lt;span style="color: rgb(0, 128, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 128, 128);"&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-size:100%;"&gt;- Open file params.pm, &lt;/span&gt;&lt;/span&gt;search for the word "New" and replace it with "foo-&gt;New()"; for example, if there is a function "New CLogs()". &lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:78%;"&gt;Reference from &lt;a href="http://developer.symbian.org/wiki/index.php/Development_Environment_Troubleshooting_Guide#Compilation_Fails:_Bareword_Found_Where_Operator_Expected"&gt;Developer.Symbian.com&lt;/a&gt; and &lt;a href="http://wiki.forum.nokia.com/index.php/KIS001302_-_Compiling_context-sensitive_help_fails_with_latest_version_of_Perl"&gt;Wiki.forum.nokia.com&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5902920467646767794-4895808365750838313?l=trinhquochungnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://trinhquochungnotes.blogspot.com/feeds/4895808365750838313/comments/default' title='Đăng Nhận xét'/><link rel='replies' type='text/html' href='http://trinhquochungnotes.blogspot.com/2009/12/symbian-carbide-compilation-fails.html#comment-form' title='0 Nhận xét'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/4895808365750838313'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/4895808365750838313'/><link rel='alternate' type='text/html' href='http://trinhquochungnotes.blogspot.com/2009/12/symbian-carbide-compilation-fails.html' title='Symbian - Carbide: Compilation Fails: Bareword Found Where Operator Expected (Wrong Active Perl version)'/><author><name>Hung.Trinh experiences notes</name><uri>http://www.blogger.com/profile/15879504538337047633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_J3Ejob9sTKI/TLfQC-4TxWI/AAAAAAAAAH0/DXwYRgjBiEA/S220/avtnew.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5902920467646767794.post-899609324509534872</id><published>2009-11-09T16:13:00.004+07:00</published><updated>2009-11-09T16:16:36.679+07:00</updated><title type='text'></title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;span style="color: rgb(51, 51, 255);font-size:130%;" &gt;Mobile Payment presentation from Global PayMobility&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="width: 425px; text-align: left;" id="__ss_1939253"&gt;&lt;a style="margin: 12px 0pt 3px; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; display: block; text-decoration: underline;" href="http://www.slideshare.net/friszman/gpm-intro-english" title="Introduction of Services"&gt;Introduction of Services&lt;/a&gt;&lt;object style="margin: 0px;" height="355" width="425"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=gpmintroenglish-12518408064047-phpapp02&amp;amp;stripped_title=gpm-intro-english"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=gpmintroenglish-12518408064047-phpapp02&amp;amp;stripped_title=gpm-intro-english" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="355" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;"&gt;View more &lt;a style="text-decoration: underline;" href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a style="text-decoration: underline;" href="http://www.slideshare.net/friszman"&gt;friszman&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;span style="font-size:78%;"&gt;Researched on &lt;a href="http://www.slideshare.net/friszman/gpm-intro-english"&gt;Slideshare.net&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;input id="gwProxy" type="hidden"&gt;&lt;!--Session data--&gt;&lt;input onclick="jsCall();" id="jsProxy" type="hidden"&gt;&lt;div id="refHTML"&gt;&lt;/div&gt;&lt;input id="gwProxy" type="hidden"&gt;&lt;!--Session data--&gt;&lt;input onclick="jsCall();" id="jsProxy" type="hidden"&gt;&lt;div id="refHTML"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5902920467646767794-899609324509534872?l=trinhquochungnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://trinhquochungnotes.blogspot.com/feeds/899609324509534872/comments/default' title='Đăng Nhận xét'/><link rel='replies' type='text/html' href='http://trinhquochungnotes.blogspot.com/2009/11/mobile-payment-presentation-from-global.html#comment-form' title='0 Nhận xét'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/899609324509534872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/899609324509534872'/><link rel='alternate' type='text/html' href='http://trinhquochungnotes.blogspot.com/2009/11/mobile-payment-presentation-from-global.html' title=''/><author><name>Hung.Trinh experiences notes</name><uri>http://www.blogger.com/profile/15879504538337047633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_J3Ejob9sTKI/TLfQC-4TxWI/AAAAAAAAAH0/DXwYRgjBiEA/S220/avtnew.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5902920467646767794.post-2483636631348696504</id><published>2009-10-21T12:10:00.008+07:00</published><updated>2009-10-21T12:38:47.327+07:00</updated><title type='text'></title><content type='html'>&lt;img style="visibility: hidden; width: 0px; height: 0px;" src="http://counters.gigya.com/wildfire/IMP/CXNID=2000002.11NXC/bHQ9MTI1NjEwMTc*NzUzOSZwdD*xMjU2MTAyMDMwMDEyJnA9Mzg2MzYxJmQ9Jm49YmxvZ2dlciZnPTEmb2Y9MA==.gif" border="0" height="0" width="0" /&gt;&lt;div style="width: 400px; text-align: left;"&gt;&lt;embed src="http://static.pbsrc.com/flash/rss_slideshow.swf?rssFeed=http%3A%2F%2Ffeed13.photobucket.com%2Falbums%2Fa297%2Fminh_thanhpho%2FWedding%2Ffeed.rss" type="application/x-shockwave-flash" wmode="transparent" height="300" width="400"&gt;&lt;/embed&gt; &lt;a href="http://photobucket.com/redirect/album?showShareLB=1" target="_blank"&gt;&lt;img src="http://pic.pbsrc.com/share/icons/embed/btn_geturs.gif" style="border: medium none ;" /&gt;&lt;/a&gt;&lt;a href="http://s13.photobucket.com/albums/a297/minh_thanhpho/Wedding/" target="_blank"&gt;&lt;img src="http://pic.pbsrc.com/share/icons/embed/btn_viewall.gif" style="border: medium none ;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;input id="gwProxy" type="hidden"&gt;&lt;!--Session data--&gt;&lt;input onclick="jsCall();" id="jsProxy" type="hidden"&gt;&lt;div id="refHTML"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5902920467646767794-2483636631348696504?l=trinhquochungnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://trinhquochungnotes.blogspot.com/feeds/2483636631348696504/comments/default' title='Đăng Nhận xét'/><link rel='replies' type='text/html' href='http://trinhquochungnotes.blogspot.com/2009/10/blog-post.html#comment-form' title='0 Nhận xét'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/2483636631348696504'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/2483636631348696504'/><link rel='alternate' type='text/html' href='http://trinhquochungnotes.blogspot.com/2009/10/blog-post.html' title=''/><author><name>Hung.Trinh experiences notes</name><uri>http://www.blogger.com/profile/15879504538337047633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_J3Ejob9sTKI/TLfQC-4TxWI/AAAAAAAAAH0/DXwYRgjBiEA/S220/avtnew.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5902920467646767794.post-7536583318606167690</id><published>2009-07-07T20:25:00.002+07:00</published><updated>2009-07-07T20:43:20.323+07:00</updated><title type='text'>Bonus Games: Free Popcap games</title><content type='html'>Hôm nay được người bạn chỉ cách free-time các game con con popcap chơi giải trí. Mình phải lưu lại để nhớ chứ hông quên mất.&lt;br /&gt;Bước 1: Bật thuộc tính show hidden files and folders của window explorer.&lt;br /&gt;Bước 2: Lên &lt;a href="http://www.popcap.com/"&gt;Popcap site&lt;/a&gt; download về một game nào đó (giờ đang có game &lt;a href="http://www.popcap.com/games/pvz?mid=pvz_pc_en_full"&gt;&lt;span style="font-weight: bold;"&gt;Plants vs Jombies&lt;/span&gt;&lt;/a&gt; rất hài)&lt;br /&gt;Bước 3: Cài đặt game này vào máy (chỉ có next next và next), ví dụ cài vào C:\games\PnJ\ và tập tin chạy game sau khi cài đặt là "PnJ.exe". Mở sẵn một cửa sổ Window Explorer ở vị trí thư mục cài đặt game.&lt;br /&gt;Bước 4: Chạy PnJ.exe để chơi game. Popcapgame chưa đăng ký sẽ hiển thị một màn hình lựa chọn đăng ký (Buy) hoặc chơi thử (Play trial). Chọn Play Trial, khi vào đến màn hình chính của game thì ... qua bước 5 nha.&lt;br /&gt;Bước 5: Switch ra ngoài window explorer. Bây giờ trong cửa sổ Window Explorer đã mở lúc nãy sẽ thấy có 1 file thực thi ẩn có tên "popcapgame1.exe" (hoặc một file thực thi ẩn có dung lượng tương đối bằng (nhỏ hơn) dung lượng file thực thi game PnJ.exe)&lt;br /&gt;Bước 6: Đổi thuộc tính của file popcapgame1.exe thành Read-Only và bỏ thuộc tính Hidden. Ok&lt;br /&gt;Bước 7: Tắt chương trình game đang chạy (tắt luôn cửa sổ Trial Game của Popcap). Quay lại cửa sổ Window Explorer, xóa file PnJ.exe và đổi tên popcapgame1.exe thành PnJ.exe.&lt;br /&gt;Bước 8: Thực thi game PnJ.exe và ... hưởng thụ cuộc chơi miễn phí he he he..&lt;br /&gt;&lt;br /&gt;Làm thử vài chục game từ cổ chí kim bắn trứng, hứng kim cương, dương quả tiễn rocket, lẫn các&lt;br /&gt; game mới hấp dẫn như heavy weapon, plants vs jombies, peg night đều okie ^_^. Thôi chơi game tiếp thôi, chơi hoài cháy máy quá. ^_^&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5902920467646767794-7536583318606167690?l=trinhquochungnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://trinhquochungnotes.blogspot.com/feeds/7536583318606167690/comments/default' title='Đăng Nhận xét'/><link rel='replies' type='text/html' href='http://trinhquochungnotes.blogspot.com/2009/07/bonus-games-free-popcap-games.html#comment-form' title='0 Nhận xét'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/7536583318606167690'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/7536583318606167690'/><link rel='alternate' type='text/html' href='http://trinhquochungnotes.blogspot.com/2009/07/bonus-games-free-popcap-games.html' title='Bonus Games: Free Popcap games'/><author><name>Hung.Trinh experiences notes</name><uri>http://www.blogger.com/profile/15879504538337047633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_J3Ejob9sTKI/TLfQC-4TxWI/AAAAAAAAAH0/DXwYRgjBiEA/S220/avtnew.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5902920467646767794.post-4080493783305832455</id><published>2009-06-12T16:55:00.003+07:00</published><updated>2009-06-12T17:05:10.100+07:00</updated><title type='text'>Bonus Manga: Manga terms</title><content type='html'>Có một thời gian say mê manga, tìm hiểu các thuật ngữ và các thể loại truyện tranh, dưới đây là một số thuật ngữ dùng trong manga để sưu tầm. (bài viết sưu tầm từ internet)&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Phân loại theo khán giả:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Kodomo&lt;/span&gt;: dành cho trẻ em&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Joise &lt;/span&gt;hoặc &lt;span style="font-weight: bold;"&gt;redikomi&lt;/span&gt;: dành cho phụ nữ&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Shoujo&lt;/span&gt;: dành cho con gái&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Shounen&lt;/span&gt;: dành cho con trai&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Shounen&lt;/span&gt;-&lt;span style="font-weight: bold;"&gt;ai&lt;/span&gt;: quan hệ giữa nam-nam cấp độ 1&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Shoujo&lt;/span&gt;-&lt;span style="font-weight: bold;"&gt;ai &lt;/span&gt;: quan hệ giữa nữ-nữ cấp độ 1&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Yaoi &lt;/span&gt;: quan hệ giữa nam-nam cấp độ cao hơn (nghĩa là trong đó sẽ có nhiều *** hơn)&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Yuri &lt;/span&gt;: quan hệ giữa nữ-nữ cấp độ cao hơn ( tương tự yaoi )&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Hentai &lt;/span&gt;: được chuyên thể từ game ***&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Ecchi &lt;/span&gt;: những manga này có lẽ hơn " hở " 1 chút nhưng thua Hentai&lt;br /&gt;Chú thích : *** là những cái "không ai nói ra mà ai cũng biết"&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Các thuật ngữ khác:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;Mangaka &lt;/span&gt;:danh từ chỉ các tác giả manga&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Doujinshi&lt;/span&gt;: là thể loại ăn theo của manga , dựa vào manga phần nào hoặc hoàn toàn khác manga &lt;chỉ&gt;.Sáng tác doujinshi có thể là những mangaka chuyên nghiệp ,cũng có thể là mangaka nghiệp dư hoặc fan (nhiều người bắt đầu sự nghiệp mangaka bằng cách làm doujinshi đấy).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Doujinshika&lt;/span&gt;:danh từ chỉ các tác giả Doujinshi&lt;br /&gt;&lt;br /&gt;Fanfiction :gần gần giống Doujinshi , chỉ có điều là ko phải vẽ mà là viết văn.&lt;br /&gt;ADR (Automated Dialogue Recording) :là cách tạo soundtrack tiếng Anh phù hợp với cử động miệng trên màn hình.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;AMV (Anime Music Video)&lt;/span&gt; :là các video clip sử dụng cảnh trong anime và *****g music vào .Các otaku thường rất khoái cai này.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Anime TV Series&lt;/span&gt; :là Anime dài tập được chiếu trên TV .Nội dung thường khác manga 1 chút &amp;amp; điều đó chính là yếu tố ko gây hứng thú cho các độc giả sau khi đã xem Manga .Sau khi chiếu hết trên TV, các Anime này mới được sản xuất ra DVD/VCD/VHS bán cho các otaku.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Anime OVA/OAV&lt;/span&gt; :chỉ khác TV Series là nó được chuyển thẳng ra DVD/VCD/VHS để bán chứ không chiếu trên truyền hình. Số lượng các bản OAV thường rất ít ,các otaku dĩ nhiên rất hứng thú sưu tập nó.OVA luôn được làm kĩ hơn Anime Series (về đồ họa).Nội dung thường là tiếp theo hay là các câu chuyện ngoài lề Anime Series.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Anime the Movie&lt;/span&gt; :cũng gần giống với OAV ,nhưng ko chia làm nhiều chap mà là 1 câu chuyện liền mạch với thời lượng rất ngắn và được chiếu trong các rạp (màn ảnh rộng) .Đây cũng là thể loại Anime có cơ hội đoạt Oscar và các giải khác . Anime đầu tiên dành giải thưởng đó là Sen to Chihiro Kamikakushi (Spirited Away) của đạo diễn lừng danh Hayao Miyazaki, đoạt Oscar cho phim hoạt hình hay nhất năm 2001.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Art Work&lt;/span&gt; :giống giống Fanart , nhưng chất lượng hơn vì do các họa sĩ chuyên nghiệp vẽ. (cũng có artbook của loại này)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;BGM (Background Music) &lt;/span&gt;là nhạc nền. (nhạc không lời và cả có lời).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;CGI/CG (Computer Generated Imagery)&lt;/span&gt;: là công việc thiết kế hình ảnh trên máy tính.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;CG Division&lt;/span&gt;: là hệ thống máy tính và thiết bị hỗ trợ CGI&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Chibi &lt;/span&gt;:C&amp;amp;B , dùng để chỉ các nhân vật được vẽ dưới hình dáng nhỏ nhắn , dễ xương ( đầu bự ,thân nhỏ )&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; Cosplay (Costume Play)&lt;/span&gt; : diễn kịch , hoặc là hóa trang( mặc đồ ,làm tóc)thành các char trong Anime &amp;amp; Manga.*vui thật*&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Digisub (Digital Subtitle) &lt;/span&gt;:là một fansub nhưng ở dạng kỹ thuật số cho máy tính.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Dub &lt;/span&gt;là *****g tiếng trong phim. (Eng Dub, Fren Dub, Chin Dub,...)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; ED (ending theme)&amp;amp; OP( opening theme)&lt;/span&gt; :music clip mở đầu và kết thúc của Anime ( hay 1 chap Anime)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; Episode (Ep hay Epi)&lt;/span&gt;:giống như chapter trong Manga.Mỗi Epi thường dài khoảng 20-25 min.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Eye Catch&lt;/span&gt; :là chỉ những đoạn ngắt giữa Anime. Thường thì Eye Catch có độ dài chỉ dưới 10 giây với vài hình ảnh có kèm theo tên của Anime.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Fan Art&lt;/span&gt; :tranh do fan vẽ&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Fansub&lt;/span&gt;:là sub do fan làm.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Fanboy &lt;/span&gt;Một tên chỉ sống vì anime. Ngoài ra, thành một fanboy có nghĩa là lập một "thánh đường" hay tôn thờ bất cứ một nhân vật nữ của Anime nào và thậm chí là làm cái đuôi của những "tiểu thư" cosplay theo nhân vật đó.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Fandom&lt;/span&gt;: nhóm người có chung sở thích (như chúng ta chẳng hạn)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Fangirl&lt;/span&gt;: ngược lại với Fanboy&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Henshin &lt;/span&gt;có nghĩa là biến đổi ,hóa thân ,biến hình (trong A-M)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Idol &lt;/span&gt;:thần tượng.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Lemon &lt;/span&gt;:là Fiction có nội dung về quan hệ thể xác. Từ này ít dùng hơn nhiều so với Hentai hay Doujinshii.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Omake &lt;/span&gt;:là đoạn phim thêm quay những cuộc phỏng vấn hoặc hài kịch ngắn. Nói chung nhiều Anime/Manga có các đoạn omake.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Original DVD&lt;/span&gt; :là DVD gốc, được sản xuất bởi chính hãng.. DVD gốc có rất nhiều interesting stuffs cho người xem như Cover và Box cực đẹp,Trailer, Char's Profile, Other Film's Trailer, Making of the Film, Gallery,... Được sở hữu những thứ này là mơ ước của Otaku (1 rich otaku cơ ,vì những thứ này rất mắc)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;OST (Original Sound Track) &lt;/span&gt;:được dùng để chỉ chung các đoạn nhạc nền trong phim, kể cả OP và ED.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;RPG = Role Playing Game&lt;/span&gt;: người ta dịch từ này là Game Nhập Vai. Có một số Anime có cốt truyện dựa theo các RPGs và cả Online RPGs.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;RAW&lt;/span&gt;: file Anime gốc ,chất lựơng 5 sao.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Seiyuu &lt;/span&gt;:diễn viên *****g tiếng. Thường các Seiyuu đều là ca sĩ hay diễn viên cả.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Side Story &lt;/span&gt;: là truyện ngoài lề.Nội dung là khai thác các khía cạnh khác trong Anime-Manga gốc ,hoặc nói rõ hơn về 1 nhân vật nào đó trong Anime-Manga gốc.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Subtitle &lt;/span&gt;(Sub) :là phụ đề (dòng chữ hiện phía dưới cho biết nhân vật trong phim đang nói gì).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Trailer&lt;/span&gt;: là đoạn phim quảng cáo ngắn về 1 Anime.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; Shoujo Manga &lt;/span&gt;:Manga dành cho con gái, được biệt là dành cho thiếu niên. Về một phía nào đó, nó giống với "tiểu thuyết tím". Thế nhưng nó không hẳn là như vậy.vì trong Shojo Manga tràn đầy những hình vẽ hoa lệ và lời văn hoa mỹ. Shojo Manga có thể dễ dàng được nhận ra với những cậu "đẹp trai", cô gái mắt to, hoa thơm rơi đầy trang... (Shojo có nghĩa là **** gái")&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Josei Manga&lt;/span&gt; :Cũng là một dạng như Shojo Manga nhưng được vẽ dành cho lứa tuổi lớn hơn ( các bà vợ, nữ nhân viên ...). Thể loại này cũng cuốn hút nữ thiếu niên và đôi khi ... cả con trai. Chúng ta cũng có thể loại Seinen Manga dành cho con trai đã trưởng thành.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Shonen Manga&lt;/span&gt; :Manga nhắm vào các cậu con trai, đánh nhau chí ***e, đầy bạo lực, đẫm máu, kèm theo một mớ "anh hùng" ("Tôi chiến đấu cho trái đất... blah...blah...blah...)...và thường có cả những cô gái ngực to nữa. Shounen nghĩa là **** trai".&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Shounen Ai &lt;/span&gt;:Hãy cẩn thận phân biệt giữa Shounen và Shounen Ai, chúng không hề giống nhau. Shounen Ai nhắm vào con gái. Các cô gái "phát cuồng" lên vì cái nhánh này của Shojo Manga. Đầu tiên, đây chỉ là một bộ phận nhỏ của Shojo Manga, sau đã phát triển thành một thể loại riêng biệt. Shounen Ai mở ra trước mắt người đọc thế giới của những anh chàng đẹp trai và đồng tính luyến ái. Về một phía cạnh nào đó, những anh chàng này đẹp trai, hào hoa và mối tình giữa bọn họ lãng mạn tới mức nó hẫp dẫn các cô gái trẻ một cách kì lạ. Ngày nay, thể loại này được biết đến một cách rộng rãi trong giới đọc Shojo Manga. Một số trong thể loại này cho ta thấy một thể giới không có gì khác ngoài các chàng trai "xinh đẹp". (Trong tiếng Nhật, "ai" nghĩa là "yêu" như từ "ái" của Trung Quốc vậy. Ta có thể hiểu Shounen Ai là "tình yêu con trai")&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Yaoi &lt;/span&gt;:Một thứ không thể tưởng tượng được do phụ nữ sáng tác. Thể loại này tập trung vào tình yêu và các cảnh làm tình CON TRAI với CON TRAI. Nó có thể kết thúc với các cảnh kinh khủng với các hành động làm thực ... !!! &lt;thể&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Ecchi / Hentai&lt;/span&gt; :Ecchi Manga là tiếng lóng của Hentai Manga. Hentai tiếng Nhật nghĩa gốc là "dị thường", nhưng ở phương Tây, nó được dùng với nghĩa là "mất dạy" hay "***". Không chỉ thể hiện các cảnh làm tình giữa nam và nữ mà còn thể hiện CON TRAI với CON TRAI, CON GÁI với CON GÁI.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Otaku&lt;/span&gt; : người hâm mộ cuồng nhiệt Anime hay Manga&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Shoujo Ai &lt;/span&gt;: nghe là hỉu liền đúng ko . Dây là dạng manga mà tình cảm của các đôi trong này là GIRL x GIRL . Nhưng mức độ nhẹ nhàng thui , chỉ là yêu , thích chứ ko quá đáng&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Yuri&lt;/span&gt; : Đây là thể loại manga mà mối quan hệ đó là những quan hệ của GIRL x GIRL nhưng là những quan hệ thật sự như girl x boy bình thường&lt;/span&gt;                                                                                           &lt;br /&gt;(sưu tầm internet)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5902920467646767794-4080493783305832455?l=trinhquochungnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://trinhquochungnotes.blogspot.com/feeds/4080493783305832455/comments/default' title='Đăng Nhận xét'/><link rel='replies' type='text/html' href='http://trinhquochungnotes.blogspot.com/2009/06/bonus-manga-manga-terms.html#comment-form' title='2 Nhận xét'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/4080493783305832455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/4080493783305832455'/><link rel='alternate' type='text/html' href='http://trinhquochungnotes.blogspot.com/2009/06/bonus-manga-manga-terms.html' title='Bonus Manga: Manga terms'/><author><name>Hung.Trinh experiences notes</name><uri>http://www.blogger.com/profile/15879504538337047633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_J3Ejob9sTKI/TLfQC-4TxWI/AAAAAAAAAH0/DXwYRgjBiEA/S220/avtnew.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5902920467646767794.post-3542053919210396240</id><published>2009-06-08T10:34:00.002+07:00</published><updated>2009-06-08T10:39:00.586+07:00</updated><title type='text'>Bonus: Hướng Dẫn Sử Dụng DNS Free</title><content type='html'>&lt;table border="0" cellpadding="0" cellspacing="0" width="100%"&gt;&lt;tbody&gt;&lt;tr style="font-weight: bold;"&gt;&lt;td class="Title"&gt;&lt;span style="font-size:130%;"&gt;Hướng Dẫn Sử Dụng DNS Free&lt;/span&gt;&lt;/td&gt;         &lt;/tr&gt;         &lt;tr&gt;            &lt;td height="5"&gt;&lt;img alt="" src="http://www.truongthanhdesign.com/images/global/pixel_1_1.gif" height="1" width="1" /&gt;&lt;/td&gt;         &lt;/tr&gt;       &lt;/tbody&gt;&lt;/table&gt;                      &lt;table border="0" cellpadding="0" cellspacing="0" width="100%"&gt;&lt;tbody&gt;&lt;tr&gt;            &lt;td class="Topic_Description1"&gt;Domain quốc tế (.com /.net / .org / .info ....) của bạn sẽ không thể chạy nếu nó chỉ là một domain mà không có Hosting. Để cho Domain hiểu được Hosting thì phải thông qua DNS. Hay nói cách đơn giản, DNS tức là cầu nối để Domain và Hosting hiểu nhau, cùng nhau song song tồn tại trên Internet.&lt;/td&gt;         &lt;/tr&gt;                  &lt;tr&gt;            &lt;td&gt;  &lt;table align="right" border="0" cellpadding="0" cellspacing="0" width="99%"&gt; &lt;tbody&gt; &lt;tr&gt;&lt;td valign="top"&gt; &lt;img src="http://www.truongthanhdesign.com/images/news/content_images/1_1912009_221149.jpg" alt="Hướng Dẫn Sử Dụng DNS Free" title="Hướng Dẫn Sử Dụng DNS Free" align="left" border="0" hspace="0" vspace="0" /&gt;   &lt;p align="left"&gt;Nếu bạn có tiền, khi bạn mua Hosting của bất kỳ 1 nhà  cung cấp hosting nào thì người ta sẽ send cho bạn thông tin DNS của  Hosting đó. Ví dụ : ns1.SinhVienHost.com , ns2.SinhVienHost.Com  ; hoặc ns1.SinhVienHost.net , ns2.SinhVienHost.net. Để Domain và Hosting  của bạn cùng hoạt động, bạn chỉ việc vào mục quản lý (control) của domain,  add DNS của hosting đó là xong.&lt;/p&gt; &lt;p align="left"&gt;Nhưng đối với các bạn học sinh, sinh viên thì đa số chỉ  có tiền mua Domain quốc tế (.com/.net /.org/ .info....) và vẫn  thích sài Hosting free của nước ngoài như yahoo, google, websamba....  Vậy làm sao để domain quốc tế của bạn trỏ vào những hosting free này  ( các hosting free này chạy độc lập, và bạn không hề biết DNS của host  free của mình đề add vào domain) ? Vậy các bạn sẽ kiếm ở đâu ra DNS  để add vào domain ...?&lt;/p&gt; &lt;p align="left"&gt;Chúng tôi xin giới thiệu giải pháp không tốn tiền dành  cho các bạn: đó là sử dụng DNS trung gian ( hay còn gọi là DNS free  cũng được). Để kiếm được 1 DNS Free rất đơn giản, bạn chỉ việc vào google.com,  gõ từ khoá " Free DNS".&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Tức là từ Domain quốc tế bạn đã mua (.com /.net /.org/ .info  ... ), bạn add DNS trung gian vào. Rồi từ DNS trung gian bạn Forward  đến Hosting Free.&lt;/strong&gt;&lt;/p&gt; &lt;p align="left"&gt;Hiện nay có rất nhiều nhà cung cấp Free DNS nổi tiếng  như : everydns.net, sitelutions.com, zoneedit.com ....Chúng tôi  xin giới thiệu với các bạn 1 nhà cung cấp DNS Free dễ sử dụng là Zoneedit.com&lt;/p&gt; &lt;p align="left"&gt;&lt;strong&gt;I/ PHẦN I: ĐĂNG KÝ 1 DNS FREE CHO DOMAIN&lt;/strong&gt;&lt;/p&gt; &lt;p align="left"&gt;&lt;u&gt;&lt;strong&gt;Bước 1:&lt;/strong&gt;&lt;/u&gt; Bạn truy cập vào  &lt;a href="http://www.zoneedit.com/"&gt;http://www.zoneedit.com/&lt;/a&gt; , chọn  Free Sign Up để đăng ký 1 DNS miễn phí cho riêng mình&lt;/p&gt; &lt;p align="center"&gt;&lt;img style="width: 330px; height: 200px;" src="http://www.truongthanhdesign.com/images/news/content_images/b1_1912009_221211.jpg" alt="Hướng Dẫn Sử Dụng DNS Free" border="0" /&gt;&lt;br /&gt;&lt;/p&gt; &lt;p align="left"&gt;&lt;u&gt;&lt;strong&gt;Bước 2:&lt;/strong&gt;&lt;/u&gt; Đây là phần đăng  ký mẫu, Bạn hãy sửa lại thông tin đăng ký cho phù hợp, rồi bấm Sign  Up Now&lt;/p&gt; &lt;p align="center"&gt;&lt;img style="width: 353px; height: 248px;" src="http://www.truongthanhdesign.com/images/news/content_images/b2_1912009_221229.jpg" alt="Hướng Dẫn Sử Dụng DNS Free" border="0" /&gt;&lt;/p&gt; &lt;p align="left"&gt;&lt;u&gt;&lt;strong&gt;Bước 3:&lt;/strong&gt;&lt;/u&gt; Nếu quá trình đăng  ký thành công, bạn sẽ nhận được thông báo như thế này&lt;/p&gt; &lt;p align="center"&gt;&lt;img style="width: 403px; height: 224px;" src="http://www.truongthanhdesign.com/images/news/content_images/b3_1912009_221247.jpg" alt="Hướng Dẫn Sử Dụng DNS Free" border="0" /&gt;&lt;/p&gt; &lt;p align="left"&gt;&lt;u&gt;&lt;strong&gt;Bước 4:&lt;/strong&gt;&lt;/u&gt; Tiếp theo bạn hãy  vào Email của mình để kích hoạt và xem thông tin đăng nhập.&lt;br /&gt;&lt;em&gt;&lt;strong&gt;Chú ý: rất có thể bạn vào Email kiểm tra sẽ không  thấy thông tin này, bạn hãy vào mục Spam để tìm nhé!&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt; &lt;p align="center"&gt;&lt;img style="width: 399px; height: 278px;" src="http://www.truongthanhdesign.com/images/news/content_images/b4_1912009_22136.jpg" alt="Hướng Dẫn Sử Dụng DNS Free" border="0" /&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;u&gt;&lt;strong&gt;Bước 5:&lt;/strong&gt;&lt;/u&gt; Bạn truy cập &lt;a href="http://www.zoneedit.com/auth/"&gt;www.zoneedit.com/auth/&lt;/a&gt;  sau đó điền đúng thông tin user, pass, màn hình sẽ ra như thế này.&lt;br /&gt;Hãy bấm vào chữ &lt;strong&gt;Add Zones &lt;/strong&gt;để điền tên domain mà bạn  muốn sài DNS FREE này.&lt;/p&gt; &lt;p align="center"&gt;&lt;img style="width: 400px; height: 226px;" src="http://www.truongthanhdesign.com/images/news/content_images/b5_1912009_221325.jpg" alt="Hướng Dẫn Sử Dụng DNS Free" border="0" /&gt;&lt;br /&gt;&lt;/p&gt; &lt;p align="left"&gt;&lt;u&gt;&lt;strong&gt;Bước 6:&lt;/strong&gt;&lt;/u&gt; Sau khi add tên  Domain muốn sử dụng DNS này, bạn sẽ thấy màn hình hiện ra như sau:&lt;br /&gt;&lt;strong&gt;&lt;br /&gt;Ở Dòng H2 thì ns7.zoneedit.com , ns14.zoneedit.com &lt;/strong&gt;chính  là DNS của domain bạn.&lt;br /&gt;(Đây là account thông tin của tôi, rất có thể DNS của bạn là ns10.zoneedit  ..... , ns12.nzonedit...., .... hay thông số khác)&lt;/p&gt; &lt;p align="left"&gt;&lt;strong&gt;Ở Dòng H1 thì bạn bấm vào WebForward để trỏ Domain  của bạn đến bất cứ 1 hosting free nào.&lt;/strong&gt;&lt;/p&gt; &lt;p align="center"&gt;&lt;img style="width: 400px; height: 257px;" src="http://www.truongthanhdesign.com/images/news/content_images/b6_1912009_221350.jpg" alt="Hướng Dẫn Sử Dụng DNS Free" border="0" /&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;u&gt;&lt;strong&gt;Bước 7:&lt;/strong&gt;&lt;/u&gt; Ví dụ tôi muốn trỏ  Domain &lt;a href="http://www.sinhvienhost.com/"&gt;http://www.sinhvienhost.com&lt;/a&gt;  của tôi chạy đến &lt;a href="http://www.yahoo.com/"&gt;http://www.yahoo.com/&lt;/a&gt;  thì tui điền thông tin như thế này. Bạn hãy sửa lại theo của bạn cho  phù hợp nhé !!!&lt;/p&gt; &lt;p align="center"&gt;&lt;img style="width: 401px; height: 268px;" src="http://www.truongthanhdesign.com/images/news/content_images/b7_1912009_22147.jpg" alt="Hướng Dẫn Sử Dụng DNS Free" border="0" /&gt;&lt;br /&gt;&lt;/p&gt; &lt;p align="left"&gt;&lt;u&gt;&lt;strong&gt;Bước 8:&lt;/strong&gt;&lt;/u&gt; Chọn &lt;strong&gt;Yes  &lt;/strong&gt;coi như là bạn đã hoàn thành&lt;/p&gt; &lt;p align="center"&gt;&lt;img style="width: 400px; height: 275px;" src="http://www.truongthanhdesign.com/images/news/content_images/b8_1912009_221426.jpg" alt="Hướng Dẫn Sử Dụng DNS Free" border="0" /&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;strong&gt;II/ PHẦN II: VÀO DOMAIN, ADD DNS ĐÃ Đ.KÝ&lt;/strong&gt;&lt;/p&gt; &lt;p align="left"&gt;Sau khi đăng ký DNS và trỏ DNS của bạn đến 1 hosting free  nào đó, bước cuối cùng là bạn đăng nhập vào Domain và trỏ Domain của  bạn đến DNS là xong.&lt;br /&gt;Dưới đây là hình ảnh minh hoạ: &lt;/p&gt; &lt;p align="left"&gt;&lt;u&gt;&lt;strong&gt;Bước 1:&lt;/strong&gt;&lt;/u&gt; Sau khi đăng nhập  vào account của bạn, bạn hãy chọn Menu &lt;strong&gt; Domain/  List Last 10&lt;/strong&gt;&lt;/p&gt; &lt;p align="center"&gt;&lt;img style="width: 400px; height: 174px;" src="http://www.truongthanhdesign.com/images/news/content_images/d1_1912009_221448.jpg" alt="Hướng Dẫn Sử Dụng DNS Free" border="0" /&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;u&gt;&lt;strong&gt;&lt;br /&gt;Bước 2:&lt;/strong&gt;&lt;/u&gt; Sau đó chọn Domain bạn cần quản lý hay thay  đổi thông tin: Bấm vào &lt;strong&gt;Domain Name - Click to Manage&lt;/strong&gt;&lt;/p&gt; &lt;p align="center"&gt;&lt;img style="width: 313px; height: 57px;" src="http://www.truongthanhdesign.com/images/news/content_images/d2_1912009_221512.jpg" alt="Hướng Dẫn Sử Dụng DNS Free" border="0" /&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;u&gt;&lt;strong&gt;Bước 3:&lt;/strong&gt;&lt;/u&gt; Chọn &lt;strong&gt;Modify  Name Server&lt;/strong&gt; để thay đổi DNS&lt;/p&gt; &lt;p align="center"&gt;&lt;img style="width: 407px; height: 212px;" src="http://www.truongthanhdesign.com/images/news/content_images/d3_1912009_221536.jpg" alt="Hướng Dẫn Sử Dụng DNS Free" border="0" /&gt;&lt;/p&gt;  &lt;p align="left"&gt;&lt;u&gt;&lt;strong&gt;Bước 4:&lt;/strong&gt;&lt;/u&gt; Sau khi điền DNS  vào thì bấm &lt;strong&gt;Submit&lt;/strong&gt; để hoàn thành&lt;/p&gt; &lt;p align="center"&gt;&lt;img style="width: 397px; height: 193px;" src="http://www.truongthanhdesign.com/images/news/content_images/d4_1912009_221555.jpg" alt="Hướng Dẫn Sử Dụng DNS Free" border="0" /&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;u&gt;Chú ý:&lt;/u&gt; Sau khi đổi DNS thì bạn phải chờ Domain active  với DNS. Nếu nhanh thì domain của bạn sẽ chạy trong vòng vài giờ sau  khi đổi DNS. Còn chậm thì sẽ mất từ 24 đến 48 giờ Domain của bạn mới  nhận ra DNS. &lt;/strong&gt;&lt;/p&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;         &lt;/tr&gt;         &lt;tr&gt;            &lt;td height="5"&gt;&lt;img alt="" src="http://www.truongthanhdesign.com/images/global/pixel_1_1.gif" height="1" width="1" /&gt;&lt;/td&gt;         &lt;/tr&gt;         &lt;tr&gt;            &lt;td height="20"&gt;&lt;div class="source" align="right"&gt;(&lt;em&gt;Nguồn:                suutam&lt;/em&gt;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5902920467646767794-3542053919210396240?l=trinhquochungnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://trinhquochungnotes.blogspot.com/feeds/3542053919210396240/comments/default' title='Đăng Nhận xét'/><link rel='replies' type='text/html' href='http://trinhquochungnotes.blogspot.com/2009/06/bonus-huong-dan-su-dung-dns-free.html#comment-form' title='0 Nhận xét'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/3542053919210396240'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/3542053919210396240'/><link rel='alternate' type='text/html' href='http://trinhquochungnotes.blogspot.com/2009/06/bonus-huong-dan-su-dung-dns-free.html' title='Bonus: Hướng Dẫn Sử Dụng DNS Free'/><author><name>Hung.Trinh experiences notes</name><uri>http://www.blogger.com/profile/15879504538337047633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_J3Ejob9sTKI/TLfQC-4TxWI/AAAAAAAAAH0/DXwYRgjBiEA/S220/avtnew.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5902920467646767794.post-4794235021931764619</id><published>2009-05-26T16:53:00.004+07:00</published><updated>2009-05-26T17:07:00.775+07:00</updated><title type='text'>Web PHP - Symfony: Symfony Vietnam tutorial page</title><content type='html'>Lang thang tìm hiểu về Symfony:&lt;br /&gt;Nội dung:  Thực hành Symfony trong 24 ngày&lt;br /&gt;Link chính: &lt;a href="http://www.symfony-project.org/"&gt;http://www.symfony-project.org/&lt;/a&gt;&lt;br /&gt;Link download: &lt;a href="http://www.symfony-project.org/installation"&gt;http://www.symfony-project.org/installation&lt;/a&gt;&lt;br /&gt;Các link học theo ngày:&lt;br /&gt;&lt;h2&gt;&lt;a href="http://www.symfony-project.org/jobeet/1_2/Propel/vi_VN/01"&gt;Ngày 1: Bắt đầu dự án&lt;/a&gt;&lt;br /&gt;&lt;/h2&gt;&lt;h2&gt;&lt;a href="http://www.symfony-project.org/jobeet/1_2/Propel/vi_VN/02"&gt;Ngày 2: Mô tả dự án&lt;/a&gt;&lt;br /&gt;&lt;/h2&gt;&lt;h2&gt;&lt;a href="http://www.symfony-project.org/jobeet/1_2/Propel/vi_VN/03"&gt;Ngày 3: Data Model&lt;/a&gt;&lt;br /&gt;&lt;/h2&gt;&lt;h2&gt;&lt;a href="http://www.symfony-project.org/jobeet/1_2/Propel/vi_VN/04"&gt;Ngày 4: Controller và View&lt;/a&gt;&lt;br /&gt;&lt;/h2&gt;&lt;h2&gt;&lt;a href="http://www.symfony-project.org/jobeet/1_2/Propel/vi_VN/05"&gt;Ngày 5: Routing&lt;/a&gt;&lt;/h2&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5902920467646767794-4794235021931764619?l=trinhquochungnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://trinhquochungnotes.blogspot.com/feeds/4794235021931764619/comments/default' title='Đăng Nhận xét'/><link rel='replies' type='text/html' href='http://trinhquochungnotes.blogspot.com/2009/05/web-php-symfony-symfony-vietnam.html#comment-form' title='0 Nhận xét'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/4794235021931764619'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/4794235021931764619'/><link rel='alternate' type='text/html' href='http://trinhquochungnotes.blogspot.com/2009/05/web-php-symfony-symfony-vietnam.html' title='Web PHP - Symfony: Symfony Vietnam tutorial page'/><author><name>Hung.Trinh experiences notes</name><uri>http://www.blogger.com/profile/15879504538337047633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_J3Ejob9sTKI/TLfQC-4TxWI/AAAAAAAAAH0/DXwYRgjBiEA/S220/avtnew.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5902920467646767794.post-320783711683834080</id><published>2009-04-25T08:52:00.026+07:00</published><updated>2009-04-25T11:04:42.769+07:00</updated><title type='text'>Java: Spring beginning (Review Project Part 2)</title><content type='html'>&lt;span style="color: rgb(255, 0, 0);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;Bắt đầu với Spring&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Spring là một java framework nguồn mở dùng ở tầng "bussiness layer" trong kiến trúc sau:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_J3Ejob9sTKI/SfJ5HAvWl6I/AAAAAAAAAFU/HQ4XDXnar9w/s1600-h/tutorial_Spring_001.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 138px;" src="http://3.bp.blogspot.com/_J3Ejob9sTKI/SfJ5HAvWl6I/AAAAAAAAAFU/HQ4XDXnar9w/s320/tutorial_Spring_001.JPG" alt="" id="BLOGGER_PHOTO_ID_5328454470497376162" border="0" /&gt;&lt;/a&gt;Nhiệm vụ của nó là tạo chỉ mục đến một "bean" trong tổng thể các "beans" đã định nghĩa trước đó. Để hiểu rõ ràng hơn thì bạn hãy tìm đọc các sách hoặc ebook về Spring, Spring in Action, ... Ở ví dụ step by step dưới đây chỉ phần nào thể hiện công cụng cơ bản của Spring.&lt;br /&gt;Với IDE MyEclipse:&lt;br /&gt;- Hãy tạo một project trống rỗng với tên DemoSpring&lt;br /&gt;- Ở cửa sổ Package Explorer, right click vào "DemoString" -&gt; MyEclipse -&gt; Add Spring Capabilities, chọn Finish ở cửa sổ "Add Spring Capabilities"&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_J3Ejob9sTKI/SfJ8fvdXrrI/AAAAAAAAAFc/vP3tPZto2B0/s1600-h/tutorial_Spring_002.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 270px; height: 320px;" src="http://2.bp.blogspot.com/_J3Ejob9sTKI/SfJ8fvdXrrI/AAAAAAAAAFc/vP3tPZto2B0/s320/tutorial_Spring_002.png" alt="" id="BLOGGER_PHOTO_ID_5328458193890160306" border="0" /&gt;&lt;/a&gt;Sau khi Finish, kết quả ở cửa sổ Package Explorer sẽ có thêm file applicationContext.xml (file này là file định nghĩa các bean) và Spring 2.5 reference library:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_J3Ejob9sTKI/SfJ98UAo_4I/AAAAAAAAAFk/HXgHGFjzhkA/s1600-h/tutorial_Spring_003.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 298px; height: 204px;" src="http://2.bp.blogspot.com/_J3Ejob9sTKI/SfJ98UAo_4I/AAAAAAAAAFk/HXgHGFjzhkA/s320/tutorial_Spring_003.png" alt="" id="BLOGGER_PHOTO_ID_5328459784249737090" border="0" /&gt;&lt;/a&gt;- Tới đây, ta tạm ngưng các hoạt động với Spring để định nghĩa các đối tượng, hành động ví dụ. Tạo các lớp như sau :&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_J3Ejob9sTKI/SfJ--NwKWSI/AAAAAAAAAFs/1W-GgbhMWiY/s1600-h/tutorial_Spring_004.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 269px; height: 320px;" src="http://3.bp.blogspot.com/_J3Ejob9sTKI/SfJ--NwKWSI/AAAAAAAAAFs/1W-GgbhMWiY/s320/tutorial_Spring_004.png" alt="" id="BLOGGER_PHOTO_ID_5328460916441372962" border="0" /&gt;&lt;/a&gt; và codes:&lt;br /&gt;------- DemoSpring.java --------------&lt;br /&gt;&lt;blockquote&gt;import java.util.Scanner;&lt;br /&gt;import org.springframework.beans.BeansException;&lt;br /&gt;import org.springframework.beans.factory.BeanFactory;&lt;br /&gt;import org.springframework.beans.factory.xml.XmlBeanFactory;&lt;br /&gt;import org.springframework.core.io.ClassPathResource;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt;* @author &lt;a href="http://www.blogger.com/hung.trinh.vn@gmail.com"&gt;Hung.Trinh&lt;/a&gt;&lt;br /&gt;*/&lt;br /&gt;public class DemoSpring {&lt;br /&gt;&lt;br /&gt;private static String CONFIG_FILE_LOCATION = "applicationContext.xml";&lt;br /&gt;private static volatile BeanFactory beanFactory = null;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt;* Copyright by tqhung at Apr 24, 2009 - 3:09:09 PM&lt;br /&gt;* @param args&lt;br /&gt;*/&lt;br /&gt;public static void main(String[] args) {&lt;br /&gt;System.out.println("Hello to Demo Using Spring with MyEclipse.");&lt;br /&gt;Scanner sn = new Scanner(System.in);&lt;br /&gt;String beanname = "";&lt;br /&gt;getBeanFactory();&lt;br /&gt;do {&lt;br /&gt;  try {&lt;br /&gt;      beanname = sn.next();&lt;br /&gt;      if (beanname.compareToIgnoreCase("exit") == 0) {&lt;br /&gt;          break;&lt;br /&gt;      }&lt;br /&gt;      IActionClass aclass = (IActionClass) beanFactory.getBean(beanname);&lt;br /&gt;      System.out.println(aclass.showMessage());&lt;br /&gt;  } catch (BeansException be) {&lt;br /&gt;      System.out.println("No bean found.");&lt;br /&gt;  } catch (Exception e) {&lt;br /&gt;      System.out.println(e.getMessage());&lt;br /&gt;  }&lt;br /&gt;} while (true);&lt;br /&gt;&lt;br /&gt;System.out.println("completed");&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public static BeanFactory getBeanFactory() {&lt;br /&gt;if (beanFactory == null) {&lt;br /&gt;  final ClassPathResource resource = new ClassPathResource(CONFIG_FILE_LOCATION);&lt;br /&gt;  beanFactory = new XmlBeanFactory(resource);&lt;br /&gt;}&lt;br /&gt;return beanFactory;&lt;br /&gt;}&lt;br /&gt;}&lt;/blockquote&gt;------- IActionClass.java --------------&lt;br /&gt;&lt;blockquote&gt;/**&lt;br /&gt;* @author &lt;a href="http://www.blogger.com/hung.trinh.vn@gmail.com"&gt;Hung.Trinh&lt;/a&gt;&lt;br /&gt;*/&lt;br /&gt;public interface IActionClass {&lt;br /&gt;String showMessage();&lt;br /&gt;}&lt;/blockquote&gt;------- ActionClass1.java --------------&lt;br /&gt;&lt;blockquote&gt;/**&lt;br /&gt;* @author &lt;a href="http://www.blogger.com/hung.trinh.vn@gmail.com"&gt;Hung.Trinh&lt;/a&gt;&lt;br /&gt;*/&lt;br /&gt;public class ActionClass1 implements IActionClass{&lt;br /&gt;&lt;br /&gt;public String showMessage(){&lt;br /&gt;return "In action 1 of class" + ActionClass1.class.toString();&lt;br /&gt;}&lt;br /&gt;}&lt;/blockquote&gt;------- ActionClass2.java --------------&lt;br /&gt;&lt;blockquote&gt;/**&lt;br /&gt;* @author &lt;a href="http://www.blogger.com/hung.trinh.vn@gmail.com"&gt;Hung.Trinh&lt;/a&gt;&lt;br /&gt;*/&lt;br /&gt;public class ActionClass2 implements IActionClass{&lt;br /&gt;public String showMessage(){&lt;br /&gt;return "In action 2 of class" + ActionClass2.class.toString();&lt;br /&gt;}&lt;br /&gt;}&lt;/blockquote&gt;- Công đoạn kế tiếp là ta định nghĩa các bean cho Spring. Mở file applicationContext.xml:&lt;br /&gt;-------- applicationContext.xml - Default ----------&lt;br /&gt;&lt;blockquote&gt;[?xml version="1.0" encoding="UTF-8"?]&lt;br /&gt;[beans&lt;br /&gt;   xmlns="http://www.springframework.org/schema/beans"&lt;br /&gt;   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&lt;br /&gt;   xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"]&lt;br /&gt;&lt;br /&gt;[/beans]&lt;beans xmlns="http://www.springframework.org/schema/beans" xsi="http://www.w3.org/2001/XMLSchema-instance" schemalocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"&gt;&lt;br /&gt;&lt;/beans&gt;&lt;/blockquote&gt;Có 2 cách định nghĩa bean: định nghĩa bằng dòng lệnh và định nghĩa bằng giao diện. Định nghĩa bằng dòng lệnh theo cấu sẽ đơn giản hơn với người lập trình chuyên sâu. Ở đây coi như ta chưa biết gì, ta dùng giao diện vậy :D. Mở cửa sổ Spring Explorer (Window -&gt; Show View -&gt; Other.. -&gt; Spring Explorer), right click lên "bean" chọn "New Bean"&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_J3Ejob9sTKI/SfKDsTjnw4I/AAAAAAAAAF8/elqS3p7jIzE/s1600-h/tutorial_Spring_005.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 296px;" src="http://1.bp.blogspot.com/_J3Ejob9sTKI/SfKDsTjnw4I/AAAAAAAAAF8/elqS3p7jIzE/s320/tutorial_Spring_005.png" alt="" id="BLOGGER_PHOTO_ID_5328466106319881090" border="0" /&gt;&lt;/a&gt;Và định nghĩa "action1", "action2" tương ứng với 2 lớp ActionClass1 và ActionClass2 mới vừa được tạo:&lt;br /&gt;&lt;div style="float: left; text-align: left;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_J3Ejob9sTKI/SfKE8VgQZXI/AAAAAAAAAGM/6E4qimhFIU4/s1600-h/tutorial_Spring_007.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 246px; height: 320px;" src="http://2.bp.blogspot.com/_J3Ejob9sTKI/SfKE8VgQZXI/AAAAAAAAAGM/6E4qimhFIU4/s320/tutorial_Spring_007.png" alt="" id="BLOGGER_PHOTO_ID_5328467481232172402" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=""&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_J3Ejob9sTKI/SfKFNg5WgXI/AAAAAAAAAGU/93huy392MQs/s1600-h/tutorial_Spring_006.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 246px; height: 320px;" src="http://1.bp.blogspot.com/_J3Ejob9sTKI/SfKFNg5WgXI/AAAAAAAAAGU/93huy392MQs/s320/tutorial_Spring_006.png" alt="" id="BLOGGER_PHOTO_ID_5328467776347996530" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;Nên nhớ là sau mỗi lần tạo bean bạn đều phải thực hiện save file applicationContext.xml. Kết quả sau 2 lần tạo bean, nội dung file applicationContext.xml sẽ là:&lt;br /&gt;--------- applicationContext.xml - Configured ----------&lt;br /&gt;&lt;blockquote&gt;[?xml version="1.0" encoding="UTF-8"?]&lt;br /&gt;[ơbeans&lt;br /&gt;   xmlns="http://www.springframework.org/schema/beans"&lt;br /&gt;   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&lt;br /&gt;   xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"]&lt;br /&gt;   [bean name="action1" class="ActionClass1" abstract="false"&lt;br /&gt;       lazy-init="default" autowire="default" dependency-check="default"]&lt;br /&gt;   [/bean]&lt;br /&gt;   [bean name="action2" class="ActionClass2" abstract="false"&lt;br /&gt;       lazy-init="default" autowire="default" dependency-check="default"]&lt;br /&gt;   [/bean]&lt;br /&gt;[/beans]&lt;beans xmlns="http://www.springframework.org/schema/beans" xsi="http://www.w3.org/2001/XMLSchema-instance" schemalocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"&gt;&lt;br /&gt;&lt;/beans&gt;&lt;/blockquote&gt;nhưng thực tế cần thì ít hơn:&lt;br /&gt;&lt;blockquote&gt;[?xml version="1.0" encoding="UTF-8"?]&lt;br /&gt;[beans&lt;br /&gt;   xmlns="http://www.springframework.org/schema/beans"&lt;br /&gt;   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&lt;br /&gt;   xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"]&lt;br /&gt;   [bean name="action1" class="ActionClass1" /]&lt;br /&gt;   [bean name="action2" class="ActionClass2" /]&lt;br /&gt;[/beans]&lt;br /&gt;&lt;beans xmlns="http://www.springframework.org/schema/beans" xsi="http://www.w3.org/2001/XMLSchema-instance" schemalocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"&gt;&lt;bean name="action1" class="ActionClass1"&gt;&lt;bean name="action2" class="ActionClass2"&gt;&lt;/bean&gt;&lt;/bean&gt;&lt;/beans&gt;&lt;/blockquote&gt;save lại 1 lần nữa cho chắc ăn :D,&lt;br /&gt;Tới đây bạn có thể test kết quả vừa làm. Run DemoSpring  java application, ở console, nhập chuỗi "action1" -&gt; enter, "action2" -&gt; enter sẽ thấy kết quả:&lt;br /&gt;input : action1 --&gt; output: In action 1 of classclass ActionClass1&lt;br /&gt;input : action2 --&gt; output: In action 2 of classclass ActionClass2&lt;br /&gt;input : exit --&gt; output: completed&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_J3Ejob9sTKI/SfKH-AHhFJI/AAAAAAAAAGc/wAE3I4x9ZpU/s1600-h/tutorial_Spring_008.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 108px;" src="http://2.bp.blogspot.com/_J3Ejob9sTKI/SfKH-AHhFJI/AAAAAAAAAGc/wAE3I4x9ZpU/s320/tutorial_Spring_008.png" alt="" id="BLOGGER_PHOTO_ID_5328470808385885330" border="0" /&gt;&lt;/a&gt;Chúc thành công.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5902920467646767794-320783711683834080?l=trinhquochungnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://trinhquochungnotes.blogspot.com/feeds/320783711683834080/comments/default' title='Đăng Nhận xét'/><link rel='replies' type='text/html' href='http://trinhquochungnotes.blogspot.com/2009/04/java-spring-beginning-review-project.html#comment-form' title='2 Nhận xét'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/320783711683834080'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/320783711683834080'/><link rel='alternate' type='text/html' href='http://trinhquochungnotes.blogspot.com/2009/04/java-spring-beginning-review-project.html' title='Java: Spring beginning (Review Project Part 2)'/><author><name>Hung.Trinh experiences notes</name><uri>http://www.blogger.com/profile/15879504538337047633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_J3Ejob9sTKI/TLfQC-4TxWI/AAAAAAAAAH0/DXwYRgjBiEA/S220/avtnew.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_J3Ejob9sTKI/SfJ5HAvWl6I/AAAAAAAAAFU/HQ4XDXnar9w/s72-c/tutorial_Spring_001.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5902920467646767794.post-5353797265384037341</id><published>2009-04-01T15:06:00.008+07:00</published><updated>2009-04-25T08:56:46.860+07:00</updated><title type='text'>Java : Mapping DB tour with Middlegen and Hibernate (Review Project Part 1)</title><content type='html'>Hôm nay, nhận được một yêu cầu trời giáng choáng váng cả tiếng. Tui phải tìm hỉu mã nguồn một cái dự án Java tổng hợp bao gồm Hibernate, Spring, Strut, Mina 2.0, + linh tinh những thứ mà tui lờ mờ như tờ giấy trắng ngoại trừ ngôn ngữ Java basic.&lt;br /&gt;Để bắt đầu, tui chọn sử dụng MyEclipse để đỡ mắc công cài các plugin lằng nhằng cho mấy cái framework khủng, trong khi thứ tui iu thích nhẹ nhàng lại là Eclipse đã từng cắn xé Javacard.&lt;br /&gt;Quả thật là sau khi cài đặt MyEclipse vào, tui nhận thấy hầu như các framework mình cần cho thực tế đều có sẵn (thiệt đỡ quá). Đối với dự án tui tìm hỉu chỉ cần thêm một cái MySQL connector và vài cục jar log4net, .. là xong, he he&lt;br /&gt;&lt;br /&gt;Khởi động ME (MyEclipse), theo thói quen tui tạo luôn một project rỗng trơn không gì cả, xài lại một cái ant builder.xml có sẵn đâu đó và sửa lại mỗi properties name.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;Bắt đầu với Hibernate và Middelgen:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;- Đọc lòng vòng thì tui biết, Hibernate chỉ đơn thuần là để "mapping" với một database ở đâu đó. Lợi ích của dùng Hibernate là để đơn giản hóa và chuẩn hóa thao tác với cơ sở dữ liệu, biết nhiêu đó là đủ rùi.&lt;br /&gt;- Tuy nhiên, để có thể hoàn thành việc "mapping" này thì cần phải có các thứ linh tinh khác như sau:&lt;br /&gt;+ hibernate mapping files: các file cấu hình định nghĩa các bảng trong database. Thường mỗi bảng ta lại định nghĩa một file dạng "&lt;tên ng=""&gt;.hbm.xml"&lt;br /&gt;+ hibernate configuration file: một file cấu hình để định vị đối tượng database bao gồm : connection string, database connection provider, username, password ...&lt;br /&gt;+ Implementation files: các file hoặc gọi là các lớp thể hiện của các bảng trong database.&lt;br /&gt;Chài ai, tìm hiểu đến đây, tui nghĩ hỏng lẽ mình thay cái thao tác Connection rồi query xưa cũ lòng thòng bằng một đống file ngồi gõ chít bỏ. Tính sơ sơ ra mỗi table có thao thác là phải tạo ra 1 file mapping và 1 file đối tượng, Hibernate thiệt là khùng hết sức !! T_T !! Nhưng việc làm thủ công đó là trước đây, các anh các chị trước đây đã chịu khổ và sản sinh ra công cụ Middlegen...&lt;br /&gt;- Middlegen được ứng dụng để truy vấn đến database và xuất ra các table mapping file&lt;br /&gt;một cách tự động và chuẩn xác. Đồng thời Middlegen cũng tự động phát sinh java code các lớp đối tượng table tương ứng, nhưng tui được khuyến cáo là không nên dùng những lớp code này. Tìm hiểu tới đây là đủ nhức mắt ngứa tay rồi, thôi quay lại cái bàn phím thôi.&lt;br /&gt;- Để sử dụng Middlegen, ta tạo một middlegen build file (xml) bằng cách right click vào &lt;span style="font-weight: bold; color: rgb(51, 102, 255);"&gt;Project &lt;/span&gt;-&gt; &lt;span style="font-weight: bold; color: rgb(51, 102, 255);"&gt;New&lt;/span&gt; -&gt; &lt;span style="font-weight: bold; color: rgb(51, 102, 255);"&gt;Other&lt;/span&gt; -&gt; &lt;span style="font-weight: bold; color: rgb(51, 102, 255);"&gt;Middlegen&lt;/span&gt; -&gt; &lt;span style="font-weight: bold; color: rgb(51, 102, 255);"&gt;Middlegen Build File&lt;/span&gt;.  Click next đến của sổ "Configure Database and Table", ở đây phải cung cấp các thông số bắt buộc để xác định database như: xác đinh gói JDBC, Database URI, Username, Password như hình dưới:&lt;br /&gt;&lt;/tên&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_J3Ejob9sTKI/SdQe3yEX98I/AAAAAAAAAE8/kOroZ6I1RvQ/s1600-h/javahibernate_001.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 266px; height: 320px;" src="http://1.bp.blogspot.com/_J3Ejob9sTKI/SdQe3yEX98I/AAAAAAAAAE8/kOroZ6I1RvQ/s320/javahibernate_001.png" alt="" id="BLOGGER_PHOTO_ID_5319911003513157570" border="0" /&gt;&lt;/a&gt;sau đó click "Finish" cửa sổ Middlegen Generator sẽ mở thể hiện mối quan hệ các bảng trong cơ sở dữ liệu, click "Generate" và sau đó đóng cửa sổ. Kiểm tra lại thư mục "src" của project sẽ thấy package các file Middlegen vừa xuất&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_J3Ejob9sTKI/SdQkoEC2BWI/AAAAAAAAAFE/99RpP_mj6Bg/s1600-h/javahibernate_002.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 156px; height: 320px;" src="http://1.bp.blogspot.com/_J3Ejob9sTKI/SdQkoEC2BWI/AAAAAAAAAFE/99RpP_mj6Bg/s320/javahibernate_002.png" alt="" id="BLOGGER_PHOTO_ID_5319917330530436450" border="0" /&gt;&lt;/a&gt;tới đây tui được các đàn anh mách bảo là xóa hết các class object đi, chỉ để lại các mapping file và right click -&gt; Hibernate Synchronizer -&gt; Synchronize Files, kết quả là được 4 package như sau:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_J3Ejob9sTKI/SdQlqYpapHI/AAAAAAAAAFM/blOqHIdVp1g/s1600-h/javahibernate_003.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 284px; height: 137px;" src="http://2.bp.blogspot.com/_J3Ejob9sTKI/SdQlqYpapHI/AAAAAAAAAFM/blOqHIdVp1g/s320/javahibernate_003.png" alt="" id="BLOGGER_PHOTO_ID_5319918469932295282" border="0" /&gt;&lt;/a&gt;tạm thời tui chỉ hiểu 4 package này chứa các lớp đối tượng thể hiện chính xác các bảng dữ liệu và mối quan hệ bảng ở database. Tới đây, dường như nhiệm vụ của Hibernate và Middlegen đã hoàn thành.&lt;br /&gt;&lt;br /&gt;Sau đó còn sử dụng tiếp String, Mina 2.0, ... hồi sau sẽ rõ !!!&lt;br /&gt;&lt;br /&gt;&lt;tên ng=""&gt;&lt;br /&gt;&lt;/tên&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5902920467646767794-5353797265384037341?l=trinhquochungnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://trinhquochungnotes.blogspot.com/feeds/5353797265384037341/comments/default' title='Đăng Nhận xét'/><link rel='replies' type='text/html' href='http://trinhquochungnotes.blogspot.com/2009/04/java-mapping-db-tour-with-middlegen-and.html#comment-form' title='0 Nhận xét'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/5353797265384037341'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/5353797265384037341'/><link rel='alternate' type='text/html' href='http://trinhquochungnotes.blogspot.com/2009/04/java-mapping-db-tour-with-middlegen-and.html' title='Java : Mapping DB tour with Middlegen and Hibernate (Review Project Part 1)'/><author><name>Hung.Trinh experiences notes</name><uri>http://www.blogger.com/profile/15879504538337047633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_J3Ejob9sTKI/TLfQC-4TxWI/AAAAAAAAAH0/DXwYRgjBiEA/S220/avtnew.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_J3Ejob9sTKI/SdQe3yEX98I/AAAAAAAAAE8/kOroZ6I1RvQ/s72-c/javahibernate_001.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5902920467646767794.post-6737849363855562333</id><published>2009-03-26T12:40:00.007+07:00</published><updated>2009-03-26T13:37:49.728+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tours'/><category scheme='http://www.blogger.com/atom/ns#' term='đi chơi'/><title type='text'>Phan Rang 03/2009</title><content type='html'>&lt;img style="visibility: hidden; width: 0px; height: 0px;" src="http://counters.gigya.com/wildfire/IMP/CXNID=2000002.0NXC/bHQ9MTIzODA*NTU5Mzk1NiZwdD*xMjM4MDQ1Njg*MjUzJnA9Mzg2MzYxJmQ9Jm49YmxvZ2dlciZnPTEmdD*mbz*yNzFjNzcyZmQzODc*ODQ*OGRiOGViNTZmZjc3ZTMxNQ==.gif" border="0" height="0" width="0" /&gt;&lt;div style="width: 480px; text-align: left;"&gt;&lt;embed src="http://feed13.photobucket.com/flash/rss_slideshow.swf?rssFeed=http%3A%2F%2Ffeed13.photobucket.com%2Falbums%2Fa297%2Fminh_thanhpho%2FPhanRang200903%2Ffeed.rss" type="application/x-shockwave-flash" wmode="transparent" height="300" width="400" loop="true"&gt;&lt;/embed&gt; &lt;center&gt;&lt;a href="http://photobucket.com/redirect/album?showShareLB=1" target="_blank"&gt;&lt;img src="http://pic.photobucket.com/share/icons/embed/btn_geturs.gif" style="border: medium none ;" /&gt;&lt;/a&gt;&lt;a href="http://s13.photobucket.com/albums/a297/minh_thanhpho/PhanRang200903/" target="_blank"&gt;&lt;img src="http://pic.photobucket.com/share/icons/embed/btn_viewall.gif" style="border: medium none ;" /&gt;&lt;/a&gt;&lt;/center&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5902920467646767794-6737849363855562333?l=trinhquochungnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://trinhquochungnotes.blogspot.com/feeds/6737849363855562333/comments/default' title='Đăng Nhận xét'/><link rel='replies' type='text/html' href='http://trinhquochungnotes.blogspot.com/2009/03/phan-rang-032009.html#comment-form' title='2 Nhận xét'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/6737849363855562333'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/6737849363855562333'/><link rel='alternate' type='text/html' href='http://trinhquochungnotes.blogspot.com/2009/03/phan-rang-032009.html' title='Phan Rang 03/2009'/><author><name>Hung.Trinh experiences notes</name><uri>http://www.blogger.com/profile/15879504538337047633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_J3Ejob9sTKI/TLfQC-4TxWI/AAAAAAAAAH0/DXwYRgjBiEA/S220/avtnew.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5902920467646767794.post-8658697456514578240</id><published>2009-03-25T15:16:00.008+07:00</published><updated>2009-03-25T16:47:24.978+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><category scheme='http://www.blogger.com/atom/ns#' term='Test tools'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net Tools'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>C# .Net Tools: MbUnit Test Framework</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.mbunit.com/front.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 374px; height: 128px;" src="http://www.mbunit.com/front.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;h3&gt;         About MbUnit&lt;/h3&gt;     &lt;p&gt;         The framework was first created by Jonathan 'Peli' de Halleux as a hobby project         while studying for his PhD. Later         Peli and Jamie Cansdale added support for MbUnit         to Jamie's NUnitAddin (later it would become the  &lt;a href="http://www.testdriven.net/" onclick="return top.js.OpenExtLink(window,event,this)" target="_blank"&gt;&lt;span style="color: rgb(0, 0, 255); text-decoration: underline;"&gt;TestDriven.NET&lt;/span&gt;&lt;/a&gt; addin).  After Peli's departure to Microsoft in 2005 (working first as a SDET on the CLR and more recently in the Foundations for Software Engineering group in Microsoft Research) the project was opensourced under Andy Stopford.&lt;br /&gt;&lt;/p&gt;&lt;p style="font-weight: bold;"&gt;&lt;span style="font-size:130%;"&gt;Download&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://mb-unit.googlecode.com/files/MbUnit-2.4.2.355-Setup.exe"&gt;MbUnit v2.4.2 release.             &lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;         License MbUnit 2.4&lt;/h3&gt;     &lt;p&gt;         Copyright © 2005-2007 Andrew Stopford&lt;/p&gt;     &lt;p&gt;         Portions Copyright © 2000-2004 Jonathan De Halleux, Jamie Cansdale&lt;/p&gt;     &lt;p&gt;         This software is provided 'as-is', without any express or implied warranty. In no         event will the authors be held liable for any damages arising from the use of this         software.&lt;/p&gt;     &lt;p&gt;         &lt;span style="font-weight: bold;"&gt;Permission is granted to anyone to use this software for any purpose, including         commercial applications, and to alter it and redistribute it freely, subject to         the following restrictions:&lt;/span&gt;&lt;/p&gt;     &lt;p&gt;         1. &lt;span style="font-weight: bold;"&gt;The origin of this software must not be misrepresented; you must not claim that         you wrote the original software.&lt;/span&gt; If you use this software in a product, an acknowledgment         (see the following) in the product documentation is required.&lt;/p&gt;     &lt;p&gt;         2. Altered source versions must be plainly marked as such, and must not be misrepresented         as being the original software.&lt;/p&gt;     &lt;p&gt;         3. This notice may not be removed or altered from any source distribution.&lt;/p&gt;     &lt;p&gt;         License Note&lt;/p&gt;     &lt;p&gt;         This license is based on the open source zlib/libpng license. The idea was to keep         the license as simple as possible to encourage use of MbUnit in free and commercial         applications and libraries, but to keep the source code together and to give credit         to the MbUnit contributors for their efforts. While this license allows shipping         MbUnit in source and binary form, if shipping a MbUnit variant is the sole purpose         of your product, please let us know.&lt;/p&gt;&lt;h3&gt;         Development&lt;/h3&gt;     &lt;p&gt;         MbUnit has an active open source development team and are grateful of any support         which can be provided to the project.&lt;/p&gt;     &lt;p&gt;         Documentation for the project, including how to get started developing for the framework,         submitting bugs, and other important information can be found at:&lt;br /&gt;       &lt;a href="http://docs.mbunit.com/"&gt;http://docs.mbunit.com&lt;/a&gt;&lt;/p&gt;&lt;p&gt;         They are also hosting their code at GoogleCode and SVN.  This can be access         by going to:&lt;br /&gt;       &lt;a href="http://code.google.com/p/mb-unit/" target="_blank"&gt;http://code.google.com/p/mb-unit/&lt;/a&gt;&lt;/p&gt;And their bug tracking system is located at:       &lt;br /&gt;       &lt;a href="http://www.mertner.com/jira/" target="_blank"&gt;http://www.mertner.com/jira/&lt;/a&gt;&lt;p&gt;;( Not compatible with C# Express 2005 ;(&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Please feel free to comfirm me with newest, more intelligences  frameworks. Thanks!!&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5902920467646767794-8658697456514578240?l=trinhquochungnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://trinhquochungnotes.blogspot.com/feeds/8658697456514578240/comments/default' title='Đăng Nhận xét'/><link rel='replies' type='text/html' href='http://trinhquochungnotes.blogspot.com/2009/03/c-net-tools-mbunit-test-framework.html#comment-form' title='0 Nhận xét'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/8658697456514578240'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/8658697456514578240'/><link rel='alternate' type='text/html' href='http://trinhquochungnotes.blogspot.com/2009/03/c-net-tools-mbunit-test-framework.html' title='C# .Net Tools: MbUnit Test Framework'/><author><name>Hung.Trinh experiences notes</name><uri>http://www.blogger.com/profile/15879504538337047633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_J3Ejob9sTKI/TLfQC-4TxWI/AAAAAAAAAH0/DXwYRgjBiEA/S220/avtnew.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5902920467646767794.post-8926680695463206018</id><published>2009-03-12T14:48:00.002+07:00</published><updated>2009-03-12T15:13:00.415+07:00</updated><title type='text'>Web PHP - Đơn giản một controller, một view</title><content type='html'>Bước kế tiếp để thao túng được CI  là biết tạo các "Controller" xử lý và "View" thể hiện theo kiến trúc của CI.&lt;br /&gt;Tạo một Controller đơn giản: CI framework được xây dựng trên nền php OOP, nên mỗi một controller của CI được tạo là một class với dẫn xuất gián tiếp hoặc trực tiếp từ lớp cơ bản "Controller" của CI.&lt;br /&gt;- Qui cách đặt tên controller: capital first letter. Ví dụ: class MynewController extern Controller { }. Tên file lưu controller nên ở dạng lower case để phù hợp cho server window lẫn linux khi triển khai sau này. Tạo một controller đơn giản load một view đơn giản:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;/* saved file name: /cibase/system/application/controller/controllerhome.php */&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;class &lt;/span&gt;ControllerHome &lt;span style="color: rgb(0, 0, 153);"&gt;extends &lt;/span&gt;Controller {&lt;br /&gt;&lt;br /&gt; //hàm khởi dựng controller&lt;br /&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;function &lt;/span&gt;ControllerHome()&lt;br /&gt; {&lt;br /&gt;     parent::Controller();&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; //hàm index truy cập mặc định controllerhome&lt;br /&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;function &lt;/span&gt;index()&lt;br /&gt; {&lt;br /&gt;        $this-&gt;load-&gt;view('view_home');&lt;br /&gt; }&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;?&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;và View đơn giản:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;/* saved file name: /cibase/system/application/view/view_home.php */&lt;br /&gt;[html]&lt;br /&gt;[head][title] A simple view of ControllerHome [/title][/head]&lt;br /&gt;[body][p] Load view succeed in {elapsed_time} seconds [/p][/body]&lt;br /&gt;[/html]&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Cấu hình để chuyển controller mặc định khi truy cập url (http://localhost/cibase):&lt;br /&gt;--&gt; file: /cibase/system/application/config/route.phps&lt;br /&gt;      *line: 43  $route['default_controller'] = "welcome"; -&gt; $route['default_controller'] = "controllerhome";&lt;br /&gt;&lt;br /&gt;Okie, bây giờ ta truy cập lại vào địa chỉ http://localhost/cibase/ để hưởng thành quả lao động :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5902920467646767794-8926680695463206018?l=trinhquochungnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://trinhquochungnotes.blogspot.com/feeds/8926680695463206018/comments/default' title='Đăng Nhận xét'/><link rel='replies' type='text/html' href='http://trinhquochungnotes.blogspot.com/2009/03/web-php-on-gian-mot-controller-mot-view.html#comment-form' title='0 Nhận xét'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/8926680695463206018'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/8926680695463206018'/><link rel='alternate' type='text/html' href='http://trinhquochungnotes.blogspot.com/2009/03/web-php-on-gian-mot-controller-mot-view.html' title='Web PHP - Đơn giản một controller, một view'/><author><name>Hung.Trinh experiences notes</name><uri>http://www.blogger.com/profile/15879504538337047633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_J3Ejob9sTKI/TLfQC-4TxWI/AAAAAAAAAH0/DXwYRgjBiEA/S220/avtnew.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5902920467646767794.post-8490203601805430535</id><published>2009-03-12T14:14:00.005+07:00</published><updated>2009-03-12T15:15:21.559+07:00</updated><title type='text'>Web PHP - Lập trình web PHP dễ dàng với Code Igniter - triển khai</title><content type='html'>Bắt đầu chập chững PHP, được người bạn giới thiệu framework PHP đơn giản là &lt;a href="http://codeigniter.com/"&gt;Code Igniter&lt;/a&gt;. Dưới đây là những ghi chú trong quá trình sử dụng:&lt;br /&gt;Thông tin framework: http://codeigniter.com/&lt;br /&gt;- Download trực tiếp: &lt;a href="http://codeigniter.com/download.php"&gt;http://codeigniter.com/download.php&lt;/a&gt;&lt;br /&gt;- Forum hỏi đáp: &lt;a href="http://codeigniter.com/forums/"&gt;http://codeigniter.com/forums/&lt;/a&gt;&lt;br /&gt;Khi download CodeIgniter về máy, bạn được tập tin CodeIgniter_{version}_.zip. Khi giải nén tập tin này, ta được 2 thư mục: "system", "user_guide" và 2 tập tin: index.php và license.txt&lt;br /&gt;--&gt; Thư mục "system" chứa toàn bộ kiến trúc framework cơ bản. Từ đây là nơi bạn bắt đầu mọi công việc lập trình Web với CodeIgniter.&lt;br /&gt;--&gt; Thư mục "user_guide" là toàn bộ hướng dẫn cơ bản của CodeIgniter cho người mới bắt đầu. Khi phát triển sản phẩm với CodeIgniter, thư mục này có thể bỏ đi.&lt;br /&gt;--&gt; Tập tin "index.php" là tập tin đầu vào mặc định cho framework CodeIgniter.&lt;br /&gt;Các công cụ kèm theo để bắt đầu viết Web với CodeIgniter:&lt;br /&gt;- PHP Server: xampp hoặc &lt;a href="http://www.blogger.com/www.wampserver.com/en/download.php"&gt;wamp server 2.0&lt;/a&gt;&lt;br /&gt;- PHP Code IDE: &lt;a href="http://downloads.sourceforge.net/notepad-plus/npp.5.2.Installer.exe?use_mirror=biznetnetworks"&gt;NotePad++&lt;/a&gt; hoặc &lt;a href="http://dlc.sun.com/netbeans/6.5/beta/start.html?bundles/netbeans-6.5beta-php-windows.exe&amp;amp;platform=windows&amp;amp;lang=en&amp;amp;option=php"&gt;Netbean 6.5 for PHP&lt;/a&gt;, Notepad&lt;br /&gt;&lt;br /&gt;Tiến hành cài đặt Wamp Server 2.0, và xác định vị trí thư mục "www" của server sẽ là nơi triển khi web ở "http://localhost/"&lt;br /&gt;Triển khai framework CodeIgniter:&lt;br /&gt;- Giải nén tập tin CodeIgniter_{version}_.zip vào 1 thư mục (ví dụ "cibase") đặt ở trong "www".&lt;br /&gt;- Cấu hình lại đường dẫn truy cập web cibase:&lt;br /&gt;  --&gt; file: /cibase/system/application/config/config.php&lt;br /&gt;       line 14: $config['base_url']    = "http://localhost/cibase/";&lt;br /&gt;Kiểm tra sự hoạt động của framework mới cài đặt:&lt;br /&gt;- Mở trình duyệt web và nhập địa chỉ: "http://localhost/cibase/", nếu framework CI đã cài đặt thành công, bạn sẽ thấy kết quả tương tự trang dưới đây:&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_J3Ejob9sTKI/Sbi9o3ojL5I/AAAAAAAAAE0/xh0gkwAWlI8/s1600-h/wcm.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 229px;" src="http://1.bp.blogspot.com/_J3Ejob9sTKI/Sbi9o3ojL5I/AAAAAAAAAE0/xh0gkwAWlI8/s320/wcm.JPG" alt="" id="BLOGGER_PHOTO_ID_5312204270309945234" border="0" /&gt;&lt;/a&gt;Code Igniter thật đơn giản chỉ có thế.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5902920467646767794-8490203601805430535?l=trinhquochungnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://trinhquochungnotes.blogspot.com/feeds/8490203601805430535/comments/default' title='Đăng Nhận xét'/><link rel='replies' type='text/html' href='http://trinhquochungnotes.blogspot.com/2009/03/web-php-lap-trinh-web-php-de-dang-voi.html#comment-form' title='0 Nhận xét'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/8490203601805430535'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/8490203601805430535'/><link rel='alternate' type='text/html' href='http://trinhquochungnotes.blogspot.com/2009/03/web-php-lap-trinh-web-php-de-dang-voi.html' title='Web PHP - Lập trình web PHP dễ dàng với Code Igniter - triển khai'/><author><name>Hung.Trinh experiences notes</name><uri>http://www.blogger.com/profile/15879504538337047633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_J3Ejob9sTKI/TLfQC-4TxWI/AAAAAAAAAH0/DXwYRgjBiEA/S220/avtnew.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_J3Ejob9sTKI/Sbi9o3ojL5I/AAAAAAAAAE0/xh0gkwAWlI8/s72-c/wcm.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5902920467646767794.post-7903613410713336590</id><published>2008-12-03T13:51:00.006+07:00</published><updated>2008-12-03T15:05:27.442+07:00</updated><title type='text'>C# .Net Bonus: Regix Library - Cheats Sheet</title><content type='html'>From : &lt;a href="http://regexlib.com/CheatSheet.aspx"&gt;RegixLib.com&lt;/a&gt;&lt;br /&gt;Namespace: &lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;System.Text.RegularExpressions&lt;/span&gt;&lt;br /&gt;&lt;table style="width: 100%; height: 100%;"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;&lt;table style="width: 100%; height: 100%;" border="1"&gt;&lt;tbody&gt;&lt;tr align="center"&gt;&lt;th scope="colgroup" colspan="4"&gt;&lt;h2&gt;Metacharacters Defined&lt;/h2&gt;&lt;/th&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;th style="text-align: left;" scope="col" width="10%"&gt;MChar&lt;/th&gt;&lt;th style="text-align: center;" scope="col" width="50%"&gt;Definition&lt;/th&gt;&lt;td style="vertical-align: top; font-weight: bold;" width="15%"&gt;Pattern&lt;/td&gt;&lt;td style="vertical-align: top; font-weight: bold;" width="40%"&gt;Sample Matches&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;^&lt;/td&gt;&lt;td&gt;Start of a string.&lt;/td&gt;&lt;td style="vertical-align: top; text-align: center;"&gt;^abc&lt;/td&gt;&lt;td style="vertical-align: top;"&gt;abc, abcdefg, abc123, ...&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;$&lt;/td&gt;&lt;td&gt;End of a string.&lt;/td&gt;&lt;td style="vertical-align: top; text-align: center;"&gt;abc$&lt;/td&gt;&lt;td style="vertical-align: top;"&gt;abc, endsinabc, 123abc, ..&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;.&lt;/td&gt;&lt;td&gt;Any character (except \n newline)&lt;/td&gt;&lt;td style="vertical-align: top; text-align: center;"&gt;a.c&lt;/td&gt;&lt;td style="vertical-align: top;"&gt;abc, aac, acc, adc, aec, ...&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;|&lt;/td&gt;&lt;td&gt;Alternation.&lt;/td&gt;&lt;td style="vertical-align: top; text-align: center;"&gt;bill|ted&lt;/td&gt;&lt;td&gt;ted, bill&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;{...}&lt;/td&gt;&lt;td&gt;Explicit quantifier notation.&lt;/td&gt;&lt;td style="vertical-align: top; text-align: center;"&gt;ab{2}c&lt;/td&gt;&lt;td style="vertical-align: top;"&gt;abbc&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;[...]&lt;/td&gt;&lt;td&gt;Explicit set of characters to match.&lt;/td&gt;&lt;td style="vertical-align: top; text-align: center;"&gt;a[bB]c&lt;/td&gt;&lt;td style="vertical-align: top;"&gt;abc, aBc&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;(...)&lt;/td&gt;&lt;td&gt;Logical grouping of part of an expression.&lt;/td&gt;&lt;td style="vertical-align: top; text-align: center;"&gt;(abc){2}&lt;/td&gt;&lt;td style="vertical-align: top;"&gt;abcabc&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;*&lt;/td&gt;&lt;td&gt;0 or more of previous expression.&lt;/td&gt;&lt;td style="vertical-align: top; text-align: center;"&gt;ab*c&lt;/td&gt;&lt;td style="vertical-align: top;"&gt;ac, abc, abbc, abbbc, ...&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;+&lt;/td&gt;&lt;td&gt;1 or more of previous expression.&lt;/td&gt;&lt;td style="vertical-align: top; text-align: center;"&gt;ab+c&lt;/td&gt;&lt;td style="vertical-align: top;"&gt;abc, abbc, abbbc, ...&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;?&lt;/td&gt;&lt;td&gt;0 or 1 of previous expression; also forces minimal matching when an expression might match several strings within a search string.&lt;/td&gt;&lt;td style="vertical-align: top; text-align: center;"&gt;ab?c&lt;/td&gt;&lt;td style="vertical-align: top;"&gt;ac, abc&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;\&lt;/td&gt;&lt;td&gt;Preceding one of the above, it makes it a literal instead of a special character.  Preceding a special matching character, see below.&lt;/td&gt;&lt;td style="vertical-align: top; text-align: center;"&gt;a\sc&lt;/td&gt;&lt;td style="vertical-align: top;"&gt;a c&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/tbody&gt;&lt;tbody&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;td style="vertical-align: top;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;table style="width: 100%; height: 100%;"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;&lt;table style="width: 100%; height: 100%;" border="1"&gt;&lt;tbody&gt;&lt;tr align="center"&gt;&lt;th scope="colgroup" colspan="2"&gt;&lt;h2&gt;Character Escapes&lt;span style="font-size:85%;"&gt; &lt;a href="http://msdn.microsoft.com/library/en-us/cpgenref/html/cpconcharacterescapes.asp"&gt;http://msdn.microsoft.com/library/en-us/cpgenref/html/cpconcharacterescapes.asp&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;/th&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td style="text-align: center;" width="15%"&gt;ordinary characters&lt;/td&gt;&lt;td width="85%"&gt;Characters other than . $ ^ { [ ( | ) ] } * + ? \ match themselves.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;\a&lt;br /&gt;&lt;/td&gt;&lt;td&gt;Matches a bell (alarm) \u0007.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;\b&lt;br /&gt;&lt;/td&gt;&lt;td&gt;Matches a backspace \u0008 if in a []; otherwise matches a word boundary (between \w and \W characters).&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;\t&lt;br /&gt;&lt;/td&gt;&lt;td&gt;Matches a tab \u0009.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;\r&lt;br /&gt;&lt;/td&gt;&lt;td&gt;Matches a carriage return \u000D.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;\v&lt;br /&gt;&lt;/td&gt;&lt;td&gt;Matches a vertical tab \u000B.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;\f&lt;br /&gt;&lt;/td&gt;&lt;td&gt;Matches a form feed \u000C.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align: top; text-align: center;"&gt;\n&lt;br /&gt;&lt;/td&gt;&lt;td style="vertical-align: top;"&gt;Matches a new line \u000A.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align: top; text-align: center;"&gt;\e&lt;br /&gt;&lt;/td&gt;&lt;td style="vertical-align: top;"&gt;Matches an escape \u001B.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align: top; text-align: center;"&gt;\040&lt;br /&gt;&lt;/td&gt;&lt;td style="vertical-align: top;"&gt;Matches an ASCII character as octal (up to three digits); numbers with no leading zero are backreferences if they have only one digit or if they correspond to a capturing group number. (For more information, see Backreferences.) For example, the character \040 represents a space.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align: top; text-align: center;"&gt;\x20&lt;br /&gt;&lt;/td&gt;&lt;td style="vertical-align: top;"&gt;Matches an ASCII character using hexadecimal representation (exactly two digits).&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align: top; text-align: center;"&gt;\cC&lt;br /&gt;&lt;/td&gt;&lt;td style="vertical-align: top;"&gt;Matches an ASCII control character; for example \cC is control-C.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align: top; text-align: center;"&gt;\u0020&lt;/td&gt;&lt;td style="vertical-align: top;"&gt;Matches a Unicode character using a hexadecimal representation (exactly four digits).&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;\*&lt;br /&gt;&lt;/td&gt;&lt;td&gt;When followed by a character that is not recognized as an escaped character, matches that character. For example, &lt;b&gt;\*&lt;/b&gt; is the same as &lt;b&gt;\x2A&lt;/b&gt;.&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;td style="vertical-align: top;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;&lt;table style="width: 100%; height: 100%;" border="1"&gt;&lt;tbody&gt;&lt;tr align="center"&gt;&lt;th scope="colgroup" colspan="2"&gt;&lt;h2 style="text-align: center;"&gt;Character Classes &lt;span style="font-size:85%;"&gt;&lt;a style="font-weight: bold;" href="http://msdn.microsoft.com/library/en-us/cpgenref/html/cpconcharacterclasses.asp"&gt;http://msdn.microsoft.com/library/en-us/cpgenref/html/cpconcharacterclasses.asp&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;h2&gt;&lt;span style="font-size:85%;"&gt;&lt;a href="http://msdn.microsoft.com/library/en-us/cpgenref/html/cpconcharacterescapes.asp"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;/th&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td style="text-align: center;" width="15%"&gt;.&lt;br /&gt;&lt;/td&gt;&lt;td width="85%"&gt;Matches any character except \n. If modified by the Singleline option, a period character matches any character. For more information, see Regular Expression Options.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;[aeiou]&lt;/td&gt;&lt;td&gt;Matches any single character included in the specified set of characters.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;[^aeiou]&lt;/td&gt;&lt;td&gt;Matches any single character not in the specified set of characters.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;[0-9a-fA-F]&lt;/td&gt;&lt;td&gt;Use of a hyphen (–) allows specification of contiguous character ranges.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;\p{name}&lt;br /&gt;&lt;/td&gt;&lt;td&gt;Matches any character in the named character class specified by {name}. Supported names are Unicode groups and block ranges. For example, Ll, Nd, Z, IsGreek, IsBoxDrawing.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;\P{name}&lt;br /&gt;&lt;/td&gt;&lt;td&gt;Matches text not included in groups and block ranges specified in {name}.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;\w&lt;br /&gt;&lt;/td&gt;&lt;td&gt;Matches any word character. Equivalent to the Unicode character categories [\p{Ll}\p{Lu}\p{Lt}\p{Lo}\p{Nd}\p{Pc}]. If ECMAScript-compliant behavior is specified with the ECMAScript option, \w is equivalent to [a-zA-Z_0-9].&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align: top; text-align: center;"&gt;\W&lt;br /&gt;&lt;/td&gt;&lt;td style="vertical-align: top;"&gt;Matches any nonword character. Equivalent to the Unicode categories [^\p{Ll}\p{Lu}\p{Lt}\p{Lo}\p{Nd}\p{Pc}]. If ECMAScript-compliant behavior is specified with the ECMAScript option, \W is equivalent to [^a-zA-Z_0-9].&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align: top; text-align: center;"&gt;\s&lt;br /&gt;&lt;/td&gt;&lt;td style="vertical-align: top;"&gt;Matches any white-space character. Equivalent to the Unicode character categories [\f\n\r\t\v\x85\p{Z}]. If ECMAScript-compliant behavior is specified with the ECMAScript option, \s is equivalent to [ \f\n\r\t\v].&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align: top; text-align: center;"&gt;\S&lt;br /&gt;&lt;/td&gt;&lt;td style="vertical-align: top;"&gt;Matches any non-white-space character. Equivalent to the Unicode character categories [^\f\n\r\t\v\x85\p{Z}]. If ECMAScript-compliant behavior is specified with the ECMAScript option, \S is equivalent to [^ \f\n\r\t\v].&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="vertical-align: top; text-align: center;"&gt;\d&lt;br /&gt;&lt;/td&gt;&lt;td style="vertical-align: top;"&gt;Matches any decimal digit. Equivalent to \p{Nd} for Unicode and [0-9] for non-Unicode, ECMAScript behavior.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;\D&lt;br /&gt;&lt;/td&gt;&lt;td&gt;Matches any nondigit. Equivalent to \P{Nd} for Unicode and [^0-9] for non-Unicode, ECMAScript behavior.&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;td style="vertical-align: top;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5902920467646767794-7903613410713336590?l=trinhquochungnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://trinhquochungnotes.blogspot.com/feeds/7903613410713336590/comments/default' title='Đăng Nhận xét'/><link rel='replies' type='text/html' href='http://trinhquochungnotes.blogspot.com/2008/12/c-net-bonus-regix-library-cheats-sheet.html#comment-form' title='2 Nhận xét'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/7903613410713336590'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/7903613410713336590'/><link rel='alternate' type='text/html' href='http://trinhquochungnotes.blogspot.com/2008/12/c-net-bonus-regix-library-cheats-sheet.html' title='C# .Net Bonus: Regix Library - Cheats Sheet'/><author><name>Hung.Trinh experiences notes</name><uri>http://www.blogger.com/profile/15879504538337047633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_J3Ejob9sTKI/TLfQC-4TxWI/AAAAAAAAAH0/DXwYRgjBiEA/S220/avtnew.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5902920467646767794.post-1044460213771048545</id><published>2008-12-01T10:41:00.005+07:00</published><updated>2008-12-01T10:53:50.418+07:00</updated><title type='text'>Architect #1: Comprehensive List of How to Access BIOS for Various OEM and Computer Systems</title><content type='html'>Most OEM PC or custom-built clone PC using third-party motherboard (MOBO) allows user to configure various settings in BIOS (CMOS setup) to enter BIOS Setup or Configuration Utility in order to enable or disable devices or ports available, and more commonly, boot device priority or sequence. Some advanced settings also allow user to tweak computer performance, such as CPU clock speed multiplier and CPU front side bus (FSB) rate for overclocking, chipset features, DRAM parity, speed and timing, etc. &lt;p&gt;To access BIOS configuration screen, user need to press and invoke a specific hotkey or keys combination during the initial BIOS load screen (usually right after the computer is powered on). Here’s a list of the ways and access keys to press to access BIOS Setup Utility on variety of popular OEM computer systems, motherboard makers and major BIOS brands. Note that some BIOS or computer systems may have more than one method of accessing BIOS depending on when the BIOS is released.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Acer (Aspire, Power, Veriton, Extensa, Ferrari, TravelMate, Altos)&lt;/strong&gt;: Press [F2] or [Del] Immediately After Power Up&lt;br /&gt;&lt;strong&gt;Acer (Altos 600 Server)&lt;/strong&gt;: Press [Ctrl]+[Alt]+[Esc] or [F1] During Boot (for Advanced Options)&lt;br /&gt;&lt;strong&gt;Acer (Older PC)&lt;/strong&gt;: Press [F1] or [Ctrl]+[Alt]+[Esc] to Access BIOS&lt;br /&gt;&lt;strong&gt;AMI (American Megatrends AMIBIOS, AMI BIOS)&lt;/strong&gt;: Press [Delete] During Boot&lt;br /&gt;AMI&lt;br /&gt;&lt;strong&gt;AMI (American Megatrends AMIBIOS, AMI BIOS) - Old Version&lt;/strong&gt;: Press [F1] or [F2] During Boot&lt;br /&gt;&lt;strong&gt;Award BIOS (AwardBIOS)&lt;/strong&gt;: Press [Del] After Powering Up Computer&lt;br /&gt;&lt;strong&gt;Award BIOS (AwardBIOS) - Old Version &lt;/strong&gt;: Press [Ctrl]+[Alt]+[Esc] During Boot&lt;br /&gt;&lt;strong&gt;ALR&lt;/strong&gt;: Press [Ctrl]+[Alt]+[Esc] or [Ctrl]+[Alt]+[Del] During Boot&lt;br /&gt;&lt;strong&gt;ARI&lt;/strong&gt;: Press [Ctrl]+[Alt]+[Esc] or [Ctrl]+[Alt]+[Del] During Boot&lt;br /&gt;&lt;strong&gt;AST Advantage&lt;/strong&gt;: Press [Ctrl]+[Alt]+[Esc] During Boot&lt;br /&gt;&lt;strong&gt;Compaq (Presario, Prolinea, Deskpro, Systempro, Portable)&lt;/strong&gt;: Press [F10] When Blinking Cursor Jumps To Top Right Corner of Screen&lt;br /&gt;&lt;strong&gt;Compaq (Presario, Prolinea, Deskpro, Systempro, Portable)&lt;/strong&gt;: Press [F10] When Logo Screen Is Displayed&lt;br /&gt;&lt;strong&gt;Compaq (Older Computers)&lt;/strong&gt;: Press [F1], [F2], [F10], or [Del] Key&lt;br /&gt;&lt;strong&gt;Cybermax&lt;/strong&gt;: Press [Esc] Key&lt;br /&gt;&lt;strong&gt;Dell (XPS, Dimension, Inspiron, Latitude. OptiPlex, Precision, Vostro)&lt;/strong&gt;: Press F2 When Dell Logo Is Displayed Until “Entering Setup” Appears&lt;br /&gt;&lt;strong&gt;Dell (Older 486 Models)&lt;/strong&gt;: Press [Ctrl]+[Alt]+[Enter] During Boot&lt;br /&gt;&lt;strong&gt;Dell (Some Models)&lt;/strong&gt;: Press Reset Button Twice (i.e. Power Reset Button)&lt;br /&gt;&lt;strong&gt;Dell Dimension L566cx System&lt;/strong&gt;: Press [Del]&lt;br /&gt;&lt;strong&gt;Dell (Older &lt;a id="KonaLink1" target="undefined" class="kLink" style="text-decoration: underline ! important; position: static;" href="http://www.mydigitallife.info/2008/07/06/comprehensive-list-of-how-key-to-press-to-access-bios-for-various-oem-and-computer-systems/#"&gt;&lt;span style=";font-family:&amp;quot;;font-size:13;color:#b00000;"   &gt;&lt;span class="kLink" style=";font-family:&amp;quot;;font-size:13;color:#b00000;"   &gt;Laptop&lt;/span&gt;&lt;/span&gt;&lt;/a&gt; Models) &lt;/strong&gt;: Press [Fn]+[Esc] or [Fn]+[F1]&lt;br /&gt;&lt;strong&gt;DTK (Datatech Enterprises)&lt;/strong&gt;: Press [Esc] Key Right After Powering On the PC.&lt;br /&gt;&lt;strong&gt;EISA Computer&lt;/strong&gt;: Press the Reset button on the Front of the Computer, then Press [Ctrl]+[Alt]+[Esc] immediately when the memory count begins or Press [Crtl]+[Alt]+[S].&lt;br /&gt;&lt;strong&gt;eMachines (eMonster, eTower, eOne, S-Series, T-Series)&lt;/strong&gt;: Press [Tab] or [Del] During Boot&lt;br /&gt;&lt;strong&gt;eMachine (Some Older Computers)&lt;/strong&gt;: Press [F2]&lt;br /&gt;&lt;strong&gt;Fujitsu (LifeBook, Esprimo, Amilo, Tablet, DeskPower)&lt;/strong&gt;: Press [F2] When Fujitsu Logo Is Appearing.&lt;br /&gt;&lt;strong&gt;Gateway Using Phoenix BIOS (DX, FX, One, GM, GT, GX, Profile, Astro)&lt;/strong&gt;: Press [F1]&lt;br /&gt;&lt;strong&gt;Gateway (Some Older PCs)&lt;/strong&gt;: Press [F2]&lt;br /&gt;&lt;strong&gt;Hewlett-Parkard (HP Pavilion, TouchSmart, Vectra, OmniBook, Tablet)&lt;/strong&gt;: Press [F1] Upon Startup or Bootup&lt;br /&gt;&lt;strong&gt;Hewlett-Parkard (HP Alternative)&lt;/strong&gt;: Press [F2] or [Esc]&lt;br /&gt;&lt;strong&gt;Hewlett-Parkard (HP) Tablet PC&lt;/strong&gt;: Press [F10] or [F12]&lt;br /&gt;&lt;strong&gt;IBM ThinkPad using IBM BIOS (Early Models)&lt;/strong&gt;: Press [Ctrl]+[Alt]+[Ins] When Cursor Is At Upper-Right Corner of Screen&lt;br /&gt;&lt;strong&gt;IBM ThinkPad using IBM BIOS (Later Models)&lt;/strong&gt;: Press and Hold [F1] When Powering Up Laptop&lt;br /&gt;&lt;strong&gt;IBM ThinkPad using Phoenix BIOS&lt;/strong&gt;: Press [Ctrl]+[Alt]+[F11] from DOS Prompt&lt;br /&gt;&lt;strong&gt;IBM PS/1 (Late Models), PS/ValuePoint and 330s&lt;/strong&gt;: Press [Ctrl]+[Alt]+[?]&lt;br /&gt;&lt;strong&gt;IBM PS/2 with Reference Partition&lt;/strong&gt;: Press [Insert] During Boot&lt;br /&gt;&lt;strong&gt;IBM PS/2&lt;/strong&gt;: Press [Ctrl]+[Ins] When Pointer Is At Top Right of Screen&lt;br /&gt;&lt;strong&gt;IBM PS/2&lt;/strong&gt;: Need Reference Disk and ADF Disk for Setup&lt;br /&gt;&lt;strong&gt;IBM PS/2 75 and 90&lt;/strong&gt;: Press [Ctrl]+[Alt]+[?]&lt;br /&gt;&lt;strong&gt;IBM (PC, XT, AT)&lt;/strong&gt;: Press [F1] Immediately On Powering On the Computer&lt;br /&gt;&lt;strong&gt;IBM (Older Computers or Notebooks)&lt;/strong&gt;: Press [F2]&lt;br /&gt;&lt;strong&gt;Lenovo (ThinkPad, IdeaPad, 3000 Series, ThinkCentre, ThinkStation)&lt;/strong&gt;: Press [F1] or [F2] on Boot Up&lt;br /&gt;&lt;strong&gt;Lenovo (Older Products)&lt;/strong&gt;: Press [Ctrl]+[Alt]+[F3], [Ctrl]+[Alt]+[Ins] or [Fn]+[F1].&lt;br /&gt;&lt;strong&gt;Microid Research MR BIOS&lt;/strong&gt;: Press [F1]&lt;br /&gt;&lt;strong&gt;Micron (MPC Computers ClientPro, TransPort)&lt;/strong&gt;: Press [F1], [F2] or [Del] On Startup&lt;br /&gt;&lt;strong&gt;NEC (PowerMate, Versa, W-Series)&lt;/strong&gt;: Press [F2] During Boot&lt;br /&gt;&lt;strong&gt;NEC Versa Notebook&lt;/strong&gt;: Press and Hold Down [F1] Upon Startup or Bootup&lt;br /&gt;&lt;strong&gt;Olivetti PC Pro&lt;/strong&gt;: Press [Ctrl]+[Alt]+[Shift]+[Del](in Num Pad) During Boot&lt;br /&gt;&lt;strong&gt;Packard Bell (8900 Series, 9000 Series, Pulsar, Platinum, EasyNote, imedia, iextreme)&lt;/strong&gt;: Press [F1], [F2], or [Del].&lt;br /&gt;&lt;strong&gt;Packard Bell (Early 386 and 486 Dodels)&lt;/strong&gt;: Press [Ctrl]+[Alt]+[S] Sequence&lt;br /&gt;&lt;strong&gt;Phoenix BIOS (Phoenix-Award BIOS)&lt;/strong&gt;: Press [Del] During Power On Self-Test&lt;br /&gt;&lt;strong&gt;Phoenix BIOS (Phoenix-Award BIOS) - Old Version&lt;/strong&gt;: Press [Ctrl]+[Alt]+[S], [Ctrl]+[Alt]+[Esc], [Ctrl]+[Alt]+[Ins] or [Ctrl]+[S] During Power On Boot Self-Test Right After Startup&lt;br /&gt;&lt;strong&gt;Sharp (Notebook Laptops, Actius UltraLite)&lt;/strong&gt;: Press [F2] On Computer Starts&lt;br /&gt;&lt;strong&gt;Sharp (Old PCs)&lt;/strong&gt;: Require Setup Diagnostics Disk to Access BIOS&lt;br /&gt;&lt;strong&gt;Shuttle (Glamor G-Series, D’vo, Prima P2-Series, Workstation, X Mini XPC, Surveillance)&lt;/strong&gt;: Press [F2] or [Del] on System Startup&lt;br /&gt;&lt;strong&gt;Sony (VAIO, PCG-Series, VGN-Series)&lt;/strong&gt;: Press [F1], [F2] or [F3] After Turning On the Computer&lt;br /&gt;&lt;strong&gt;Sony Vaio 320 Series&lt;/strong&gt;: Press [F2] During Boot&lt;br /&gt;&lt;strong&gt;Tandon 386&lt;/strong&gt;: press [Ctrl]+[Shift]+[Esc]&lt;br /&gt;&lt;strong&gt;Tandon&lt;/strong&gt;: press [Ctrl]+[Shift]+[Esc]&lt;br /&gt;&lt;strong&gt;Toshiba (Portégé, Satellite, Tecra)&lt;/strong&gt;: Press [Esc] During Boot&lt;br /&gt;&lt;strong&gt;Toshiba (Portégé, Satellite, Tecra with Phoenix BIOS)&lt;/strong&gt;: Press [F1] during Boot&lt;br /&gt;&lt;strong&gt;Zenith, Phoenix&lt;/strong&gt;: Press [Ctrl]+[Alt]+[Ins] During Boot&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Miscellaneous and Other Common BIOS Key Sequences&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;[Ctrl]+[Esc]&lt;br /&gt;[Ctrl]+[Ins]&lt;br /&gt;[Ctrl]+[Alt]&lt;br /&gt;[Ctrl]+[Alt]+[+]&lt;br /&gt;[Ctrl]+[Alt]+[F3]&lt;br /&gt;[Ctrl]+[Alt]+[Del]&lt;br /&gt;[Ctrl]+[Alt]+[S]&lt;br /&gt;[Ctrl]+[Alt]+[Enter]&lt;br /&gt;[Ctrl]+[Alt]+[Ins]&lt;br /&gt;[Ctrl]+[Alt]+[Esc]&lt;br /&gt;[Ctrl]+[Shift]+[Esc]&lt;br /&gt;[Tab]&lt;br /&gt;[F1]&lt;br /&gt;[F3]&lt;br /&gt;[F4]&lt;br /&gt;[F10]&lt;br /&gt;[F12]&lt;br /&gt;[Fn]+[Function Key]&lt;/p&gt; &lt;p&gt;Note that for some older system with Phoenix BIOS, the following steps are required to get to BIOS setup screen:&lt;/p&gt; &lt;ol&gt;&lt;li&gt;Exit or boot up to DOS.&lt;/li&gt;&lt;li&gt;Press [Ctrl]+[Alt]+[Esc] to enter setup screen.&lt;/li&gt;&lt;li&gt;If hot key sequence above doesn’t work due to changes or problems been made on the system, then try to use the key to lock the keyboard while leaving computer switched on.&lt;/li&gt;&lt;li&gt; Press the Reset button on the front of the computer. A message will appear asking user to unlock the keyboard.&lt;/li&gt;&lt;li&gt;Unlock the keyboard and press [F2] to run the CMOS setup. &lt;/li&gt;&lt;li&gt;Press [Del] to bring up the CMOS setup program. &lt;/li&gt;&lt;/ol&gt;&lt;p&gt;From &lt;span style="font-size:100%;"&gt;&lt;a rel="bookmark" title="Permanent Link: Comprehensive List of How (Key to Press) to Access BIOS for Various OEM and Computer Systems"&gt;http://www.mydigitallife.info/2008/07/06/comprehensive-list-of-how-key-to-press-to-access-bios-for-various-oem-and-computer-systems/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5902920467646767794-1044460213771048545?l=trinhquochungnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://trinhquochungnotes.blogspot.com/feeds/1044460213771048545/comments/default' title='Đăng Nhận xét'/><link rel='replies' type='text/html' href='http://trinhquochungnotes.blogspot.com/2008/12/architect-1-comprehensive-list-of-how.html#comment-form' title='0 Nhận xét'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/1044460213771048545'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/1044460213771048545'/><link rel='alternate' type='text/html' href='http://trinhquochungnotes.blogspot.com/2008/12/architect-1-comprehensive-list-of-how.html' title='Architect #1: Comprehensive List of How to Access BIOS for Various OEM and Computer Systems'/><author><name>Hung.Trinh experiences notes</name><uri>http://www.blogger.com/profile/15879504538337047633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_J3Ejob9sTKI/TLfQC-4TxWI/AAAAAAAAAH0/DXwYRgjBiEA/S220/avtnew.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5902920467646767794.post-3766549811228853124</id><published>2008-11-28T14:06:00.003+07:00</published><updated>2008-11-28T14:23:30.574+07:00</updated><title type='text'>C# .Net Bonus: My Code Snippets Library</title><content type='html'>&lt;a href="http://www.esnips.com/doc/4f05337f-d49e-4989-8b00-a0b19b0b45ea/pubm"&gt;public method: &lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;public void Method()&lt;br /&gt;{&lt;br /&gt;    return (void);&lt;br /&gt;}&lt;/blockquote&gt;&lt;a href="http://www.esnips.com/doc/6cec1162-f4e3-4adc-986e-de5a081e8e20/prim"&gt;private method: &lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;private void Method()&lt;br /&gt;{&lt;br /&gt;    return (void);&lt;br /&gt;}&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5902920467646767794-3766549811228853124?l=trinhquochungnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://trinhquochungnotes.blogspot.com/feeds/3766549811228853124/comments/default' title='Đăng Nhận xét'/><link rel='replies' type='text/html' href='http://trinhquochungnotes.blogspot.com/2008/11/c-net-bonus-my-code-snippets-library.html#comment-form' title='0 Nhận xét'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/3766549811228853124'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/3766549811228853124'/><link rel='alternate' type='text/html' href='http://trinhquochungnotes.blogspot.com/2008/11/c-net-bonus-my-code-snippets-library.html' title='C# .Net Bonus: My Code Snippets Library'/><author><name>Hung.Trinh experiences notes</name><uri>http://www.blogger.com/profile/15879504538337047633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_J3Ejob9sTKI/TLfQC-4TxWI/AAAAAAAAAH0/DXwYRgjBiEA/S220/avtnew.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5902920467646767794.post-8057241345772717206</id><published>2008-11-27T11:55:00.000+07:00</published><updated>2008-11-27T11:56:37.497+07:00</updated><title type='text'>JavaCard Bonus: Smart Card ATR list</title><content type='html'>Ref from : http://ludovic.rousseau.free.fr/softwares/pcsc-tools/smartcard_list.txt&lt;br /&gt;#    Copyright (C) 2002-2008  by Ludovic Rousseau&lt;br /&gt;#&lt;br /&gt;#    This program is free software; you can redistribute it and/or modify&lt;br /&gt;#    it under the terms of the GNU General Public License as published by&lt;br /&gt;#    the Free Software Foundation; either version 2 of the License, or&lt;br /&gt;#    (at your option) any later version.&lt;br /&gt;#&lt;br /&gt;#    This program is distributed in the hope that it will be useful,&lt;br /&gt;#    but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br /&gt;#    GNU General Public License for more details.&lt;br /&gt;#&lt;br /&gt;#    You should have received a copy of the GNU General Public License&lt;br /&gt;#    along with this program; if not, write to the Free Software&lt;br /&gt;#    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA&lt;br /&gt;#    02111-1307  USA&lt;br /&gt;&lt;br /&gt;#&lt;br /&gt;# This list contains a match between an ATR and a card type&lt;br /&gt;# The list is sorted for edition purposes&lt;br /&gt;#&lt;br /&gt;# You can get the latest version of this file from:&lt;br /&gt;# http://ludovic.rousseau.free.fr/softwares/pcsc-tools/smartcard_list.txt&lt;br /&gt;#&lt;br /&gt;# $Id: smartcard_list.txt,v 1.370 2008-11-23 08:52:16 rousseau Exp $&lt;br /&gt;#&lt;br /&gt;&lt;br /&gt;# syntax:&lt;br /&gt;# ATR in regular expression form&lt;br /&gt;# \t descriptive text&lt;br /&gt;# \t descriptive text&lt;br /&gt;# \t descriptive text&lt;br /&gt;# empty line&lt;br /&gt;&lt;br /&gt;3B 02 14 50&lt;br /&gt; Schlumberger Multiflex 3k&lt;br /&gt;&lt;br /&gt;3B 02 53 01&lt;br /&gt; Gemplus GemClub Memo&lt;br /&gt;&lt;br /&gt;3B 04 41 11 77 81&lt;br /&gt; Sample Mifare DESFire contactless smartcard from Phillips&lt;br /&gt;&lt;br /&gt;3B 04 41 11 77 B1&lt;br /&gt; IBM JCOP 30 contactless&lt;br /&gt;&lt;br /&gt;3B 04 49 32 43 2E&lt;br /&gt; German Health Insurance Card&lt;br /&gt; "LogCard" from concept2.com (a indoor rower manufacturer)&lt;br /&gt; I2C card&lt;br /&gt;&lt;br /&gt;3B 04 92 23 10 91&lt;br /&gt; Siemens SLE 4432/42 card&lt;br /&gt;&lt;br /&gt;3B 04 99 FF FF 20&lt;br /&gt; used for parkimeters/Parkings in Madrid&lt;br /&gt;&lt;br /&gt;3B 04 A2 13 10 91&lt;br /&gt; PM2P Chipkarte SLE 4442, Code FFFFFF&lt;br /&gt; Bahn BKK (Deutsche Bahn AG - Insurance Company)&lt;br /&gt;&lt;br /&gt;3B 05 68 01 01 02 05&lt;br /&gt; Certinomis card (electronic certificates)&lt;br /&gt;&lt;br /&gt;3B 06 81 24 80 80 90 00&lt;br /&gt; 10â‚¬ credit card for TV &amp; telephone in Jerez de la&lt;br /&gt; Frontera hospital's rooms. The maker can be found at www.isernsa.com&lt;br /&gt; (ISERN Medical Telecomunications)&lt;br /&gt;&lt;br /&gt;3B 06 A2 13 10 91 90 00&lt;br /&gt; C3P2K SAMPLE CARD (C3PO, S.L)&lt;br /&gt;&lt;br /&gt;3B 09 41 04 11 DD 82 2F 00 00 88&lt;br /&gt; 1k contactless Mifare&lt;br /&gt;&lt;br /&gt;3B 0A 20 62 0C 01 4F 53 45 99 14 AA&lt;br /&gt; GSM-SIM BEN (1800MHz)&lt;br /&gt;&lt;br /&gt;3B 0F 00 65 46 53 05 16 05 71 DF 00 00 00 45 50 53&lt;br /&gt; Feitian ePass3000, Feitian formatted&lt;br /&gt;&lt;br /&gt;3B 0F 00 65 46 53 05 16 05 71 DF 00 00 00 80 6A 82&lt;br /&gt; Feitian ePass3000, OpenSC formatted&lt;br /&gt;&lt;br /&gt;3B 0F 80 6A 16 32 46 49 53 45 53 8C E0 FF 07 90 00&lt;br /&gt; GSM-SIM Sonera (from 1998)&lt;br /&gt;&lt;br /&gt;3B 0F FF C1 B5 CC 72 CA 00 00 ??&lt;br /&gt; Mifare Std 1K&lt;br /&gt;&lt;br /&gt;3B 15 13 80 53 41 52 03&lt;br /&gt; Eutron CryptoIdentity (ATMEL AT903232C - 6464C Cryptographic&lt;br /&gt; processors, 64KB EEPROM, RSA 2048)&lt;br /&gt;&lt;br /&gt;3B 15 94 C3 02 08 16 01&lt;br /&gt; GSM-SIM EMT (Estonia)&lt;br /&gt;&lt;br /&gt;3B 16 94 71 01 01 00 27 00&lt;br /&gt; Cingular GSM SIM Card&lt;br /&gt;&lt;br /&gt;3B 16 94 71 01 01 05 02 00&lt;br /&gt; GSM SIM Bouygues Telecom&lt;br /&gt;&lt;br /&gt;3B 16 94 81 10 06 01 81 2F&lt;br /&gt; Schlumberger Cyberflex Access Augmented Crypto&lt;br /&gt;&lt;br /&gt;3B 16 94 81 10 06 01 81 3F&lt;br /&gt; Schlumberger Cyberflex Access Crypto&lt;br /&gt;&lt;br /&gt;3B 16 96 41 73 74 72 69 64&lt;br /&gt; Gemalto .NET v2.0&lt;br /&gt;&lt;br /&gt;3B 17 13 9C 12 02 01 01 07 40&lt;br /&gt; Schlumberger Cyberflex Access Developer 32k&lt;br /&gt;&lt;br /&gt;3B 17 94 18 01 01 01 01 41 93&lt;br /&gt; T-Mobile SIM card&lt;br /&gt;&lt;br /&gt;3B 17 94 18 01 01 02 01 41 49&lt;br /&gt; white SFR SIM card&lt;br /&gt;&lt;br /&gt;3B 17 94 18 02 01 25 01 41 93&lt;br /&gt; AT&amp;T Wireless GSM SIM Card&lt;br /&gt;&lt;br /&gt;3B 17 94 89 01 02 01 02 41 87&lt;br /&gt; Vodafone/Omnitel 16K GSM SIM&lt;br /&gt;&lt;br /&gt;3B 19 14 55 90 01 01 01 00 05 08 B0&lt;br /&gt; Schlumberger Multiflex 8k&lt;br /&gt;&lt;br /&gt;3B 19 14 55 90 01 02 01 00 05 04 B0&lt;br /&gt; Schlumberger Multiflex 4k&lt;br /&gt;&lt;br /&gt;3B 19 14 59 01 01 0F 01 00 05 08 B0&lt;br /&gt; Schlumberger Multiflex 8k&lt;br /&gt;&lt;br /&gt;3B 19 94 31 02 05 10 45 98 01 02 4E&lt;br /&gt; GSM-SIM EMT (Estonia)&lt;br /&gt;&lt;br /&gt;3B 1C 94 43 48 49 50 44 52 49 56 45 30 30 31&lt;br /&gt; SCM Chipdrive MyKey MasterKey 24k&lt;br /&gt;&lt;br /&gt;3B 1F 11 00 67 42 41 46 49 53 45 53 52 66 FF 81 90 00&lt;br /&gt; Finnish student id card&lt;br /&gt;&lt;br /&gt;3B 1F 11 00 67 80 42 46 49 53 45 10 52 66 FF 81 90 00&lt;br /&gt; Nokia branded SC (Setec)&lt;br /&gt;&lt;br /&gt;3B 1F 11 00 6A 01 38 46 49 53 45 10 8C 02 FF 07 90 00&lt;br /&gt; GSM-SIM Saunalahti (from 2004)&lt;br /&gt; Finnish cell phone operator "Sonera" SIM card (from 2002)&lt;br /&gt;&lt;br /&gt;3B 1F 11 00 6A 31 36 46 49 53 45 13 8C 02 FF 07 90 00&lt;br /&gt; GSM-SIM card - Telenor Mobil - http://www.telenor.com/&lt;br /&gt;&lt;br /&gt;3B 1F 11 80 6A 16 32 46 49 53 45 15 8C E6 FF 07 90 00&lt;br /&gt; GSM SIM card - Tele2 Estonia - http://www.tele2.ee&lt;br /&gt;&lt;br /&gt;3B 1F 11 80 6A 32 37 46 49 53 45 12 8C 00 FF 07 90 00&lt;br /&gt; Setec Test card, SetCOS 3.7.2, rel 1.3&lt;br /&gt;&lt;br /&gt;3B 1F 11 80 6A 32 37 46 49 53 45 12 8C 02 FF 07 90 00&lt;br /&gt; GSM-SIM DNA Finland (from 2001)&lt;br /&gt;&lt;br /&gt;3B 1F 11 80 6A 80 34 46 49 53 45 53 94 36 FF 07 90 00&lt;br /&gt; SetCOS 3.4.0c&lt;br /&gt; RSA SecurID 3100&lt;br /&gt;&lt;br /&gt;3B 1F 94 00 6A 01 38 46 49 53 45 10 8C 02 FF 07 90 00&lt;br /&gt; GSM-SIM Saunalahti (from 2004)&lt;br /&gt;&lt;br /&gt;3B 1F 94 80 6A 16 32 46 49 53 45 15 8C E6 FF 07 90 00&lt;br /&gt; GSM-SIM Sonera (from 2002)&lt;br /&gt;&lt;br /&gt;3B 23 00 00 36 41 81&lt;br /&gt; Schlumberger Payflex 4k SAM&lt;br /&gt;&lt;br /&gt;3B 23 00 35 11 80&lt;br /&gt; Schlumberger Payflex 1k User&lt;br /&gt;&lt;br /&gt;3B 23 00 35 11 81&lt;br /&gt; Schlumberger Payflex 1k SAM&lt;br /&gt;&lt;br /&gt;3B 23 00 35 13 80&lt;br /&gt; Schlumberger Cyberflex Access Campus&lt;br /&gt;&lt;br /&gt;3B 23 00 35 13 FF&lt;br /&gt; Schlumberger MicroPayflex&lt;br /&gt;&lt;br /&gt;3B 23 00 35 41 80&lt;br /&gt; PayflexHID (idenfitied by Sun Ray Services)&lt;br /&gt;&lt;br /&gt;3B 24 00 .. .. .. 45&lt;br /&gt; Conax&lt;br /&gt;&lt;br /&gt;3B 24 00 30 42 30 30&lt;br /&gt; ComHem Digital-TV smartcard (Sweden)&lt;br /&gt;&lt;br /&gt;3B 24 00 80 72 94 43&lt;br /&gt; MPCOS-3DES 64K \ EMV Filter (Gemplus)&lt;br /&gt;&lt;br /&gt;3B 26 00 00 26 40 00 90 00&lt;br /&gt; Schlumberger, purse?&lt;br /&gt;&lt;br /&gt;3B 26 00 11 01 6D 03&lt;br /&gt; OLD CajaMadrid Visa Cash, ID card for Universidad AutÃ³noma de Madrid, Madrid (about 1998)&lt;br /&gt;&lt;br /&gt;3B 26 00 11 04 5C 03 90 00&lt;br /&gt; Caixa Abierta (Barcelona, Spain) Cash/Visa Electron&lt;br /&gt;&lt;br /&gt;3B 26 00 11 06 23 03 90 00&lt;br /&gt; Tarjeta de la Seguridad Social (Spanish Social Insurance Card)&lt;br /&gt;&lt;br /&gt;3B 26 00 31 08 6C 03 90 00&lt;br /&gt; VISA ELECTRON from Caixa Catalunya bank card (www.caixacatalunya.es) for students in UPC university of Barcelona (Spain) (www.upc.es)&lt;br /&gt;&lt;br /&gt;3B 27 00 80 65 A2 .. 01 01 37&lt;br /&gt; Gemplus GemSAFE Smart Card (4K)&lt;br /&gt;&lt;br /&gt;3B 27 00 80 65 A2 00 01 01 37&lt;br /&gt; Gemplus GemSAFE Card CSP v1.0&lt;br /&gt;&lt;br /&gt;3B 27 00 80 65 A2 02 02 82 37&lt;br /&gt; Gemplus GPK2000s&lt;br /&gt;&lt;br /&gt;3B 27 00 80 65 A2 02 03 82 37&lt;br /&gt; Gemplus GPK2000sp&lt;br /&gt;&lt;br /&gt;3B 27 00 80 65 A2 04 01 01 37&lt;br /&gt; Gemplus GPK4000s&lt;br /&gt;&lt;br /&gt;3B 27 00 80 65 A2 05 01 01 37&lt;br /&gt; Gemplus GPK4000sp&lt;br /&gt;&lt;br /&gt;3B 27 00 80 65 A2 06 01 01 37&lt;br /&gt; GPK 4000, RSA 512 bits Sign, Unwrap 40 bits&lt;br /&gt;&lt;br /&gt;3B 27 00 80 65 A2 0C 01 01 37&lt;br /&gt; Gemplus GPK4000&lt;br /&gt;&lt;br /&gt;3B 27 00 80 65 A2 8C 3B 27 00&lt;br /&gt; GPK 4000, RSA 1024 bits Sign, Unwrap 256 bits&lt;br /&gt;&lt;br /&gt;3B 29 00 24 93 01 00 00 00 00 01 A9&lt;br /&gt; Telephone chipcard for the Vienna University of Technology&lt;br /&gt; http://nic.tuwien.ac.at/telefonie/chipkarte/&lt;br /&gt;&lt;br /&gt;3B 29 00 80 72 A4 45 64 00 00 D0 15&lt;br /&gt; Moeda Electronica Bradesco (Gemplus MPCOS?) (Brasilia)&lt;br /&gt;&lt;br /&gt;3B 29 00 80 72 A4 45 64 00 FF 00 10&lt;br /&gt; MPCOS-3DES 8K (Gemplus)&lt;br /&gt; MBNA Europe Platinum Plus Mastercard&lt;br /&gt; MasterCard Card - Worldcard - YapÄ±kredi / Turkey&lt;br /&gt;&lt;br /&gt;3B 2A 00 80 65 A0 58 04 01 62 72 D6 43&lt;br /&gt; Gemplus GemCombiXplore MPCOS Pro&lt;br /&gt;&lt;br /&gt;3B 2A 00 80 65 A2 01 00 00 00 72 D6 41&lt;br /&gt; MPCOS_EMV_1B&lt;br /&gt;&lt;br /&gt;3B 2A 00 80 65 A2 01 00 00 00 72 D6 43&lt;br /&gt; MPCOS_EMV_4B&lt;br /&gt;&lt;br /&gt;3B 2A 00 80 65 A2 01 01 01 3D 72 D6 43&lt;br /&gt; GEMPLUS Logico Secure SmartCard for Citrix Metaframe&lt;br /&gt;&lt;br /&gt;3B 2A 00 80 65 A2 01 .. .. .. 72 D6 41&lt;br /&gt; Gemplus MPCOS EMV 1 Byte sectors&lt;br /&gt;&lt;br /&gt;3B 2A 00 80 65 A2 01 02 01 31 72 D6 43&lt;br /&gt; MPCOS-EMV 64K Functional Sample&lt;br /&gt;&lt;br /&gt;3B 2A 00 80 65 A2 01 .. .. .. 72 D6 43&lt;br /&gt; Gemplus MPCOS EMV 4 Byte sectors&lt;br /&gt;&lt;br /&gt;3B 2F 00 80 69 10 80 00 01 A1 0A 01 01 59 83 0E 90 00&lt;br /&gt; Belgium Dexia (Axion) Bank Card&lt;br /&gt; Proton/Bancontact Mister Cash/Maestro&lt;br /&gt;&lt;br /&gt;3B 2F 00 80 69 AF 03 07 06 68 00 00 0A 0E 83 06&lt;br /&gt; GSM SIM MobilCom (Gemplus)&lt;br /&gt;&lt;br /&gt;3B 2F 00 80 69 AF 03 07 06 68 00 00 0A 0E 83 06 9F 16&lt;br /&gt; MobilCom-Karte&lt;br /&gt;&lt;br /&gt;3B 32 15 00 06 80&lt;br /&gt; Schlumberger Multiflex 8k&lt;br /&gt;&lt;br /&gt;3B 32 15 00 06 95&lt;br /&gt; Schlumberger Multiflex 8k DES&lt;br /&gt;&lt;br /&gt;3B 37 11 00 46 4C 4F 4D 41 90 00&lt;br /&gt; SLE 4428&lt;br /&gt;&lt;br /&gt;3B 3B .. 00 80 6. A[F,E] 03 0[C,D] .. .. 83 .. 90 00&lt;br /&gt; GemXplore Xpresso V3&lt;br /&gt;&lt;br /&gt;3B 3B 11 00 80 65 AF 03 0C 01 6F 83 0F 90 00&lt;br /&gt; Gemplus GemX{plore,presso} V3-B1&lt;br /&gt;&lt;br /&gt;3B 3B 11 00 80 69 AF 03 0C 01 6F 83 0[0,1] 90 00&lt;br /&gt; GemXplore'Xpresso V3 64K&lt;br /&gt;&lt;br /&gt;3B 3B 94 00 4F 34 10 20 01 04 C0 33 33 90 00&lt;br /&gt; SIM card from the italian operator WIND&lt;br /&gt;&lt;br /&gt;3B 3B 94 00 67 37 10 00 00 39 60 33 33 90 00&lt;br /&gt; Avea GSM / Turkey&lt;br /&gt;&lt;br /&gt;3B 3B 94 00 69 3C 10 30 01 3E 40 33 00 90 00&lt;br /&gt; UK Vodafone GSM SIM&lt;br /&gt;&lt;br /&gt;3B 3B 94 00 80 65 AF 03 0D 01 74 83 0F 90 00&lt;br /&gt; Gemplus GemXplore Xpresso V3 B1P&lt;br /&gt; Mobistar SIM - Belgium (Gemplus)&lt;br /&gt;&lt;br /&gt;3B 3B 94 00 A6 39 90 00 00 00 21 83 83 90 00&lt;br /&gt; meteor ireland http://www.meteor.ie&lt;br /&gt;&lt;br /&gt;3B 3C 94 00 4B 31 25 A2 10 13 14 47 83 83 90 00&lt;br /&gt; GSM SFR&lt;br /&gt;&lt;br /&gt;3B 3C 94 00 4C 31 25 A7 20 1B 00 15 83 83 90 00&lt;br /&gt; GSM-SIM (900MHz) card of the carrier vodafone for their cellular&lt;br /&gt; network (phase 2+ with 3V)&lt;br /&gt;&lt;br /&gt;3B 3D 94 00 01 0F 00 36 00 00 86 60 18 04 00 01 07&lt;br /&gt; Vodafone GSM / Turkey&lt;br /&gt;&lt;br /&gt;3B 3F 11 00 6F AF 65 03 12 01 80 73 32 21 1B 83 0F 90 00&lt;br /&gt; GSM SIM card Orange J2RE postpaid&lt;br /&gt;&lt;br /&gt;3B 3F 94 00 80 65 AF 03 12 01 6F 73 32 21 1B 83 0F 90 00&lt;br /&gt; GSM SIM Card (GEMPLUS), issued by Orange Switzerland (Prepaid)&lt;br /&gt;&lt;br /&gt;3B 3F 94 00 80 65 AF 03 12 01 79 73 32 21 1B 83 0F 90 00&lt;br /&gt; UK O2 GSM SIM (2G Online Prepay Maldives)&lt;br /&gt;&lt;br /&gt;3F 3D 11 00 80 67 28 50 04 02 20 00 00 83 8E 90 00&lt;br /&gt; GSM SIM card of the Austrian provider A1&lt;br /&gt;&lt;br /&gt;3F 3F 94 00 80 69 AF 03 07 01 59 00 00 0A 0E 83 3E 9F 16&lt;br /&gt; Finnish SIM card from "Radiolinja" now "Elisa"&lt;br /&gt;&lt;br /&gt;3B 3F 94 00 80 69 AF 03 07 06 67 00 00 0A 0E 83 3E 9F 16&lt;br /&gt; SFR SIM card (red Gemplus RÃ©pertoire)&lt;br /&gt;&lt;br /&gt;3B 3F 94 00 80 69 AF 03 07 06 67 09 97 0A 0E 83 3E 9F 16&lt;br /&gt; BASE SIM - Belgium (Gemplus)&lt;br /&gt;&lt;br /&gt;3B 3F 94 00 80 69 AF 03 0F 02 80 FF FF 06 0E 83 3E 9F 16&lt;br /&gt; GSM-SIM Telefonica Movistar, prepaid (Spain)&lt;br /&gt;&lt;br /&gt;3B 3F 94 00 80 69 AF 03 0F 07 A4 00 00 06 0E 83 3E 9F 16&lt;br /&gt; SIM Card PRO from the austrian telecom "A1"&lt;br /&gt;&lt;br /&gt;3B 3F 95 00 80 65 AF 03 12 01 6F 73 32 21 1B 83 00 90 00&lt;br /&gt; Gemplus GemXpresso PRO 64 PK SIM&lt;br /&gt;&lt;br /&gt;3B 3F 95 00 80 65 AF 03 14 01 8A 73 32 21 1B 83 0F 90 00&lt;br /&gt; SIM Vodafone 64k&lt;br /&gt;&lt;br /&gt;3F 96 18 80 01 80 51 00 61 10 30 9F&lt;br /&gt; Atmel/Athena T0 Inverse Convention PC/SC Compliance Test Card No. 2&lt;br /&gt;&lt;br /&gt;3B 3F 95 00 80 69 AF 03 0F 02 80 FF FF 06 0E 83 3E 9F 16&lt;br /&gt; AT&amp;T Wireless GSM SIM Card&lt;br /&gt; UK Virgin Mobile GSM SIM&lt;br /&gt;&lt;br /&gt;3B 57 18 02 93 02 01 01 01 90 00&lt;br /&gt; Easyflex FastOS 2.0 / Schlumberger&lt;br /&gt;&lt;br /&gt;3B 63 00 00 36 41 80&lt;br /&gt; Schlumberger Payflex 4k User&lt;br /&gt;&lt;br /&gt;3B 64 00 00 80 62 0. 51&lt;br /&gt; Setec SetCOS 5.1.0 EMV&lt;br /&gt;&lt;br /&gt;3B 64 00 FF 80 62 02 A2&lt;br /&gt; VISA credit card (Nordea bank)&lt;br /&gt;&lt;br /&gt;3B 64 .. FF 80 62 .. A2&lt;br /&gt; JCOP20&lt;br /&gt;&lt;br /&gt;3B 65 00 00 29 05 01 02 01&lt;br /&gt; ActivCard (Schlumberger) CyberFlex 64K V1 SM 2.1&lt;br /&gt;&lt;br /&gt;3B 65 00 00 41 56 49 4F 4E&lt;br /&gt; RBC (Royal Bank of Canada) Avion Visa&lt;br /&gt;&lt;br /&gt;3B 65 00 00 43 04 6C 90 00&lt;br /&gt; Carte Bancaire (French banking card) (hot reset)&lt;br /&gt;&lt;br /&gt;3B 65 00 00 58 01 01 00 80&lt;br /&gt; RBS Advanta Platinum Reserve Master Card&lt;br /&gt; UK Lloyds TSB Visa Debit (issued 2003, Gemplus)&lt;br /&gt;&lt;br /&gt;3B 65 00 00 9C 02 02 07 02&lt;br /&gt; US Department of Defense, TEST Common Access Card (CAC)&lt;br /&gt; Schlumberger Cyberflex Access #2&lt;br /&gt; Axalto Cyberflex Access 32K V2&lt;br /&gt; Sun Microsystems employee card&lt;br /&gt;&lt;br /&gt;3B 65 00 00 9C 1[0,1] 01 01 03&lt;br /&gt; Schlumberger Cyberflex Palmera&lt;br /&gt;&lt;br /&gt;3B 66 00 00 00 9C 11 01 01 03&lt;br /&gt; Axalto Cyberflex Access 32K V4 SM 1.3&lt;br /&gt;&lt;br /&gt;3B 66 00 00 00 9C 11 01 03 01&lt;br /&gt; Axalto Cyberflex Access 64K V1 Bio SM 3.1&lt;br /&gt;&lt;br /&gt;3B 66 00 00 31 4B 01 01 00 80&lt;br /&gt; VISA credit card (Skandiabanken)&lt;br /&gt;&lt;br /&gt;3B 66 00 00 66 44 01 01 03 B1&lt;br /&gt; Carte etudiant Paris 1 moneo BNP Paribas france (Oberthur)&lt;br /&gt;&lt;br /&gt;3B 66 00 FF 4A 43 4F 50 33 30&lt;br /&gt; JCOP30 "OP-DI 16k VISA v2 (JCOP30) ORGA"&lt;br /&gt;&lt;br /&gt;3B 66 00 FF 4A 43 4F 50 30 33&lt;br /&gt; IBM JCOP 30&lt;br /&gt;&lt;br /&gt;3B 67 00 00 00 00 00 00 00 90 00&lt;br /&gt; Axa Bank (Belgium) Mastercard Gold / Axa Bank Belgium&lt;br /&gt; MisterCash &amp; Proton card&lt;br /&gt; VISA Card (emitted by Bank Card Company - Belgium)&lt;br /&gt;&lt;br /&gt;3B 67 00 00 00 00 20 00 00 90 00&lt;br /&gt; BankID card from Sparebank1&lt;br /&gt;&lt;br /&gt;3B 67 00 00 00 31 80 71 86 90 00&lt;br /&gt; Swiss ZKB-Bancomat-Card&lt;br /&gt;&lt;br /&gt;3B 67 00 00 29 20 00 6F 78 90 00&lt;br /&gt; Postbank Chippas (chipknip) Netherlands&lt;br /&gt;&lt;br /&gt;3B 67 00 00 2D 20 36 00 78 90 00&lt;br /&gt; Swedish cashcard, http://www.ida.liu.se/~TDDB31/Cashcard.pdf&lt;br /&gt; Bank Card (ING - Belgium)&lt;br /&gt; Schipol Group Privium biometric card (Amsterdam Airport entry system)&lt;br /&gt;&lt;br /&gt;3B 67 00 00 7D 20 40 34 3B 90 00&lt;br /&gt; Nordea Visa Sweden&lt;br /&gt;&lt;br /&gt;3B 67 00 00 85 20 36 30 78 90 00&lt;br /&gt; Belgium Fortis Bank&lt;br /&gt; Belgium Keytrade Bank&lt;br /&gt; Belgium Post Bank&lt;br /&gt;&lt;br /&gt;3B 67 00 00 9C 10 01 01 03 FF 07&lt;br /&gt; Schlumberger Cyberflex Palmera Protect&lt;br /&gt;&lt;br /&gt;3B 67 00 00 A5 20 40 10 1F 90 00&lt;br /&gt; Swedish eLegitimation (eID) from Nordea Bank http://www.elegitimation.se/&lt;br /&gt;&lt;br /&gt;3B 67 25 00 2A 20 00 4[0,5] 68 90 00&lt;br /&gt; Swedish cashcard (proton)&lt;br /&gt;&lt;br /&gt;3B 67 25 00 62 24 33 03 ..&lt;br /&gt; Bull TB1000 ? (SAM for ATM in Luxemburg)&lt;br /&gt;&lt;br /&gt;3B 68 00 00 56 53 44 43 4C 43 31 30&lt;br /&gt; VISA (Estonian), made by www.trueb.ch&lt;br /&gt;&lt;br /&gt;3B 68 00 00 80 66 45 46 01 38 18 03&lt;br /&gt; FNMT WG108k&lt;br /&gt;&lt;br /&gt;3B 68 00 00 80 66 A2 06 02 01 32 0E&lt;br /&gt; Gemplus GemClub 1K&lt;br /&gt;&lt;br /&gt;3B 68 00 00 9D 08 01 02 01 56 49 53&lt;br /&gt; Visa Card - bonus - DenizBank / Turkey&lt;br /&gt;&lt;br /&gt;3B 68 00 00 9D 08 01 03 01 4F 54 53&lt;br /&gt; MasterCard Card - bonus - Garanti Bank / Turkey&lt;br /&gt;&lt;br /&gt;3B 68 00 00 9D 08 01 03 01 56 49 53&lt;br /&gt; MasterCard Card - bonus - Garanti Bank / Turkey&lt;br /&gt; MasterCard Card - bonus plus (paypass) - Garanti Bank / Turkey&lt;br /&gt;&lt;br /&gt;3B 68 00 00 9D 08 01 05 01 56 49 53&lt;br /&gt; MasterCard Card - CartaSi (Italian Credit Card)&lt;br /&gt;&lt;br /&gt;3B 68 00 00 A1 02 02 01 01 56 49 53&lt;br /&gt; UK NatWest Business MasterCard&lt;br /&gt; UK Barclaycard VISA&lt;br /&gt; UK NatWest Platinum MasterCard&lt;br /&gt; Visa Card - DenizBank / Turkey&lt;br /&gt;&lt;br /&gt;3B 69 00 00 24 94 01 02 01 00 01 01 A9&lt;br /&gt; Chipcard from SUN to be used in SunRay's&lt;br /&gt; 370-4328-01 (31091)&lt;br /&gt;&lt;br /&gt;3B 69 00 00 24 94 01 03 01 00 01 00 A9&lt;br /&gt; Schlumberger MicroPayflex S card&lt;br /&gt;&lt;br /&gt;3B 69 00 00 4A 43 4F 50 33 31 56 32 32&lt;br /&gt; Visa Europe Sample Card / Axalto&lt;br /&gt;&lt;br /&gt;3B 69 00 00 50 01 01 04 01 00 01 01 A9&lt;br /&gt; Sample card given to all attendees of the CTST 2004 SmartCard Conference&lt;br /&gt;&lt;br /&gt;3B 69 00 00 56 49 53 5F 49 4E 46 20 06&lt;br /&gt; VISA credit card (Ceska Sporitelna)&lt;br /&gt; Maestro credit card (Ceska Sporitelna)&lt;br /&gt;&lt;br /&gt;3B 69 00 FF 4A 43 4F 50 33 31 56 32 32&lt;br /&gt; JCOP 31 v22 72K - S/C I/F&lt;br /&gt;&lt;br /&gt;3B 69 00 FF 53 6D 40 72 74 43 61 66 65&lt;br /&gt; G&amp;D (Giesecke&amp;Devrient) Sm@rtCafÃ©&lt;br /&gt;&lt;br /&gt;3B 6A 00 00 80 31 C0 A1 02 03 01 32 81 16&lt;br /&gt; Lloyds TSB Visa Credit/Debit Card&lt;br /&gt;&lt;br /&gt;3B 6A 00 00 80 65 A2 01 01 01 3D 72 D6 43&lt;br /&gt; GemSafe Xpresso 16k&lt;br /&gt;&lt;br /&gt;3B 6A 00 00 80 66 A1 09 02 01 63 0E 90 00&lt;br /&gt; Danish Visa/Dankort&lt;br /&gt; UK MBNA MasterCard&lt;br /&gt; Visa Card - Worldcard - YapÄ±Kredi / Turkey&lt;br /&gt; VISA - Lloyds TSB DEBIT&lt;br /&gt; UK Halifax Visa Debit&lt;br /&gt;&lt;br /&gt;3B 6A 00 FF 41 42 43 44 32 45 46 47 48 49&lt;br /&gt; Austria card - JCOP 31/36K&lt;br /&gt;&lt;br /&gt;3B 6B 00 00 00 31 80 64 2D A0 02 0C 8C 61 27&lt;br /&gt; SmartEMV prototype&lt;br /&gt;&lt;br /&gt;3B 6B 00 00 00 31 80 64 43 B0 02 00 8C 61 27&lt;br /&gt; Bull Odyssey 1.2 (Javacard 2.0)&lt;br /&gt;&lt;br /&gt;3B 6B 00 00 80 65 A1 09 03 01 97 83 0E 90 00&lt;br /&gt; Visa Card - Worldcard - YapÄ±Kredi / Turkey&lt;br /&gt;&lt;br /&gt;3B 6B 00 00 80 65 B0 83 01 01 74 83 00 90 00&lt;br /&gt; GemXpresso Pro R3 with 64K EEPROM&lt;br /&gt;&lt;br /&gt;3B 6B 00 00 80 65 B0 83 01 03 74 83 00 90 00&lt;br /&gt; Gemplus GemXpresso PRO 64K R3 v1&lt;br /&gt;&lt;br /&gt;3B 6B 00 00 80 65 B0 83 01 04 74 83 00 90 00&lt;br /&gt; Gemplus GXP3 64V2N&lt;br /&gt; U.S. Department of Defense Common Access Card (DoD CAC)&lt;br /&gt;&lt;br /&gt;3B 6B 00 FF 33 00 00 09 FA 10 00 80 01 FF FF&lt;br /&gt; Atmel 6464C PRO 64K&lt;br /&gt;&lt;br /&gt;3B 6B .. FF 80 62 .. A2 56 46 69 6E 45 49 44&lt;br /&gt; JCOP20 v2.x&lt;br /&gt;&lt;br /&gt;3B 6C 00 00 10 10 10 30 00 00 00 00 00 00 00 00&lt;br /&gt; Datacard Group Aptura Development Card V1.1b&lt;br /&gt;&lt;br /&gt;3B 6D 00 00 00 31 C0 71 D6 64 11 22 33 01 83 90 00&lt;br /&gt; Egg (bank) VISA&lt;br /&gt; First Direct (bank) Maestro card&lt;br /&gt; First Direct Gold VISA&lt;br /&gt; UK Barclaycard Platinum VISA&lt;br /&gt; UK Barclaycard VISA&lt;br /&gt; UK Halifax Platinum VISA&lt;br /&gt; UK HSBC MasterCard&lt;br /&gt;&lt;br /&gt;3B 6D 00 00 00 31 C0 71 D6 64 34 C7 01 00 84 90 00&lt;br /&gt; DeLaRue ProlifIC&lt;br /&gt;&lt;br /&gt;3B 6D 00 00 00 31 C0 71 D6 64 34 C7 02 00 84 90 00&lt;br /&gt; Cybelys card (Thalys fidelity card)&lt;br /&gt;&lt;br /&gt;3B 6D 00 00 00 31 C0 71 D6 64 38 D0 02 00 84 90 00&lt;br /&gt; EMV Visa Electron (Oberthur)&lt;br /&gt;&lt;br /&gt;3B 6D 00 00 00 31 C0 71 D6 64 38 D0 03 00 84 90 00&lt;br /&gt; HSBC Visa/MasterCard credit card&lt;br /&gt; Barclay Card MasterCard&lt;br /&gt;&lt;br /&gt;3B 6D 00 00 00 31 C0 71 D6 64 4E D8 01 01 84 90 00&lt;br /&gt; UK Capital One Platinum MasterCard&lt;br /&gt;&lt;br /&gt;3B 6D 00 00 00 31 C0 71 D6 64 58 D7 01 00 84 90 00&lt;br /&gt; UK Nationwide Bank Visa Delta&lt;br /&gt; UK First Direct Maestro&lt;br /&gt; UK Halifax Platinum Visa&lt;br /&gt; UK Co-operative Bank Visa Debit (produced 2003-2004)&lt;br /&gt;&lt;br /&gt;3B 6D 00 00 00 31 80 64 2D A0 04 0C 71 96 8C 61 29&lt;br /&gt; UK Co-operative Bank Visa Debit (produced 2002)&lt;br /&gt;&lt;br /&gt;3B 6D 00 00 00 31 C0 71 D6 65 11 22 33 01 83 90 00&lt;br /&gt; UK Co-operative Bank Visa Debit (produced 2006)&lt;br /&gt;&lt;br /&gt;3B 6D 00 00 80 31 80 65 B0 06 01 01 77 83 00 90 00&lt;br /&gt; GemXpresso Lite: with EMV application&lt;br /&gt;&lt;br /&gt;3B 6D 00 00 80 31 80 65 B0 43 01 00 77 83 00 90 00&lt;br /&gt; Gemplus GemXpresso Lite&lt;br /&gt;&lt;br /&gt;3B 6D 00 00 80 31 80 65 B0 83 01 02 90 83 00 90 00&lt;br /&gt; DeutscheBank Identification card&lt;br /&gt;&lt;br /&gt;3B 6D 00 FF 00 31 80 71 8E 64 48 D5 02 00 82 90 00&lt;br /&gt; Blue for Business, American Express@Business&lt;br /&gt;&lt;br /&gt;3B 6D 00 FF 80 65 53 43 01 0D 06 73 94 21 1B 81 0[1,5]&lt;br /&gt; Giesecke &amp; Devrient CardToken 350 (ICCD)&lt;br /&gt;&lt;br /&gt;3B 6E 00 00 00 31 80 71 86 65 01 64 02 22 32 80 90 00&lt;br /&gt; MasterCard Card - bonus plus (paypass) - Garanti Bank / Turkey&lt;br /&gt;&lt;br /&gt;3B 6E 00 00 00 31 80 71 86 65 01 64 02 22 32 83 90 00&lt;br /&gt; MasterCard Card - bonus YKM - Garanti Bank / Turkey&lt;br /&gt;&lt;br /&gt;3B 6E 00 00 00 31 80 71 86 65 01 67 02 A0 0A 83 90 00&lt;br /&gt; Australian ANZ First Visa Card from the ANZ&lt;br /&gt; (Australia and New Zealand) Bank&lt;br /&gt;&lt;br /&gt;3B 6E 00 00 00 31 80 71 86 65 47 44 23 01 02 83 90 00&lt;br /&gt; Nat West Master Card&lt;br /&gt;&lt;br /&gt;3B 6E 00 00 00 31 80 71 86 65 47 44 24 01 81 83 90 00&lt;br /&gt; MasterCard Card - Maximum - IS Bank / Turkey&lt;br /&gt; Visa Card - Axess - Akbank / Turkey&lt;br /&gt;&lt;br /&gt;3B 6E 00 00 00 31 C0 65 76 B4 01 01 60 71 D6 8C 61 1F&lt;br /&gt; MasterCard Silver from Viseca Card Services SA&lt;br /&gt; http://www.viseca.ch/html/en/kreditkarten/produkte_neutrale_karten.php&lt;br /&gt;&lt;br /&gt;3B 6E 00 00 00 31 C0 65 77 B2 01 03 47 71 D6 8C 61 31&lt;br /&gt; UK Barclaycard Business VISA&lt;br /&gt;&lt;br /&gt;3B 6E 00 00 00 31 C0 65 77 B3 01 00 70 71 D6 8C 61 33&lt;br /&gt; Italian Cassa di Risparmio di Padova e Rovigo (San Paolo IMI group) Bancomat Card&lt;br /&gt;&lt;br /&gt;3B 6E 00 00 00 31 C0 71 86 65 01 64 02 22 33 83 90 00&lt;br /&gt; UK NatWest ServiceCard 100 Maestro&lt;br /&gt; Visa Card - bonus - Garanti Bank / Turkey&lt;br /&gt; UK Royal Bank of Scotland Highline Maestro Debit&lt;br /&gt;&lt;br /&gt;3B 6E 00 00 00 31 C0 71 86 65 01 78 01 27 34 83 90 00&lt;br /&gt; UK NatWest ServiceCard 100 Maestro&lt;br /&gt; Visa Card - Gold - CARDFINANS  / Turkey&lt;br /&gt;&lt;br /&gt;3B 6E 00 00 00 31 C0 71 C6 65 01 B0 01 03 37 83 90 00&lt;br /&gt; UK NatWest Business MasterCard&lt;br /&gt; UK NatWest Cashcard - Maestro / SOLO&lt;br /&gt;&lt;br /&gt;3B 6E 00 00 00 31 C0 71 D6 65 7D E4 01 10 A0 83 90 00&lt;br /&gt; VISA card, issued by the ANWB, the Dutch national Automobile club&lt;br /&gt; VISA Card - Maximum - Oyak Bank / Turkey&lt;br /&gt; VISA - Barclays Premier&lt;br /&gt;&lt;br /&gt;3B 6E 00 00 00 31 C0 71 D6 65 7D E4 01 11 A0 83 90 00&lt;br /&gt; UK CapitalOne Platinum Mastercard&lt;br /&gt;&lt;br /&gt;3B 6E 00 00 00 31 C0 71 D6 65 A3 03 01 80 00 83 90 00&lt;br /&gt; UK First Direct (HSBC) Maestro / Cirrus&lt;br /&gt;&lt;br /&gt;3B 6E 00 00 00 62 .. 43 57 41 56 41 4E 54 10 81 90 00&lt;br /&gt; Setec SetCOS 4.3.0&lt;br /&gt;&lt;br /&gt;3B 6E 00 00 00 62 00 00 57 41 56 41 4E 54 10 81 90 00&lt;br /&gt; Setec SetCOS 5.1.0 EMV + AVANT&lt;br /&gt;&lt;br /&gt;3B 6E 00 00 45 73 74 45 49 44 20 76 65 72 20 31 2E 30&lt;br /&gt; Estonian Identity Card (EstEID v1.5 multos)&lt;br /&gt;&lt;br /&gt;3B 6E 00 00 80 31 80 65 B0 03 01 01 5E 83 00 00 90 00&lt;br /&gt; FirstUSA Visa&lt;br /&gt;&lt;br /&gt;3B 6E 00 00 80 31 80 65 B0 03 02 01 5E 83 00 00 90 00&lt;br /&gt; Gemplus GemXpresso 211is&lt;br /&gt;&lt;br /&gt;3B 6E 00 FF 00 62 00 00 57 41 56 41 4E 54 10 81 90 00&lt;br /&gt; debit card (Visa Electron) issued by Nordea bank&lt;br /&gt;&lt;br /&gt;3B 6E 00 FF 45 73 74 45 49 44 20 76 65 72 20 31 2E 30&lt;br /&gt; Estonian Identity Card (EstEID v1.0 warm)&lt;br /&gt;&lt;br /&gt;3B 6F 00 00 00 67 2. 43 46 49 53 45 12 52 66 FF 81 90 00&lt;br /&gt; Setec SetCOS 4.3.2&lt;br /&gt;&lt;br /&gt;3B 6F 00 00 80 31 C0 52 00 83 64 02 19 08 32 83 83 90 00&lt;br /&gt; Bancomer Mexican Bank&lt;br /&gt;&lt;br /&gt;3B 6F 00 00 80 31 C0 52 13 2F 64 02 19 08 32 83 83 90 00&lt;br /&gt; Cajamadrid-UCM (Madrid, Spain) Cash/Visa Electron&lt;br /&gt;&lt;br /&gt;3B 6F 00 00 80 31 C0 52 16 B9 64 05 66 80 32 83 83 90 00&lt;br /&gt; Banorte Mexican Bank&lt;br /&gt;&lt;br /&gt;3B 6F 00 00 80 31 E0 5B 4E 4F 4B 00 00 00 00 00 00 02 00&lt;br /&gt; Norsk-Tipping (Buypass) Monodex card&lt;br /&gt;&lt;br /&gt;3B 6F 00 00 80 31 E0 5B 59 54 4C 00 00 00 00 00 00 02 00&lt;br /&gt; Turkish Armed Force - Daily Social Facility Usage Card&lt;br /&gt;&lt;br /&gt;3B 6F 00 00 80 31 E0 6B 01 03 05 02 E0 55 55 55 55 55 55&lt;br /&gt; American Express Gold Credit Card&lt;br /&gt;&lt;br /&gt;3B 6F 00 00 80 31 E0 6B 04 03 03 04 05 55 55 55 55 55 55&lt;br /&gt; Blue American Express Card&lt;br /&gt;&lt;br /&gt;3B 6F 00 00 80 31 E0 6B 04 06 03 04 40 55 55 55 55 55 55&lt;br /&gt; Blue American Express Card&lt;br /&gt;&lt;br /&gt;3B 6F 00 00 80 31 E0 6B 04 06 05 02 17 55 55 55 55 55 55&lt;br /&gt; Marx Software Security - Cryptoken M2048, MULTOS, Infineon SLE66CX, 64kByte&lt;br /&gt; http://www.marx.com/en/&lt;br /&gt;&lt;br /&gt;3B 6F 00 00 80 31 E0 6B 04 20 05 02 30 55 55 55 55 55 55&lt;br /&gt; Buypass card for Norsk Tipping (http://norsk-tipping.no)&lt;br /&gt;&lt;br /&gt;3B 6F 00 00 80 31 E0 6B 04 20 05 02 47 55 55 55 55 55 55&lt;br /&gt; "Norsk-Tipping (Buypass) Monodex card"&lt;br /&gt; bought from http://buypass.no and used to access norwegian state services at http://altinn.no&lt;br /&gt;&lt;br /&gt;3B 6F 00 00 80 31 E0 6B 04 20 05 02 58 55 55 55 55 55 55&lt;br /&gt; Norsk Tipping online player card &lt;http://www.norsk-tipping.no/&gt;&lt;br /&gt; Norwegian government controlled betting company&lt;br /&gt;&lt;br /&gt;3B 6F 00 00 80 31 E0 6B 05 08 05 02 83 55 55 55 55 55 55&lt;br /&gt; Bank of Montreal debit card&lt;br /&gt;&lt;br /&gt;3B 6F 00 00 80 31 E0 6B 84 06 03 04 31 55 55 55 55 55 55&lt;br /&gt; Multos Developer Sample&lt;br /&gt;&lt;br /&gt;3B 6F 00 00 80 31 E0 6B 84 06 0E 02 02 55 55 55 55 55 55&lt;br /&gt; Multos Developer Sample&lt;br /&gt;&lt;br /&gt;3B 6F 00 00 80 31 E0 6B 84 20 05 02 39 55 55 55 55 55 55&lt;br /&gt; Multos 14D (2-0-10) 64K Developer Card&lt;br /&gt;&lt;br /&gt;3B 6F 00 00 80 31 E0 6B 84 20 05 02 42 55 55 55 55 55 55&lt;br /&gt; Multos 14Dc(6-0-13) 64K Dual-Interface Developer Card&lt;br /&gt;&lt;br /&gt;3B 6F 00 00 80 5A .. 0[1-5] .. .. .. .. .. .. .. .. 82 90 00&lt;br /&gt; Card supporting a Calypso application Rev 1&lt;br /&gt; Typically: French "Navigo" transport card&lt;br /&gt;&lt;br /&gt;3B 6F 00 00 80 5A 08 03 03 00 00 00 01 56 64 F6 82 90 00&lt;br /&gt; carte transport bus/tram "atout.tag" semitag grenoble&lt;br /&gt;&lt;br /&gt;3B 6F 00 00 80 66 45 46 01 38 18 03 53 02 31 10 82 90 00&lt;br /&gt; FÃ¡brica Nacional de Moneda y Timbre FNMT WG10&lt;br /&gt; http://www.fnmt.es/es/html/tage/fichaTarjeta/fp1_ta_01.asp&lt;br /&gt;&lt;br /&gt;3B 6F 00 FF 52 53 41 53 65 63 75 72 49 44 28 52 29 31 30&lt;br /&gt; RSA SecurID SID800 token&lt;br /&gt;&lt;br /&gt;3B 6F 00 FF 53 46 53 45 2D 43 58 33 32 32 2D 56 18 02 02&lt;br /&gt; Giesecke &amp; Devrient SmartCafe Expert 2.0&lt;br /&gt;&lt;br /&gt;3B 6F 00 FF 00 56 72 75 54 6F 6B 6E 73 30 20 00 00 90 00&lt;br /&gt; ruToken-S (USB token)&lt;br /&gt; http://www.rutoken.ru/products/rutoken/rutoken-s/&lt;br /&gt;&lt;br /&gt;3B 75 12 00 00 29 05 01 04 01&lt;br /&gt; CAC Cryptographic Service Provider&lt;br /&gt; Axalto Cyberflex Access 64K V1 SM 4.1&lt;br /&gt;&lt;br /&gt;3B 75 13 00 00 43 09 EA 90 00&lt;br /&gt; Vitale 2 (french health card)&lt;br /&gt;&lt;br /&gt;3B 75 13 00 00 9C 02 02 01 02&lt;br /&gt; Cyberflex Access 32k v2&lt;br /&gt;&lt;br /&gt;3B 75 94 00 00 62 02 02 0[1-3] 01&lt;br /&gt; Schlumberger Cyberflex 32K e-gate&lt;br /&gt; Gemalto TOP US (product code HWP115278A)&lt;br /&gt;&lt;br /&gt;3B 76 11 00 00 00 9C 11 01 02 02&lt;br /&gt; Schlumberger Cyberflex Access 32K&lt;br /&gt;&lt;br /&gt;3B 76 11 00 00 00 9C 11 01 02 03&lt;br /&gt; RSA SecureID 5100&lt;br /&gt;&lt;br /&gt;3B 76 12 00 00 00 9C 11 01 03 03&lt;br /&gt; Precise BioMatch (TM) JavaCard (Schlumberger)&lt;br /&gt; www.precisebiometrics.com&lt;br /&gt;&lt;br /&gt;3B 76 98 00 00 00 9C 11 01 01 02&lt;br /&gt; CyberFlex Access 32&lt;br /&gt;&lt;br /&gt;3B 7A 11 00 02 48 4F 53 54 06 03 19 02 90 00&lt;br /&gt; Swedish bankcard with Mastercard from ICA-banken&lt;br /&gt;&lt;br /&gt;3B 7A 13 00 00 00 09 A5 05 01 00 B7 01 A6 01&lt;br /&gt; "cleyris" authentication card. monpass.santÃ© from Mutuelle GÃ©nÃ©rale&lt;br /&gt;&lt;br /&gt;3B 7A 94 00 00 80 65 A2 01 01 01 3D 72 D6 43&lt;br /&gt; Gemplus GemXpresso Pro R3 E32 PK&lt;br /&gt;&lt;br /&gt;3B 7B .. 00 00 80 62 0. 51 56 46 69 6E 45 49 44&lt;br /&gt; Setec SetCOS 5.1.0&lt;br /&gt;&lt;br /&gt;3B 7B 18 00 00 00 31 C0 64 77 E3 03 00 82 90 00&lt;br /&gt; Oberthur Cosmopolic 64K v5.2 D&lt;br /&gt;&lt;br /&gt;3B 7B 18 00 00 00 31 C0 64 77 E9 10 00 01 90 00&lt;br /&gt; Oberthur Card Systems: Cosmo 64 RSA V5.4 (ISK Key Set: 404142 .. 4E4F)&lt;br /&gt;&lt;br /&gt;3B 7B 94 00 00 80 62 11 51 56 46 69 6E 45 49 44&lt;br /&gt; Finnish Electronic ID card (fineid card www.fineid.fi)&lt;br /&gt;&lt;br /&gt;3B 7B 94 00 00 80 65 B0 83 01 0[1,3] 74 83 00 90 00&lt;br /&gt; Gemplus GemXpresso Pro R3 (E64 PK)&lt;br /&gt;&lt;br /&gt;3B 7B 95 00 00 80 65 B0 83 01 04 74 83 00 90 00&lt;br /&gt; Gemplus GemXpresso Pro 64K R3 FIPS v2&lt;br /&gt;&lt;br /&gt;3B 7D 11 00 00 00 31 80 71 8E 64 52 D9 01 00 82 90 00&lt;br /&gt; Oberthur Galactic V2&lt;br /&gt;&lt;br /&gt;3B 7D 11 00 00 00 31 80 71 8E 64 77 E3 01 00 82 90 00&lt;br /&gt; Oberthur Cosmo 64k RSA v5&lt;br /&gt;&lt;br /&gt;3B 7D 11 00 00 00 31 80 71 8E 64 77 E3 02 00 82 90 00&lt;br /&gt; Oberthur 64k v5/2.2.0&lt;br /&gt;&lt;br /&gt;3B 7D 11 00 00 00 31 80 71 8E 64 86 D6 01 00 81 90 00&lt;br /&gt; DOD-CAC&lt;br /&gt;&lt;br /&gt;3B 7D 18 00 00 00 31 80 71 8E 64 77 E3 01 00 82 90 00&lt;br /&gt; Oberthur 64k v4/2.1.1&lt;br /&gt;&lt;br /&gt;3B 7D 94 00 00 80 31 80 65 B0 83 01 02 90 83 00 90 00&lt;br /&gt; Gem e-Seal&lt;br /&gt; (GemSafeXpresso 32k R3.2?)&lt;br /&gt;&lt;br /&gt;3B 7D 94 00 00 80 31 80 65 B0 83 01 01 90 83 00 90 00&lt;br /&gt; GemSafeXpresso 16k R3.2&lt;br /&gt;&lt;br /&gt;3B 7D 94 00 00 80 31 80 65 B0 83 02 04 7E 83 00 90 00&lt;br /&gt; GXP Pro R3.2 64K, GemSafe applet MPCOS v1.11&lt;br /&gt;&lt;br /&gt;3B 7D 94 00 00 80 31 80 65 B0 83 11 00 AC 83 00 90 00&lt;br /&gt; GemCombiXpresso R4 72K&lt;br /&gt;&lt;br /&gt;3B 7D 94 00 00 80 31 80 65 B0 83 11 C0 A9 83 00 90 00&lt;br /&gt; GemXpresso R4 72K&lt;br /&gt;&lt;br /&gt;3B 7D 95 00 00 80 31 80 65 B0 83 02 04 7E 83 00 90 00&lt;br /&gt; Gemalto's Classic TPC HM CC Mifare 1K White PVC&lt;br /&gt; (Old name GemSafeXpresso 64K)&lt;br /&gt;&lt;br /&gt;3B 7D 95 00 00 80 31 80 65 B0 83 11 C0 A9 83 00 90 00&lt;br /&gt; Portuguese identity card&lt;br /&gt; http://www.cartaodecidadao.pt&lt;br /&gt;&lt;br /&gt;3B 7D 96 00 00 80 31 80 65 B0 83 11 13 AC 83 00 90 00&lt;br /&gt; CAC card (GEMALTO GCX4 72K DI)&lt;br /&gt;&lt;br /&gt;3B 7D 96 00 00 80 31 80 65 B0 83 11 40 AC 83 00 90 00&lt;br /&gt; GemXpresso R4 64k&lt;br /&gt;&lt;br /&gt;3B 7D 96 00 00 80 31 80 65 B0 83 11 C0 A9 83 00 90 00&lt;br /&gt; Gemplus X-Presso Pro 64k&lt;br /&gt;&lt;br /&gt;3B 7D 96 00 00 80 31 80 65 B0 83 11 C0 C8 83 00 90 00&lt;br /&gt; TOP IM GX4 from Gemalto (was GemXpresso R4)&lt;br /&gt; Java Card 2.2.1&lt;br /&gt; Global Platform 2.1.1 (amendment A)&lt;br /&gt;&lt;br /&gt;3B 7D 96 00 00 80 31 80 65 B0 93 11 D0 A9 83 00 90 00&lt;br /&gt; Gemalto Classic TPC (Trusted PKI Card) IM&lt;br /&gt; Classic TPC IM (PKCS#15): 12 x RSA key containers (standard profile)&lt;br /&gt;&lt;br /&gt;3B 7E 11 00 00 00 6A 11 63 54 08 30 24 01 .. .. 21 90 01&lt;br /&gt; Sagem Windows for smart cards&lt;br /&gt;&lt;br /&gt;3B 7F 11 00 00 00 6A 43 45 52 45 53 02 2C 34 02 00 03 90 00&lt;br /&gt; FNMT-CERES ST (FÃ¡brica Nacional de Moneda y Timbre)&lt;br /&gt;&lt;br /&gt;3B 7F 11 00 00 80 31 C0 52 21 57 64 02 18 19 53 83 83 90 00&lt;br /&gt; banking card (www.caixacatalunya.com)&lt;br /&gt; student id of Universitat  Autonoma de Barcelona&lt;br /&gt;&lt;br /&gt;3B 7E 13 00 00 00 6A 11 63 54 05 48 .. .. .. 01 22 90 00&lt;br /&gt; Sagem Windows for smart cards&lt;br /&gt;&lt;br /&gt;3B 7F 13 00 FF 45 43 4F 53 76 31 31 30 28 63 29 50 46 42 4D&lt;br /&gt; ECOS-Card [Experimental Card Operating System V.1.1] by Philipp Maier&lt;br /&gt; http://www.runningserver.com/?page=runningserver.content.download.ecos&lt;br /&gt;&lt;br /&gt;3B 7F 11 00 00 00 31 C0 53 CA C4 01 64 52 D9 04 00 82 90 00&lt;br /&gt; DoD CAC, Oberthur CosmopolIC 32K V4&lt;br /&gt;&lt;br /&gt;3B 7F 18 00 00 00 31 C0 73 9E 01 0B 64 52 D9 03 00 82 90 00&lt;br /&gt; Oberthur Galactic V3 (32k)&lt;br /&gt;&lt;br /&gt;3B 7F 18 00 00 00 31 C0 73 9E 01 0B 64 52 D9 04 00 82 90 00&lt;br /&gt; Oberthur CosmopolIC 32K v4 Fast ATR&lt;br /&gt; Oberthur Authentic&lt;br /&gt;&lt;br /&gt;3B 7F 18 00 00 00 31 C0 73 9E 01 0B 64 52 D9 05 00 82 90 00&lt;br /&gt; Oberthur 32k BIO&lt;br /&gt;&lt;br /&gt;3B 7F 38 00 00 00 6A 43 45 52 45 53 02 2C 34 02 02 03 90 00&lt;br /&gt; WG10&lt;br /&gt;&lt;br /&gt;3B 7F 38 00 00 00 6A 43 45 52 45 53 02 2C 34 03 10 03 90 00&lt;br /&gt; Used card AragÃ³n governement (AragÃ³n - EspaÃ±a)&lt;br /&gt;&lt;br /&gt;3B 7F 38 00 00 00 6A 44 4E 49 65 [1,2]0 02 4C 34 01 13 03 90 00&lt;br /&gt; DNI electronico (Spanish electronic ID card)&lt;br /&gt; http://www.dnielectronico.es&lt;br /&gt;&lt;br /&gt;3B 81 1F 00 CC 52&lt;br /&gt; eToken R2 2242&lt;br /&gt;&lt;br /&gt;3B 81 80 01 80 80&lt;br /&gt; Mifare DESFire&lt;br /&gt;&lt;br /&gt;3B 82 00 55 22&lt;br /&gt; GSM-SIM TELE2 Smart (Estonia, prepaid)&lt;br /&gt;&lt;br /&gt;3B 82 81 31 76 43 C0 02 C5&lt;br /&gt; CardOS/M2 V2.01(SLE44CxxS)&lt;br /&gt;&lt;br /&gt;3B 82 81 31 76 43 C1 03 C5&lt;br /&gt; i.ti (ticket card for Collogne/Bonn)&lt;br /&gt; CardOS M2 Combi V2.02 (SLE44R42S)&lt;br /&gt;&lt;br /&gt;3B 83 00 12 10 96&lt;br /&gt; GSM-SIM T-Mobil D1 (900MHz)&lt;br /&gt;&lt;br /&gt;3B 85 00 12 02 01 00 96&lt;br /&gt; GSM-SIM Victorvox D1 (900MHz)&lt;br /&gt;&lt;br /&gt;3B 85 00 87 25 01 38 02&lt;br /&gt; GSM-SIM Viag Interkom E2 Loop GSM (1800MHz)&lt;br /&gt;&lt;br /&gt;3B 85 00 87 25 01 39 00&lt;br /&gt; GSM-SIM Telfort (Netherlands) 900 MHz&lt;br /&gt;&lt;br /&gt;3B 85 40 20 68 01 01 .. ..&lt;br /&gt; Schlumberger Cryptoflex 8k&lt;br /&gt;&lt;br /&gt;3B 85 40 20 68 01 01 03 05&lt;br /&gt; Schlumberger Cryptoflex Key Generation&lt;br /&gt;&lt;br /&gt;3B 85 40 20 68 01 01 05 01&lt;br /&gt; Schlumberger Cryptoflex 8k&lt;br /&gt;&lt;br /&gt;3B 86 40 20 68 01 01 02 04 AC&lt;br /&gt; Activcard Gold, SchlumbergerSema Cryptoflex 8k&lt;br /&gt;&lt;br /&gt;3B 85 40 FF 63 01 01 03 01&lt;br /&gt; Axalto Cryptoflex 16K&lt;br /&gt;&lt;br /&gt;3B 85 40 FE 68 01 01 02 04&lt;br /&gt; Axalto CryptoFlex 8K&lt;br /&gt;&lt;br /&gt;3B 86 80 01 4A 43 4F 50 33 30 12&lt;br /&gt; Mifare ProX T=CL&lt;br /&gt;&lt;br /&gt;3B 86 80 01 4A 43 4F 50 33 31 13&lt;br /&gt; JCOP BIO 31 Contactless Card&lt;br /&gt;&lt;br /&gt;3B 87 81 31 40 43 4D 46 43 20 31 33 31 6F&lt;br /&gt; Telekom Paycard&lt;br /&gt;&lt;br /&gt;3B 88 80 01 00 73 C8 40 00 00 90 00 62&lt;br /&gt; NXP JCOP 31 V2.2 36K - RFID I/F&lt;br /&gt;&lt;br /&gt;3B 88 80 01 00 73 C8 40 13 00 90 00 71&lt;br /&gt; Nokia 6131 NFC phone&lt;br /&gt; http://wiki.forum.nokia.com/index.php/Nokia_6131_NFC_-_FAQs&lt;br /&gt; Giesecke &amp; Devrientâ€™s (G&amp;D) Sm@rtCafÃ© Expert 3.1&lt;br /&gt;&lt;br /&gt;3B 88 81 31 20 55 00 57 69 6E 43 61 72 64 29&lt;br /&gt; SmartCard for Windows 1.0&lt;br /&gt;&lt;br /&gt;3B 89 00 91 26 91 06 00 01 22 01 00&lt;br /&gt; BT Cellnet SIM&lt;br /&gt;&lt;br /&gt;3B 8B 80 01 00 64 04 11 01 01 31 80 00 90 00 5A&lt;br /&gt; German Passport (issued Nov 2006)&lt;br /&gt; United Kingdom e-Passport&lt;br /&gt;&lt;br /&gt;3B 89 40 14 47 47 32 36 4D 35 32 38 30&lt;br /&gt; GSM-SIM e-plus (1800MHz)&lt;br /&gt;&lt;br /&gt;3B 89 80 01 00 64 04 15 01 02 00 90 00 EE&lt;br /&gt; German Passport (issued Apr 2007)&lt;br /&gt;&lt;br /&gt;3B 89 80 01 4A 43 4F 50 33 31 56 32 32 4A&lt;br /&gt; JCOP 31 v22 72K (with Mifare 1K emulation) - RFID I/F&lt;br /&gt;&lt;br /&gt;3B 89 80 01 4A 43 4F 50 34 31 56 32 32 4D&lt;br /&gt; New Zealand e-Passport&lt;br /&gt;&lt;br /&gt;3B 89 80 01 4D 54 43 4F 53 73 01 02 01 3F&lt;br /&gt; Contactless MTCOS&lt;br /&gt; http://www.masktech.de/&lt;br /&gt;&lt;br /&gt;3B 89 80 01 53 50 4B 32 35 44 49 90 00 DA&lt;br /&gt; SPK 2.5 D1&lt;br /&gt;&lt;br /&gt;3B 89 80 01 80 67 04 12 B0 03 05 01 02 4C&lt;br /&gt; Austrian Passport&lt;br /&gt;&lt;br /&gt;3B 8A 80 01 00 64 05 5C 02 03 31 80 90 00 16&lt;br /&gt; T-System Contactless Netkey Card&lt;br /&gt;&lt;br /&gt;3B 8A 80 01 00 64 05 76 02 03 31 80 90 00 3C&lt;br /&gt; T-System Contactless TCOS Min&lt;br /&gt;&lt;br /&gt;3B 8A 80 01 4A 43 4F 50 34 31 56 32 32 31 7F&lt;br /&gt; NXP JCOP 41 v2.2.1 72k RFID I/F&lt;br /&gt;&lt;br /&gt;3B 8A 80 01 80 65 A2 01 01 01 3D 72 D6 43 97&lt;br /&gt; Gemplus GemXpresso Pro R3 E32 PK (combi)&lt;br /&gt;&lt;br /&gt;3B 8A 00 91 01 00 16 00 01 16 01 00 96&lt;br /&gt; GSM-SIM T-Mobil D1 (900MHz)&lt;br /&gt;&lt;br /&gt;3B 8A 00 91 01 00 16 00 01 20 01 00 96&lt;br /&gt; GSM-SIM T-D1 prepaid (Xtra)&lt;br /&gt;&lt;br /&gt;3B 8A 00 91 01 00 16 00 01 20 02 00 96&lt;br /&gt; GSM-SIM (900MHz) card of the carrier t-mobile for their cellular&lt;br /&gt; network (phase 2+ with 3V)&lt;br /&gt;&lt;br /&gt;3B 8A 00 91 91 00 17 00 01 07 03 00 96&lt;br /&gt; T-Mobile prepaid 2G SIM&lt;br /&gt;&lt;br /&gt;3B 8A 00 92 02 03 91 08 00 01 01 04 00&lt;br /&gt; 32K SIM Card from the austrian telecom "ONE"&lt;br /&gt;&lt;br /&gt;3B 8E 80 01 80 31 80 66 40 90 89 12 08 02 83 01 90 00 0B&lt;br /&gt; ISO 14443B Type T = CL Infineon Card&lt;br /&gt;&lt;br /&gt;3B 8E 80 01 80 91 91 31 C0 64 77 E3 03 00 83 82 90 00 1C&lt;br /&gt; Belgian Passport&lt;br /&gt;&lt;br /&gt;3B 8F 01 80 25 A0 00 00 00 56 57 44 4B 34 30 30 06 00 B7&lt;br /&gt; SafeNet IKey4000&lt;br /&gt;&lt;br /&gt;3B 8F 80 01 80 4F 0C A0 00 00 03 06 03 00 01 00 00 00 00 6A&lt;br /&gt; Philips MIFARE Standard (1 Kbytes EEPROM)&lt;br /&gt; http://www.nxp.com/products/identification/mifare/classic/&lt;br /&gt; RFID - ISO 14443 Type A - Transport for London Oyster&lt;br /&gt;&lt;br /&gt;3B 8F 80 01 80 4F 0C A0 00 00 03 06 03 00 02 00 00 00 00 69&lt;br /&gt; Mifare card with 4k EEPROM&lt;br /&gt;&lt;br /&gt;3B 8F 80 01 80 4F 0C A0 00 00 03 06 03 00 03 00 00 00 00 68&lt;br /&gt; Contactless Mifare Ultralight&lt;br /&gt;&lt;br /&gt;3B 8F 80 01 80 4F 0C A0 00 00 03 06 03 FF 88 00 00 00 00 1C&lt;br /&gt; Infineon Mifare SLE 66R35&lt;br /&gt; http://www.infineon.com/cms/en/product/channel.html?channel=ff80808112ab681d0112ab69686e01ee&lt;br /&gt;&lt;br /&gt;3B 8F 80 01 80 4F 0C A0 00 00 03 06 0B 00 00 00 00 00 00 63&lt;br /&gt; RFID - ISO 15693 - EM Microelectronic-Marin SA&lt;br /&gt;&lt;br /&gt;3B 8F 80 01 80 4F 0C A0 00 00 03 06 0B 00 12 00 00 00 00 71&lt;br /&gt; RFID - ISO 15693 - Texas Instrument&lt;br /&gt;&lt;br /&gt;3B 8F 80 01 80 4F 0C A0 00 00 03 06 0A 00 1C 00 00 00 00 7E&lt;br /&gt; RFID - HID iCLASS 16K CL&lt;br /&gt;&lt;br /&gt;3B 8F 80 01 80 4F 0C A0 00 00 03 06 0B 00 14 00 00 00 00 77&lt;br /&gt; Philips ICode&lt;br /&gt; RFID - ISO 15693 - Philips Semiconductors&lt;br /&gt;&lt;br /&gt;3B 8F 80 01 80 91 E1 31 80 65 B0 83 11 00 AC 83 00 90 00 B7&lt;br /&gt; GemCombiXpresso R4 72K (contactless interface)&lt;br /&gt;&lt;br /&gt;3B 90 95 80 1F C3 59&lt;br /&gt; Dai Nippon Printing Co., DNP Standard-J T3.1&lt;br /&gt;&lt;br /&gt;3B 95 15 40 .. 68 01 02 .. ..&lt;br /&gt; Schlumberger CryptoFlex 8k v2&lt;br /&gt;&lt;br /&gt;3B 95 18 40 FF 62 01 02 01 04&lt;br /&gt; Schlumberger Cryptoflex 32K e-gate&lt;br /&gt;&lt;br /&gt;3B 95 18 40 FF 62 04 01 01 05&lt;br /&gt; Schlumberger CryptoFlex 32Ko V1&lt;br /&gt;&lt;br /&gt;3B 95 18 40 FF 64 02 01 01 02&lt;br /&gt; Schlumberger CryptoFlex 32Ko&lt;br /&gt;&lt;br /&gt;3B 95 94 40 FF 63 01 01 02 01&lt;br /&gt; Schlumberger Cryptoflex 16Ko&lt;br /&gt;&lt;br /&gt;3B 95 95 40 FF AE 01 01 02 03&lt;br /&gt; Axalto Cyberflex Access 64K v2a SM 2.3&lt;br /&gt;&lt;br /&gt;3B 95 95 40 FF AE 01 03 00 00&lt;br /&gt; Axalto - Cyberflex 64K&lt;br /&gt; Gemalto TOP IM FIPS CY2 (product code HWP115291A)&lt;br /&gt;&lt;br /&gt;3B 95 95 40 FF D0 00 1A 01 01&lt;br /&gt; Cyberflex Access 64k (v3)&lt;br /&gt;&lt;br /&gt;3B 95 95 40 FF D0 00 31 01 01&lt;br /&gt; Cyberflex Access E-gate V3&lt;br /&gt;&lt;br /&gt;3B 96 18 80 01 80 51 00 61 10 30 9F 00 61 10 30 9E&lt;br /&gt; Atmel/Athena T0 PC/SC Compliance Test Card No. 1 (warm reset)&lt;br /&gt;&lt;br /&gt;3B 98 13 40 0A A5 03 01 01 01 AD 13 11&lt;br /&gt; Belgium Electronic ID card&lt;br /&gt;&lt;br /&gt;3B 98 94 40 0A A5 03 01 01 01 AD 13 10&lt;br /&gt; Belgium Electronic ID card&lt;br /&gt;&lt;br /&gt;3B 99 94 00 91 08 91 06 00 01 06 06 00&lt;br /&gt; GSM-SIM Orange-UK (1800)&lt;br /&gt;&lt;br /&gt;3B 9A 94 00 91 01 00 17 00 01 23 10 00 96&lt;br /&gt; GSM-SIM Victorvox D1 (900MHz)&lt;br /&gt;&lt;br /&gt;3B 9A 94 00 91 01 00 17 00 01 23 11 00 96&lt;br /&gt; GSM-SIM Card T-D1 (900MHz)&lt;br /&gt;&lt;br /&gt;3B 99 94 00 91 99 93 12 00 01 16 02 00&lt;br /&gt; ORGA test systems - GSM Phase 2+ Test SIM&lt;br /&gt;&lt;br /&gt;3B 9A 96 00 92 01 66 93 17 00 02 12 04 00&lt;br /&gt; GSM SIM Bite.lv prepaid "Toxic"; 2008&lt;br /&gt;&lt;br /&gt;3B 9A 94 00 92 02 75 93 11 00 01 02 02 00&lt;br /&gt; SuperSIM&lt;br /&gt;&lt;br /&gt;3B 9A 96 00 92 03 49 93 16 00 01 21 01 00&lt;br /&gt; GSM-SIM card of the Austrian provider Yesss! (http://www.yesss.at)&lt;br /&gt;&lt;br /&gt;3B 9B 95 80 1F 47 80 31 A0 73 BE 21 00 53 34 99 05 D0&lt;br /&gt; GSM-SIM EMT "Diil", prepaid (Estonia)&lt;br /&gt;&lt;br /&gt;3B 9C 13 11 81 64 72 65 61 6D 63 72 79 70 74 00 04 08&lt;br /&gt; XPlusTV &amp; INXCT Access Card-9 (FIRECrypt)&lt;br /&gt;&lt;br /&gt;3B 9D 11 40 23 00 68 10 11 4D 69 6F 43 4F 53 00 90 00&lt;br /&gt; MioCOS 1.0&lt;br /&gt;&lt;br /&gt;3B 9D 94 40 23 00 68 20 01 4D 69 6F 43 4F 53 00 90 00&lt;br /&gt; Miotec (http://www.miotec.fi) smartcard running Miocos 2.0 on an Atmel AT90SC646&lt;br /&gt;&lt;br /&gt;3B 9E 94 80 1F C3 80 31 E0 73 FE 21 1B 66 D0 00 17 B4 00 00 A5&lt;br /&gt; Vodafone Ireland SIM card&lt;br /&gt;&lt;br /&gt;3B 9E 95 80 1F C3 80 31 A0 73 BE 21 13 67 29 02 01 04 04 CD 39&lt;br /&gt; Hutchison/3 3G USIM&lt;br /&gt; J+ SWIM WIB UMTS SIM Test card&lt;br /&gt; http://www.exceldata.es/microprocess/j%2Bswinwibusim.html&lt;br /&gt;&lt;br /&gt;3B 9D 95 80 1F C3 80 31 E0 52 4B 54 62 11 03 73 FE 21 1B 8F&lt;br /&gt; KT WiBro UICC (2.3 GHz mobile WiMAX in South Korea)&lt;br /&gt;&lt;br /&gt;3B 9D 95 80 1F C3 80 63 AF 03 A0 73 1A 21 1B 83 0F 90 00 F4&lt;br /&gt; Greece TIM GSM SIM&lt;br /&gt;&lt;br /&gt;3B 9F 21 0E 49 52 44 45 54 4F 20 41 43 53 20 56 34 2E 31 9D&lt;br /&gt; Foxtel paytv decoder in Australia acs 4.1 Irdeto2&lt;br /&gt;&lt;br /&gt;3B 9F .. 80 1F C3 00 68 1. 44 05 01 46 49 53 45 31 C8 .. 90 00 ..&lt;br /&gt; Setec SetCOS 4.4.1&lt;br /&gt;&lt;br /&gt;3B 9E 95 80 1F C7 80 31 E0 73 FE 21 1B 66 D0 00 07 00 1E 00 1A&lt;br /&gt; 3 ireland http://www.three.ie&lt;br /&gt; UK '3' network GSM-3G SIM&lt;br /&gt;&lt;br /&gt;3B 9F 94 40 1E 00 67 11 43 46 49 53 45 10 52 66 FF 81 90 00&lt;br /&gt; Setec / FINEID&lt;br /&gt; SETEC Instant EID&lt;br /&gt;&lt;br /&gt;3B 9F 94 40 1E 00 67 16 43 46 49 53 45 10 52 66 FF 81 90 00&lt;br /&gt; RSA SecurID 3100 or Utimaco Safeware Smartcard&lt;br /&gt; SetCOS 4.3.1 Revision Unknown&lt;br /&gt;&lt;br /&gt;3B 9F 94 40 1E 00 67 .. 43 46 49 53 45 10 52 66 FF 81 90 00&lt;br /&gt; SLE66CX160S running SETCOS 4.3.1 Revision A&lt;br /&gt;&lt;br /&gt;3B 9F 94 80 1F C3 00 68 10 44 05 01 46 49 53 45 31 C8 07 90 00 18&lt;br /&gt; SetCOS 4.3.0 32K RSA&lt;br /&gt; Instant EID IP2&lt;br /&gt; SETEC SetCard 32K PKI Evaluated SetCOS 4.4.1a2&lt;br /&gt;&lt;br /&gt;3B 9F 95 80 1F C3 80 31 A0 73 BE 21 13 67 47 01 05 01 04 00 00 99&lt;br /&gt; T-Mobile Nederlands http://www.tmobile.nl&lt;br /&gt;&lt;br /&gt;3B 9F 95 80 1F C3 80 31 E0 73 FE 21 1B 63 E2 09 A9 83 0F 90 00 8D&lt;br /&gt; GSM-SIM EMT (Estonia, WPKI eID support)&lt;br /&gt;&lt;br /&gt;3B 9F 95 80 1F C3 80 31 E0 73 FE 21 1B B3 E2 01 74 83 0F 90 00 88&lt;br /&gt; Gemplus GemXplore 3G USIM&lt;br /&gt;&lt;br /&gt;3B 9F 95 80 1F C7 80 31 E0 73 FE 21 1B 63 E2 04 A5 83 0F 90 00 88&lt;br /&gt; Cingular "64Ksmartchip" GSM SIM&lt;br /&gt;&lt;br /&gt;3B 9F 96 80 1F C3 00 68 10 44 05 01 46 49 53 45 31 C8 07 90 00 1A&lt;br /&gt; SETEC SetCard 32K PKI Evaluated SetCOS 4.4.1&lt;br /&gt;&lt;br /&gt;3B 9F 96 80 1F C3 80 31 E0 73 FE 21 1B B3 E2 02 7E 83 0F 90 00 82&lt;br /&gt; Vodafone SIM Card (D2, 1800Mhz, Germany, Twincard, possibly others too?), manufactured by Gemplus (See stamp on the chip)&lt;br /&gt; MobileOne (Singaporean 3G/GSM operator) SIM card "II(3G-64) M1 3G "&lt;br /&gt;&lt;br /&gt;3B 9F 96 80 1F C7 80 31 E0 73 FE 21 1B 63 E2 03 94 83 0F 90 00 BD&lt;br /&gt; USIM (3G DF) Orange&lt;br /&gt;&lt;br /&gt;3B A7 00 40 .. 80 65 A2 08 .. .. ..&lt;br /&gt; Gemplus GemSAFE Smart Card (8K)&lt;br /&gt;&lt;br /&gt;3B A7 00 40 14 80 65 A2 14 01 01 37&lt;br /&gt; Gemplus GPK4000sdo&lt;br /&gt;&lt;br /&gt;3B A7 00 40 18 80 65 A2 08 01 01 52&lt;br /&gt; Gemplus GPK8000&lt;br /&gt; GemSAFE Smart Card (8K)&lt;br /&gt;&lt;br /&gt;3B A7 00 40 18 80 65 A2 09 01 01 52&lt;br /&gt; Gemplus GPK16000&lt;br /&gt;&lt;br /&gt;3B A7 00 40 18 80 65 A2 09 01 02 52&lt;br /&gt; Gemplus GPK16000&lt;br /&gt;&lt;br /&gt;3B A7 00 40 18 80 65 A2 09 01 03 52&lt;br /&gt; Gemplus GemSAFE std (GPK16000?)&lt;br /&gt;&lt;br /&gt;3B A8 00 81 71 46 5D 00 54 43 4F 53 31 2E 32 00 65&lt;br /&gt; Telesec TCOS 1.2&lt;br /&gt;&lt;br /&gt;3B A8 00 81 71 46 5D 00 54 43 4F 53 31 2E 32 4B 2E&lt;br /&gt; CeloCom Card with TCOS 1.2&lt;br /&gt;&lt;br /&gt;3B AA 00 40 14 47 47 32 47 54 35 53 34 38 30&lt;br /&gt; GSM-SIM Libertel (900MHz)&lt;br /&gt;&lt;br /&gt;3B AA 00 40 80 53 4F 80 53 45 03 04 11 AA A3&lt;br /&gt; "open platform" ATMEGA "new Generation"&lt;br /&gt; http://www.masterixweb-italy.com/new/images/articoli/atmega.jpg&lt;br /&gt;&lt;br /&gt;3B AB 00 81 31 40 45 80 31 C0 65 08 06 80 00 00 00 00 84&lt;br /&gt; Reloadable Visa Cash card (Schlumberger), Bank of America&lt;br /&gt;&lt;br /&gt;3B AC 00 40 2A 00 12 25 00 64 80 00 03 10 00 90 00&lt;br /&gt; Sesam Vitale card CPS (Carte Profesionnel de SantÃ©)&lt;br /&gt;&lt;br /&gt;3B AC 00 40 2A 00 12 25 00 64 80 82 02 12 00 90 00&lt;br /&gt; Sesam Vitale card CPS (Carte Profesionnel de SantÃ©)&lt;br /&gt; &lt;br /&gt;3B AD 00 40 FF 80 31 80 65 B0 05 01 01 5E 83 00 90 00&lt;br /&gt; Dallas Semiconductor iButton&lt;br /&gt; JIB&lt;br /&gt;&lt;br /&gt;3B B0 11 00 81 31 90 73 F2&lt;br /&gt; SamOS 2.7&lt;br /&gt;&lt;br /&gt;3B B2 11 00 10 80 00 01&lt;br /&gt; Atmel memory card AT88SC0104C&lt;br /&gt; http://www.atmel.com/dyn/resources/prod_documents/doc5210.pdf&lt;br /&gt;&lt;br /&gt;3B B2 11 00 10 80 00 02&lt;br /&gt; Atmel memory card AT88SC0204C (Atmel memory card)&lt;br /&gt; http://www.atmel.com/dyn/resources/prod_documents/doc5210.pdf&lt;br /&gt;&lt;br /&gt;3B B2 11 00 10 80 00 04&lt;br /&gt; Atmel memory card AT88SC0404C&lt;br /&gt; http://www.atmel.com/dyn/resources/prod_documents/doc5210.pdf&lt;br /&gt;&lt;br /&gt;3B B2 11 00 10 80 00 08&lt;br /&gt; Atmel memory card AT88SC0808C&lt;br /&gt; http://www.atmel.com/dyn/resources/prod_documents/doc5210.pdf&lt;br /&gt;&lt;br /&gt;3B B2 11 00 10 80 00 16&lt;br /&gt; Atmel memory card AT88SC1616C&lt;br /&gt; http://www.atmel.com/dyn/resources/prod_documents/doc5210.pdf&lt;br /&gt;&lt;br /&gt;3B B3 11 00 00 00 00 32&lt;br /&gt; Atmel memory card AT88SC3216C&lt;br /&gt; http://www.atmel.com/dyn/resources/prod_documents/doc5210.pdf&lt;br /&gt;&lt;br /&gt;3B B3 11 00 00 00 00 64&lt;br /&gt; Atmel memory card AT88SC6416C&lt;br /&gt; http://www.atmel.com/dyn/resources/prod_documents/doc5210.pdf&lt;br /&gt;&lt;br /&gt;3B B3 11 00 00 00 01 28&lt;br /&gt; Atmel memory card AT88SC12816C&lt;br /&gt; http://www.atmel.com/dyn/resources/prod_documents/doc5210.pdf&lt;br /&gt;&lt;br /&gt;3B B3 11 00 00 00 02 56&lt;br /&gt; Atmel memory card AT88SC25616C&lt;br /&gt; http://www.atmel.com/dyn/resources/prod_documents/doc5210.pdf&lt;br /&gt;&lt;br /&gt;3B B2 11 00 10 80 00 08&lt;br /&gt; Smart VR Card - GD Burti&lt;br /&gt;&lt;br /&gt;3B B7 11 00 81 31 90 43 A5 .. .. .. .. .. .. ..&lt;br /&gt; Siemens CardOS/M V1.4 (SLE44C80S)&lt;br /&gt;&lt;br /&gt;3B B7 11 00 81 31 90 53 B5 .. .. .. .. .. .. ..&lt;br /&gt; CardOS EM/V1.4 (SLE44CR80S)&lt;br /&gt;&lt;br /&gt;3B B7 18 00 81 31 FE 65 53 50 4B 32 34 90 00 5A&lt;br /&gt; Giesecke &amp; Devrient Starcos 2.4&lt;br /&gt;&lt;br /&gt;3B B7 18 00 C0 3E 31 FE 65 53 50 4B 32 34 90 00 25&lt;br /&gt; G&amp;D STARCOS SPK 2.4&lt;br /&gt;&lt;br /&gt;3B B7 94 00 81 31 FE 55 53 50 4B 32 32 90 00 E0&lt;br /&gt; Dresdner Bank (a German Bank) Key-Card for InternetBanking&lt;br /&gt;&lt;br /&gt;3B B7 94 00 81 31 FE 65 53 50 4B 32 32 90 00 D0&lt;br /&gt; Giesecke &amp; Devrient STARCOS SPK2.2&lt;br /&gt;&lt;br /&gt;3B B7 94 00 81 31 FE 65 53 50 4B 32 33 90 00 D1&lt;br /&gt; Giesecke &amp; Devrient Starcos 2.3&lt;br /&gt; Deutsche Bank WebSign (RSA-Card)&lt;br /&gt; G&amp;D StarSign Token&lt;br /&gt;&lt;br /&gt;3B B8 13 00 81 31 20 5D 00 57 69 6E 43 61 72 64 02&lt;br /&gt; SmartCard for Windows 1.1&lt;br /&gt;&lt;br /&gt;3B B9 94 00 40 14 47 47 33 4E 48 38 36 34 30&lt;br /&gt; GSM-SIM card of the Austrian mobile phone provider One, http://www.one.at&lt;br /&gt; Proximus SIM - Belgium (SetCOS?)&lt;br /&gt;&lt;br /&gt;3B BA 11 00 81 31 FE 4D 55 45 4B 41 45 20 56 31 2E 30 AE&lt;br /&gt; AKÄ°S v1.0&lt;br /&gt;&lt;br /&gt;3B BA 13 00 81 31 86 5D 00 64 05 0A 02 01 31 80 90 00 8B&lt;br /&gt; Telesec TCOS 2 (SLE44)&lt;br /&gt; TCOS 2.0 (on CR80S)&lt;br /&gt; Cryptokarte with RSA-Controller, T=1 Protocol&lt;br /&gt;&lt;br /&gt;3B BA 14 00 81 31 86 5D 00 64 05 14 02 02 31 80 90 00 91&lt;br /&gt; TCOS 2.0 (on CX160S)&lt;br /&gt; Telesec TCOS 2 (SLE66)&lt;br /&gt;&lt;br /&gt;3B BA 94 00 40 14&lt;br /&gt; GG3RS732S0 ?&lt;br /&gt;&lt;br /&gt;3B BA 94 00 40 14 47 47 33 52 53 37 31 36 53 30&lt;br /&gt; GSM-SIM Viag Interkom E2 Loop (1800MHz)&lt;br /&gt; GSM-SIM card of the Austrian A1, http://www.a1.net/privat/home&lt;br /&gt; GSM SIM Radiolinja Estonia; 2005&lt;br /&gt;&lt;br /&gt;3B BA 96 00 81 31 86 5D 00 64 05 60 02 03 31 80 90 00 66&lt;br /&gt; Telesec TCOS 2 (SLE66P)&lt;br /&gt; TCOS 2.0 (on CX320P)&lt;br /&gt; TeleSec Netkey Card&lt;br /&gt;&lt;br /&gt;3B BA 96 00 81 31 86 5D 00 64 05 60 02 03 31 80 90 00 66 70 01 04 05 30 C9&lt;br /&gt; TeleSec Netkey E4 Card&lt;br /&gt;&lt;br /&gt;3B BA 96 00 81 31 86 5D 00 64 05 7B 02 03 31 80 90 00 7D&lt;br /&gt; TeleSec NetKey Card&lt;br /&gt; Deutsche Post card (tcos)&lt;br /&gt;&lt;br /&gt;3B BB 18 00 C0 3E 31 FE 65 47 26 44 20 54 53 4D 20 31 2E 30 B7&lt;br /&gt; Italian Tachograph Driver Card&lt;br /&gt;&lt;br /&gt;3B BC 94 00 40 14 47 47 33 48 33 35 58 53 32 30 30 30&lt;br /&gt; GSM-SIM Era-PL&lt;br /&gt; T-Mobile GSM SIM Card&lt;br /&gt;&lt;br /&gt;3B BC 94 00 40 14 47 47 33 48 33 35 58 56 32 30 30 30&lt;br /&gt; GSM SIM CARD 32K, Vodafone&lt;br /&gt;&lt;br /&gt;3B BC 94 00 40 14 47 47 33 49 35 43 41 43 31 30 30 30&lt;br /&gt; Siemens SIM card&lt;br /&gt;&lt;br /&gt;3B BC 94 00 40 14 47 47 33 53 30 35 31 53 31 30 31 30&lt;br /&gt; GSM SIM (Tele2, Estonia)&lt;br /&gt; GSM SIM Elisa Estonia; 2007&lt;br /&gt;&lt;br /&gt;3B BE 11 00 00 41 01 38 00 00 00 00 00 00 00 00 01 90 00&lt;br /&gt; ACS (Advanced Card System) ACOS-1&lt;br /&gt;&lt;br /&gt;3B BE 11 00 00 41 01 38 00 00 00 00 00 00 00 00 02 90 00&lt;br /&gt; ACS (Advanced Card System) ACOS-1 8K&lt;br /&gt;&lt;br /&gt;3B BE 11 00 00 41 01 38 01 00 03 00 00 00 00 00 02 90 00&lt;br /&gt; ACOS2 test card from ACS reading off a ACR38U&lt;br /&gt;&lt;br /&gt;3B BE 11 00 00 41 01 38 4D 80 0A 80 50 52 4F 56 00 90 00&lt;br /&gt; ACS (Advanced Card System) ACOS-3&lt;br /&gt;&lt;br /&gt;3B E9 00 00 81 31 FE 45 45 4D 56 20 30 33 20 20 06 99&lt;br /&gt; MasterCard credit card&lt;br /&gt;&lt;br /&gt;3B BF 11 00 81 31 FE 45 45 50 41 00 00 00 00 00 00 00 00 00 00 00 00 F1&lt;br /&gt; a.sign premium signature card&lt;br /&gt;&lt;br /&gt;3B BF 11 00 81 31 FE 45 45 50 41 00 00 00 00 21 00 93 42 00 00 00 00 01&lt;br /&gt; Austrian BankCard (Old Version - ca. 2004)&lt;br /&gt;&lt;br /&gt;3B BF 11 00 81 31 FE 45 45 50 41 00 00 00 00 22 00 25 54 00 00 00 00 A2&lt;br /&gt; Austrian BankCard from before 2006&lt;br /&gt;&lt;br /&gt;3B BF 11 00 81 31 FE 45 45 50 41 00 00 00 00 26 09 60 16 00 00 02 3A 90&lt;br /&gt; Austrian Maestro bank card&lt;br /&gt;&lt;br /&gt;3B BF 11 00 81 31 FE 45 45 50 41 00 00 00 00 26 24 68 30 00 00 00 00 AB&lt;br /&gt; Austrian BankCard  (Maestro + Quick) (New Version, since 02/2005,&lt;br /&gt; with Digital-Signature etc.)&lt;br /&gt;&lt;br /&gt;3B BF 11 00 81 31 FE 45 45 50 41 00 00 00 00 26 27 27 27 00 00 00 00 F0&lt;br /&gt;3B BF 11 00 81 31 FE 45 45 50 41 00 00 00 00 26 30 51 39 00 00 00 00 8F&lt;br /&gt;3B BF 11 00 81 31 FE 45 45 50 41 00 00 00 00 26 89 51 61 00 00 00 00 6E&lt;br /&gt; Austrian student card (with Quick electronic purse)&lt;br /&gt;&lt;br /&gt;3B BF 11 00 81 31 FE 45 45 50 41 00 00 00 00 28 93 66 23 00 00 03 E8 E4&lt;br /&gt; Austrian Maestro BankCard +Quick Buergerkarte&lt;br /&gt;&lt;br /&gt;3B BF 11 00 81 31 FE 45 45 50 41 00 00 00 00 28 95 75 49 00 00 01 F3 82&lt;br /&gt;3B BF 11 00 81 31 FE 45 45 50 41 00 00 00 00 30 26 58 77 00 00 03 0C C7&lt;br /&gt;3B BF 11 00 81 31 FE 45 45 50 41 00 00 00 00 32 04 95 84 00 00 00 00 D6&lt;br /&gt;3B BF 11 00 81 31 FE 45 45 50 41 00 00 00 00 32 07 79 97 00 00 01 CA E1&lt;br /&gt; Austrian Maestro bank card&lt;br /&gt;&lt;br /&gt;3B BF 11 00 81 31 FE 45 45 50 41 00 00 00 00 36 54 31 86 00 00 00 00 24&lt;br /&gt; Austrian BankCard from 2008&lt;br /&gt;&lt;br /&gt;3B BF 11 00 81 31 FE 45 4D 43 41 00 00 01 00 01 69 71 85 00 00 00 00 77&lt;br /&gt; Austrian "easybank" branded Mastercard, issued 2007&lt;br /&gt;&lt;br /&gt;3B BF 11 00 81 31 .. 45 45 50 41 00 00 00 00 .. .. .. .. 00 00 .. .. ..&lt;br /&gt; Austrian Quick E-purse&lt;br /&gt;&lt;br /&gt;3B BE 18 00 00 41 05 .. 00 00 00 00 00 00 00 00 00 90 00&lt;br /&gt; Advanced Card Systems (ACS) ACOS5 Cryptographic Smart Card&lt;br /&gt;&lt;br /&gt;3B BE 18 00 00 41 05 10 00 00 00 00 00 00 00 00 00 90 00&lt;br /&gt; ACS ACOS5 "ACOS5-32-G" http://www.acs.com.hk/acos5.asp&lt;br /&gt;&lt;br /&gt;3B BE 96 00 00 41 03 00 00 00 00 00 00 00 00 00 02 90 00&lt;br /&gt; SAM inside the Tikitag reader from Alcatel-Lucent&lt;br /&gt; http://hackerati.com/post/57314994/rfid-on-the-cheap-hacking-tikitag&lt;br /&gt;&lt;br /&gt;3B BD 18 00 81 31 FE 45 80 51 02 67 04 14 B1 01 01 02 00 81 05 3D&lt;br /&gt; Austrian "e-Card" (=Health Card), BRANDNEW (since 06/2005)&lt;br /&gt; special Version of Starcos 3.1&lt;br /&gt;&lt;br /&gt;3B BD 18 00 81 31 FE 45 80 51 02 67 05 18 B1 02 02 02 01 81 05 31&lt;br /&gt; Austrian health insurance card "e-card"&lt;br /&gt;&lt;br /&gt;3B BF 11 00 C0 10 31 FE 44 53 4D 40 52 54 20 43 41 46 45 20 31 2E 31 43 C1&lt;br /&gt; Giesecke&amp;Devrient SmartCafe 1.1&lt;br /&gt;&lt;br /&gt;3B BF 18 00 80 31 70 35 53 54 41 52 43 4F 53 20 53 32 31 20 43 90 00 9B&lt;br /&gt; Giesecke &amp; Devrient STARCOS S2.1&lt;br /&gt;&lt;br /&gt;3B BF 18 00 81 31 70 55 53 54 41 52 43 4F 53 20 53 32 31 20 43 90 00 FA&lt;br /&gt; Giesecke &amp; Devrient STARCOS S2.1&lt;br /&gt;&lt;br /&gt;3B BF 18 00 C0 20 31 70 52 53 54 41 52 43 4F 53 20 53 32 31 20 43 90 00 9C&lt;br /&gt; Giesecke &amp; Devrient SPK 2.1 C&lt;br /&gt;&lt;br /&gt;3B BF 94 00 81 31 FE 65 45 4C 55 20 41 75 73 74 72 69 61 20 31 2E 32 38&lt;br /&gt; A-Trust: trust-sign (Old Version, ca. 2002) for Digital Signature etc.&lt;br /&gt; A-Trust: a-sign-premium (ca. 2004) "BÃ¼rgerkarte" ("Citizen-Card")&lt;br /&gt; for Identifikation, Digital Signature etc.&lt;br /&gt; ("should be" Starcos 2.3)&lt;br /&gt;&lt;br /&gt;3B BF 94 00 81 31 FE 65 45 4C 55 20 41 75 73 74 72 69 61 20 31 2E 32 38&lt;br /&gt;&lt;br /&gt;3B BF 96 00 81 31 FE 5D 00 64 .. .. .. .. 31 C0 73 F7 01 D0 00 90 00 ..&lt;br /&gt; TCOS 3.0 / NetKey 3.0&lt;br /&gt;&lt;br /&gt;3B D0 A8 FF 81 F1 FB 24 00 1F C3 F4&lt;br /&gt; Philips DESFire SAM&lt;br /&gt;&lt;br /&gt;3B D5 18 00 81 31 3A 7D 80 73 C8 21 10 30&lt;br /&gt; Aladdin eToken NG-Flash with 256MB of flash memory&lt;br /&gt;&lt;br /&gt;3B D5 95 04 00 AE 01 02 01 01&lt;br /&gt; Axalto Cyberflex Access 64K v2b SM 1.1&lt;br /&gt;&lt;br /&gt;3B D6 18 00 80 B1 80 6D 1F 03 80 51 00 61 10 30 9E&lt;br /&gt; Atmel/Athena T0 PC/SC Compliance Test Card No. 1&lt;br /&gt;&lt;br /&gt;3B D6 18 00 81 B1 80 7D 1F 03 80 51 00 61 10 30 8F&lt;br /&gt; ASECard Crypto, http://www.athena-scs.com/product.asp?pid=8&lt;br /&gt;&lt;br /&gt;3B DB 11 FF 50 00 FF 00 00 00 00 00 00 00 07 92 16 03&lt;br /&gt; NEC V-WAY64 v2.1&lt;br /&gt;&lt;br /&gt;3B DB 96 00 80 1F 03 00 31 C0 64 77 E3 03 00 82 90 00 C1&lt;br /&gt; CAC (Common Access Card)&lt;br /&gt;&lt;br /&gt;3B DB 96 00 81 B1 FE 45 1F 03 80 F9 A0 00 00 03 08 00 00 10 00 18&lt;br /&gt; Oberthur CS PIV End Point v1.08 FIPS201 Certified&lt;br /&gt;&lt;br /&gt;3B DE 18 FF 81 F1 FB 34 00 1F 07 44 45 53 46 69 72 65 53 41 4D 56 31 2E 30 D2&lt;br /&gt; Mifare Desfire SAM Module&lt;br /&gt;&lt;br /&gt;3B DE 18 FF C0 80 B1 FE 45 1F 03 45 73 74 45 49 44 20 76 65 72 20 31 2E 30 2B&lt;br /&gt; Estonian Identity Card (EstEID v1.0 2006 cold)&lt;br /&gt;&lt;br /&gt;3B DF 18 00 81 31 FE 67 00 5C 49 43 4D D4 91 47 D2 76 00 00 38 33 00 58&lt;br /&gt; Infineon SICRYPT Card Module D4 PC/SC Compliance Test Card&lt;br /&gt;&lt;br /&gt;3B E0 00 00 81 31 20 40 30&lt;br /&gt; SmarTEC&lt;br /&gt;&lt;br /&gt;3B E2 00 00 40 20 49 ..&lt;br /&gt; Schlumberger Cryptoflex 4k&lt;br /&gt;&lt;br /&gt;3B E2 00 00 40 20 49 05&lt;br /&gt; Schlumberger Cryptoflex DES&lt;br /&gt;&lt;br /&gt;3B E2 00 00 40 20 49 06&lt;br /&gt; Schlumberger Cryptoflex&lt;br /&gt;&lt;br /&gt;3B E2 00 00 40 20 49 07&lt;br /&gt; Schlumberger Cryptoflex Key Generation&lt;br /&gt;&lt;br /&gt;3B E2 00 FF C1 10 31 FE 55 C8 02 9C&lt;br /&gt; Aladdin eToken PRO (USB token)&lt;br /&gt; Siemens CardOS M4.0&lt;br /&gt;&lt;br /&gt;3B E3 00 FF 91 81 71 26 44 00 01 13 20 2D&lt;br /&gt; Metrebus Card&lt;br /&gt; (used in Rome to store personal information and Atac subscription.&lt;br /&gt; Atac is the public transport company of the city of Rome.)&lt;br /&gt; http://www.atac.roma.it/smart/smart.asp?A=2&amp;S=22&amp;PR=4&amp;LNG=2&lt;br /&gt;&lt;br /&gt;3B E6 00 FF 81 31 FE 45 4A 43 4F 50 30 33 07&lt;br /&gt; IBM JCOP 30/16&lt;br /&gt;&lt;br /&gt;3B E6 00 FF 81 31 FE 45 4A 43 4F 50 31 30 05&lt;br /&gt; IBM JCOP 10/16&lt;br /&gt;&lt;br /&gt;3B E6 00 FF 81 31 FE 45 4A 43 4F 50 32 30 06&lt;br /&gt; IBM JCOP 20/16&lt;br /&gt; IBM JCOP20 with MIFARE&lt;br /&gt; or Datakey Smart Card Model 330J&lt;br /&gt; (http://www.datakey.com/products/smart_cards/products_sc_330j.shtml)&lt;br /&gt;&lt;br /&gt;3B E6 00 FF 81 31 FE 45 4A 43 4F 50 32 31 07&lt;br /&gt; IBM JCOP ID21&lt;br /&gt;&lt;br /&gt;3B E6 00 FF 81 31 FE 45 4A 43 4F 50 33 30 07&lt;br /&gt; Mifare ProX T=1&lt;br /&gt;&lt;br /&gt;3B E6 00 FF 81 31 FE 45 4A 43 4F 50 33 31 06&lt;br /&gt; IBM JCOP 30/31bio (contact interface)&lt;br /&gt;&lt;br /&gt;3B E7 00 00 91 81 31 FE 41 01 10 30 01 00 90 80 49&lt;br /&gt; "FirmenTicket" from the "Rheinbahn" for the "VRR"&lt;br /&gt; its a ticket corporates can buy for their employees. so its called&lt;br /&gt; "FirmenTicket". "Rheinbahn" is the local service operator for the&lt;br /&gt; mass traffic in and around duesseldorf/germany. "VRR" is traffic&lt;br /&gt; network spanning over at least a big part of north rhine westphalia&lt;br /&gt; (Verkehrsverbund Rhein-Ruhr)&lt;br /&gt; (http://www.vrr.de/de/tickets_und_tarife/vielfahrer/firmenticket/index.php)&lt;br /&gt;&lt;br /&gt;3B E9 00 00 81 21 45 45 4D 56 5F 41 54 52 20 06 6C&lt;br /&gt; VISA card, issued by HVB Bank Czech Republic (http://www.hvb.cz)&lt;br /&gt;&lt;br /&gt;3B E9 00 00 81 21 45 56 49 53 5F 49 4E 46 20 06 78&lt;br /&gt; VISA card, issued by the Austrian "Raiffeisen" bank (http://www.raiffeisen.at/&lt;br /&gt; Visa Card - Maximum - Oyak Bank / Turkey&lt;br /&gt;&lt;br /&gt;3B E9 00 00 81 31 FE 45 4A 43 4F 50 34 31 56 32 32 A7&lt;br /&gt; IBM JCOP v2.2 41&lt;br /&gt;&lt;br /&gt;3B E9 00 00 81 31 FE 45 45 4D 56 20 30 33 20 20 06 99&lt;br /&gt; Visa credit card&lt;br /&gt;&lt;br /&gt;3B E9 00 FF C1 10 31 FE 55 00 64 05 00 C8 02 31 80 00 47&lt;br /&gt; Identity card of Italian Republic&lt;br /&gt;&lt;br /&gt;3B E9 00 FF C1 10 31 FE 55 C8 01 20 50 4E 34 30 31 32 AD&lt;br /&gt; Siemens CardOS/M 3.0 (SLE66CX160S)&lt;br /&gt;&lt;br /&gt;3B EA 00 FF 81 31 20 75 00 64 05 14 01 02 31 00 90 00 27&lt;br /&gt; GCOS-MDK&lt;br /&gt;&lt;br /&gt;3B EA 00 FF 81 31 FE 45 54 55 42 2D 43 4B 01 03 01 00 7B&lt;br /&gt; Technische UniversitÃ¤t Berlin - Campus Karte&lt;br /&gt; Maybe Sm@rtCafÃ© Expert 2.0 (Giesecke &amp; Devrient)&lt;br /&gt; or GemXpresso 211 PK (Gemplus)&lt;br /&gt; Includes a Mifare-Chip (1 KB - Memory-Chip)&lt;br /&gt;&lt;br /&gt;3B EB 00 00 81 31 42 45 4E 4C 43 68 53 43 4B 30 34 30 31 2B&lt;br /&gt; Dutch University accesscard &amp; Electronic purse &amp; telphone card&lt;br /&gt;&lt;br /&gt;3B EB 00 00 81 31 42 45 4E 4C 43 68 69 70 70 65 72 30 31 0A&lt;br /&gt; Dutch Post (Chipper)&lt;br /&gt;&lt;br /&gt;3B EC 00 FF 81 31 FE 45 A0 00 00 00 56 33 33 30 4A 33 06 00 A1&lt;br /&gt; Datakey model 330J card, www.datakey.com&lt;br /&gt; http://www.hmk.de/downloads/datakey/Model_330J_Smart_Card.pdf&lt;br /&gt; Model 330J JavaCard v2.1.1&lt;br /&gt; Global Platform v2.0.1 specifications.&lt;br /&gt; JCCOS operating system applet (Java-based Cryptographic Card&lt;br /&gt; Operating System)&lt;br /&gt;&lt;br /&gt;3B EE 00 00 81 31 FE 45 00 31 80 71 86 65 01 67 02 A0 0A 83 90 00 1B&lt;br /&gt; IBM JCOP "Java Card 2.1.1" et "Open Plaform 2.0.1"&lt;br /&gt;&lt;br /&gt;3B EF 00 00 40 14 80 25 43 45 52 45 53 57 01 16 01 01 03 90 00&lt;br /&gt; Electronic Identification Card from the FNMT, the Spanish Official&lt;br /&gt; Certification Authority (FÃ¡brica Nacional de Moneda y Timbre)&lt;br /&gt; FNMT-Ceres Siemens Infineon SLE 19&lt;br /&gt;&lt;br /&gt;3B EF 00 00 40 14 80 25 43 45 52 45 53 57 05 60 01 02 03 90 00&lt;br /&gt; FNMT-Ceres Siemens Infineon SLE 20&lt;br /&gt; FÃ¡brica Nacional de Moneda y Timbre&lt;br /&gt;&lt;br /&gt;3B EF 00 00 81 31 20 49 00 5C 50 43 54 10 27 F8 D2 76 00 00 38 33 00 4D&lt;br /&gt; Infineon Technologies PC/SC Compliance Test Card V1.0&lt;br /&gt;&lt;br /&gt;3B EF 00 00 81 31 FC 45 80 31 80 65 11 01 13 00 01 53 41 43 45 81 04 21&lt;br /&gt; Slovenska sporitelna (SLSP) Bank card, Maestro Card with chip&lt;br /&gt;&lt;br /&gt;3B EF 00 00 81 31 FC 45 80 31 80 65 11 11 23 10 02 53 41 43 45 81 04 12&lt;br /&gt; VISA card issued by UBS, Switzerland&lt;br /&gt;&lt;br /&gt;3B EF 00 00 81 31 FE 65 00 5C 50 43 53 D1 91 47 D2 76 00 00 38 33 00 70&lt;br /&gt; Siemens/Infineon Sicrypt S26381-F252-V1 GS:03&lt;br /&gt;&lt;br /&gt;3B EF 00 FF 81 31 20 45 42 61 73 69 63 43 61 72 64 20 5A 43 32 2E 33 BD&lt;br /&gt; ZeitControl BasicCard Enhanced 2.3&lt;br /&gt;&lt;br /&gt;3B EF 00 FF 81 31 20 45 42 61 73 69 63 43 61 72 64 20 5A 43 33 2E 33 BC&lt;br /&gt; Electronic Purse (Elton Senegal)&lt;br /&gt;&lt;br /&gt;3B EF 00 FF 81 31 50 45 65 63 0D 24 20 02 80 00 05 08 33 56 10 01 02 43&lt;br /&gt; German ec card&lt;br /&gt;&lt;br /&gt;3B EF 00 FF 81 31 20 75 42 61 73 69 63 43 61 72 64 20 5A 43 33 2E 33 8C&lt;br /&gt; ZeitControl BasicCard Enhanced 3.3&lt;br /&gt;&lt;br /&gt;3B EF 00 FF 81 31 20 75 42 61 73 69 63 43 61 72 64 20 5A 43 33 2E 37 88&lt;br /&gt; ZeitControl BasicCard Enhanced 3.7&lt;br /&gt;&lt;br /&gt;3B EF 00 FF 81 31 20 75 42 61 73 69 63 43 61 72 64 20 5A 43 33 2E 39 86&lt;br /&gt; ZeitControl BasicCard Enhanced 3.9&lt;br /&gt;&lt;br /&gt;3B EF 00 FF 81 31 42 45 .* 38&lt;br /&gt; UNI-Card&lt;br /&gt;&lt;br /&gt;3B EF 00 FF 81 31 42 45 65 63 03 02 03 02 80 00 22 40 48 95 96 00 20 28&lt;br /&gt; Scard Sparkasse Detmold, Deutschland BLZ 47650130&lt;br /&gt;&lt;br /&gt;3B EF 00 FF 81 31 50 45 42 61 73 69 63 43 61 72 64 20 5A 43 31 2E 31 CC&lt;br /&gt; ZeitControl BasicCard Compact 1.1&lt;br /&gt;&lt;br /&gt;3B EF 00 FF 81 31 50 45 65 63 .. .. .. .. .. .. .. .. .. .. .. .. .. ..&lt;br /&gt; GeldKarte v2 (Germany)&lt;br /&gt;&lt;br /&gt;3B EF 00 FF 81 31 50 45 65 63 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;br /&gt; Geldkarte v2&lt;br /&gt;&lt;br /&gt;3B EF 00 FF 81 31 50 45 65 63 08 0B 40 02 80 00 08 15 20 03 36 04 00 7E&lt;br /&gt; old banking card (electronic-card / Maestro / Geldkarte) of the&lt;br /&gt; Stadt-Sparkasse Duesseldorf (like the above, but old - around 2002).&lt;br /&gt;&lt;br /&gt;3B EF 00 FF 81 31 52 45 4D 46 43 20 49 42 4D 20 34 30 48 39 36 30 31 FB&lt;br /&gt; IBM MFC 3.5 file system smart card&lt;br /&gt; (Card from the book "Smart Card Application Development Using Java")&lt;br /&gt;&lt;br /&gt;3B EF 00 FF 81 31 60 45 65 63 04 02 11 00 00 00 00 00 A5 32 A5 01 11 B6&lt;br /&gt; GledKarte&lt;br /&gt; Siemens M3-Module with a Motorola SC-28.&lt;br /&gt; G&amp;D (Giesecke&amp;Devrient) Geldkarten-OS mit der Version 11&lt;br /&gt;&lt;br /&gt;3B EF 00 FF 81 31 60 45 65 63 06 03 14 02 50 00 06 51 08 11 5E 01 41 90&lt;br /&gt; Geldkarte from Deutsche Bank, Thomson-Chip&lt;br /&gt;&lt;br /&gt;3B EF 00 FF 81 31 66 45 49 42 4D 20 4D 46 43 34 30 30 32 30 38 33 31 A1&lt;br /&gt; IBM MFC 4.1 file system smart card&lt;br /&gt; Card from the book "Smart Card Application Development Using Java"&lt;br /&gt; authors: Uwe Hansmann, Martin. S. Nicklous, Thomas SchÃ¤ck, Achim Schneider, Frank Seliger&lt;br /&gt;&lt;br /&gt;3B EF 00 FF 81 31 66 45 65 63 20 20 49 42 4D 20 33 2E 31 20 20 20 20&lt;br /&gt; IBM eCash&lt;br /&gt;&lt;br /&gt;3B EF 00 FF 81 31 66 45 65 63 20 20 49 42 4D 20 33 2E 31 20 20 20 20 CF&lt;br /&gt; IBM eCash&lt;br /&gt;&lt;br /&gt;3B EF 00 FF 81 31 86 45 49 42 4D 20 4D 46 43 34 30 30 30 30 38 33 31 43&lt;br /&gt; ComCard MFC 4.1&lt;br /&gt;&lt;br /&gt;3B EF 00 FF 81 31 FE 45 65 63 11 04 01 02 80 00 0F 27 40 00 03 01 00 E1&lt;br /&gt; Postbank Geldkarte&lt;br /&gt;&lt;br /&gt;3B EF 00 FF 81 31 FE 45 65 63 11 04 01 02 80 00 0F 46 20 04 23 01 00 C4&lt;br /&gt; Postbank ec/Maestro (Germany)&lt;br /&gt;&lt;br /&gt;3B EF 00 FF 81 31 FE 45 80 31 C0 6B 49 42 4D 20 4A 65 74 5A 20 4D 32 39&lt;br /&gt; UBS Internet Card (IBM JetZ M2)&lt;br /&gt;&lt;br /&gt;3B EF 00 FF 81 31 FF 65 49 42 4D 20 4D 46 43 39 32 32 39 32 38 39 30 17&lt;br /&gt; IBM MFC 4.22 (University of Cambridge smartchip card)&lt;br /&gt;&lt;br /&gt;3B F0 12 00 FF 91 81 B1 7C 45 1F 03 99&lt;br /&gt; Japanese Chijou Digital B-CAS Card (pay TV)&lt;br /&gt;&lt;br /&gt;3B F2 18 00 02 C1 0A 31 FE 55 C8 07 76&lt;br /&gt; Siemens CardOS V4.3&lt;br /&gt;&lt;br /&gt;3B F2 18 00 02 C1 0A 31 FE 58 C8 08 74&lt;br /&gt; Siemens CardOS V4.3B&lt;br /&gt;&lt;br /&gt;3B F2 18 00 02 C1 0A 31 FE 58 C8 09 75&lt;br /&gt; Siemens CardOS V4.2B&lt;br /&gt;&lt;br /&gt;3B F2 18 00 02 C1 0A 31 FE 58 C8 0B 77&lt;br /&gt; CardOS V4.2C (SLE66CX360PE dual interface)&lt;br /&gt;&lt;br /&gt;3B F2 18 00 FF C1 0A 31 FE 55 C8 06 8A&lt;br /&gt; Siemens CardOS M 4.2 (SLE66CX642P)&lt;br /&gt;&lt;br /&gt;3B F2 98 00 FF C1 10 31 FE 55 C8 03 15&lt;br /&gt; Siemens CardOS M 4.01 (SLE66CX320P)&lt;br /&gt;&lt;br /&gt;3B F2 98 00 FF C1 10 31 FE 55 C8 04 12&lt;br /&gt; CardOS M4.01a (SLE66CX322P)&lt;br /&gt;&lt;br /&gt;3B F3 96 00 FF C0 0A 31 FE 4D 80 31 E0 83&lt;br /&gt; MARX Cryptoken (supported by RaakSign)&lt;br /&gt;&lt;br /&gt;3B F4 18 00 02 C1 0A 31 FE 58 56 34 63 76 C5&lt;br /&gt; Eutron CryptoIdentity (reader + card token)&lt;br /&gt;&lt;br /&gt;3B F4 18 00 FF 81 31 80 55 00 31 80 00 C7&lt;br /&gt; Identity card of Italian Republic&lt;br /&gt;&lt;br /&gt;3B F4 98 00 FF C1 10 31 FE 55 4D 34 63 76 B4&lt;br /&gt; Eutron Digipass 860 (reader + card token)&lt;br /&gt;&lt;br /&gt;3B F5 91 00 FF 91 81 71 FE 40 00 41 00 00 00 00 05&lt;br /&gt; Contactless Mifare Ultralight&lt;br /&gt;&lt;br /&gt;3B F5 91 00 FF 91 81 71 FE 40 00 41 08 00 00 00 0D&lt;br /&gt; Contactless Mifare&lt;br /&gt;&lt;br /&gt;3B F5 91 00 FF 91 81 71 FE 40 00 41 18 00 00 00 1D&lt;br /&gt; Contactless Mifare 4k&lt;br /&gt;&lt;br /&gt;3B F5 91 00 FF 91 81 71 FE 40 00 41 88 00 00 00 8D&lt;br /&gt; Contactless Mifare 1k or 4k&lt;br /&gt;&lt;br /&gt;3B F5 91 00 FF 91 81 71 FE 40 00 42 00 01 00 81 86&lt;br /&gt; American Express Blue RFID&lt;br /&gt;&lt;br /&gt;3B F6 18 00 FF 81 31 FE 45 4A 43 4F 50 32 30 0E&lt;br /&gt; IBM JCOP20&lt;br /&gt;&lt;br /&gt;3B F6 18 00 FF 81 31 FE 45 4A 43 4F 50 33 30 0F&lt;br /&gt; Philips P8RF5016 running IBM JCOP 30 (contact interface)&lt;br /&gt;&lt;br /&gt;3B F6 18 00 FF 81 31 FE 45 4A 43 4F 50 33 31 0E&lt;br /&gt; IBM JCOP BIO31&lt;br /&gt; IBM JCOP BIO31 Java card&lt;br /&gt;&lt;br /&gt;3B F7 11 00 01 40 96 54 30 04 0E 6C B6 D6 90 00&lt;br /&gt; PIC16F876-04/SP (PICCard2) or&lt;br /&gt; PIC16F84A-04/P + 24LC16B (PICCard1) or&lt;br /&gt; Canal + Canal Digital Spain year 2000/2001 or&lt;br /&gt; PIC Silver Card 2 (PIC16F876/7 + 24C64)&lt;br /&gt;&lt;br /&gt;3B F7 11 00 01 40 96 58 42 14 0E 6C B6 D6&lt;br /&gt; UK on digital (terrestrial digital TV card)&lt;br /&gt;&lt;br /&gt;3B F7 11 00 01 40 96 70 70 37 0E 6C B6 D6&lt;br /&gt; Carte pour decodeur cable numÃ©rique (fourni par www.voo.be et&lt;br /&gt; www.ledecodeur.be)&lt;br /&gt;&lt;br /&gt;3B F7 11 00 01 40 96 70 70 07 0E 6C B6 D6&lt;br /&gt; Cyfra+ SECA Card (http://cyfraplus.pl/)&lt;br /&gt;&lt;br /&gt;3B F7 11 00 01 40 96 70 70 07 0E 6C B6 D6 90 00&lt;br /&gt; M-II (a.k.a. M-2, a.k.a. Platinum Card), AT90SC6464C based&lt;br /&gt; KnotCard II&lt;br /&gt; TitaniumElite&lt;br /&gt;&lt;br /&gt;3B F7 11 00 01 40 96 70 70 17 0E 6C B6 D6&lt;br /&gt; Canal Satellite card (VERSION 7.1  SYSTEM / SECA2)&lt;br /&gt;&lt;br /&gt;3B F7 11 00 01 40 96 70 70 67 0E 6C B6 D6&lt;br /&gt; UK TopUp TV&lt;br /&gt;&lt;br /&gt;3B F7 11 00 01 40 96 70 71 09 0E 6C B6 D6&lt;br /&gt; Carte pour dÃ©codeur tÃ©lÃ© de Neuf Telecom TV&lt;br /&gt;&lt;br /&gt;3B F7 91 00 FF 91 81 71 FE 40 00 41 20 00 11 77 81 80 40&lt;br /&gt; Contactless Mifare DESFire&lt;br /&gt;&lt;br /&gt;3B F8 18 00 00 81 31 FE 45 00 73 C8 40 00 00 90 00 80&lt;br /&gt; NXP JCOP 31 V2.2 36K - S/C I/F&lt;br /&gt;&lt;br /&gt;3B F8 18 00 00 81 31 FE 45 00 73 C8 40 13 00 90 00 93&lt;br /&gt; Giesecke &amp; Devrient Sm@rtCafÃ© Expert 3.0&lt;br /&gt;&lt;br /&gt;3B F9 18 00 00 81 31 FE 45 4A 43 4F 50 33 31 56 32 32 A8&lt;br /&gt; JCOP31 / 72B1 V2.2&lt;br /&gt; Smartcard Dual Interface JCOP31 with 72KB EEPROM and V2.2 Java Card Open Platform&lt;br /&gt;&lt;br /&gt;3B F9 94 00 00 81 31 FE 65 46 54 20 56 31 30 30 90 00 83&lt;br /&gt; ePass 2000&lt;br /&gt;&lt;br /&gt;3B FA 11 00 02 40 60 43 C6 02 F8 03 03 00 00 90 00&lt;br /&gt; DeLaRue DX(?)&lt;br /&gt;&lt;br /&gt;3B FA 13 00 00 81 31 FE 45 4A 43 4F 50 34 31 56&lt;br /&gt; JCOP41 V221&lt;br /&gt;&lt;br /&gt;3B FA 13 00 FF 81 31 80 45 00 31 C1 73 C0 01 00 00 90 00 B1&lt;br /&gt; OpenPGP&lt;br /&gt;&lt;br /&gt;3B FA 18 00 00 81 31 FE 45 4A 43 4F 50 34 31 56 32 32 31 9D&lt;br /&gt; NXP JCOP 41 v2.2.1 72k SmartCard I/F&lt;br /&gt;&lt;br /&gt;3B FA 18 00 FF 81 31 FE 45 4A 43 4F 50 34 31 56 32 32 31 62&lt;br /&gt; JCOP41&lt;br /&gt; HID Crescendo C700 http://www.hidcorp.com/&lt;br /&gt; Should be compatible to RAAK http://www.raaktechnologies.com/&lt;br /&gt; Marx CrypToken MX2048-JCOP USB Token&lt;br /&gt;&lt;br /&gt;3B FA 94 00 00 81 31 20 43 80 65 A2 01 01 01 3D 72 D6 43 21&lt;br /&gt; GemXpresso Pro R3 32PK (MPCOS, T=1)&lt;br /&gt;&lt;br /&gt;3B FA 98 00 FF C1 10 31 FE 55 C8 03 53 41 47 5F 50 4B 49 32 77&lt;br /&gt; Siemens corporate ID card (access to the building / rooms etc,&lt;br /&gt; stores PKI private keys/certificates)&lt;br /&gt;&lt;br /&gt;3B FA 98 00 FF C1 10 31 FE 55 C8 04 53 41 47 5F 50 4B 49 32 70&lt;br /&gt; Siemens Corporate Card (Belgium , Germany)&lt;br /&gt;&lt;br /&gt;3B FB 11 00 00 40 78 80 59 53 50 59 52 55 53 AE 02 02&lt;br /&gt; RosettaÂ® Series II Smart Card manufactured by Spyrus&lt;br /&gt; http://spyrus.com/products/rosetta_smart_usb.asp&lt;br /&gt;&lt;br /&gt;3B FB 11 00 00 81 31 FE 45 00 31 C0 64 77 E9 10 00 00 90 00 6A&lt;br /&gt; OCS ID-One Cosmo Card USB Token&lt;br /&gt;&lt;br /&gt;3B FB 13 00 FF 81 31 80 75 5A 43 36 2E 35 20 52 45 56 20 43 64&lt;br /&gt; ZeitControl BasicCard 6.5, multiapplication with 30 kByte EEPROM&lt;br /&gt;&lt;br /&gt;3B FB 13 00 FF 81 31 80 75 5A 43 35 2E 35 20 52 45 56 20 47 63&lt;br /&gt; ZeitControl BasicCard 5.5&lt;br /&gt;&lt;br /&gt;3B FB 13 00 FF C0 80 31 80 75 5A 43 35 2E 34 20 52 45 56 20 41 A5&lt;br /&gt; ZeitControl BasicCard Professional 5.4 Revision A&lt;br /&gt;&lt;br /&gt;3B FB 13 00 FF C0 80 31 80 75 5A 43 35 2E 34 20 52 45 56 20 48 AC&lt;br /&gt; ZeitControl BasicCard Professional 5.4&lt;br /&gt;&lt;br /&gt;3B FB 96 00 00 80 31 FE 45 00 31 C0 64 77 E3 02 00 82 90 00 76&lt;br /&gt; Oberthur ID-One Cosmo&lt;br /&gt;&lt;br /&gt;3B FB 96 00 00 81 31 FE 45 00 31 C0 64 77 E9 10 00 0F 90 00 E2&lt;br /&gt; Elektroniczna Legitymacja Studencka - Polish Student's ID Issued in Poznan in 2007&lt;br /&gt;&lt;br /&gt;3B FB 98 00 FF C1 10 31 FE 55 00 64 05 20 47 03 31 80 00 90 00 F3&lt;br /&gt; Gemplus GemGate 32K&lt;br /&gt; distributed by Postecert (www.postecert.it) to legally sign documents&lt;br /&gt;&lt;br /&gt;3B FC 98 00 FF C1 10 31 FE 55 C8 03 49 6E 66 6F 63 61 6D 65 72 65 28&lt;br /&gt; New Card Infocamere (Italy) series 1402...&lt;br /&gt;  http://www.card.infocamere.it/&lt;br /&gt;  Siemens Informatica - Siemens M4.01a&lt;br /&gt;  chip Infineon SLE66CX322P (CC EAL5)&lt;br /&gt;  Memory EEPROM: 32KB&lt;br /&gt;  Operating system CARDOS&lt;br /&gt;  Max numero dei tentativi PIN: 3&lt;br /&gt;  Pin: da 5 a 8 digit&lt;br /&gt;  Unblocked by tool CARDOS API 2.2&lt;br /&gt;&lt;br /&gt;3B FD 18 00 00 80 31 FE 45 00 31 80 71 8E 64 52 D9 04 00 81 90 00 5B&lt;br /&gt; Oberthur Card Systems, authentIC&lt;br /&gt;&lt;br /&gt;3B FD 18 00 FF 80 B1 FE 45 1F 07 80 73 00 21 13 57 4A 54 48 61 31 47 00 5F&lt;br /&gt; Activkey Sim&lt;br /&gt; http://www.actividentity.com/products/activkey_usb_tokens__home.php&lt;br /&gt;&lt;br /&gt;3B FD 94 00 00 81 31 20 43 80 31 80 65 B0 83 02 04 7E 83 00 90 00 B6&lt;br /&gt; GXPPRo-R3.x STD PTS T=1&lt;br /&gt;&lt;br /&gt;3B FD 94 00 00 81 31 60 65 80 31 C0 69 4D 54 43 4F 53 73 01 01 11 E0&lt;br /&gt; MTCOS Light, http://www.masktech.de/products/mtcoslight/index.html&lt;br /&gt;&lt;br /&gt;3B FE 91 00 FF 91 81 71 FE 40 00 41 28 00 01 80 81 00 73 C8 40 00 00 90 00 4D&lt;br /&gt; Philips SmartMX chip (IBMs JCOP OS)&lt;br /&gt;&lt;br /&gt;3B FE 91 00 FF 91 81 71 FE 40 00 41 28 00 11 33 B0 4A 43 4F 50 33 31 56 32 C4&lt;br /&gt; JCOP31 72K&lt;br /&gt; dual interface functionality, 1K Mifare emulation.&lt;br /&gt;&lt;br /&gt;3B FE 94 00 FF 80 B1 FA 45 1F 03 45 73 74 45 49 44 20 76 65 72 20 31 2E 30 43&lt;br /&gt; Estonian Identity Card (EstEID v1.0 cold)&lt;br /&gt;&lt;br /&gt;3B FE 96 00 FF C0 0A 31 FE 4D 45 73 74 45 49 44 20 76 65 72 20 31 2E 30 9B&lt;br /&gt; Estonian Identity Card (EstEID v1.0 compatible)&lt;br /&gt; http://www.id.ee/?id=11019&amp;&amp;langchange=1&lt;br /&gt;&lt;br /&gt;3B FF 11 00 00 81 31 FE 4D 80 25 A0 00 00 00 56 57 44 4B 33 33 30 06 00 D0&lt;br /&gt; Datakey 32K PKI Smart Card Model 330&lt;br /&gt; (http://www.datakey.com/products/smart_cards/products_sc_330.shtml)&lt;br /&gt;&lt;br /&gt;3B FF 11 00 00 81 71 40 42 00 00 21 01 31 42 52 00 0[0,5] 63 .. .. .. .. 90 00.*&lt;br /&gt; Smart Card "The Smart Way to Login"&lt;br /&gt; Used on Acer TravelMate to secure boot&lt;br /&gt;&lt;br /&gt;3B FF 11 00 02 40 64 80 69 A2 07 01 03 57 00 00 FF 00 83 00 90 00&lt;br /&gt; Gemplus GemXpresso&lt;br /&gt;&lt;br /&gt;3B FF 13 00 00 81 31 FE 4D 80 25 A0 00 00 00 56 57 44 4B 33 33 30 06 00 D2&lt;br /&gt; Datakey DCOS model 330 (DKCCOS 6.0 token)&lt;br /&gt;&lt;br /&gt;3B FF 13 00 FF 80 31 FE 45 53 46 53 45 2D 43 58 33 32 32 2D 56 18 02 08 76&lt;br /&gt; SmartCafe Expert Java&lt;br /&gt;&lt;br /&gt;3B FF 13 00 FF 80 31 FE 45 53 46 53 45 2D 43 58 33 32 32 2D 56 18 03 08 77&lt;br /&gt; Giesecke &amp; Devrient SmartCafe Expert 32K v2.0 #2&lt;br /&gt;&lt;br /&gt;3B FF 13 00 FF 81 31 FE 45 65 63 11 04 50 02 80 00 08 39 00 04 02 05 02 E9&lt;br /&gt; German "Geldkarte" supplied by the Deutsche Bank in Karlsruhe,&lt;br /&gt; Baden-WÃ¼rttemberg, Germany.&lt;br /&gt;&lt;br /&gt;3B FF 13 00 FF 81 31 FE 45 65 63 11 04 50 02 80 00 08 54 00 04 23 05 02 A5&lt;br /&gt; Maestrocard/Geldkarte (Stadtsparkasse Haltern, Germany)&lt;br /&gt;&lt;br /&gt;3B FF 13 00 FF 81 31 FE 5D 80 25 A0 00 00 00 56 57 44 4B 33 32 30 05 00 3F&lt;br /&gt; Datakey DCOS model 320&lt;br /&gt;&lt;br /&gt;3B FF 18 00 00 81 31 FE 45 00 6B 04 05 01 00 01 11 01 43 4E 53 10 31 80 69&lt;br /&gt; Sanitary Card of "Friuli Venezia Giulia" region (Italian Republic)&lt;br /&gt; Carta Nazionale dei Servizi (Italia) http://cartaservizi.regione.fvg.it/&lt;br /&gt;&lt;br /&gt;3B FF 18 00 00 81 31 FE 45 00 6B 04 05 01 00 01 21 01 43 4E 53 10 31 80 59&lt;br /&gt; CNS - Carta Nazionale dei Servizi (Italia)&lt;br /&gt; PA emittente: Regione Autonoma della Sardegna&lt;br /&gt;&lt;br /&gt;3B FF 18 00 FF 80 31 FE 45 53 46 53 45 2D 43 58 33 32 32 2D 56 18 03 08 7C&lt;br /&gt; Giesecke &amp; Devrient Sm@rtCafÃ© Expert 2.0&lt;br /&gt;&lt;br /&gt;3B FF 18 00 FF 80 31 FE 45 53 6D 40 72 74 43 61 66 65 45 78 70 65 72 74 65&lt;br /&gt; Giesecke &amp; Devrient SmartCafe 32K v1&lt;br /&gt;&lt;br /&gt;3B FF 18 00 FF 81 31 3C 45 65 63 0D 02 31 02 50 00 10 90 00 26 00 04 10 09&lt;br /&gt; Maestrocard/Geldkarte (Postbank, Germany)&lt;br /&gt;&lt;br /&gt;3B FF 18 00 FF 81 31 3C 45 65 63 0D 02 31 02 50 00 10 90 01 55 00 04 10 7B&lt;br /&gt; Volksbank VR-BankCard (GeldKarte)&lt;br /&gt;&lt;br /&gt;3B FF 18 00 FF 81 31 3C 45 65 63 0D 02 31 02 50 00 10 90 07 88 00 04 10 A0&lt;br /&gt; HBCI-Karte (Berliner Sparkasse, Germany)&lt;br /&gt;&lt;br /&gt;3B FF 18 00 FF 81 31 3C 45 65 63 0D 02 31 02 50 00 10 90 05 29 00 04 10 03&lt;br /&gt; Geldkarte/HBCI(DDV-1) (Stadtsparkasse Vorpommern, Germany)&lt;br /&gt;&lt;br /&gt;3B FF 18 00 FF 81 31 3C 45 65 63 0D 02 31 02 50 00 10 90 13 82 00 04 10 BE&lt;br /&gt; Bremer Karte ("Geldkarte und BSAG-Kundenkarte in einem.")&lt;br /&gt; http://www.bsag.de/4911.php&lt;br /&gt;&lt;br /&gt;3B FF 18 00 FF 81 31 3C 45 65 63 0D 02 31 02 50 00 10 90 14 06 00 04 10 3D&lt;br /&gt; Geldkarte/HBCI(DDV-1) (Staedtische Sparkasse Offenbach, Germany)&lt;br /&gt;&lt;br /&gt;3B FF 18 00 FF 81 31 3C 45 65 63 0D 02 31 02 50 00 10 90 14 44 00 04 10 7F&lt;br /&gt; Geldkarte/HBCI (Kreissparkasse Ebersberg, Deutschland)&lt;br /&gt;&lt;br /&gt;3B FF 18 00 FF 81 31 3C 45 65 63 0D 02 31 02 50 00 10 90 55 70 00 04 10 0A&lt;br /&gt; EC-Card from DKB (Deutsche Kreditbank AG)&lt;br /&gt;&lt;br /&gt;3B FF 18 00 FF 81 31 3C 45 65 63 0D 02 31 02 80 00 12 24 30 00 20 04 10 59&lt;br /&gt; Geldkarte (Germany)&lt;br /&gt;&lt;br /&gt;3B FF 18 00 FF 81 31 50 45 65 63 .. .. .. .. .. .. .. .. .. .. .. .. .. ..&lt;br /&gt; GeldKarte v3 (Germany)&lt;br /&gt;&lt;br /&gt;3B FF 18 00 FF 81 31 FE 45 65 63 0D 08 65 07 64 00 0D 91 04 90 00 06 16 0E&lt;br /&gt; German Railway's (Deutsche Bahn AG) "Konzernausweis"&lt;br /&gt;&lt;br /&gt;3B FF 18 00 FF 81 31 FE 45 65 63 0D 04 50 02 80 00 08 90 09 70 00 05 00 2A&lt;br /&gt; Landesbank baden-WÃ¼rttemberg Geldkarte&lt;br /&gt;&lt;br /&gt;3B FF 18 00 FF 81 31 FE 45 65 63 0D 07 63 05 28 00 0D 90 81 06 00 06 15 58&lt;br /&gt; Geldkarte/HBCI (Frankfurter Sparkasse, Germany)&lt;br /&gt;&lt;br /&gt;3B FF 18 00 FF 81 31 FE 45 65 63 0D 07 63 07 64 00 0D 90 58 45 00 06 15 8C&lt;br /&gt; Stadtsparkasse MÃ¼nchen electronic cash card / Geldkarte&lt;br /&gt;&lt;br /&gt;3B FF 18 00 FF 81 31 FE 45 65 63 0D 07 63 07 64 00 0D 90 73 07 00 06 15 E5&lt;br /&gt; Sparkasse Acchen HBCI Geld Karte&lt;br /&gt;&lt;br /&gt;3B FF 18 00 FF 81 31 FE 45 65 63 0D 07 63 07 64 00 0D 90 74 32 00 06 15 D7&lt;br /&gt; German HBCI-Banking Card with 'Geldkarte' from the bank "Sparkasse Marburg-Biedenkopf"&lt;br /&gt;&lt;br /&gt;3B FF 18 00 FF 81 31 FE 45 65 63 0D 07 63 07 64 00 0D 90 92 61 00 06 15 62&lt;br /&gt; Geldkarte (Frankfurter Sparkasse, Germany)&lt;br /&gt;&lt;br /&gt;3B FF 18 00 FF 81 31 FE 45 65 63 11 03 50 02 80 00 08 27 70 02 06 05 01 8A&lt;br /&gt; old banking card (electronic-card / Maestro / Geldkarte) of the&lt;br /&gt; "Volksbank Gelderland eG" (around 2003)&lt;br /&gt;&lt;br /&gt;3B FF 18 00 FF 81 31 FE 45 65 63 11 05 40 02 50 00 10 55 10 03 03 05 00 43&lt;br /&gt; belongs to a banking card (electronic-card / Maestro / Geldkarte).&lt;br /&gt; the bank calls it "VR-BankCard". the banks name is "Volksbank&lt;br /&gt; Gelderland eG" and is part of the "Volksbanken und Raiffeisenbanken"&lt;br /&gt; (http://www.vb-gelderland.de/html/5/2394/rubrik/1282.html)&lt;br /&gt;&lt;br /&gt;3B FF 18 00 FF 81 31 FE 45 65 63 11 06 40 02 50 00 10 05 50 03 10 05 00 43&lt;br /&gt; HBCI-Karte (Bordesholmer Sparkasse, Germany)&lt;br /&gt;&lt;br /&gt;3B FF 18 00 FF 81 31 FE 45 65 63 11 06 40 02 50 00 10 19 10 04 20 05 00 28&lt;br /&gt; Stadtsparkasse MÃ¼nchen HBCI card / Geldkarte&lt;br /&gt;&lt;br /&gt;3B FF 18 00 FF 81 31 FE 45 65 63 11 06 40 02 50 00 10 25 60 05 12 05 00 57&lt;br /&gt; Geldkarte/HBCI(DDV-1) (Stadtsparkasse Vorpommern, Germany)&lt;br /&gt;&lt;br /&gt;3B FF 18 00 FF 81 31 FE 45 65 63 11 06 40 02 50 00 10 27 30 02 16 05 00 06&lt;br /&gt; GeldKarte from Sparkasse bank&lt;br /&gt;&lt;br /&gt;3B FF 18 00 FF 81 31 FE 45 65 63 11 06 40 02 50 00 10 27 80 03 25 05 00 84&lt;br /&gt; Volksbank VR-BankCard (GeldKarte)&lt;br /&gt;&lt;br /&gt;3B FF 18 00 FF 81 31 FE 45 65 63 11 06 40 02 50 00 10 28 50 01 11 05 00 6D&lt;br /&gt; HBCI Bancing Card of Sparkasse Pforzheim&lt;br /&gt;&lt;br /&gt;3B FF 18 00 FF 81 31 FE 45 65 63 11 06 62 02 80 00 11 06 60 03 04 06 13 87&lt;br /&gt; Geldkarte (Volksbank Offenburg, Germany)&lt;br /&gt;&lt;br /&gt;3B FF 18 00 FF 81 31 .. 45 65 63 .. .. .. .. .. .. .. .. .. .. .. .. .. ..&lt;br /&gt; Geldkarte (generic ATR)&lt;br /&gt;&lt;br /&gt;3B FF 18 00 FF 81 31 FE 45 65 63 11 06 62 02 80 00 11 20 90 03 09 06 13 5C&lt;br /&gt; Geldkarte [ec, Maestro] (1822 direkt Frankfurter Sparkasse, Germany)&lt;br /&gt;&lt;br /&gt;3B FF 18 00 FF 81 31 FE 45 65 63 11 06 62 02 80 00 11 43 50 01 17 06 13 E3&lt;br /&gt; EC-Card of Sparkasse Pforzheim Calw&lt;br /&gt;&lt;br /&gt;3B FF 18 00 FF 81 31 FE 45 65 63 11 06 62 02 80 00 11 16 50 05 17 06 13 B2&lt;br /&gt; FinTS (BBBank Karlsruhe, Germany)&lt;br /&gt;&lt;br /&gt;3B FF 18 00 FF 81 31 FE 45 65 63 11 08 43 02 50 00 10 46 50 01 08 05 30 27&lt;br /&gt; HBCI-Karte (Sparkasse Altmark-West, Salzwedel, Germany)&lt;br /&gt;&lt;br /&gt;3B FF 18 00 FF 81 31 FE 45 65 63 11 08 43 02 50 00 10 84 70 01 04 05  30 C9&lt;br /&gt; HBCI Card (1822 direkt Frankfurter Sparkasse, Germany) Geldkarte [ec, Maestro]&lt;br /&gt;&lt;br /&gt;3B FF 18 00 FF 81 31 FE 45 65 63 11 08 66 02 80 00 11 40 50 03 18 06 20 D4&lt;br /&gt; banking card (electronic-card / Maestro / Geldkarte). the bank+calls&lt;br /&gt; it "S-Card" or "Sparkassen-Card". the banks name is "Stadtsparkasse&lt;br /&gt; Duesseldorf" and is part of the "Sparkassen-Finanzgruppe" (a finance&lt;br /&gt; group, network of local banks).&lt;br /&gt;&lt;br /&gt;3B FF 18 00 FF 81 31 FE 45 65 63 11 08 66 02 80 00 11 56 00 03 18 06 20 92&lt;br /&gt; Geldkarte [ec, Maestro] (Sparkasse Langen-Seligenstadt, Germany)&lt;br /&gt;&lt;br /&gt;3B FF 18 00 FF 81 31 FE 45 65 63 1A 01 41 02 50 00 10 52 09 05 67 05 10 21&lt;br /&gt; Maestro/Geldkarte (BBBank Karlsruhe, Germany)&lt;br /&gt;&lt;br /&gt;3B FF 18 00 FF 81 31 FE 55 00 6B 02 09 02 00 01 01 01 43 4E 53 10 31 80 9F&lt;br /&gt; Carta Nazionale dei Servizi - InfoCamere&lt;br /&gt;&lt;br /&gt;3B FF 18 00 FF 81 31 FE 55 00 6B 02 09 02 00 01 01 01 44 53 44 10 31 80 92&lt;br /&gt; Postcom S.P.A. (digital certificate)&lt;br /&gt;&lt;br /&gt;3B FF 18 00 FF 81 31 FE 55 00 6B 02 09 02 00 01 11 01 43 4E 53 10 31 80 8F&lt;br /&gt; Carta Regionale dei Servizi - Regione Lombardia&lt;br /&gt;&lt;br /&gt;3B FF 18 00 FF 81 31 FE 55 00 6B 02 09 02 00 01 11 01 43 4E 53 11 31 80 8E&lt;br /&gt; Infocamere CNS&lt;br /&gt;&lt;br /&gt;3B FF 18 00 FF C1 0A 31 FE 55 00 6B 05 08 C8 05 01 11 01 43 4E 53 10 31 80 0C&lt;br /&gt; Carta Regionale dei Servizi - Regione Lombardia&lt;br /&gt;&lt;br /&gt;3B FF 32 00 00 10 80 80 31 E0 5B 47 42 50 00 00 00 00 00 00 02 55&lt;br /&gt; UK NatWest BT PayToView Mondex&lt;br /&gt;&lt;br /&gt;3B FF 94 00 00 40 0A 80 31 00 73 12 21 13 57 4A 33 0E 02 32 41 00&lt;br /&gt; Turkcell SIMPlus64 / Turkey&lt;br /&gt;&lt;br /&gt;3B FF 94 00 FF 80 B1 FE 45 1F 03 00 68 D2 76 00 00 28 FF 05 1E 31 80 00 90 00 23&lt;br /&gt; D-Trust Signature Card (www.d-trust.net):&lt;br /&gt; - Citizencard of the People of Ulm in Germany (BÃ¼rgerkarte)&lt;br /&gt; - Qualified Electronic Signature Card (Qualifizierte Signaturkarte)&lt;br /&gt;&lt;br /&gt;3B FF 94 00 FF C0 0A 1F 43 80 31 E0 73 36 21 13 57 4A 43 49 1C 31 30 32 1C&lt;br /&gt; Giesecke &amp; Devrient - UniverSIM Pegasus&lt;br /&gt;&lt;br /&gt;3B FF 95 00 FF 40 0A 80 31 00 73 1A 21 13 57 4A 50 48 60 31 41 47&lt;br /&gt; Vodafone 64 KB SIM with Javacard&lt;br /&gt;&lt;br /&gt;3B FF 95 00 FF 40 0A 80 31 E8 73 F6 21 13 67 4A 47 48 60 31 42 00&lt;br /&gt; Giesecke &amp; Devrient STARSIM&lt;br /&gt;&lt;br /&gt;3B FF 96 00 FF 81 31 FE 45 65 63 0D 09 71 07 64 00 0D 00 03 54 50 07 01 81&lt;br /&gt; Commerzbank ServiceCard / Maestro / GeldKarte / Cirrus / girocard / CashGroup / electronic cash&lt;br /&gt;&lt;br /&gt;3B FF 96 00 FF C0 0A 1F 43 80 31 E0 73 36 21 13 57 4A 43 49 1C 31 30 32 1E&lt;br /&gt; Giesecke &amp; Devrient - UniverSIM Pegasus&lt;br /&gt;&lt;br /&gt;3B FF 95 00 FF C0 0A 1F 43 80 31 E0 73 F6 21 13 57 4A 33 48 61 32 41 47 D6&lt;br /&gt; GSM SIM (issued by e-plus, Germany)&lt;br /&gt;&lt;br /&gt;3F 05 DC 20 FC 00 01&lt;br /&gt; DigiCash Facility Card&lt;br /&gt;&lt;br /&gt;3F 28 00 00 11 14 00 03 68 90 00&lt;br /&gt; SIMEMU - a DIY GSM SIM card - http://simemu.cjb.net/&lt;br /&gt;&lt;br /&gt;3F 2D 00 27 A0 51 82 7D 00 00 00 52 00 0C 90 00&lt;br /&gt; Porta Moedas Multibanco (Portugeese electronic purse)&lt;br /&gt;&lt;br /&gt;3F 2F 00 80 59 AF 02 01 01 30 00 00 0A 0E 83 06 9F 12&lt;br /&gt; Gemplus GemXplore&lt;br /&gt;&lt;br /&gt;3F 2F 00 80 59 AF 02 01 02 30 00 0C 0A 0E 83 1E 9F 16&lt;br /&gt; GSM-SIM (900MHz) card of the carrier "Mannesmann Mobilfunk" for&lt;br /&gt; their network "D2-Privat" - now known as Vodafone Mobilfunk&lt;br /&gt; (http://www.vodafone.de/).&lt;br /&gt;&lt;br /&gt;3F 2F 00 80 69 AE 02 02 01 36 00 00 0A 0E 83 3E 9F 16&lt;br /&gt; GSM-SIM e-plus (1800MHz)&lt;br /&gt;&lt;br /&gt;3F 2F 00 80 69 AF 02 04 01 36 00 02 0A 0E 83 3E 9F 16&lt;br /&gt; GSM-SIM D2 CallYa (900MHz)&lt;br /&gt;&lt;br /&gt;3F 2F 00 80 69 AF 03 07 03 52 00 00 0A 0E 83 3E 9F 16&lt;br /&gt; GemXplore 98 V1 16K&lt;br /&gt;&lt;br /&gt;3F 2F 00 80 69 AF 03 07 03 52 00 0D 0A 0E 83 3E 9F 16&lt;br /&gt; GSM-SIM Debitel D2 (900MHz)&lt;br /&gt;&lt;br /&gt;3F 2F 00 80 69 AF 03 07 03 5A 00 15 0A 0E 83 3E 9F 16&lt;br /&gt; Virgin Mobile SIM (Gemplus)&lt;br /&gt;&lt;br /&gt;3F 67 25 00 21 20 00 0F 78 90 00&lt;br /&gt; Bank Nederlandse Gemeenten, BNG Data Services&lt;br /&gt;&lt;br /&gt;3F 65 25 .. .. 04 6C 90 .0&lt;br /&gt; Carte Bancaire (French banking card)&lt;br /&gt;&lt;br /&gt;3F 65 25 00 2[2,C] 09 [F,6]9 90 00&lt;br /&gt; Sesam Vitale (French health card)&lt;br /&gt;&lt;br /&gt;3F 65 25 00 2B 09 62 90 00&lt;br /&gt; Coinamatic SmartyCity smartcard&lt;br /&gt;&lt;br /&gt;3F 65 25 00 2B 09 EB 90 00&lt;br /&gt; Bull Scot 5&lt;br /&gt;&lt;br /&gt;3F 65 25 00 52 09 6A 90 00&lt;br /&gt; French carte Vitale&lt;br /&gt;&lt;br /&gt;3F 65 25 08 22 04 68 90 00&lt;br /&gt; France Telecom card (ex Pastel card)&lt;br /&gt;&lt;br /&gt;3F 65 25 08 33 04 20 90 00&lt;br /&gt; D-Trust card&lt;br /&gt;&lt;br /&gt;3F 65 25 08 43 04 6C 90 00&lt;br /&gt; CB visa La Poste France (Oberthur)&lt;br /&gt; CB visa Societe Generale France (Oberthur)&lt;br /&gt;&lt;br /&gt;3F 65 25 08 63 04 6C 90 00&lt;br /&gt; CB visa La Poste France (Oberthur)&lt;br /&gt;&lt;br /&gt;3F 65 25 08 65 04 6C 90 00&lt;br /&gt; CB visa Boursorama France (Axalto)&lt;br /&gt;&lt;br /&gt;3F 65 35 10 02 04 6C 90 00&lt;br /&gt; Postcard (Switzerland)&lt;br /&gt;&lt;br /&gt;3F 65 35 64 02 04 6C 90 40&lt;br /&gt; Postcard (Switzerland)&lt;br /&gt;&lt;br /&gt;3F 67 25 00 26 14 00 20 68 90 00&lt;br /&gt; Pay-TV card from Casema Cable Television, Netherland&lt;br /&gt;&lt;br /&gt;3F 67 25 00 2A 20 00 0F 68 90 00&lt;br /&gt; Carte Grand Voyageur (SNCF: French train company)&lt;br /&gt;&lt;br /&gt;3F 67 25 00 2A 20 00 40 68 9F 00&lt;br /&gt; Swiss Cash card&lt;br /&gt;&lt;br /&gt;3F 67 25 00 2A 20 00 4[0,1] 68 90 00&lt;br /&gt; Dutch ChipKnip, Proton&lt;br /&gt; (chip Bull CC 60 V1, Bull CC 60 V2 or Bull CC 1000)&lt;br /&gt;&lt;br /&gt;3F 67 25 04 21 20 00 07 68 90 00&lt;br /&gt; Philips TB100 (C-MOS chip)&lt;br /&gt;&lt;br /&gt;3F 67 2F 04 11 20 00 00 68 90 00&lt;br /&gt; BULL HN ITALIA 06/92 - 100.000 - 64MP&lt;br /&gt; La Sapienza - Universita' di Roma&lt;br /&gt;&lt;br /&gt;3F 69 00 00 24 AF 01 70 01 01 FF 90 00&lt;br /&gt; French GSM SIM card (900MHz)&lt;br /&gt;&lt;br /&gt;3F 6C 00 00 24 A0 30 00 FF 00 00 01 00 04 90 00&lt;br /&gt; Gemplus MCOS 16K DES Sample Card&lt;br /&gt;&lt;br /&gt;3F 6C 00 00 25 A0 30 89 76 00 00 04 01 0C 90 00&lt;br /&gt; MCOS 24k EEPROM&lt;br /&gt;&lt;br /&gt;3F 6C 00 00 3C A0 30 9E 61 00 00 01 00 04 90 00&lt;br /&gt; Gemplus - British Gas - Gascard&lt;br /&gt;&lt;br /&gt;3F 6C 00 00 3C A0 30 A7 58 00 00 01 01 8C 90 00&lt;br /&gt; Rendezvous Series 7 (D2-Mac satellite TV card)&lt;br /&gt;&lt;br /&gt;3F 6D 00 00 80 31 80 65 B0 05 01 02 5E 83 00 90 00&lt;br /&gt; Gemplus GemXpresso 211PK or 211PK-IS&lt;br /&gt;&lt;br /&gt;3F 6D 00 00 80 31 80 65 B0 05 01 02 5E 92 00 90 00&lt;br /&gt; Gemplus GemXpresso 32K&lt;br /&gt;&lt;br /&gt;3F 77 18 25 00 29 14 00 62 68 90 00&lt;br /&gt; Viaccess card&lt;br /&gt;&lt;br /&gt;3F 78 12 25 01 40 B0 03 4A 50 20 48 55&lt;br /&gt; DSS/DTV H&lt;br /&gt;&lt;br /&gt;3F 7E 11 25 05 40 B0 08 00 00 4D 59 00 00 00 53 4B 0B 07&lt;br /&gt; BSkyB Series 11 (DSS satellite TV card)&lt;br /&gt;&lt;br /&gt;3F 7F 11 25 05 40 B0 0F 69 FF 4D 59 00 00 00 53 4B 0C 06 00&lt;br /&gt; Sky Series 12 (DSS satellite TV card)&lt;br /&gt;&lt;br /&gt;3F 7E 11 25 09 40 B0 01 00 00 4D 59 00 00 03 53 4B 0A 01&lt;br /&gt; Sky Series 10 (DSS satellite TV card)&lt;br /&gt;&lt;br /&gt;3F 7E 11 25 05 40 B0 08 00 00 4D 59 00 00 00 53 4B 0B 08&lt;br /&gt; Sky Series 11 (DSS satellite TV card)&lt;br /&gt;&lt;br /&gt;3F 7F 13 25 03 33 B0 06 69 FF 4A 50 D0 00 00 53 59 00 00 00&lt;br /&gt; Sky 2005/6 (DSS satellite TV card)&lt;br /&gt;&lt;br /&gt;3F 7F 13 25 03 38 B0 04 FF FF 4A 50 00 00 29 48 55 .. .. ..&lt;br /&gt; DSS/DTV HU&lt;br /&gt;&lt;br /&gt;3F 7F 13 25 03 40 B0 0B 69 4C 4A 50 C0 00 00 53 59 00 00 00&lt;br /&gt; Sky Digital (DSS satellite TV card)&lt;br /&gt;&lt;br /&gt;3F 78 13 25 03 40 B0 20 FF FF 4A 50 00&lt;br /&gt; DSS/DTV P4&lt;br /&gt;&lt;br /&gt;3F FF 14 25 03 10 80 33 B0 10 69 FF 4A 50 70 00 00 5A 45 01 00 00&lt;br /&gt; Norweigan DVB-C provider Get (www.get.no). NDS Videoguard security card.&lt;br /&gt;&lt;br /&gt;3F FF 95 00 FF 91 81 71 A0 47 00 44 4E 41 53 50 30 31 30 20 52 65 76 41 32 30 48&lt;br /&gt; DSS/DISH ROM10&lt;br /&gt;&lt;br /&gt;3F FF 95 00 FF 91 81 71 A0 47 00 44 4E 41 53 50 30 31 30 20 52 65 76 41 32 31 49&lt;br /&gt; PayTV card for DishNetwork Sat receiver http://www.dishnetwork.com/&lt;br /&gt;&lt;br /&gt;3F FF 95 00 FF 91 81 71 A0 47 00 44 4E 41 53 50 30 31 31 20 52 65 76 42&lt;br /&gt; NTL digial TV card (Nagravision)&lt;br /&gt;&lt;br /&gt;3F FF 95 00 FF 91 81 71 A0 47 00 44 4E 41 53 50 30 31 31 20 52 65 76 42 30 36 4E&lt;br /&gt; Telewest Broadband (Nagravision)&lt;br /&gt;&lt;br /&gt;3F FF 95 00 FF 91 81 71 A0 47 00 44 4E 41 53 50 30 31 31 20 52 65 76 42 30 42 3A&lt;br /&gt; NagraVision card for StarHub Digital Cable DVB-C Singapore&lt;br /&gt;&lt;br /&gt;3F FF 95 00 FF 91 81 71 A0 47 00 44 4E 41 53 50 30 31 31 20 52 65 76 42 30 44 3C&lt;br /&gt; NagraVision card for Virgin Media in the UK&lt;br /&gt;&lt;br /&gt;3F FF 95 00 FF 91 81 71 FE 47 00 44 4E 41 53 50 31 31 30 20 52 65 76 41 30 31 14&lt;br /&gt; TVA Digital - Nagra Vision ID TV-01&lt;br /&gt;&lt;br /&gt;3F FF 95 00 FF 91 81 71 FE 47 00 44 4E 41 53 50 31 31 30 20 52 65 76 41 43 33 65&lt;br /&gt; Brazilian NET Digital (Cable TV provider) - Nagra Vision "NASP110 RevA01"&lt;br /&gt;&lt;br /&gt;# do not delete&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5902920467646767794-8057241345772717206?l=trinhquochungnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://trinhquochungnotes.blogspot.com/feeds/8057241345772717206/comments/default' title='Đăng Nhận xét'/><link rel='replies' type='text/html' href='http://trinhquochungnotes.blogspot.com/2008/11/javacard-bonus-smart-card-atr-list.html#comment-form' title='2 Nhận xét'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/8057241345772717206'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/8057241345772717206'/><link rel='alternate' type='text/html' href='http://trinhquochungnotes.blogspot.com/2008/11/javacard-bonus-smart-card-atr-list.html' title='JavaCard Bonus: Smart Card ATR list'/><author><name>Hung.Trinh experiences notes</name><uri>http://www.blogger.com/profile/15879504538337047633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_J3Ejob9sTKI/TLfQC-4TxWI/AAAAAAAAAH0/DXwYRgjBiEA/S220/avtnew.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5902920467646767794.post-1526648634195277634</id><published>2008-11-27T11:12:00.002+07:00</published><updated>2008-11-27T11:51:14.809+07:00</updated><title type='text'>JavaCard Bonus: Fault Attacks on JavaCard</title><content type='html'>&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;meta equiv="Content-Type" content="text/html; charset=utf-8"&gt;&lt;meta name="ProgId" content="Word.Document"&gt;&lt;meta name="Generator" content="Microsoft Word 12"&gt;&lt;meta name="Originator" content="Microsoft Word 12"&gt;&lt;link rel="File-List" href="file:///C:%5CDOCUME%7E1%5Ctqhung%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml"&gt;&lt;link rel="themeData" href="file:///C:%5CDOCUME%7E1%5Ctqhung%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx"&gt;&lt;link rel="colorSchemeMapping" href="file:///C:%5CDOCUME%7E1%5Ctqhung%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml"&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:trackmoves/&gt;   &lt;w:trackformatting/&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:donotpromoteqf/&gt;   &lt;w:lidthemeother&gt;EN-US&lt;/w:LidThemeOther&gt;   &lt;w:lidthemeasian&gt;X-NONE&lt;/w:LidThemeAsian&gt;   &lt;w:lidthemecomplexscript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;    &lt;w:splitpgbreakandparamark/&gt;    &lt;w:dontvertaligncellwithsp/&gt;    &lt;w:dontbreakconstrainedforcedtables/&gt;    &lt;w:dontvertalignintxbx/&gt;    &lt;w:word11kerningpairs/&gt;    &lt;w:cachedcolbalance/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;   &lt;m:mathpr&gt;    &lt;m:mathfont val="Cambria Math"&gt;    &lt;m:brkbin val="before"&gt;    &lt;m:brkbinsub val="--"&gt;    &lt;m:smallfrac val="off"&gt;    &lt;m:dispdef/&gt;    &lt;m:lmargin val="0"&gt;    &lt;m:rmargin val="0"&gt;    &lt;m:defjc val="centerGroup"&gt;    &lt;m:wrapindent val="1440"&gt;    &lt;m:intlim val="subSup"&gt;    &lt;m:narylim val="undOvr"&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"&gt;   &lt;w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"&gt;   &lt;w:lsdexception locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 2"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 3"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 1"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 2"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 3"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 4"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 5"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 6"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 7"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 8"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 9"&gt;   &lt;w:lsdexception locked="false" priority="35" qformat="true" name="caption"&gt;   &lt;w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"&gt;   &lt;w:lsdexception locked="false" priority="1" name="Default Paragraph Font"&gt;   &lt;w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"&gt;   &lt;w:lsdexception locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"&gt;   &lt;w:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"&gt;   &lt;w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Revision"&gt;   &lt;w:lsdexception locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"&gt;   &lt;w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"&gt;   &lt;w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"&gt;   &lt;w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"&gt;   &lt;w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"&gt;   &lt;w:lsdexception locked="false" priority="37" name="Bibliography"&gt;   &lt;w:lsdexception locked="false" priority="39" qformat="true" name="TOC Heading"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt; &lt;!--  /* Font Definitions */  @font-face 	{font-family:"Cambria Math"; 	panose-1:2 4 5 3 5 4 6 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:roman; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1107304683 0 0 159 0;} @font-face 	{font-family:Calibri; 	panose-1:2 15 5 2 2 2 4 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1073750139 0 0 159 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-parent:""; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:10.0pt; 	margin-left:0in; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-fareast-font-family:Calibri; 	mso-bidi-font-family:"Times New Roman";} .MsoChpDefault 	{mso-style-type:export-only; 	mso-default-props:yes; 	font-size:10.0pt; 	mso-ansi-font-size:10.0pt; 	mso-bidi-font-size:10.0pt; 	mso-ascii-font-family:Calibri; 	mso-fareast-font-family:Calibri; 	mso-hansi-font-family:Calibri;} @page Section1 	{size:8.5in 11.0in; 	margin:1.0in 1.0in 1.0in 1.0in; 	mso-header-margin:.5in; 	mso-footer-margin:.5in; 	mso-paper-source:0;} div.Section1 	{page:Section1;} --&gt; &lt;/style&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:""; 	mso-padding-alt:0in 5.4pt 0in 5.4pt; 	mso-para-margin:0in; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:"Times New Roman"; 	mso-fareast-theme-font:minor-fareast; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} &lt;/style&gt; &lt;![endif]--&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:100%;"  &gt;This thesis gives a wide overview of the problems of the Java Card technology regarding fault attacks. This post will not talk Java Card or Smart Card specification. It also not descript about their manufacturing or usages.&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:100%;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="line-height: 115%; font-weight: bold; color: rgb(0, 0, 153);font-family:&amp;quot;;font-size:100%;"  &gt;Including Faults&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:100%;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:100%;"  &gt;A Smart Card needs to protect against numerous things. Where a traditional computer needs secure protocols to ensure that no data is leaked, a Smart Card is a computer in a hostile environment. Similar to a safe, it needs to ensure that no secret data can be learned by for example putting an ear to the safe and listening what happens inside when you turn the lock. These so called “side channels” will not be discussed here. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:100%;"  &gt;Next to protocol attacks, Smart Cards add an extra dimension to protect: the computer needs to be physically safe from tampering. Again, comparing to a safe, it should not be possible to open the safe and look what’s inside the safe. It has to withstand a number of techniques which directly attack the processor or its memory. For example, by freezing the chip so that it retains its memory information and then reading memory somehow is something which normal PC’s not commonly have to protect against. Similarly, by placing a voltage meter on the memory bus, it might be possible to learn the value of private keys whilst they are moved in memory. A Smart Card, however, is at the mercy of its attacker if not properly protected.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:100%;"  &gt;However, it is also important that when an error occurs during the execution of the program, no program requirements are violated — i.e. no secret information is exposed, no permissions are unduly granted, etc. An attack requiring a fault to occur is called a fault attacks. Errors almost never occur naturally, as the programs are usually rigorously tested and hardware is expected to be “perfect”. Because of this, programs are often not protected against errors. Assuming however that such an error exists, it needs to be controlled: when there is a chance of one in a billion that a fault occurs, it might be infeasible for an attack to use the protocol until such an error occurs. For a Smart Card, however, the computer can be in the hands of the attacker. The attacker could of course try to inject a fault himself. A real-life example of this were “un-loopers”, in which Smart Cards which granted access to pay-TV channels were injected a fault so that a single branching statement was effected: instead of denying access, the branch giving access was chosen &lt;a href="http://www.springerlink.com/content/2ma7u5jdk5vxpux8/"&gt;&lt;span style="line-height: 115%; text-decoration: none; color: rgb(0, 0, 0);"&gt;[Fault Attacks on RSA with CRT]&lt;/span&gt;&lt;/a&gt;. The following figure gives a simple view of the three considered layers of the Java Card enabled Smart Card:&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size:100%;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_J3Ejob9sTKI/SS4flot88yI/AAAAAAAAAEk/ytQ0Dlk0FrY/s1600-h/faultJC01.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 62px;" src="http://3.bp.blogspot.com/_J3Ejob9sTKI/SS4flot88yI/AAAAAAAAAEk/ytQ0Dlk0FrY/s320/faultJC01.JPG" alt="" id="BLOGGER_PHOTO_ID_5273186945143206690" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;meta equiv="Content-Type" content="text/html; charset=utf-8"&gt;&lt;meta name="ProgId" content="Word.Document"&gt;&lt;meta name="Generator" content="Microsoft Word 12"&gt;&lt;meta name="Originator" content="Microsoft Word 12"&gt;&lt;link rel="File-List" href="file:///C:%5CDOCUME%7E1%5Ctqhung%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml"&gt;&lt;link rel="themeData" href="file:///C:%5CDOCUME%7E1%5Ctqhung%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx"&gt;&lt;link rel="colorSchemeMapping" href="file:///C:%5CDOCUME%7E1%5Ctqhung%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml"&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:trackmoves/&gt;   &lt;w:trackformatting/&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:donotpromoteqf/&gt;   &lt;w:lidthemeother&gt;EN-US&lt;/w:LidThemeOther&gt;   &lt;w:lidthemeasian&gt;X-NONE&lt;/w:LidThemeAsian&gt;   &lt;w:lidthemecomplexscript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;    &lt;w:splitpgbreakandparamark/&gt;    &lt;w:dontvertaligncellwithsp/&gt;    &lt;w:dontbreakconstrainedforcedtables/&gt;    &lt;w:dontvertalignintxbx/&gt;    &lt;w:word11kerningpairs/&gt;    &lt;w:cachedcolbalance/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;   &lt;m:mathpr&gt;    &lt;m:mathfont val="Cambria Math"&gt;    &lt;m:brkbin val="before"&gt;    &lt;m:brkbinsub val="--"&gt;    &lt;m:smallfrac val="off"&gt;    &lt;m:dispdef/&gt;    &lt;m:lmargin val="0"&gt;    &lt;m:rmargin val="0"&gt;    &lt;m:defjc val="centerGroup"&gt;    &lt;m:wrapindent val="1440"&gt;    &lt;m:intlim val="subSup"&gt;    &lt;m:narylim val="undOvr"&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"&gt;   &lt;w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"&gt;   &lt;w:lsdexception locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 2"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 3"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 1"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 2"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 3"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 4"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 5"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 6"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 7"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 8"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 9"&gt;   &lt;w:lsdexception locked="false" priority="35" qformat="true" name="caption"&gt;   &lt;w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"&gt;   &lt;w:lsdexception locked="false" priority="1" name="Default Paragraph Font"&gt;   &lt;w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"&gt;   &lt;w:lsdexception locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"&gt;   &lt;w:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"&gt;   &lt;w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Revision"&gt;   &lt;w:lsdexception locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"&gt;   &lt;w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"&gt;   &lt;w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"&gt;   &lt;w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"&gt;   &lt;w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"&gt;   &lt;w:lsdexception locked="false" priority="37" name="Bibliography"&gt;   &lt;w:lsdexception locked="false" priority="39" qformat="true" name="TOC Heading"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt; &lt;!--  /* Font Definitions */  @font-face 	{font-family:"Cambria Math"; 	panose-1:2 4 5 3 5 4 6 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:roman; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1107304683 0 0 159 0;} @font-face 	{font-family:Calibri; 	panose-1:2 15 5 2 2 2 4 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1073750139 0 0 159 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-parent:""; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:10.0pt; 	margin-left:0in; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-fareast-font-family:Calibri; 	mso-bidi-font-family:"Times New Roman";} .MsoChpDefault 	{mso-style-type:export-only; 	mso-default-props:yes; 	font-size:10.0pt; 	mso-ansi-font-size:10.0pt; 	mso-bidi-font-size:10.0pt; 	mso-ascii-font-family:Calibri; 	mso-fareast-font-family:Calibri; 	mso-hansi-font-family:Calibri;} @page Section1 	{size:8.5in 11.0in; 	margin:1.0in 1.0in 1.0in 1.0in; 	mso-header-margin:.5in; 	mso-footer-margin:.5in; 	mso-paper-source:0;} div.Section1 	{page:Section1;} --&gt; &lt;/style&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:""; 	mso-padding-alt:0in 5.4pt 0in 5.4pt; 	mso-para-margin:0in; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:"Times New Roman"; 	mso-fareast-theme-font:minor-fareast; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} &lt;/style&gt; &lt;![endif]--&gt;  &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:12;"  &gt;An attack on any of these layers might potentially create a malfunctioning Smart Card. We here thus discuss each of the three layers.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:13;"  &gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;Attacking the Application (Applet)&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:12;"  &gt;We first show how the security on the application level is handled. Any possible attacks due to interleaving should be handled by the JCRE. A quick glance at Application code shows that code generated for JavaCards goes through a number of steps:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:&amp;quot;;" &gt;1. Conversion .java to .class files&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:&amp;quot;;" &gt;2. Conversion .class and .exp to .cap files and .exp files&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:&amp;quot;;" &gt;3. Loading onto the card.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:&amp;quot;;" &gt;4. Execution on the card.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:12;"  &gt;All of these depend on an amount of trust. The original files should be programmed correctly, else the compilation to class files leaves untrustworthy code. Similarly, the class files should remain corrects and unmodified when being converted to a cap file, and it should be exactly these files which are loaded onto the card. These should then be the same files which are executed. Throughout this process, the files should remain trusted. However, it (JavaCard Platform 2.2.1) is not required to have any verification on the.cap file during upload to assure it is of the proper format, as this could be too heavy a task for a SmartCard (or any other JavaCard enabled small device).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:12;"  &gt;It is clear that there is a distinction between attacking the .class file, the .cap file, or when it is actually ’on-card’. We assume that attacks on a .class file are not very often to occur as these files are kept in a very trusted environment. Furthermore, we make a distinction between on-card attacks and off-card attacks: the one modifies the installed file, the others the .cap file. And, when modifying the application to actually produce a fault, the attack is not transient: any further use of the program continues to behave erroneously as the error persists. Yet when the ability is there to continually upload (correct) versions of the application, the problem can be circumvented by replacing the code. So the injected errors are not transient, but neither are they persistent.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:&amp;quot;;" &gt;Off-card Attacks&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:12;"  &gt;The .cap file format does not enforce any encryption. It is thus possible to modify directly. A Small modification are still possible, for example, a simple of code addition calculating “+” can be easily modified to multiple calculating “*” or “/”, or from the smaller value to larger. Such small modifications have no impact on the rest of the .cap file and can thus be done without any complication. It is noteworthy that modifying the .cap file requires very precise control. This means that the attack is harder to implement although, again, if it is possible to re-load the application, it becomes much easier as “trial and error” should do the trick.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:&amp;quot;;" &gt;On-card Attack&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:12;"  &gt;As it is unspecified where exactly the code on the card resides, this means that wanting to modify the code includes having to have an entire memory mapping of the card. At least knowledge of how data is stored in memory and knowing where the applications resides are mandatory. If this is possible then probably much better attacks are suitable. Yet it can be assumed that the same attacks can be mounted as were done in off-card attacks are similar; only the means are slightly different depending upon how the JCRE is implemented.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:12;"  &gt;&lt;span style="font-size:130%;"&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;Attacking the JCRE&lt;/span&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:12;"  &gt;&lt;span style="color: rgb(0, 153, 0); font-weight: bold;"&gt;The Firewall&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;span style="font-size:100%;"&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:12;"  &gt;Considering the following piece of code:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size:100%;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_J3Ejob9sTKI/SS4fl0RjF0I/AAAAAAAAAEs/sLOYtaKbJKU/s1600-h/faultJC02.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 234px;" src="http://3.bp.blogspot.com/_J3Ejob9sTKI/SS4fl0RjF0I/AAAAAAAAAEs/sLOYtaKbJKU/s320/faultJC02.JPG" alt="" id="BLOGGER_PHOTO_ID_5273186948245296962" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;meta equiv="Content-Type" content="text/html; charset=utf-8"&gt;&lt;meta name="ProgId" content="Word.Document"&gt;&lt;meta name="Generator" content="Microsoft Word 12"&gt;&lt;meta name="Originator" content="Microsoft Word 12"&gt;&lt;link rel="File-List" href="file:///C:%5CDOCUME%7E1%5Ctqhung%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml"&gt;&lt;link rel="themeData" href="file:///C:%5CDOCUME%7E1%5Ctqhung%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx"&gt;&lt;link rel="colorSchemeMapping" href="file:///C:%5CDOCUME%7E1%5Ctqhung%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml"&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:trackmoves/&gt;   &lt;w:trackformatting/&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:donotpromoteqf/&gt;   &lt;w:lidthemeother&gt;EN-US&lt;/w:LidThemeOther&gt;   &lt;w:lidthemeasian&gt;X-NONE&lt;/w:LidThemeAsian&gt;   &lt;w:lidthemecomplexscript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;    &lt;w:splitpgbreakandparamark/&gt;    &lt;w:dontvertaligncellwithsp/&gt;    &lt;w:dontbreakconstrainedforcedtables/&gt;    &lt;w:dontvertalignintxbx/&gt;    &lt;w:word11kerningpairs/&gt;    &lt;w:cachedcolbalance/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;   &lt;m:mathpr&gt;    &lt;m:mathfont val="Cambria Math"&gt;    &lt;m:brkbin val="before"&gt;    &lt;m:brkbinsub val="--"&gt;    &lt;m:smallfrac val="off"&gt;    &lt;m:dispdef/&gt;    &lt;m:lmargin val="0"&gt;    &lt;m:rmargin val="0"&gt;    &lt;m:defjc val="centerGroup"&gt;    &lt;m:wrapindent val="1440"&gt;    &lt;m:intlim val="subSup"&gt;    &lt;m:narylim val="undOvr"&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"&gt;   &lt;w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"&gt;   &lt;w:lsdexception locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 2"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 3"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 1"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 2"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 3"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 4"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 5"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 6"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 7"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 8"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 9"&gt;   &lt;w:lsdexception locked="false" priority="35" qformat="true" name="caption"&gt;   &lt;w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"&gt;   &lt;w:lsdexception locked="false" priority="1" name="Default Paragraph Font"&gt;   &lt;w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"&gt;   &lt;w:lsdexception locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"&gt;   &lt;w:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"&gt;   &lt;w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Revision"&gt;   &lt;w:lsdexception locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"&gt;   &lt;w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"&gt;   &lt;w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"&gt;   &lt;w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"&gt;   &lt;w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"&gt;   &lt;w:lsdexception locked="false" priority="37" name="Bibliography"&gt;   &lt;w:lsdexception locked="false" priority="39" qformat="true" name="TOC Heading"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt; &lt;!--  /* Font Definitions */  @font-face 	{font-family:"Cambria Math"; 	panose-1:2 4 5 3 5 4 6 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:roman; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1107304683 0 0 159 0;} @font-face 	{font-family:Calibri; 	panose-1:2 15 5 2 2 2 4 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1073750139 0 0 159 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-parent:""; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:10.0pt; 	margin-left:0in; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-fareast-font-family:Calibri; 	mso-bidi-font-family:"Times New Roman";} .MsoChpDefault 	{mso-style-type:export-only; 	mso-default-props:yes; 	font-size:10.0pt; 	mso-ansi-font-size:10.0pt; 	mso-bidi-font-size:10.0pt; 	mso-ascii-font-family:Calibri; 	mso-fareast-font-family:Calibri; 	mso-hansi-font-family:Calibri;} @page Section1 	{size:8.5in 11.0in; 	margin:1.0in 1.0in 1.0in 1.0in; 	mso-header-margin:.5in; 	mso-footer-margin:.5in; 	mso-paper-source:0;} div.Section1 	{page:Section1;} --&gt; &lt;/style&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:""; 	mso-padding-alt:0in 5.4pt 0in 5.4pt; 	mso-para-margin:0in; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:"Times New Roman"; 	mso-fareast-theme-font:minor-fareast; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} &lt;/style&gt; &lt;![endif]--&gt;  &lt;/p&gt;&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:100%;"  &gt;Assume a class A with a reference to class B. There’ll be a fault injected in the reference in A, so instead of pointing to B, it points to another instance of A. Now let there be an error in the reference to b1 such that it points to the value of the reference to b2 in a2, a2 now no lognger has an exact reference to b2. It is now possible to access and write to any value in the memory by have a1 defined the offset, and a2 write the data by doing a1-&gt; ref_b = value fo the offset, and similarly, a2-&gt;ref_b = value for the value it should have.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:100%;"  &gt;This method was worked fine on some JRE’s. However, to work well on JCRE, it requires a lot of memory as the easiest way to ensure that such an exact fault occurs is by having the memory full of such structures, ensuring that there is a high chance of actually a faulty reference pointing to the value of the reference to another class. It can be used to modify the memory, thereby circumventing the firewall and writing into the memory of another applet.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:100%;"  &gt;&lt;span style="color: rgb(0, 153, 0); font-weight: bold;"&gt;Object Sharing&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:100%;"  &gt;- &lt;span style="font-weight: bold;"&gt;AID impersonation&lt;/span&gt;: It is possible to create and upload an applet which has the exact same AID as an existing applet, thus making a mix-up of the two possible where the incorrect applet is used.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:100%;"  &gt;- &lt;span style="font-weight: bold;"&gt;Access to all Interface Methods of a Class&lt;/span&gt;: by having knowledge of the class, it is possible to typecast and receive access to all interface methods, even if they are not granted access to.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:100%;"  &gt;Especially AID impersonation could be used to impersonate applications, thereby possibly using a user-uploaded version of applications instead of those already installed. This then can break access to other applications as these use AID checks for access control.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;meta equiv="Content-Type" content="text/html; charset=utf-8"&gt;&lt;meta name="ProgId" content="Word.Document"&gt;&lt;meta name="Generator" content="Microsoft Word 12"&gt;&lt;meta name="Originator" content="Microsoft Word 12"&gt;&lt;link rel="File-List" href="file:///C:%5CDOCUME%7E1%5Ctqhung%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml"&gt;&lt;link rel="themeData" href="file:///C:%5CDOCUME%7E1%5Ctqhung%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx"&gt;&lt;link rel="colorSchemeMapping" href="file:///C:%5CDOCUME%7E1%5Ctqhung%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml"&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:trackmoves/&gt;   &lt;w:trackformatting/&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:donotpromoteqf/&gt;   &lt;w:lidthemeother&gt;EN-US&lt;/w:LidThemeOther&gt;   &lt;w:lidthemeasian&gt;X-NONE&lt;/w:LidThemeAsian&gt;   &lt;w:lidthemecomplexscript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;    &lt;w:splitpgbreakandparamark/&gt;    &lt;w:dontvertaligncellwithsp/&gt;    &lt;w:dontbreakconstrainedforcedtables/&gt;    &lt;w:dontvertalignintxbx/&gt;    &lt;w:word11kerningpairs/&gt;    &lt;w:cachedcolbalance/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;   &lt;m:mathpr&gt;    &lt;m:mathfont val="Cambria Math"&gt;    &lt;m:brkbin val="before"&gt;    &lt;m:brkbinsub val="--"&gt;    &lt;m:smallfrac val="off"&gt;    &lt;m:dispdef/&gt;    &lt;m:lmargin val="0"&gt;    &lt;m:rmargin val="0"&gt;    &lt;m:defjc val="centerGroup"&gt;    &lt;m:wrapindent val="1440"&gt;    &lt;m:intlim val="subSup"&gt;    &lt;m:narylim val="undOvr"&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"&gt;   &lt;w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"&gt;   &lt;w:lsdexception locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 2"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 3"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 1"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 2"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 3"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 4"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 5"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 6"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 7"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 8"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 9"&gt;   &lt;w:lsdexception locked="false" priority="35" qformat="true" name="caption"&gt;   &lt;w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"&gt;   &lt;w:lsdexception locked="false" priority="1" name="Default Paragraph Font"&gt;   &lt;w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"&gt;   &lt;w:lsdexception locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"&gt;   &lt;w:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"&gt;   &lt;w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Revision"&gt;   &lt;w:lsdexception locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"&gt;   &lt;w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"&gt;   &lt;w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"&gt;   &lt;w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"&gt;   &lt;w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"&gt;   &lt;w:lsdexception locked="false" priority="37" name="Bibliography"&gt;   &lt;w:lsdexception locked="false" priority="39" qformat="true" name="TOC Heading"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt; &lt;!--  /* Font Definitions */  @font-face 	{font-family:"Cambria Math"; 	panose-1:2 4 5 3 5 4 6 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:roman; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1107304683 0 0 159 0;} @font-face 	{font-family:Calibri; 	panose-1:2 15 5 2 2 2 4 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1073750139 0 0 159 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-parent:""; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:10.0pt; 	margin-left:0in; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-fareast-font-family:Calibri; 	mso-bidi-font-family:"Times New Roman";} .MsoChpDefault 	{mso-style-type:export-only; 	mso-default-props:yes; 	font-size:10.0pt; 	mso-ansi-font-size:10.0pt; 	mso-bidi-font-size:10.0pt; 	mso-ascii-font-family:Calibri; 	mso-fareast-font-family:Calibri; 	mso-hansi-font-family:Calibri;} @page Section1 	{size:8.5in 11.0in; 	margin:1.0in 1.0in 1.0in 1.0in; 	mso-header-margin:.5in; 	mso-footer-margin:.5in; 	mso-paper-source:0;} div.Section1 	{page:Section1;} --&gt; &lt;/style&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:""; 	mso-padding-alt:0in 5.4pt 0in 5.4pt; 	mso-para-margin:0in; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:"Times New Roman"; 	mso-fareast-theme-font:minor-fareast; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} &lt;/style&gt; &lt;![endif]--&gt;  &lt;/p&gt;&lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; line-height: 115%; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);font-size:130%;" &gt;Attacking the Smart Card Processor&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; line-height: 115%; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;Spike Attacks&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; line-height: 115%; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;By varying the power fed to the chip it is possible to disrupt a computation. In some cases, this can be enough to introduce a fault. A power spike can vary in some different variables: including height, shape, build up and power down, duration, etc. As a spike works by simply connecting to the power led to the chip, they do not need direct access to the chip and are non-invasive. Equipments requirements are totally dependent on the type of the spike to be generated, but are not necessarily expensive.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; line-height: 115%; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;Glitch Attacks&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; line-height: 115%; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;Similar to spikes, it is sometimes possible to disturb the clock speed. For example, by doing an update cycle at double speed some instructions will be effected where others are not, so it is possible that old data is used as the new data hasn’t arrived yet. The introduced “glitch” can be used to influence conditional jumps; a shift register shifts twice instead of once, or not at all, etc. In general it is a wide class which can create a change in the program, and depending on that change an attack can be mounted. Similar to Spike Attacks, Glitch Attacks are non-invasive and do not require any expensive equipment.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; line-height: 115%; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;Optical Attacks&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; line-height: 115%; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;By using focused light with specific wavelengths, it is possible to change the flipflops in a memory cell. By doing this, it is possible to change or modify the memory by using the photoelectric effect. These attacks require light to be able to reach the chip, and that any protective coating needs to be removed. However, as no contact is needed these attacks are generally seen as semi-invasive. As for equipment, in &lt;a href="https://www.publications.cl.cam.ac.uk/510/"&gt;&lt;span style="color: windowtext; text-decoration: none;"&gt;[Optical fault induction attacks]&lt;/span&gt;&lt;/a&gt; was shown that attacks can be done relatively cheaply with simple equipment, and also that they can be very precise, effecting only a single bit. However, they need not be precise at all.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; line-height: 115%; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;Electromagnetic perturbation attacks (nhiễu điện từ)&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-size: 12pt; line-height: 115%; font-family: &amp;quot;Arial&amp;quot;,&amp;quot;sans-serif&amp;quot;;"&gt;By creating a strong electromagnetic source near memory the ions representing the states in the memory are moved around, and thereby the memory is disturbed. As this attack only requires to be near the processor, it need not be opened up as it can be done from outside. It is a non-invasive attack.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:100%;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:100%;"  &gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(102, 204, 204);"&gt;Sources from the Master’s thesis of K.O Gadellaa - TECHNISCHE UNIVERSITEIT EINDHOVEN – August 2005&lt;/span&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;span style="font-size:100%;"&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:12;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:100%;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5902920467646767794-1526648634195277634?l=trinhquochungnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://trinhquochungnotes.blogspot.com/feeds/1526648634195277634/comments/default' title='Đăng Nhận xét'/><link rel='replies' type='text/html' href='http://trinhquochungnotes.blogspot.com/2008/11/javacard-bonus-fault-attacks-on.html#comment-form' title='0 Nhận xét'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/1526648634195277634'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/1526648634195277634'/><link rel='alternate' type='text/html' href='http://trinhquochungnotes.blogspot.com/2008/11/javacard-bonus-fault-attacks-on.html' title='JavaCard Bonus: Fault Attacks on JavaCard'/><author><name>Hung.Trinh experiences notes</name><uri>http://www.blogger.com/profile/15879504538337047633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_J3Ejob9sTKI/TLfQC-4TxWI/AAAAAAAAAH0/DXwYRgjBiEA/S220/avtnew.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_J3Ejob9sTKI/SS4flot88yI/AAAAAAAAAEk/ytQ0Dlk0FrY/s72-c/faultJC01.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5902920467646767794.post-1687657705868150438</id><published>2008-10-25T08:50:00.008+07:00</published><updated>2008-10-30T19:34:32.709+07:00</updated><title type='text'>JavaCard BK: 6 - Working with APDU</title><content type='html'>This chapter describes the techiniques of handling &lt;span style="font-style: italic;"&gt;Application Protocol Data Unit&lt;/span&gt;s (APDU) in an applet. APDUs are data packets; they are the application-level commutication protocol between the application software ont he card and the application software on the host side. JavaCard technology provides the class &lt;span style="color: rgb(255, 102, 102); font-style: italic;"&gt;javacard.frameworkd.APDU&lt;/span&gt;, which defines a powerfull yet simple interface to help applets handle APDUs easily. Therefore, applet developers can concentrate their efforts on processing the contents of APDU messages rather than on the details of how APDUs are constructed and transmitted.&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;APDU class&lt;/span&gt;&lt;/span&gt;:&lt;br /&gt;The &lt;span style="font-style: italic;"&gt;APDU&lt;/span&gt; class in the JavaCard APIs provides a powerfull and flexible interface for handling APDUs whose command and response structures conform to the ISO 7816-4 specification. Two transpot protocols are in primary use with smart card systems today: T=0 and T=1, the new protocol is T=CL is specified for contactless smart cards.&lt;br /&gt;In the JavaCard environment, the APDU object can be viewed as a communication object. The applet do not allow to communicate directly with the application on the host. It interact with the JCRE, which in turn uses serial I/O protocol to communicate with the host. The JCRE will create APDU object that encapsulates APDU message (APDU buffer) to transmit (send request and receive response) the command.&lt;br /&gt;&lt;br /&gt;APDU's buffer:&lt;br /&gt;The minimum size of APDU buffer is 37 bytes. It's consists of 5 bytes of header and 32 default bytes is called &lt;span style="font-style: italic;"&gt;information field size on card&lt;/span&gt; (IFSC). A smart card with more memory can allocate a bigger APDU buffer. The reason of the minimum size of APDU buffer is specified for TPDU &lt;span style="color: rgb(0, 0, 153); font-style: italic;"&gt;T=1 (block-oriented)&lt;/span&gt;. This buffer will handle all the received bytes, after that, it will be used as a buffer data for sending any result.&lt;br /&gt;&lt;br /&gt;Working with APDU in Applets:&lt;br /&gt;The Applet handle APDU object in the "&lt;span style="font-style: italic; color: rgb(204, 0, 0);"&gt;process()&lt;/span&gt;" method, the content of the APDU is the command which was requested by the host. And it's all handled in APDU buffer. To retrieve the APDU buffer:&lt;br /&gt;&lt;blockquote style="color: rgb(0, 102, 0);"&gt;public void process(APDU apdu) {&lt;br /&gt;      //retrieve the APDU buffer&lt;br /&gt;      byte[] buffer = apdu.getBuffer();&lt;br /&gt;}&lt;/blockquote&gt;&lt;br /&gt;This buffer is an array of bytes that holding all the CLA, INS, P1, P2, Lc and all data bytes which were sent from the host. YOur responsibility is only catch it, seperate it out and do you activities.&lt;br /&gt;Note that, the JCRE requires that the reference to the APDU object or the reference to the APDU buffer &lt;span style="font-weight: bold;"&gt;CANNOT &lt;/span&gt;be stored in class variables, instance variables, or array components.&lt;br /&gt;The structure of APDU command in APDU buffer:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_J3Ejob9sTKI/SQmpBNyou2I/AAAAAAAAAEM/OV_2wSWPsjk/s1600-h/apduindex.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 102px;" src="http://4.bp.blogspot.com/_J3Ejob9sTKI/SQmpBNyou2I/AAAAAAAAAEM/OV_2wSWPsjk/s320/apduindex.JPG" alt="" id="BLOGGER_PHOTO_ID_5262923477906144098" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;take a break for dinner!!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5902920467646767794-1687657705868150438?l=trinhquochungnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://trinhquochungnotes.blogspot.com/feeds/1687657705868150438/comments/default' title='Đăng Nhận xét'/><link rel='replies' type='text/html' href='http://trinhquochungnotes.blogspot.com/2008/10/javacard-bk-6-working-with-apdu.html#comment-form' title='0 Nhận xét'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/1687657705868150438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/1687657705868150438'/><link rel='alternate' type='text/html' href='http://trinhquochungnotes.blogspot.com/2008/10/javacard-bk-6-working-with-apdu.html' title='JavaCard BK: 6 - Working with APDU'/><author><name>Hung.Trinh experiences notes</name><uri>http://www.blogger.com/profile/15879504538337047633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_J3Ejob9sTKI/TLfQC-4TxWI/AAAAAAAAAH0/DXwYRgjBiEA/S220/avtnew.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_J3Ejob9sTKI/SQmpBNyou2I/AAAAAAAAAEM/OV_2wSWPsjk/s72-c/apduindex.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5902920467646767794.post-1043859004317477947</id><published>2008-10-22T14:01:00.003+07:00</published><updated>2008-10-25T08:50:06.818+07:00</updated><title type='text'>JavaCard BK: 5 - JavaCard Objects &amp; Properties</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Memory Model&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;ROM&lt;/span&gt;: Read only memory. Data are burned during card manufacture.&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;RAM&lt;/span&gt;: Random access memory&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;EEPROM&lt;/span&gt;: Electrically Erasable Programmable Read Only Memory&lt;br /&gt;- Data stored in RAM are lost when power lost or &lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;JCSystem.CLEAR_ON_RESET&lt;/span&gt; or &lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;JCSystem.CLEAR_ON_DESELECT&lt;/span&gt;. But Data stored in EEPROM are preserved.&lt;br /&gt;- The write operations to EEPROM are typically 1000 times slower than the write operations to RAM.&lt;br /&gt;- The JavaCard memory model í motivated by the kind ò memory in smart cards and their physical characteristics. A typical JavaCard system places the JCRE code (JCVM, API,..) in ROM. Applet code can also be stored in ROM. RAM is used for temporary storage. The JavaCard runtime stack is allocated in RAM, intermefdiate results, method prarameters, local variables are put on the stack. Native methods, such as those performing cryptographic computations, alse save intermediate result in RAM. Longer-lived data are stored in EEPROM, as are dawnloaded applet calsses.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);font-size:130%;" &gt;Persistent Objects&lt;/span&gt;&lt;br /&gt;- A persistent object is created by the "&lt;span style="color: rgb(204, 0, 0); font-style: italic;"&gt;new&lt;/span&gt;" operator.&lt;br /&gt;- A persistent object holds states and values across CAD sessions.&lt;br /&gt;- Any update to a single field in a persistent object is atomic. If the card loses power or a failure occurs during the update, the field is restored to its previous value.&lt;br /&gt;- A persistent object can be referenced by a field in a transient object. If apersistent object is not referenced by other objects, it should be removed.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);font-size:130%;" &gt;Transience Objects&lt;/span&gt;&lt;br /&gt;- A transient object is created by invoking the JavaCard APIs.&lt;br /&gt;- A transient object does not hold states and values across CAD session.&lt;br /&gt;- Any update to a single field in a transient object is not atomic.&lt;br /&gt;- A transient object can be referenced by a field in a persistent object.&lt;br /&gt;- A field in a transient object can be reference a persistent object.&lt;br /&gt;- If a transient object is not referenced by other objects, it should be removed.&lt;br /&gt;There are 2 type of transient objects, CLEAR_ON_RESET and CLEAR_ON_DESELECT.&lt;br /&gt;- CLEAR_ON_RESET transient objects are used for maintaining data that need to be preserved acroos applet selections but not across card reset.  Example "&lt;span style="color: rgb(0, 102, 0); font-style: italic;"&gt;session key&lt;/span&gt;" field and .&lt;br /&gt;- CLEAR_ON_DESELECT transient objects are used for maintaining data that must be preserved as long as an applet is selected, but not across applet selections or card resets.  Example "&lt;span style="color: rgb(0, 102, 0); font-style: italic;"&gt;session key&lt;/span&gt;" field.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;Creating a transient object&lt;/span&gt;&lt;/span&gt;:&lt;br /&gt;In JC tech, transient objects are created by using one of the factory methods in the JCSystem class:&lt;br /&gt;&lt;pre&gt;public static boolean[] &lt;b&gt;makeTransientBooleanArray&lt;/b&gt;(short length,&lt;br /&gt;                                                byte event)&lt;br /&gt;                                         throws &lt;a href="file:///D:/Programs/java_card_kit-2_2_2-windows/java_card_kit-2_2_2/java_card_kit-2_2_2-rr-specs/jc_specification/specs/api/html/java/lang/NegativeArraySizeException.html" title="class in java.lang"&gt;NegativeArraySizeException&lt;/a&gt;,&lt;br /&gt;                                                &lt;a href="file:///D:/Programs/java_card_kit-2_2_2-windows/java_card_kit-2_2_2/java_card_kit-2_2_2-rr-specs/jc_specification/specs/api/html/javacard/framework/SystemException.html" title="class in javacard.framework"&gt;SystemException&lt;/a&gt;&lt;/pre&gt;&lt;pre&gt;public static byte[] &lt;b&gt;makeTransientByteArray&lt;/b&gt;(short length,&lt;br /&gt;                                          byte event)&lt;br /&gt;                                   throws &lt;a href="file:///D:/Programs/java_card_kit-2_2_2-windows/java_card_kit-2_2_2/java_card_kit-2_2_2-rr-specs/jc_specification/specs/api/html/java/lang/NegativeArraySizeException.html" title="class in java.lang"&gt;NegativeArraySizeException&lt;/a&gt;,&lt;br /&gt;                                          &lt;a href="file:///D:/Programs/java_card_kit-2_2_2-windows/java_card_kit-2_2_2/java_card_kit-2_2_2-rr-specs/jc_specification/specs/api/html/javacard/framework/SystemException.html" title="class in javacard.framework"&gt;SystemException&lt;/a&gt;&lt;br /&gt;public static short[] &lt;b&gt;makeTransientShortArray&lt;/b&gt;(short length,&lt;br /&gt;                                            byte event)&lt;br /&gt;                                     throws &lt;a href="file:///D:/Programs/java_card_kit-2_2_2-windows/java_card_kit-2_2_2/java_card_kit-2_2_2-rr-specs/jc_specification/specs/api/html/java/lang/NegativeArraySizeException.html" title="class in java.lang"&gt;NegativeArraySizeException&lt;/a&gt;,&lt;br /&gt;                                            &lt;a href="file:///D:/Programs/java_card_kit-2_2_2-windows/java_card_kit-2_2_2/java_card_kit-2_2_2-rr-specs/jc_specification/specs/api/html/javacard/framework/SystemException.html" title="class in javacard.framework"&gt;SystemException&lt;/a&gt;&lt;br /&gt;public static &lt;a href="file:///D:/Programs/java_card_kit-2_2_2-windows/java_card_kit-2_2_2/java_card_kit-2_2_2-rr-specs/jc_specification/specs/api/html/java/lang/Object.html" title="class in java.lang"&gt;Object&lt;/a&gt;[] &lt;b&gt;makeTransientObjectArray&lt;/b&gt;(short length,&lt;br /&gt;                                              byte event)&lt;br /&gt;                                       throws &lt;a href="file:///D:/Programs/java_card_kit-2_2_2-windows/java_card_kit-2_2_2/java_card_kit-2_2_2-rr-specs/jc_specification/specs/api/html/java/lang/NegativeArraySizeException.html" title="class in java.lang"&gt;NegativeArraySizeException&lt;/a&gt;,&lt;br /&gt;                                              &lt;a href="file:///D:/Programs/java_card_kit-2_2_2-windows/java_card_kit-2_2_2/java_card_kit-2_2_2-rr-specs/jc_specification/specs/api/html/javacard/framework/SystemException.html" title="class in javacard.framework"&gt;SystemException&lt;/a&gt;&lt;br /&gt;Example: create a transient bytes array[100] with CLEAR_ON_DESELECT type&lt;br /&gt;&lt;blockquote style="font-style: italic;"&gt;byte[] buffer = JCSystem.makeTransientByteArray((short) 100,&lt;br /&gt;                              JCSystem.CLEAR_ON_DESELECT);&lt;/blockquote&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5902920467646767794-1043859004317477947?l=trinhquochungnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://trinhquochungnotes.blogspot.com/feeds/1043859004317477947/comments/default' title='Đăng Nhận xét'/><link rel='replies' type='text/html' href='http://trinhquochungnotes.blogspot.com/2008/10/javacard-bk-4-javacard-objects.html#comment-form' title='1 Nhận xét'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/1043859004317477947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/1043859004317477947'/><link rel='alternate' type='text/html' href='http://trinhquochungnotes.blogspot.com/2008/10/javacard-bk-4-javacard-objects.html' title='JavaCard BK: 5 - JavaCard Objects &amp; Properties'/><author><name>Hung.Trinh experiences notes</name><uri>http://www.blogger.com/profile/15879504538337047633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_J3Ejob9sTKI/TLfQC-4TxWI/AAAAAAAAAH0/DXwYRgjBiEA/S220/avtnew.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5902920467646767794.post-1454997091332714070</id><published>2008-10-22T09:20:00.003+07:00</published><updated>2008-10-22T11:12:40.838+07:00</updated><title type='text'>JavaCard BK: 4 - JavaCard Virtual Machine</title><content type='html'>The JavaCard Virtual Machine (JCVM) is implemented as 2 separate pieces: "&lt;span style="color: rgb(204, 0, 0); font-weight: bold;"&gt;interpreter&lt;/span&gt;" and "&lt;span style="font-weight: bold; color: rgb(204, 0, 0);"&gt;converter&lt;/span&gt;"&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_J3Ejob9sTKI/SP6QJgVG5bI/AAAAAAAAAEE/eDP_qoVUuIo/s1600-h/6.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_J3Ejob9sTKI/SP6QJgVG5bI/AAAAAAAAAEE/eDP_qoVUuIo/s320/6.JPG" alt="" id="BLOGGER_PHOTO_ID_5259799907787007410" border="0" /&gt;&lt;/a&gt;The "&lt;span style="color: rgb(204, 0, 0); font-weight: bold;"&gt;converter&lt;/span&gt;" - is off-card piece - run on a PC or a workstation. The converter loads and preprocesses the class files that make up a Java package and outputs a &lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;CAP file&lt;/span&gt;(converted applet). The &lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;CAP file&lt;/span&gt; is then loaded on a Java smart card and executed by the &lt;span style="color: rgb(204, 0, 0); font-weight: bold;"&gt;interpreter&lt;/span&gt;. In addition to creating a CAP file, the converter generates an &lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;Export file &lt;/span&gt;representing the public APIs of the package being converted.&lt;br /&gt;The "&lt;span style="color: rgb(204, 0, 0); font-weight: bold;"&gt;interpreter&lt;/span&gt;" - performs the following tasks:&lt;br /&gt;• Executes bytecode instructions and ultimately executes applets&lt;br /&gt;• Controls memory allocation and object creation&lt;br /&gt;• Plays a crucial role in ensuring runtime security&lt;br /&gt;Informally, the Java Card virtual machine is defined as the on-card piece of the virtual machine - the interpreter, in our current definition.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5902920467646767794-1454997091332714070?l=trinhquochungnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://trinhquochungnotes.blogspot.com/feeds/1454997091332714070/comments/default' title='Đăng Nhận xét'/><link rel='replies' type='text/html' href='http://trinhquochungnotes.blogspot.com/2008/10/javacard-bk-4-javacard-virtual-machine.html#comment-form' title='0 Nhận xét'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/1454997091332714070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/1454997091332714070'/><link rel='alternate' type='text/html' href='http://trinhquochungnotes.blogspot.com/2008/10/javacard-bk-4-javacard-virtual-machine.html' title='JavaCard BK: 4 - JavaCard Virtual Machine'/><author><name>Hung.Trinh experiences notes</name><uri>http://www.blogger.com/profile/15879504538337047633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_J3Ejob9sTKI/TLfQC-4TxWI/AAAAAAAAAH0/DXwYRgjBiEA/S220/avtnew.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_J3Ejob9sTKI/SP6QJgVG5bI/AAAAAAAAAEE/eDP_qoVUuIo/s72-c/6.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5902920467646767794.post-7492392295273601680</id><published>2008-10-22T08:56:00.003+07:00</published><updated>2008-10-22T09:19:41.887+07:00</updated><title type='text'>JavaCard Basic Knowledge: 3 - Architecture Overview</title><content type='html'>Smart cards represent one of the smallest computing platforms in use today. The greatest challenge of Java Card technology design is to fit Java system software in a smart card while conserving enough space for applications. The solution is to support only a subset of the features of the Java language and to apply a split model to implement the Java virtual machine - JavaCard virtual machine.&lt;br /&gt;The Java Card virtual machine is split into two part: one that runs off-card and the other that runs on-card. Smart cards differ from desktop computers in several ways.  The memory configuration of a smart card might have on the order of 1K of RAM, 16K of EEPROM, and 24K of ROM. In addition to providing Java language support, Java Card technology defines a runtime environment that supports the smart card memory, communication, security, and application execution model. The Java Card runtime environment conforms to the smart card international standard ISO 7816.&lt;br /&gt;Java Card technology essentially defines a platform on which appli-&lt;br /&gt;cations written in the Java programming language can run in smart cards and other&lt;br /&gt;memory-constrained devices. (Applications written for the Java Card platform are&lt;br /&gt;referred to as applets.) Because of the split virtual machine architecture, this plat-&lt;br /&gt;form is distributed between the smart card and desktop environment in both space&lt;br /&gt;and time. It consists of three parts, each defined in a specification.&lt;br /&gt;• The Java Card 2.1 Virtual Machine (JCVM) Specification defines a subset of the Java programming language and virtual machine definition suitable for smart card applications.&lt;br /&gt;• The Java Card 2.1 Runtime Environment (JCRE) Specification precisely describes Java Card runtime behavior, including memory management, applet management, and other runtime features.&lt;br /&gt;• The Java Card 2.1 Application Programming Interface (API) Specification describes the set of core and extension Java packages and classes for programming smart card applications.&lt;br /&gt;&lt;br /&gt;Supported and Unsupported features in JavaCard&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_J3Ejob9sTKI/SP6NUibB89I/AAAAAAAAAD8/ojfcYydlBb8/s1600-h/5.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_J3Ejob9sTKI/SP6NUibB89I/AAAAAAAAAD8/ojfcYydlBb8/s320/5.JPG" alt="" id="BLOGGER_PHOTO_ID_5259796798792397778" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5902920467646767794-7492392295273601680?l=trinhquochungnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://trinhquochungnotes.blogspot.com/feeds/7492392295273601680/comments/default' title='Đăng Nhận xét'/><link rel='replies' type='text/html' href='http://trinhquochungnotes.blogspot.com/2008/10/javacard-basic-knowledge-3-architecture.html#comment-form' title='1 Nhận xét'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/7492392295273601680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/7492392295273601680'/><link rel='alternate' type='text/html' href='http://trinhquochungnotes.blogspot.com/2008/10/javacard-basic-knowledge-3-architecture.html' title='JavaCard Basic Knowledge: 3 - Architecture Overview'/><author><name>Hung.Trinh experiences notes</name><uri>http://www.blogger.com/profile/15879504538337047633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_J3Ejob9sTKI/TLfQC-4TxWI/AAAAAAAAAH0/DXwYRgjBiEA/S220/avtnew.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_J3Ejob9sTKI/SP6NUibB89I/AAAAAAAAAD8/ojfcYydlBb8/s72-c/5.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5902920467646767794.post-2970832078019443104</id><published>2008-10-20T11:18:00.005+07:00</published><updated>2008-10-20T11:48:48.918+07:00</updated><title type='text'>JavaCard Cơ bản: 2 - Qui trình phát triển một "Cardlet"</title><content type='html'>Nhúng sâu vào lý thuyết để hiểu tường tận cơ chế. Tiếp theo, mình note thêm về Qui trình phát triển ra một Cardlet (Applet từ đúng kỹ thuật là JavaCard Applet, nhưng nó trùng với Java Web Applet, nên mình thích gọi là cardlet hơn).&lt;br /&gt;Mô hình dưới đây sẽ khái quát qui trình phát triển mã nguồn, thử nghiệm và kết xuất ra đầu cuối cho thiết bị của một applet:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_J3Ejob9sTKI/SPwJBf07wzI/AAAAAAAAAD0/chTVppuohO0/s1600-h/4.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_J3Ejob9sTKI/SPwJBf07wzI/AAAAAAAAAD0/chTVppuohO0/s320/4.JPG" alt="" id="BLOGGER_PHOTO_ID_5259088386189935410" border="0" /&gt;&lt;/a&gt;- Step 1: Bằng bất cứ một trình soạn thảo nào bạn cũng có thể tạo ra một applet theo cấu trúc mẫu. Hoặc đơn giản hơn thì có thể dùng các IDE hỗ trợ (eclipse + jcop plugin) để tạo ra một applet bao gồm tập các file .java và dùng trình biên dịch chuẩn build thành các .class file.&lt;br /&gt;- Step 2: Bằng công cụ hỗ trợ (JCOP plugin hoặc &lt;a href="http://eclipse-jcde.sourceforge.net/"&gt;JavaCard Develop Environmen - JCDE2&lt;/a&gt;)  để test, debug trên môi trường ảo do công cụ thiết lập.&lt;br /&gt;- Step 3: Khi tiến hành build applet, bộ công cụ cũng biên tập ra các file .cap và các file .export bằng bộ Java converter. Các file .cap, .export là những tài nguyên sẽ được dùng để cài đặt trực tiếp lên các thẻ thật, thành các applet thật trên chip JavaCard. Mỗi CAP file là thể hiện của một "package" đã được tạo. Nếu cardlet có kết hợp nhiều package, thì mỗi package sẽ convert thành một .cap file và 1 .export file.&lt;br /&gt;- Step 4: Sau khi đã test, debug và kiểm tra cardlet hoàn tất, xem như cardlet đã sẵn sàng để được tải lên card. Tài nguyên là các cap file và export file sẽ được dùng để tải lên card thật.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5902920467646767794-2970832078019443104?l=trinhquochungnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://trinhquochungnotes.blogspot.com/feeds/2970832078019443104/comments/default' title='Đăng Nhận xét'/><link rel='replies' type='text/html' href='http://trinhquochungnotes.blogspot.com/2008/10/javacard-c-bn-2-qui-trnh-pht-trin-mt.html#comment-form' title='1 Nhận xét'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/2970832078019443104'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/2970832078019443104'/><link rel='alternate' type='text/html' href='http://trinhquochungnotes.blogspot.com/2008/10/javacard-c-bn-2-qui-trnh-pht-trin-mt.html' title='JavaCard Cơ bản: 2 - Qui trình phát triển một &quot;Cardlet&quot;'/><author><name>Hung.Trinh experiences notes</name><uri>http://www.blogger.com/profile/15879504538337047633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_J3Ejob9sTKI/TLfQC-4TxWI/AAAAAAAAAH0/DXwYRgjBiEA/S220/avtnew.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_J3Ejob9sTKI/SPwJBf07wzI/AAAAAAAAAD0/chTVppuohO0/s72-c/4.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5902920467646767794.post-1605404947949946993</id><published>2008-10-18T08:25:00.004+07:00</published><updated>2008-10-20T11:17:13.385+07:00</updated><title type='text'>JavaCard Cơ bản: 1 - Vòng đời của một "Cardlet"</title><content type='html'>Kiến thức nền tảng là điều kiện cơ bản để khởi đầu, mình trở lại với lý thuyết một tí.&lt;br /&gt;Theo đặc điểm kỹ thuật, vòng đời của một Applet bắt đầu từ khi "em" được &lt;span style="color: rgb(204, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;đăng ký vào card với phương thức &lt;span style="color: rgb(204, 0, 0); font-style: italic;"&gt;Applet.register() &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;. JCRE (JavaCard Runtime Environment) sẽ tương tác với applet thông qua các phương thức tĩnh của applet là: &lt;span style="color: rgb(204, 0, 0); font-style: italic;"&gt;install&lt;/span&gt;, &lt;span style="color: rgb(204, 0, 0); font-style: italic;"&gt;select&lt;/span&gt;, &lt;span style="color: rgb(204, 0, 0); font-style: italic;"&gt;deselect &lt;/span&gt;và &lt;span style="font-weight: bold; font-style: italic; color: rgb(204, 0, 0);"&gt;process&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Phương thức &lt;/span&gt;&lt;span style="color: rgb(204, 0, 0); font-style: italic; font-weight: bold;"&gt;install()&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;:  &lt;/span&gt;&lt;br /&gt;Khai báo:&lt;br /&gt;&lt;pre style="font-weight: bold; color: rgb(0, 0, 153);"&gt;&lt;code&gt;public static void install(&lt;br /&gt;             byte[] bArray, short bOffset&lt;br /&gt;           , byte bLength  )&lt;/code&gt;&lt;code&gt;throws ISOException&lt;/code&gt;&lt;code&gt;;&lt;/code&gt;&lt;/pre&gt;- Khi applet được cài đặt vào JC, phương thức install được thực thi một lần duy nhất cho mỗi thể hiện của applet. Các phương thức khởi dựng không nên được truy cập một cách trực tiếp mà phải thông qua phương thức install. Nhiệm vụ chính của phương thức install là tạo thể hiện của applet thông qua các constructor và đăng ký applet với JCRE thông qua phương thức &lt;span style="color: rgb(204, 0, 0); font-style: italic;"&gt;register()&lt;/span&gt;. Chỉ khi được đăng ký thành công, JCRE mới có thể cho phép thao tác lệnh APDU với applet.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Phương thức &lt;/span&gt;&lt;span style="color: rgb(204, 0, 0); font-style: italic; font-weight: bold;"&gt;register(..)&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;:&lt;/span&gt;&lt;br /&gt;Khai báo:&lt;br /&gt;&lt;pre style="font-weight: bold; color: rgb(0, 0, 153);"&gt;protected final void register()throws &lt;a href="file:///D:/Programs/java_card_kit-2_2_2-windows/java_card_kit-2_2_2/java_card_kit-2_2_2-rr-specs/jc_specification/specs/api/html/javacard/framework/SystemException.html" title="class in javacard.framework"&gt;SystemException;&lt;/a&gt;&lt;br /&gt;protected final void &lt;b&gt;register&lt;/b&gt;(&lt;br /&gt;         byte[] bArray,short bOffset&lt;br /&gt;        ,byte bLength)throws &lt;a href="file:///D:/Programs/java_card_kit-2_2_2-windows/java_card_kit-2_2_2/java_card_kit-2_2_2-rr-specs/jc_specification/specs/api/html/javacard/framework/SystemException.html" title="class in javacard.framework"&gt;SystemException&lt;/a&gt;;&lt;br /&gt;&lt;/pre&gt;- Phương thức này được dùng để đăng ký một thể hiện của ứng dụng "cardlet" với JCRE với một mã (AID) xác định. Mã AID xác định bởi một chuỗi Hexadecimal, có độ dài trong khoảng 5-11 bytes (1byte = 8bits). Mã AID này là tham số đầu vào cho lệnh Select applet. Thông thường, phương thức &lt;span style="color: rgb(204, 0, 0); font-style: italic;"&gt;register()&lt;/span&gt; được gọi từ thân của phương thức&lt;span style="color: rgb(204, 0, 0); font-style: italic;"&gt; install()&lt;/span&gt; để applet được đăng ký với JCRE 1 lần cho mỗi card.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Phương thức &lt;/span&gt;&lt;span style="color: rgb(204, 0, 0); font-style: italic; font-weight: bold;"&gt;select()&lt;/span&gt;:&lt;br /&gt;Khai báo:&lt;br /&gt;&lt;pre style="font-weight: bold; color: rgb(0, 0, 153);"&gt;&lt;code&gt;public boolean select();&lt;/code&gt;&lt;/pre&gt; - Phương thức select() cho phép chuyển quyền nhận lệnh cho một thể hiện của Applet. Phương thức select applet được  JCRE thực thi khi JCRE nhận được lệnh SELECT FILE APDU cùng một mã Applet từ thiết bị. Việc select Applet sẽ chuyển trạng thái applet từ deselect -&gt; select và cho phép applet nhận các lệnh từ bên ngoài thông qua phương thức process() do JCRE chuyển giao. Tuy nhiên, trước khi select Applet, JCRE sẽ tự động thực hiện hành động deselect() một (hoặc các) applet đã được select trước đó.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Phương thức &lt;/span&gt;&lt;span style="color: rgb(204, 0, 0); font-style: italic; font-weight: bold;"&gt;process()&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;: &lt;/span&gt;&lt;br /&gt;Khai báo:&lt;br /&gt;&lt;pre style="font-weight: bold; color: rgb(0, 0, 153);"&gt;&lt;code&gt;public void process(APDU apdu) throws ISOException;&lt;/code&gt;&lt;/pre&gt;- Sau khi được &lt;span style="color: rgb(204, 0, 0); font-style: italic;"&gt;select()&lt;/span&gt;, tất cả các lệnh APDU sẽ được JCRE chuyển cho Applet thông qua phương thước &lt;span style="color: rgb(204, 0, 0); font-style: italic;"&gt;process()&lt;/span&gt;. Các nhân xử lý của applet sẽ được thể hiện (hoặc phân hướng xử lý) ở phương thức này. Từ đây, các thao tác dữ liệu, nhận và trả lệnh APDU được thực hiện trên vùng buffer có giới hạn đã được applet đăng ký trong hàm &lt;span style="color: rgb(153, 0, 0); font-style: italic;"&gt;register()&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Phương thức &lt;/span&gt;&lt;span style="color: rgb(204, 0, 0); font-weight: bold; font-style: italic;"&gt;deselect()&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;:&lt;/span&gt;&lt;br /&gt;Khai báo:&lt;br /&gt;&lt;pre&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;public void &lt;/span&gt;&lt;b style="font-weight: bold; color: rgb(51, 51, 255);"&gt;deselect&lt;/b&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;();&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;- Phương thức được gọi thực thi bởi JCRE khi có yêu cầu hoặc khi có hành động select một Applet khác. JCRE sẽ tự động thực hiện deselect() Applet hiện tại.&lt;br /&gt;- Khi có lỗi khi thực hiện deselect, JCRE sẽ tiếp nhận lỗi, và tại thời điểm đó, applet đã được deselect.&lt;br /&gt;&lt;br /&gt;Kiến thức mình mới đọc và thử nghiệm, có thể hiểu chưa hoàn chỉnh và chính xác. Các bạn có ý kiến đóng góp cho mình chỉnh sửa nha.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5902920467646767794-1605404947949946993?l=trinhquochungnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://trinhquochungnotes.blogspot.com/feeds/1605404947949946993/comments/default' title='Đăng Nhận xét'/><link rel='replies' type='text/html' href='http://trinhquochungnotes.blogspot.com/2008/10/javacard-c-bn-1-vng-i-ca-mt-cardlet.html#comment-form' title='4 Nhận xét'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/1605404947949946993'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/1605404947949946993'/><link rel='alternate' type='text/html' href='http://trinhquochungnotes.blogspot.com/2008/10/javacard-c-bn-1-vng-i-ca-mt-cardlet.html' title='JavaCard Cơ bản: 1 - Vòng đời của một &quot;Cardlet&quot;'/><author><name>Hung.Trinh experiences notes</name><uri>http://www.blogger.com/profile/15879504538337047633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_J3Ejob9sTKI/TLfQC-4TxWI/AAAAAAAAAH0/DXwYRgjBiEA/S220/avtnew.JPG'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5902920467646767794.post-672253379810322631</id><published>2008-10-16T10:53:00.007+07:00</published><updated>2008-10-16T14:07:51.527+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JCOP error'/><category scheme='http://www.blogger.com/atom/ns#' term='JavaCard'/><category scheme='http://www.blogger.com/atom/ns#' term='JCOP'/><category scheme='http://www.blogger.com/atom/ns#' term='JavaCard programming'/><title type='text'>Các lỗi thường gặp khi mới bắt đầu với JavaCard - JCOP Tools</title><content type='html'>Sau một hai buổi mày mò lăn xả với , mình trở về với thân thể trầy xước tả tơi, dưới đấy là vài kinh nhiệm mình gặp phải và cách xử lý&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 0);"&gt;1 - Lỗi upload ".cap" file không thành công.&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_J3Ejob9sTKI/SPbA_X8hRZI/AAAAAAAAADs/9s3de3KLNd8/s1600-h/3.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_J3Ejob9sTKI/SPbA_X8hRZI/AAAAAAAAADs/9s3de3KLNd8/s320/3.JPG" alt="" id="BLOGGER_PHOTO_ID_5257601809993778578" border="0" /&gt;&lt;/a&gt;Lý do:&lt;br /&gt;- Build file cap không thành công, không có file .cap để upload.&lt;br /&gt;Xử lý:&lt;br /&gt;- Từ menu Window-&gt;Preferences..-&gt; Java-&gt;Compiler&lt;br /&gt;- Hiệu chỉnh "Compiler Complance level" -&gt; 1.5&lt;br /&gt;- Build lại project của bạn và Run.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0); font-weight: bold;"&gt;2 - Lỗi không thể send các command.&lt;/span&gt;&lt;br /&gt;Thông báo lỗi:&lt;br /&gt;- "&lt;span style="color: rgb(51, 102, 255);"&gt;CLA value not supported&lt;/span&gt;"&lt;br /&gt;- &lt;span style="color: rgb(51, 102, 255);"&gt;"&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;INS value not supported&lt;/span&gt;"&lt;br /&gt;Lý do:&lt;br /&gt;- process() của bạn hiện tại không bắt, xử lý được với các mã CLA/INS lệnh theo yêu cầu.&lt;br /&gt;Thông báo lỗi:&lt;br /&gt;- "&lt;span style="color: rgb(51, 102, 255);"&gt;Conditions of use not satisfied&lt;/span&gt;"&lt;br /&gt;Lý do: bạn phải /select applet mới có thể bắt đầu truyền các command hoặc applet chưa được xác thực (nếu có)&lt;br /&gt;&lt;br /&gt;3 - &lt;span style="color: rgb(204, 0, 0); font-weight: bold;"&gt;Lỗi "No precise diagnosis" &lt;/span&gt;&lt;br /&gt;Đây là lỗi làm "điên người" nhất mà mình tạm cho 1 lý do tạm là .. trình biên dịch JC còn củ chuối. Khi gặp lỗi này, bạn nên xóa mọi hành động vừa mới làm và bắt đầu cẩn thận lại từ bản backup gần nhất :D, nôm na ra là .. bó hand&lt;br /&gt;&lt;br /&gt;Vài lỗi nhỏ trên là cơ bản, sẽ còn lỗi nhiều nữa, mình sẽ liệt kê thêm nếu gặp phải&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5902920467646767794-672253379810322631?l=trinhquochungnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://trinhquochungnotes.blogspot.com/feeds/672253379810322631/comments/default' title='Đăng Nhận xét'/><link rel='replies' type='text/html' href='http://trinhquochungnotes.blogspot.com/2008/10/cc-li-thng-gp-khi-mi-bt-u-vi-javacard.html#comment-form' title='2 Nhận xét'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/672253379810322631'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/672253379810322631'/><link rel='alternate' type='text/html' href='http://trinhquochungnotes.blogspot.com/2008/10/cc-li-thng-gp-khi-mi-bt-u-vi-javacard.html' title='Các lỗi thường gặp khi mới bắt đầu với JavaCard - JCOP Tools'/><author><name>Hung.Trinh experiences notes</name><uri>http://www.blogger.com/profile/15879504538337047633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_J3Ejob9sTKI/TLfQC-4TxWI/AAAAAAAAAH0/DXwYRgjBiEA/S220/avtnew.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_J3Ejob9sTKI/SPbA_X8hRZI/AAAAAAAAADs/9s3de3KLNd8/s72-c/3.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5902920467646767794.post-5765308575699195926</id><published>2008-10-13T09:21:00.007+07:00</published><updated>2008-10-13T17:27:17.053+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JCOP'/><category scheme='http://www.blogger.com/atom/ns#' term='JavaCard OpenPlatform'/><category scheme='http://www.blogger.com/atom/ns#' term='contactless'/><title type='text'>Làm thế nào để new 1 project JavaCard và build "CAP" file thành công?</title><content type='html'>Tiếp tục công cuộc mò mẫm về JavaCard. Mình bắt đầu tạo một JavaCard Project&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Trong menu New -&gt; Project..&lt;/li&gt;&lt;li&gt;Tại hộp thoại New Project, chọn mục JavaCard Project và chọn Next.&lt;/li&gt;&lt;li&gt;Tại hộp thoại Java Card Project, điền thông tin Project Name và chọn Next.&lt;/li&gt;&lt;li&gt;Tại đây bạn đã có thể chọn Finish. Nhưng mình thì thích đi từng bước hơn.&lt;/li&gt;&lt;li&gt;Nếu chọn Next, bạn sẽ có thể chọn các chuẩn configuration card xác định cho loại project của mình (Java Card 2.2.1, JavaCard 2.1.1, Global Platform, ...)&lt;/li&gt;&lt;li&gt;Chọn Next, chọn mục "Create a JavaCard Application using ...", chọn item "Basic JavaCard applet".&lt;/li&gt;&lt;li&gt;Điền thông tin Package và Applet ClassName. Package là gói chứa đựng các Applet. Applet là gói ứng dụng sẽ được cài lên các chip xử lý.&lt;/li&gt;&lt;li&gt;Chọn Next, điền thông tin PackageAID và AppletAID. Đây là mã xử lý của Package và Applet trên chip. Lưu ý: PackageAID và AppletAID được đặt tên dưới dạng chữ số hexadecimal. Chiều dài cho cả Package AID và AppletAID là 5 bytes. (bạn có thể đọc thêm thông tin trong tài liệu "&lt;a href="http://www.wrankl.de/SCH/SCH.html"&gt;Smart Card Handbook&lt;/a&gt;" để nắm vững hơn)&lt;/li&gt;&lt;li&gt;Chọn Finish.&lt;/li&gt;&lt;li&gt;Tới đây là bước kiểm tra bản quyền của &lt;a href="http://www.nxp.com/"&gt;NXP&lt;/a&gt;, cử sổ activate code sẽ hiện cho bạn 3 action activate: Đăng ký 1 activate code mới, sử dụng thẻ được cung cấp bới NXP để activate hoặc nhập lại 1 activate code đã được cung cấp bới NXP. Nếu không qua được bước này thì coi như quá trình tìm hiểu JavaCard, cardlet buộc phải chấm dứt.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;Xong 9 bước trên vẫn chưa xong, mục đích là phải build được file có đuôi là .cap mới có thể upload vào thẻ. Dưới đây là các bước để Run/Debug project, trong quá trình Run/Debug thành công, file &lt;project&gt;.cap sẽ được build và đặt ở thư mục "../bin" của project.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Trong menu Run -&gt; Open Run/Debug Dialog..&lt;/li&gt;&lt;li&gt;Tạo mới một "JavaCard Application" và đặt các cấu hình phù hợp cho project.&lt;/li&gt;&lt;li&gt;Chọn Run/Debug.&lt;/li&gt;&lt;/ol&gt;Kết quả trong cửa sổ JCOP Shell:&lt;br /&gt;&lt;/project&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_J3Ejob9sTKI/SPK11Kfil_I/AAAAAAAAADc/n98n2-ijqzc/s1600-h/1.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_J3Ejob9sTKI/SPK11Kfil_I/AAAAAAAAADc/n98n2-ijqzc/s320/1.JPG" alt="" id="BLOGGER_PHOTO_ID_5256463640049129458" border="0" /&gt;&lt;/a&gt;chú ý dòng : "&lt;span style="color: rgb(255, 0, 0);"&gt;cm&gt;  upload -b 250 .... .cap&lt;/span&gt;" là đường dẫn đến file cap đã được build thành công.&lt;br /&gt;&lt;project&gt;"cm&gt;  install -i abababab01  -q C9#() &lt;span style="color: rgb(0, 153, 0);"&gt;abababab00&lt;/span&gt; &lt;span style="color: rgb(204, 0, 0);"&gt;abababab01&lt;/span&gt;"&lt;br /&gt;- &lt;/project&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;abababab00&lt;/span&gt;&lt;project&gt; là tên packageAID&lt;br /&gt;- &lt;/project&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;abababab01 &lt;/span&gt;&lt;project&gt;là tên appletAID&lt;br /&gt;&lt;br /&gt;&lt;/project&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_J3Ejob9sTKI/SPK34su3ZaI/AAAAAAAAADk/ydP1oYm6DPo/s1600-h/2.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_J3Ejob9sTKI/SPK34su3ZaI/AAAAAAAAADk/ydP1oYm6DPo/s320/2.JPG" alt="" id="BLOGGER_PHOTO_ID_5256465899803076002" border="0" /&gt;&lt;/a&gt;"cm&gt; card-info" cho thông tin card sau khi upload applet thành công.&lt;br /&gt;Đến đây xem như bạn đã có thể tạo được một applet (.cap). Công việc kế tiếp sẽ còn nhiều cam go, nhưng đến đây mình cần phải dừng lại để suy ngẫm, đúc kết lại những gì mình đã làm được. Làm ly cafe nào.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5902920467646767794-5765308575699195926?l=trinhquochungnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://trinhquochungnotes.blogspot.com/feeds/5765308575699195926/comments/default' title='Đăng Nhận xét'/><link rel='replies' type='text/html' href='http://trinhquochungnotes.blogspot.com/2008/10/lm-th-no-new-1-project-javacard-v-build.html#comment-form' title='4 Nhận xét'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/5765308575699195926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/5765308575699195926'/><link rel='alternate' type='text/html' href='http://trinhquochungnotes.blogspot.com/2008/10/lm-th-no-new-1-project-javacard-v-build.html' title='Làm thế nào để new 1 project JavaCard và build &quot;CAP&quot; file thành công?'/><author><name>Hung.Trinh experiences notes</name><uri>http://www.blogger.com/profile/15879504538337047633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_J3Ejob9sTKI/TLfQC-4TxWI/AAAAAAAAAH0/DXwYRgjBiEA/S220/avtnew.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_J3Ejob9sTKI/SPK11Kfil_I/AAAAAAAAADc/n98n2-ijqzc/s72-c/1.JPG' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5902920467646767794.post-698976060912370224</id><published>2008-10-13T08:48:00.005+07:00</published><updated>2009-11-02T09:51:43.704+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JCOP'/><category scheme='http://www.blogger.com/atom/ns#' term='JavaCard OpenPlatform'/><category scheme='http://www.blogger.com/atom/ns#' term='contactless'/><title type='text'>Cài đặt tool JCOP 3.1. thành công</title><content type='html'>Khởi đầu một kiến thức mới về lập trình JavaCard với tool JCOP 3.1, mình muốn lưu lại từng bước thực hiện, những trở ngại gặp phải và cách giải quyết. Sau topic này sẽ là những gì mình thu thập được, có gì sai sót các bạn cho góp ý nhe.&lt;br /&gt;&lt;br /&gt;Khởi đầu là làm sao để  &lt;span style="font-weight: bold;"&gt;Cài đặt tool JCOP 3.1.&lt;/span&gt; thành công&lt;br /&gt;&lt;br /&gt;Xin đặt vài dòng giới thiệu ngắn ngủi, JCOP - JavaCard OpenPlatform - khởi nguồn do IBM nghiên cứu - với tên gốc là JavaCard - là một bộ khung lập trình để phát triển cho công nghệ các loại thẻ thông minh (smart card), cho phép lập trình trên các loại thẻ có chip xử lý nhỏ mà ta đã thấy ứng dụng của chúng trong thực tế ngày nay: sim điện thoại, thẻ ngân hàng, thẻ nhân viên thông minh... Nhưng sau năm 2007, IBM ngừng đầu tư và chuyển giao công nghệ cho hãng &lt;a href="http://www.nxp.com/"&gt;NXP &lt;/a&gt;&lt;a href="http://en.wikipedia.org/wiki/NXP_Semiconductors" title="NXP Semiconductors"&gt;Semiconductors&lt;/a&gt;&lt;a href="http://www.nxp.com/"&gt; &lt;/a&gt;- một trong những tập đoàn hàng đầu thế giới về công nghệ thẻ bao gồm cả thẻ "không tiếp xúc" (contactless). Từ đó, công cụ này có tên mới là JCOP với các version phát triển 1.0, 2.1 , 3.1, 4.1... Ngày nay, công cụ này không còn được tìm thấy trên mạng, mà nó chỉ được chuyền tay qua các thành viên hoặc được cấp từ chính hãng NXP với điền kiện có đăng ký hợp đồng. Dưới đây mình sẽ liệt kê từng bước cài đặt JCOP 3.1 thành công:&lt;br /&gt;Điều kiện :&lt;br /&gt;- Eclipse IDE từ version 3.2 đến 3.3.1, dùng khác các version này không đảm bảo build CAP file thành công.&lt;br /&gt;- JCOP plugin for Eclipse version 3.2.7 , tool này bạn phải tự tìm hoặc đăng ký với &lt;a href="http://www.nxp.com/"&gt;NXP &lt;/a&gt;&lt;a href="http://en.wikipedia.org/wiki/NXP_Semiconductors" title="NXP Semiconductors"&gt;Semiconductors. &lt;/a&gt;&lt;br /&gt;Thực hiện:&lt;br /&gt;- Sau khi giải nén và khởi động IDE Eclipse.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style=";font-family:sans-serif;font-size:10;"  &gt;Chọn menu &lt;strong&gt; Help &gt;    Software Updates &gt; Find and Install&lt;/strong&gt;&lt;/span&gt;    &lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:sans-serif;font-size:10;"  &gt;Trong hộp thoại Install/Update, chọn&lt;strong&gt;    Search for new features to install&lt;/strong&gt;&lt;/span&gt; và chọn Next&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:sans-serif;font-size:10;"  &gt;Chọn nút nhấn &lt;strong&gt;New Archived Site . . .&lt;/strong&gt; và chỉ đường dẫn đến file n&lt;/span&gt;    &lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:sans-serif;font-size:10;"  &gt;Chọn liên tiếp  &lt;strong&gt;Open &lt;/strong&gt;-&gt; &lt;strong&gt;OK&lt;/strong&gt; -&gt;    &lt;strong&gt;Finish&lt;/strong&gt;&lt;/span&gt;    &lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:sans-serif;font-size:10;"  &gt;IDE Eclipse sẽ đòi hỏi khởi động lại.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;Sau khi khởi động thành công, trong mục New Project sẽ có thêm cấp project "JavaCard Project". Nếu thấy mục này, coi như bạn đã cài đặt thành công plugin JCOP for Eclipse.&lt;br /&gt;&lt;br /&gt;Bước tiếp theo: &lt;a href="http://trinhquochungnotes.blogspot.com/2008/10/lm-th-no-new-1-project-javacard-v-build.html"&gt;Làm thế nào để new 1 project JavaCard và build "CAP" file thành công?&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5902920467646767794-698976060912370224?l=trinhquochungnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://trinhquochungnotes.blogspot.com/feeds/698976060912370224/comments/default' title='Đăng Nhận xét'/><link rel='replies' type='text/html' href='http://trinhquochungnotes.blogspot.com/2008/10/ci-t-tool-jcop-31-thnh-cng.html#comment-form' title='3 Nhận xét'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/698976060912370224'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/698976060912370224'/><link rel='alternate' type='text/html' href='http://trinhquochungnotes.blogspot.com/2008/10/ci-t-tool-jcop-31-thnh-cng.html' title='Cài đặt tool JCOP 3.1. thành công'/><author><name>Hung.Trinh experiences notes</name><uri>http://www.blogger.com/profile/15879504538337047633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_J3Ejob9sTKI/TLfQC-4TxWI/AAAAAAAAAH0/DXwYRgjBiEA/S220/avtnew.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5902920467646767794.post-2052227836614793967</id><published>2008-09-30T23:46:00.003+07:00</published><updated>2008-10-01T00:24:14.283+07:00</updated><title type='text'>Tạo Snippet cho VS C# 2005 bằng notepad</title><content type='html'>Code Snippet là một trong những công cụ tích hợp hỗ trợ cho việc lập trình trên môi trường .Net.&lt;br /&gt;Với các snippet, các bạn có thể dễ dàng thêm một đoạn code mẫu, hoặc code thường dùng với chỉ vài "từ khóa". Sử dụng hiệu quả các code snippet có thể giúp người lập trình giảm tải trong việc gõ các dòng code dài dòng nhàm chán, giúp tiết kiệm thời gian và hiệu quả coding cao hơn.&lt;br /&gt;Một số snippet có sẵn trong VS C# 2005:&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;"ctor" + tab&lt;/span&gt; -&gt; tạo một constructor cho lớp hiện tại&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;"for" + tab&lt;/span&gt; -&gt; chèn một block biểu thức lặp "for" vào vị trí hiện tại&lt;br /&gt;.. bạn có thể nhấn tổ hợp phím tắt Ctrl + K + X để vào menu Insert Snippet và xem các snippet mặc định.&lt;br /&gt;Ngoài ra, bạn cũng có thể tự tạo một snippet thân quen cho mình. Dưới đây, mình xin giới thiệu cách tạo một snippet đơn giản bằng notepad:&lt;br /&gt;Mục tiêu : một snippet với keyword: "&lt;span style="color: rgb(0, 0, 102);"&gt;pubm&lt;/span&gt;" để thêm một phương thức có dạng:&lt;br /&gt;&lt;blockquote style="color: rgb(0, 0, 102);"&gt;&lt;span style="font-size:85%;"&gt;public &amp;lt;return_type&amp;gt; Method()&lt;br /&gt;{&lt;br /&gt;        return &amp;lt;return_type&amp;gt;;&lt;br /&gt;}&lt;/span&gt;&lt;/blockquote&gt; Step 1: mở notepad và soạn thảo mẫu xml sau:&lt;blockquote style="color: rgb(0, 0, 102);"&gt;&lt;span style="font-size:78%;"&gt;&amp;lt;?xml version="1.0" encoding="utf-8" ?&amp;gt;&lt;br /&gt;&amp;lt;CodeSnippets  xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"&amp;gt;&lt;br /&gt;   &amp;lt;CodeSnippet Format="1.0.0"&amp;gt;&lt;br /&gt;       &amp;lt;Header&amp;gt;&lt;br /&gt;           &amp;lt;Title&amp;gt;pubm&amp;lt;/Title&amp;gt;&lt;br /&gt;           &amp;lt;Shortcut&amp;gt;pubm&amp;lt;/Shortcut&amp;gt;&lt;br /&gt;           &amp;lt;Description&amp;gt;Create public method&amp;lt;/Description&amp;gt;&lt;br /&gt;           &amp;lt;Author&amp;gt;Hung.Trinh&amp;lt;/Author&amp;gt;&lt;br /&gt;           &amp;lt;SnippetTypes&amp;gt;&lt;br /&gt;               &amp;lt;SnippetType&amp;gt;Expansion&amp;lt;/SnippetType&amp;gt;&lt;br /&gt;           &amp;lt;/SnippetTypes&amp;gt;&lt;br /&gt;       &amp;lt;/Header&amp;gt;&lt;br /&gt;       &amp;lt;Snippet&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;            &amp;lt;&lt;span style="color: rgb(204, 153, 51);"&gt;Declarations&lt;/span&gt;&amp;gt;&lt;br /&gt;               &lt;span style="color: rgb(204, 0, 0);"&gt;&amp;lt;Literal Editable="&lt;span style="color: rgb(51, 204, 0);"&gt;true&lt;/span&gt;"&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt; &lt;span style="color: rgb(204, 0, 0);"&gt;                    &amp;lt;ID&amp;gt;&lt;span style="color: rgb(51, 255, 51);"&gt;returntype&lt;/span&gt;&amp;lt;/ID&amp;gt;&lt;/span&gt; &lt;span style="color: rgb(204, 0, 0);"&gt;                    &amp;lt;ToolTip&amp;gt;Return type&amp;lt;/ToolTip&amp;gt;&lt;/span&gt; &lt;span style="color: rgb(204, 0, 0);"&gt;                    &amp;lt;Function&amp;gt;&amp;lt;/Function&amp;gt;&lt;/span&gt; &lt;span style="color: rgb(204, 0, 0);"&gt;                    &amp;lt;Default&amp;gt;&lt;span style="color: rgb(0, 153, 0);"&gt;void&lt;/span&gt;&amp;lt;/Default&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt; &lt;span style="color: rgb(204, 0, 0);"&gt;                &amp;lt;/Literal&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt; &lt;span style="color: rgb(204, 0, 0);"&gt;                &amp;lt;Literal Editable="&lt;span style="color: rgb(0, 153, 0);"&gt;true&lt;/span&gt;"&amp;gt;&lt;br /&gt;&lt;/span&gt; &lt;span style="color: rgb(204, 0, 0);"&gt;                    &amp;lt;ID&amp;gt;&lt;span style="color: rgb(51, 204, 0);"&gt;methodname&lt;/span&gt;&amp;lt;/ID&amp;gt;&lt;/span&gt; &lt;span style="color: rgb(204, 0, 0);"&gt;                    &amp;lt;ToolTip&amp;gt;Method name&amp;lt;/ToolTip&amp;gt;&lt;/span&gt; &lt;span style="color: rgb(204, 0, 0);"&gt;                    &amp;lt;Function&amp;gt;&amp;lt;/Function&amp;gt;&lt;/span&gt; &lt;span style="color: rgb(204, 0, 0);"&gt;                    &amp;lt;Default&amp;gt;&lt;span style="color: rgb(0, 153, 0);"&gt;MethodName&lt;/span&gt;&amp;lt;/Default&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt; &lt;span style="color: rgb(204, 0, 0);"&gt;                &amp;lt;/Literal&amp;gt;&lt;/span&gt;&lt;br /&gt;           &amp;lt;/&lt;span style="color: rgb(204, 153, 51);"&gt;Declarations&lt;/span&gt;&amp;gt;&lt;br /&gt;           &amp;lt;Code Language="csharp"&amp;gt;&lt;br /&gt;           &amp;lt;![CDATA[&lt;span style="color: rgb(204, 0, 0);"&gt;public $&lt;span style="color: rgb(51, 204, 0);"&gt;returntype&lt;/span&gt;$ $&lt;span style="color: rgb(51, 204, 0);"&gt;methodname&lt;/span&gt;$ ()&lt;/span&gt; &lt;span style="color: rgb(204, 0, 0);"&gt;        {&lt;/span&gt; &lt;span style="color: rgb(204, 0, 0);"&gt;            return ($&lt;span style="color: rgb(51, 255, 51);"&gt;returntype&lt;/span&gt;$)&lt;span style="color: rgb(51, 204, 0);"&gt;$end$&lt;/span&gt;;&lt;/span&gt; &lt;span style="color: rgb(204, 0, 0);"&gt;        }&lt;/span&gt;]]&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;            &amp;lt;/Code&amp;gt;&lt;br /&gt;       &amp;lt;/Snippet&amp;gt;&lt;br /&gt;   &amp;lt;/CodeSnippet&amp;gt;&lt;br /&gt;&amp;lt;/CodeSnippets&amp;gt;&lt;/span&gt;&lt;/blockquote&gt;trong rừng code này, bạn chỉ cần quan tâm các thẻ:&lt;br /&gt;"Declarations" --&gt; định nghĩa các field dùng trong code mẫu&lt;br /&gt;"Literal" --&gt; định nghĩa từng field sẽ dùng và thuộc tính của từng field&lt;br /&gt;"ID" --&gt; tên 1 field (ví dụ returntype --&gt; khi dùng: $returntype$, methodname -&gt; $methodname)&lt;br /&gt;"Default" --&gt; giá trị mặc định của 1 field (ví dụ returntype -&gt; void, ..)&lt;br /&gt;và vùng dữ liệu từ sau ký tự "[" của thẻ "&amp;lt;![CDATA[" đó sẽ là đoạn code mà bạn cần chèn. Ở đây đoạn code đó là :&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;public $&lt;span style="color: rgb(51, 204, 0);"&gt;returntype&lt;/span&gt;$ $&lt;span style="color: rgb(51, 204, 0);"&gt;methodname&lt;/span&gt;$ ()&lt;/span&gt;  &lt;span style="color: rgb(204, 0, 0);"&gt;        &lt;br/&gt;{&lt;br/&gt;&lt;/span&gt;  &lt;span style="color: rgb(204, 0, 0);"&gt;            return ($&lt;span style="color: rgb(51, 255, 51);"&gt;returntype&lt;/span&gt;$)&lt;span style="color: rgb(51, 204, 0);"&gt;$end$&lt;/span&gt;;&lt;br/&gt;&lt;/span&gt;  &lt;span style="color: rgb(204, 0, 0);"&gt;        }&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;với "$returntype$", "$methodname$" là các field đã được định nghĩa trước trong phần "Declaration".&lt;br /&gt;Step 2: lưu nội dung này lại với tên file là "pubm.snippet" và copy vào thư mục:&lt;br /&gt;"../My Documents/Visual Studio 2005/Code Snippets/Visual C#/My Code Snippets"&lt;br /&gt;hoặc  vào VS C# 2005 -&gt; Tools -&gt; Code Snippets Manager.. -&gt; Import, chỉ đường dẫn đến file "pubm.snippet".&lt;br /&gt;Bây giờ mở một cửa sổ lớp trong C# 2005, bạn đã có thể tận hưởng snippet của mình bằng tổ hợp phím Ctrl + K + X, hoặc chỉ cần đơn thuần type: "pubm" + tab&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_J3Ejob9sTKI/SOJgam1nkqI/AAAAAAAAADU/tlvyi5mcIaI/s1600-h/taosnippet1.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_J3Ejob9sTKI/SOJgam1nkqI/AAAAAAAAADU/tlvyi5mcIaI/s320/taosnippet1.JPG" alt="" id="BLOGGER_PHOTO_ID_5251866125685723810" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Chúc bạn thành công.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5902920467646767794-2052227836614793967?l=trinhquochungnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://trinhquochungnotes.blogspot.com/feeds/2052227836614793967/comments/default' title='Đăng Nhận xét'/><link rel='replies' type='text/html' href='http://trinhquochungnotes.blogspot.com/2008/09/to-snippet-cho-vs-c-2005-bng-notepad.html#comment-form' title='1 Nhận xét'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/2052227836614793967'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/2052227836614793967'/><link rel='alternate' type='text/html' href='http://trinhquochungnotes.blogspot.com/2008/09/to-snippet-cho-vs-c-2005-bng-notepad.html' title='Tạo Snippet cho VS C# 2005 bằng notepad'/><author><name>Hung.Trinh experiences notes</name><uri>http://www.blogger.com/profile/15879504538337047633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_J3Ejob9sTKI/TLfQC-4TxWI/AAAAAAAAAH0/DXwYRgjBiEA/S220/avtnew.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_J3Ejob9sTKI/SOJgam1nkqI/AAAAAAAAADU/tlvyi5mcIaI/s72-c/taosnippet1.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5902920467646767794.post-8878992721514719371</id><published>2008-09-18T16:14:00.015+07:00</published><updated>2008-09-21T00:03:59.394+07:00</updated><title type='text'>Code nhanh với Code Snippet từ VS .Net 2005</title><content type='html'>Để nâng cao hiệu quả thời gian code hơn, mình tìm hiểu và thấy chức năng Intellisence&lt;br /&gt;Code Snippet của VS .Net 2005.&lt;br /&gt;&lt;br /&gt;Code Snippet cung cấp một con đường tắt cho phép bạn chèn những đoạn code, thay&lt;br /&gt;đổi một vài yếu tố cơ bản, cho một kết quả nhanh chóng và đúng mẫu vào rừng code&lt;br /&gt;của bạn.&lt;br /&gt;&lt;br /&gt;Từ cửa sổ soạn code, bạn có thể nhanh chóng bật danh sách snippet bằng phím tắt&lt;br /&gt;Ctrl + K + X.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_J3Ejob9sTKI/SNIeVBo6BuI/AAAAAAAAACo/sOkihkjfZtU/s1600-h/1.JPG"&gt;&lt;br /&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_J3Ejob9sTKI/SNIeVBo6BuI/AAAAAAAAACo/sOkihkjfZtU/s320/1.JPG" alt="" id="BLOGGER_PHOTO_ID_5247289862406145762" border="0" /&gt;&lt;/a&gt; Và để&lt;br /&gt;thao tác nhanh với các snippet đã có sẵn, bạn chỉ phải đơn giản gõ đúng từ khóa,&lt;br /&gt;rồi tiếp tục nhấn tab để chấp nhận snippet chèn code mẫu vào đoạn code của bạn.&lt;br /&gt;Ví dụ: - từ khóa "ctor" + Tab --&amp;gt; tự động sinh code của method contructor trong&lt;br /&gt;lớp hiện tại&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_J3Ejob9sTKI/SNIgT4qTGGI/AAAAAAAAACw/vXcYxix4vKE/s1600-h/2.JPG"&gt;&lt;br /&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_J3Ejob9sTKI/SNIgT4qTGGI/AAAAAAAAACw/vXcYxix4vKE/s320/2.JPG" alt="" id="Img1" border="0" /&gt;&lt;/a&gt; Hơn thế nữa, VS .Net cho phép bạn tự&lt;br /&gt;add thêm những snippet theo thói quen code của từng cá nhân. Bạn có thể dễ dàng&lt;br /&gt;soạn thảo 1 snippet thay cho đoạn code thân quen thường dùng, dễ dàng import vào&lt;br /&gt;VS C#, và chuyên tâm hơn vào nội dung đoạn code. Có rất nhiều snippet mẫu được đăng trên mạng, hoặc bạn cũng có thể down hơn 400 C# snippet từ chính &lt;a href="http://msdn.microsoft.com/vstudio/downloads/codesnippets/"&gt;Snippet Library&lt;/a&gt; của Microsoft. Nếu muốn tự tạo một snippet của riêng mình, điều đó cũng dễ dàng thực hiện bằng tool&lt;a href="http://www.gotdotnet.com/codegallery/codegallery.aspx?id=b0813ae7-466a-43c2-b2ad-f87e4ee6bc39"&gt; Code Snippet Editor for C#&lt;/a&gt;, &lt;a href="http://www.codeplex.com/configurationSnippet"&gt;Confirguration Section Snippet&lt;/a&gt; hoặc cũng có thể tự tạo Snippet bằng notepad (updating).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5902920467646767794-8878992721514719371?l=trinhquochungnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://trinhquochungnotes.blogspot.com/feeds/8878992721514719371/comments/default' title='Đăng Nhận xét'/><link rel='replies' type='text/html' href='http://trinhquochungnotes.blogspot.com/2008/09/code-nhanh-vi-code-snippet-t-vs-net.html#comment-form' title='1 Nhận xét'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/8878992721514719371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/8878992721514719371'/><link rel='alternate' type='text/html' href='http://trinhquochungnotes.blogspot.com/2008/09/code-nhanh-vi-code-snippet-t-vs-net.html' title='Code nhanh với Code Snippet từ VS .Net 2005'/><author><name>Hung.Trinh experiences notes</name><uri>http://www.blogger.com/profile/15879504538337047633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_J3Ejob9sTKI/TLfQC-4TxWI/AAAAAAAAAH0/DXwYRgjBiEA/S220/avtnew.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_J3Ejob9sTKI/SNIeVBo6BuI/AAAAAAAAACo/sOkihkjfZtU/s72-c/1.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5902920467646767794.post-6750942069694412445</id><published>2008-09-18T03:08:00.000+07:00</published><updated>2008-09-18T03:22:54.820+07:00</updated><title type='text'>Cách tạo tool install/uninstall services trong .NET 2005</title><content type='html'>Trong &lt;span style="border-bottom: medium none; background: transparent none repeat scroll 0% 0%; cursor: pointer; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" class="yshortcuts" id="lw_1221682127_0"&gt;Visual Studio 2005 professional edition&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Tạo tool install services:&lt;br /&gt;Tools -&gt; External Tools.. -&gt; Add..&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_J3Ejob9sTKI/SNFm5D0NTkI/AAAAAAAAACA/aYz_0Wj1WU0/s1600-h/createInstallServiceTool.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_J3Ejob9sTKI/SNFm5D0NTkI/AAAAAAAAACA/aYz_0Wj1WU0/s320/createInstallServiceTool.jpg" alt="" id="BLOGGER_PHOTO_ID_5247088171326197314" border="0" /&gt;&lt;/a&gt;- Title: Install this service&lt;br /&gt;- Command: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe&lt;br /&gt;(chỉ đúng nếu .Netframework được cài ở ổ C:\Windows\"&lt;br /&gt;- Arguments: $(TargetName)$(TargetExt)&lt;br /&gt;- Initial Directory: $(TargetDir)&lt;br /&gt;- OK&lt;br /&gt;&lt;br /&gt;Tạo tool uninstall services:&lt;br /&gt;Tools -&gt; External Tools.. -&gt; Add..&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_J3Ejob9sTKI/SNFm_2plqtI/AAAAAAAAACI/NOUfHQ-kkXY/s1600-h/createUnInstallServiceTool.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_J3Ejob9sTKI/SNFm_2plqtI/AAAAAAAAACI/NOUfHQ-kkXY/s320/createUnInstallServiceTool.jpg" alt="" id="BLOGGER_PHOTO_ID_5247088288051079890" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;- Title: UnInstall this service&lt;br /&gt;- Command: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe&lt;br /&gt;(chỉ đúng nếu .Netframework được cài ở ổ C:\Windows\"&lt;br /&gt;- Arguments: /u $(TargetName)$(TargetExt)&lt;br /&gt;- Initial Directory: $(TargetDir)&lt;br /&gt;- OK&lt;br /&gt;&lt;br /&gt;2 tools này chỉ có hiệu quả với các dạng &lt;span class="yshortcuts" id="lw_1221682127_1"&gt;project windows services&lt;/span&gt;.&lt;br /&gt;sau khi install service, vào run -&gt; services.msc (hoặc vào Control Panel -&gt; Administrator Tools -&gt; Services) để kiểm tra danh sách các services.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5902920467646767794-6750942069694412445?l=trinhquochungnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://trinhquochungnotes.blogspot.com/feeds/6750942069694412445/comments/default' title='Đăng Nhận xét'/><link rel='replies' type='text/html' href='http://trinhquochungnotes.blogspot.com/2008/09/cch-to-tool-installuninstall-services.html#comment-form' title='0 Nhận xét'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/6750942069694412445'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/6750942069694412445'/><link rel='alternate' type='text/html' href='http://trinhquochungnotes.blogspot.com/2008/09/cch-to-tool-installuninstall-services.html' title='Cách tạo tool install/uninstall services trong .NET 2005'/><author><name>Hung.Trinh experiences notes</name><uri>http://www.blogger.com/profile/15879504538337047633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_J3Ejob9sTKI/TLfQC-4TxWI/AAAAAAAAAH0/DXwYRgjBiEA/S220/avtnew.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_J3Ejob9sTKI/SNFm5D0NTkI/AAAAAAAAACA/aYz_0Wj1WU0/s72-c/createInstallServiceTool.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5902920467646767794.post-4116469547697203047</id><published>2008-09-18T02:24:00.000+07:00</published><updated>2008-09-18T03:26:23.205+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='window service'/><category scheme='http://www.blogger.com/atom/ns#' term='create service'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net 2005'/><title type='text'>Tạo một service với .Net 2005 như thế nào?</title><content type='html'>Đầu tiên, đừng nghĩ window service là gì mờ ảo, bản chất nó cũng là một application chạy một cách xấu xí không có giao diện, và luôn làm điều dấu dấu diếm diếm không ai thấy.&lt;br /&gt;Để tạo một window service bằng C# với VS .Net 2005, các bạn click vài nút chuột sau:&lt;br /&gt;&lt;br /&gt;Step1: Trong Microsoft Visual Studio -&gt; File -&gt; New -&gt; Project.. (Ctrl + Shift + N)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_J3Ejob9sTKI/SNFc5eHDasI/AAAAAAAAABw/KyV-al9ynWc/s1600-h/createWService_1.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_J3Ejob9sTKI/SNFc5eHDasI/AAAAAAAAABw/KyV-al9ynWc/s320/createWService_1.JPG" alt="" id="BLOGGER_PHOTO_ID_5247077183268285122" border="0" /&gt;&lt;/a&gt;Visual C# -&gt; Window Service (1) -&gt; đặt Project name -&gt; OK&lt;br /&gt;&lt;br /&gt;Step2: Bạn nên đặt lại tên service của mình: Right click trên màn hình Service1.cs [Design] -&gt; Properties -&gt; sử nội dung ô text box "ServiceName" thành tên service của bạn. Nhấn F7 để vào vùng code của Service1.cs. Tại cửa sổ code bạn sẽ thấy 3 phương thức cơ bản:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size:85%;"&gt;public partial class Service1 : ServiceBase&lt;br /&gt;   {&lt;br /&gt;       public Service1()&lt;br /&gt;       {&lt;br /&gt;           InitializeComponent();&lt;br /&gt;       }&lt;br /&gt;       protected override void OnStart(string[] args)&lt;br /&gt;       {&lt;br /&gt;           // TODO: Add code here to start your service.&lt;br /&gt;       }&lt;br /&gt;       protected override void OnStop()&lt;br /&gt;       {&lt;br /&gt;           // TODO: Add code here to perform any tear-down necessary to stop service.&lt;br /&gt;       }&lt;br /&gt;   }&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;Step3: Bây giờ, bạn đã có thể build được service1 thành công. Nhưng vẫn chưa đủ để triển khai service1 vào danh sách service có trong hệ thống. Để làm điều đó, bạn cần phải gắn thêm cho service bộ installer:&lt;br /&gt;  Từ màn hình Service1.cs[Design] -&gt; Right click -&gt; Add Installer&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_J3Ejob9sTKI/SNFf2M2N6SI/AAAAAAAAAB4/XrD4Guo0BdI/s1600-h/createWService_3.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_J3Ejob9sTKI/SNFf2M2N6SI/AAAAAAAAAB4/XrD4Guo0BdI/s320/createWService_3.JPG" alt="" id="BLOGGER_PHOTO_ID_5247080425629542690" border="0" /&gt;&lt;/a&gt;Ở màn hình ProjectInstaller.cs[Design] có 2 component là serviceInstaller và serviceprocessInstaller.&lt;br /&gt;- serviceInstaller sẽ giữ những thuộc tính về service sẽ được cài đặt bao gồm: StartType (Automatic, Manual, Disabled), Service description, .. để làm service tự động hoạt động khi mở máy, bạn cần chọn chế độ StartType = Automatic&lt;br /&gt;- serviceprocessInstaller sẽ giữ thông tin tài khoản có sử dụng service: Account, Parent... ở các chế độ khác nhau của Account sẽ ảnh hưởng đến quyền hạn thực thi của service.&lt;br /&gt;&lt;br /&gt;Ok!!Hoàn thành bước này, coi như bạn đã tạo và chuẩn bị sẵn sàng cho một service chạy trong hệ thống. Điều cần làm tiếp theo là hoàn chỉnh chức năng của service và &lt;a href="http://trinhquochungnotes.blogspot.com/2008/09/cch-to-tool-installuninstall-services.html"&gt;install service&lt;/a&gt; vào hệ thống.&lt;br /&gt;Chúc  các bạn thành công.&lt;br /&gt;&lt;br /&gt;Hints: Để kiểm tra các services chạy trong hệ thống, bạn chọn Start -&gt; Run.. -&gt; services.msc. Nếu có thông báo lỗi thì có nghĩa là bạn không đủ quyền hạn để kiểm tra danh sách service.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5902920467646767794-4116469547697203047?l=trinhquochungnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://trinhquochungnotes.blogspot.com/feeds/4116469547697203047/comments/default' title='Đăng Nhận xét'/><link rel='replies' type='text/html' href='http://trinhquochungnotes.blogspot.com/2008/09/to-mt-service-vi-net-2005-nh-th-no.html#comment-form' title='0 Nhận xét'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/4116469547697203047'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/4116469547697203047'/><link rel='alternate' type='text/html' href='http://trinhquochungnotes.blogspot.com/2008/09/to-mt-service-vi-net-2005-nh-th-no.html' title='Tạo một service với .Net 2005 như thế nào?'/><author><name>Hung.Trinh experiences notes</name><uri>http://www.blogger.com/profile/15879504538337047633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_J3Ejob9sTKI/TLfQC-4TxWI/AAAAAAAAAH0/DXwYRgjBiEA/S220/avtnew.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_J3Ejob9sTKI/SNFc5eHDasI/AAAAAAAAABw/KyV-al9ynWc/s72-c/createWService_1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5902920467646767794.post-82971562990643839</id><published>2008-09-18T01:25:00.000+07:00</published><updated>2008-09-18T03:24:54.363+07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='window service'/><category scheme='http://www.blogger.com/atom/ns#' term='debug service'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net 2005'/><title type='text'>Debug Window Service với .Net 2005</title><content type='html'>Theo chỉ thị của "cấp trên", hổm rày mày mò ngồi tìm hiểu "Làm sao để debug được service trong VS .Net 2005 ta?". Tới bi giờ có thể nhẹ nhõm báo cáo "sếp" biết rùi!!(mừng húm hi hi). Dưới đây mình sẽ tóm tắt vài bước chấp vá các mảnh:&lt;br /&gt;&lt;br /&gt;Điều kiện:&lt;br /&gt;- Môi trường VS .Net 2005 professional edition (bản express ko có cho dính dáng gì đến services cả -&gt; rầu)&lt;br /&gt;- Mặc định là đã có một service với tên là MyDemoService: (&lt;a href="http://trinhquochungnotes.blogspot.com/2008/09/to-mt-service-vi-net-2005-nh-th-no.html"&gt;Tạo một service như thế nào?&lt;/a&gt;)&lt;ol&gt;&lt;li&gt;file name   : MyDemoService.cs&lt;/li&gt;&lt;li&gt;class name: MyDemoService&lt;/li&gt;&lt;/ol&gt;và project đang được mở bằng VS .Net 2005 professional edition (hoặc phiên bản cao hơn)&lt;br /&gt;- Mặc định là build service không lỗi, &lt;a href="http://trinhquochungnotes.blogspot.com/2008/09/cch-to-tool-installuninstall-services.html"&gt;install service&lt;/a&gt; thành công vào hệ thống.&lt;br /&gt;&lt;br /&gt;Step 1: Kiểm tra configuration mode của solution phải ở chế độ "Debug". Để thay đổi, bạn chọn menu Build -&gt; Configuration Manager..  tại combobox "Active solution configuration" bạn chọn "Debug" -&gt; Close.&lt;br /&gt;- Tại đây, bạn đã có thể nhấn F5 để chạy Debug thử, bạn vẫn có thể đặt breakpoin ở bất cứ đâu, nhưng VS sẽ chỉ cho phép debug trong phạm vi hàm "Main()" trong file Program.cs thôi. Nếu vẫn cố gắng F5, bạn sẽ nhận được thông báo lỗi:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_J3Ejob9sTKI/SNFQUgxdE9I/AAAAAAAAABY/IchzeHMDM9k/s1600-h/debugWService_error.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_J3Ejob9sTKI/SNFQUgxdE9I/AAAAAAAAABY/IchzeHMDM9k/s320/debugWService_error.JPG" alt="" id="BLOGGER_PHOTO_ID_5247063354188305362" border="0" /&gt;&lt;/a&gt;Step2: Nào ta cùng bắt tay vào công việc chính&lt;br /&gt;- Mở file Program.cs, trong hàm static void Main(..), bạn thêm các dòng code sau:&lt;blockquote&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;ServicesToRun = new ServiceBase[] { new Service1() };&lt;/span&gt; &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;#if(DEBUG)&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;         System.Diagnostics.Debugger.Launch();&lt;/span&gt;&lt;br /&gt;                   //.. code and code&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;#endif&lt;/span&gt; &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;ServiceBase.Run(ServicesToRun);&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;Step3: Build serivce lại, &lt;a href="http://trinhquochungnotes.blogspot.com/2008/09/cch-to-tool-installuninstall-services.html"&gt;uninstall&lt;/a&gt; phiên bản cũ và &lt;a href="http://trinhquochungnotes.blogspot.com/2008/09/cch-to-tool-installuninstall-services.html"&gt;install service&lt;/a&gt; lại.&lt;br /&gt;        Đặt breakpoint ở bất cứ đâu bạn muốn, miễn là còn trong vùng code của project.&lt;br /&gt;Step4: Start service của bạn trong của sổ services manager hoặc bằng command. Khi service khởi động, bạn sẽ nhận được một bảng  thông báo như sau:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_J3Ejob9sTKI/SNFV2oRSU6I/AAAAAAAAABg/glqt0zGp2G4/s1600-h/debugWService_step3.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_J3Ejob9sTKI/SNFV2oRSU6I/AAAAAAAAABg/glqt0zGp2G4/s320/debugWService_step3.JPG" alt="" id="BLOGGER_PHOTO_ID_5247069437874557858" border="0" /&gt;&lt;/a&gt;tiếp tục chọn tên service của bạn (1) và nhấn Yes.&lt;br /&gt;!!Oho!!Điều kỳ diệu đã xảy ra, nếu bạn thấy kết quả tương tự như hình sau:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_J3Ejob9sTKI/SNFXMm1PiGI/AAAAAAAAABo/QMcZS4KtWBo/s1600-h/debugWService_startpoint.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_J3Ejob9sTKI/SNFXMm1PiGI/AAAAAAAAABo/QMcZS4KtWBo/s320/debugWService_startpoint.JPG" alt="" id="BLOGGER_PHOTO_ID_5247070914957248610" border="0" /&gt;&lt;/a&gt;thì bạn đã thành công và tiếp tục nhấn F5 để đến những breakpoint đã đặt trước.&lt;br /&gt;&lt;br /&gt;Lưu ý: chỉ có các breakpoint được đặt ở những vị trí code phía sau dòng lệnh "System.Diagnostics.Debugger.Launch();" khả dụng.&lt;br /&gt;&lt;br /&gt;Vài ghi chú đầu tiên, chưa có chỉnh sửa hoa mỹ, mong các bạn đọc thông cảm ủng hộ.&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;br /&gt;Another way: Debug a running process.. (coming soon)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5902920467646767794-82971562990643839?l=trinhquochungnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://trinhquochungnotes.blogspot.com/feeds/82971562990643839/comments/default' title='Đăng Nhận xét'/><link rel='replies' type='text/html' href='http://trinhquochungnotes.blogspot.com/2008/09/debug-window-service-vi-net-2005.html#comment-form' title='1 Nhận xét'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/82971562990643839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/82971562990643839'/><link rel='alternate' type='text/html' href='http://trinhquochungnotes.blogspot.com/2008/09/debug-window-service-vi-net-2005.html' title='Debug Window Service với .Net 2005'/><author><name>Hung.Trinh experiences notes</name><uri>http://www.blogger.com/profile/15879504538337047633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_J3Ejob9sTKI/TLfQC-4TxWI/AAAAAAAAAH0/DXwYRgjBiEA/S220/avtnew.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_J3Ejob9sTKI/SNFQUgxdE9I/AAAAAAAAABY/IchzeHMDM9k/s72-c/debugWService_error.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5902920467646767794.post-952973850474733944</id><published>2008-09-18T01:19:00.001+07:00</published><updated>2008-09-18T01:19:59.984+07:00</updated><title type='text'></title><content type='html'>&lt;a href="http://s13.photobucket.com/albums/a297/minh_thanhpho/JPG/?action=view&amp;current=DSC01519.jpg" target="_blank"&gt;&lt;img src="http://i13.photobucket.com/albums/a297/minh_thanhpho/JPG/DSC01519.jpg" border="0" alt="Photobucket"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5902920467646767794-952973850474733944?l=trinhquochungnotes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://trinhquochungnotes.blogspot.com/feeds/952973850474733944/comments/default' title='Đăng Nhận xét'/><link rel='replies' type='text/html' href='http://trinhquochungnotes.blogspot.com/2008/09/photobucket.html#comment-form' title='0 Nhận xét'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/952973850474733944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5902920467646767794/posts/default/952973850474733944'/><link rel='alternate' type='text/html' href='http://trinhquochungnotes.blogspot.com/2008/09/photobucket.html' title=''/><author><name>Hung.Trinh experiences notes</name><uri>http://www.blogger.com/profile/15879504538337047633</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_J3Ejob9sTKI/TLfQC-4TxWI/AAAAAAAAAH0/DXwYRgjBiEA/S220/avtnew.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i13.photobucket.com/albums/a297/minh_thanhpho/JPG/th_DSC01519.jpg' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
