<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-181484357747627654</atom:id><lastBuildDate>Mon, 07 Sep 2026 16:01:56 +0000</lastBuildDate><category>Linux</category><category>Java</category><category>Tomcat</category><category>Android</category><category>C#</category><category>FFMPEG</category><category>RTMP</category><category>Windows 7</category><category>SSH</category><category>Command</category><category>Oracle</category><category>Python</category><category>Chrome</category><category>Javascript</category><category>Mac OS X</category><category>RTP</category><category>Titanium Appcelerator</category><category>Ubuntu</category><category>VS2010</category><category>GWT</category><category>Outlook</category><category>RTSP</category><category>C++</category><category>Hadoop</category><category>LDAP</category><category>Postgres</category><category>SVN</category><category>Windows 11</category><category>Hive</category><category>JQueryMobile</category><category>OpenLDAP</category><category>OpenLaszlo</category><category>Wireshark</category><category>iPhone 3GS</category><category>ksh</category><category>AAC</category><category>Ant</category><category>Blackberry</category><category>Database</category><category>GWT-EXT</category><category>Gmail</category><category>J2ME</category><category>JQuery</category><category>JVM</category><category>Live555</category><category>Lotus Notes</category><category>Microsoft Office</category><category>ODBC</category><category>RFC 3984</category><category>Red5</category><category>SDP</category><category>TCP</category><category>Threading</category><category>Virtual PC</category><category>VirtualBox</category><category>Windows 10</category><category>Windows XP</category><category>XML</category><category>cygwin</category><category>Apple</category><category>Boostrap</category><category>CLDC</category><category>Confluence</category><category>Diablo II</category><category>Docker</category><category>EMACS</category><category>Eclipse</category><category>Fiddler</category><category>HTML</category><category>HTTP</category><category>JConsole</category><category>Lip Sync</category><category>MEncoder</category><category>MP4</category><category>MSMQ</category><category>MediaWiki</category><category>Memory</category><category>Mutex</category><category>NTP</category><category>OpenCV</category><category>OpenSSL</category><category>Performance</category><category>PhoneGap</category><category>Remote Access</category><category>SQL</category><category>SSL</category><category>VPN</category><category>Whatsapp</category><category>bash</category><category>sudo</category><category>.Net Framework</category><category>ADTS</category><category>AES</category><category>AGPS</category><category>AMF</category><category>ATLi Eon</category><category>AVC</category><category>Adobe</category><category>Alarm I/O Relay</category><category>Apache</category><category>Application Manifest</category><category>Autorun</category><category>Avast</category><category>Barrier</category><category>Big Data</category><category>Bitrate</category><category>Blogger Formatting</category><category>Bluetooth</category><category>Boost</category><category>C3P0</category><category>Camera</category><category>CentOS 4</category><category>CommunicAsia</category><category>Compression</category><category>Corflags</category><category>Critical Section</category><category>DDoS</category><category>Derby</category><category>Dumpbin</category><category>ETag</category><category>EXT-GWT</category><category>Eclipse Memory Analyzer</category><category>Email Digital Signature</category><category>Encryption</category><category>Evpad</category><category>Facebook</category><category>FeedBurner</category><category>Fibaro</category><category>File</category><category>FireFox</category><category>Firewall</category><category>Flex</category><category>GWT-EXT-UX</category><category>Glassfish</category><category>Google Map</category><category>Graphics</category><category>H.264</category><category>Hyper-V</category><category>IE 8</category><category>IMAPIv2</category><category>IO</category><category>IPC</category><category>Informix</category><category>JMS</category><category>JSON</category><category>JSP</category><category>Java Dump</category><category>JavaFX</category><category>JavaMelody</category><category>Jython</category><category>KeyTool</category><category>Keyboard</category><category>MBR</category><category>MS Office Communicator</category><category>MSTSC</category><category>Mac OS Mountain Lion</category><category>Mac Outlook 2011</category><category>Malware</category><category>Meteor</category><category>Monitor</category><category>MySQL</category><category>NC</category><category>NO</category><category>NodeJS</category><category>ORB</category><category>PIL</category><category>PS3</category><category>Perl</category><category>Persistent Connection</category><category>PowerShell</category><category>PuTTY</category><category>RFC 3640</category><category>RPM</category><category>RSA</category><category>RTCP</category><category>Readelf</category><category>Reflection</category><category>Regex</category><category>Resistor</category><category>SCP</category><category>SQL Server</category><category>Samsung Galaxy</category><category>Samsung Galaxy S3</category><category>Sed</category><category>Semaphore</category><category>Servlet Filter</category><category>Site Valuation</category><category>SmartGWT</category><category>Spotify</category><category>Surveilience</category><category>TCP Keepalive</category><category>Teradata</category><category>ThreadMXBean</category><category>Time</category><category>Time-Lapse</category><category>Trovi</category><category>Truelook</category><category>UNICODE</category><category>UTF-8</category><category>VI</category><category>VI Editor</category><category>Video</category><category>Web 2.0</category><category>WebEx</category><category>WebSphere</category><category>Western Digital</category><category>Window Virtual PC</category><category>Windows Defender</category><category>Wordpress</category><category>XCode</category><category>YSlow</category><category>debugfs</category><category>iPhone</category><category>iPod</category><category>iTunes</category><category>iptables</category><category>ldconfig</category><category>oflaDemo</category><category>rtmpdump</category><category>tcpdump</category><title>Thompson&#39;s Technological Insight</title><description></description><link>http://thompsonng.blogspot.com/</link><managingEditor>noreply@blogger.com (Thompson Ng)</managingEditor><generator>Blogger</generator><openSearch:totalResults>398</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-181484357747627654.post-8587810733158313955</guid><pubDate>Tue, 23 Dec 2025 01:06:43 +0000</pubDate><atom:updated>2025-12-22T17:06:43.341-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Spotify</category><title>Spotify - How to remove song recommendation from playlist shuffle.</title><description>&lt;p&gt;&amp;nbsp;As a premium user, Spotify should not include recommended songs in your playlist. However, they had included a &quot;Smart Shuffle&quot;&amp;nbsp; which may show the following when you click on Shuffle&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjX7alQxg_C4vFP58kwxMKWH6D2nSOEiPrdACR7mVJcEi5m9RsA4hNz5-rh4Stk5G1i-I-wseDeo75cIJXAJHoqCRGMp-ub-b4QfFDt874TpzjYEHt0ed5vcOfpbBoxxVEtGvqKATKWLNWaBpeo4trJtTzNihG3045ZSRMXvAe_6MPCkcxNFbvI99xdkA/s607/1.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;607&quot; data-original-width=&quot;595&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjX7alQxg_C4vFP58kwxMKWH6D2nSOEiPrdACR7mVJcEi5m9RsA4hNz5-rh4Stk5G1i-I-wseDeo75cIJXAJHoqCRGMp-ub-b4QfFDt874TpzjYEHt0ed5vcOfpbBoxxVEtGvqKATKWLNWaBpeo4trJtTzNihG3045ZSRMXvAe_6MPCkcxNFbvI99xdkA/w393-h400/1.jpg&quot; width=&quot;393&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;If you do not have the above screen, look for the &quot;diamond&quot; shuffle icon. If you see that, it means Smart Shuffle which will include recommendation to your playlist at shuffle mode.&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSgb03Luf2tM7hvUD4FnaPHNc9gL446yZfJY5u4DGhuOFd0rsbVMY9O5a-wmldopsLIbvrMjJtMmeKaRtcNK58X0ay_RWsZQGygVWJ7HxOjNGBcnAeyQcTgrPdIUwk287dKcvn5hsiwLQjpIeY4Zmxp0pj8raH2YM_E2XJc6EinrMKdiqBQmVggPOXIA/s1032/2.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;204&quot; data-original-width=&quot;1032&quot; height=&quot;79&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSgb03Luf2tM7hvUD4FnaPHNc9gL446yZfJY5u4DGhuOFd0rsbVMY9O5a-wmldopsLIbvrMjJtMmeKaRtcNK58X0ay_RWsZQGygVWJ7HxOjNGBcnAeyQcTgrPdIUwk287dKcvn5hsiwLQjpIeY4Zmxp0pj8raH2YM_E2XJc6EinrMKdiqBQmVggPOXIA/w400-h79/2.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;To turn it off, click on the shuffle button and you will see &quot;Smart Shuffle&quot; recommendation removed message.&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXjMT2gM7jTv938Z5nTnsAcC4M-YbxqUjhlRDlJfBQCj4Ra7ye7yNbkXEttXLKMwQgp2E25qAF2ur3339Cuwaud0wTidcP0G8chjVpmzrBkFn7YpNPPrP2ctys0POK-l3PAAyN3MPM1JSGH81JxD9OZPgtaRYf9cnnOtluY7MR-tv5_wuShVpwArLLAw/s831/3.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;647&quot; data-original-width=&quot;831&quot; height=&quot;311&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXjMT2gM7jTv938Z5nTnsAcC4M-YbxqUjhlRDlJfBQCj4Ra7ye7yNbkXEttXLKMwQgp2E25qAF2ur3339Cuwaud0wTidcP0G8chjVpmzrBkFn7YpNPPrP2ctys0POK-l3PAAyN3MPM1JSGH81JxD9OZPgtaRYf9cnnOtluY7MR-tv5_wuShVpwArLLAw/w400-h311/3.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;And, if you click the shuffle button again, it will have the normal shuffle icon, which does not include song recommendation.&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEie0fKuKEl0g2ib_QGjM9v_HGmbVfbyJoihhSvTRnCJ5PTrBAye1p5_CPVSe0toskgGboNWzK-YZA-2gVIPl5O4I6ddd3B5P0P4HWzSvaFjRF1dn2uCLl2hAoPpP5YknUvmUJD-5FuRVsl-TtMtQaZV7hteLPnfFjF8L78VTL15ufcQZX0ZcVTtPMGoSw/s1048/4.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;162&quot; data-original-width=&quot;1048&quot; height=&quot;61&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEie0fKuKEl0g2ib_QGjM9v_HGmbVfbyJoihhSvTRnCJ5PTrBAye1p5_CPVSe0toskgGboNWzK-YZA-2gVIPl5O4I6ddd3B5P0P4HWzSvaFjRF1dn2uCLl2hAoPpP5YknUvmUJD-5FuRVsl-TtMtQaZV7hteLPnfFjF8L78VTL15ufcQZX0ZcVTtPMGoSw/w400-h61/4.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;The shuffle is used to toggle between normal shuffle and Smart Shuffle mode.&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;</description><link>http://thompsonng.blogspot.com/2025/12/spotify-how-to-remove-song.html</link><author>noreply@blogger.com (Thompson Ng)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjX7alQxg_C4vFP58kwxMKWH6D2nSOEiPrdACR7mVJcEi5m9RsA4hNz5-rh4Stk5G1i-I-wseDeo75cIJXAJHoqCRGMp-ub-b4QfFDt874TpzjYEHt0ed5vcOfpbBoxxVEtGvqKATKWLNWaBpeo4trJtTzNihG3045ZSRMXvAe_6MPCkcxNFbvI99xdkA/s72-w393-h400-c/1.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-181484357747627654.post-6597819277460094347</guid><pubDate>Sat, 16 Aug 2025 04:44:00 +0000</pubDate><atom:updated>2025-08-16T07:36:05.031-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Linux</category><title>awk - Unexpected outcome from awk when there is multiple delimiter</title><description>&lt;p&gt;For example,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;$ echo &quot;tom+|dick+|and+|harry&quot; | awk -F &#39;+|&#39; &#39;{print $2}&#39;&lt;/p&gt;&lt;p&gt;|dick&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;or&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;$ echo &quot;tom | dick | and | harry&quot; | awk -F &#39; | &#39; &#39;{print $2}&#39;&lt;/div&gt;&lt;div&gt;|&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In the above example, one may expect the output as dick. However, both awk output seems unexpected.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The reason is - awk -F (as least more recent version of Linux) perform regex. The above&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;+ mean matches character before + one or more times&lt;/div&gt;&lt;div&gt;| mean&amp;nbsp;OR operator&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;as a result, above output is given due to regex matching.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you want to literal matching of the delimiter, you need to escape the regex operator with \\&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;$ echo &quot;tom+|dick+|and+|harry&quot; | awk -F &#39;\\+\\|&#39; &#39;{print $2}&#39;&lt;/div&gt;&lt;div&gt;dick&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;or&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;div&gt;$ echo &quot;tom | dick | and | harry&quot; | awk -F &#39; \\| &#39; &#39;{print $2}&#39;&lt;/div&gt;&lt;div&gt;dick&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Reference&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;https://www.computerhope.com/jargon/r/regex.htm&lt;/div&gt;</description><link>http://thompsonng.blogspot.com/2025/07/awk-unexpected-outcome-from-awk-when.html</link><author>noreply@blogger.com (Thompson Ng)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-181484357747627654.post-403198446942214329</guid><pubDate>Tue, 06 May 2025 13:02:00 +0000</pubDate><atom:updated>2025-05-06T06:02:04.204-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">OpenLDAP</category><title>OpenLDAP - Modifying cn=config attribute</title><description>&lt;p&gt;You could modify the cn=config attribute with the following steps&lt;/p&gt;&lt;p&gt;1) Log in as root&lt;/p&gt;&lt;p&gt;2) Create a ldif file (e.g ldap_log_level.ldif ) with the following entry. For example, I am adding olcLogLevel to any&lt;/p&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;dn: cn=config&lt;/div&gt;&lt;div&gt;changetype: modify&lt;/div&gt;&lt;div&gt;add: olcLoglevel&lt;/div&gt;&lt;div&gt;olcLogLevel: any&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;2) Then run&lt;/p&gt;&lt;p&gt;ldapmodify -H ldapi:/// -Y EXTERNAL -f ~/ldap_log_level.ldif&lt;/p&gt;&lt;div&gt;-H&amp;nbsp;Specify URI(s) referring to the ldap server(s)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;-Y&amp;nbsp;Specify the SASL mechanism to be used for authentication&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;-f file&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;LDAPI is an Abbreviation of Using LDAP over IPC Mechanisms.&amp;nbsp;&lt;span face=&quot;-apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI Adjusted&amp;quot;, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Liberation Sans&amp;quot;, sans-serif&quot; style=&quot;background-color: white; color: #232629; font-size: 15px;&quot;&gt;UNIX-domain socket.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face=&quot;-apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI Adjusted&amp;quot;, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Liberation Sans&amp;quot;, sans-serif&quot; style=&quot;background-color: white; color: #232629; font-size: 15px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face=&quot;-apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI Adjusted&amp;quot;, &amp;quot;Segoe UI&amp;quot;, &amp;quot;Liberation Sans&amp;quot;, sans-serif&quot; style=&quot;background-color: white; color: #232629; font-size: 15px;&quot;&gt;EXTERNAL is&amp;nbsp;&lt;/span&gt;&lt;span face=&quot;-apple-system, BlinkMacSystemFont, Segoe UI Adjusted, Segoe UI, Liberation Sans, sans-serif&quot; style=&quot;color: #232629;&quot;&gt;&lt;span style=&quot;font-size: 15px;&quot;&gt;use EXTERNAL mechanism for SASL. If log in as root, this will authenticate the root user to read and make changes to ldap configuration. This is most commonly use to modify cn=config root entry&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Example output&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;$ ldapmodify -H ldapi:/// -Y EXTERNAL -f ~/ldap_log_level.ldif&lt;/div&gt;&lt;div&gt;SASL/EXTERNAL authentication started&lt;/div&gt;&lt;div&gt;SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth&lt;/div&gt;&lt;div&gt;SASL SSF: 0&lt;/div&gt;&lt;div&gt;modifying entry &quot;cn=config&quot;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3) You could verify the addition with&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;cat /etc/openldap/slapd.d/cn=config.ldif&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To delete an attribute, you can update the ldif file as&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;dn: cn=config&lt;/div&gt;&lt;div&gt;changetype: modify&lt;/div&gt;&lt;div&gt;delete: olcLoglevel&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;and run this command&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;div&gt;ldapmodify -H ldapi:/// -Y EXTERNAL -f ~/ldap_log_level.ldif&lt;/div&gt;&lt;/blockquote&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;</description><link>http://thompsonng.blogspot.com/2023/01/openldap-modifying-cnconfig-attribute.html</link><author>noreply@blogger.com (Thompson Ng)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-181484357747627654.post-1959661760709956736</guid><pubDate>Thu, 10 Apr 2025 13:03:00 +0000</pubDate><atom:updated>2025-05-06T06:04:02.389-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">OpenLDAP</category><title>OpenLDAP - Debug logging</title><description>&lt;p&gt;While it may be possible to make OpenLDAP log to syslog, I am unable to do it so far with OLC&lt;/p&gt;&lt;p&gt;See&amp;nbsp;https://www.openldap.org/doc/admin24/slapdconf2.html&lt;/p&gt;&lt;p&gt;So, the next alternative is log to stdout. To do so, you could run&lt;/p&gt;&lt;p&gt;slapd -d 256 -d 128&lt;/p&gt;&lt;p&gt;which defines logging as Stats and ACL respectively&lt;/p&gt;&lt;p&gt;You will see log output at the console&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;63b51bda conn=1014 op=0 BIND dn=&quot;cn=user,dc=abc,dc=com&quot; method=128&lt;/p&gt;&lt;p&gt;63b51bda conn=1014 op=0 BIND dn=&quot;cn=user,dc=abc,dc=com&quot; mech=SIMPLE ssf=0&lt;/p&gt;&lt;p&gt;63b51bda conn=1014 op=0 RESULT tag=97 err=0 text=&lt;/p&gt;&lt;p&gt;63b51bda conn=1014 op=1 SRCH base=&quot;uid=ldapuser2,ou=people,dc=abc,dc=com&quot; scope=2 deref=3 filter=&quot;(&amp;amp;(objectClass=*)(uid=ldapuser2))&quot;&lt;/p&gt;&lt;p&gt;63b51bda =&amp;gt; access_allowed: search access to &quot;uid=ldapuser2,ou=people,dc=abc,dc=com&quot; &quot;entry&quot; requested&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&amp;nbsp;You could refers to&amp;nbsp;&lt;a href=&quot;https://www.openldap.org/doc/admin24/slapdconf2.html&quot;&gt;https://www.openldap.org/doc/admin24/slapdconf2.html&lt;/a&gt;&amp;nbsp;for debug level information.</description><link>http://thompsonng.blogspot.com/2023/01/openldap-debug-logging.html</link><author>noreply@blogger.com (Thompson Ng)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-181484357747627654.post-4637628162621283670</guid><pubDate>Sat, 10 Aug 2024 10:03:00 +0000</pubDate><atom:updated>2024-08-10T03:03:03.545-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Windows 11</category><category domain="http://www.blogger.com/atom/ns#">Windows Defender</category><title>Windows Defenders - Windows cannot remove Microsoft.Windows.SecHealthUI_10.0.19041.1023_neutral__cw5n1h2txyewy because the current user does not have that  package installed</title><description>&lt;p&gt;I hate McAfee, not only it constantly changing my browser search engine to the useless Secure Search, it &quot;remove&quot; or &quot;deregister&quot; my Windows Defenders when I uninstall McAfee.&lt;/p&gt;&lt;p&gt;Once McAfee is uninstalled, I could not open Windows Defender and it complains with the following&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgtUnKUft8uvcc14VUc2Hgse6bbwHfcLjEeCSOCfczM9TBZCSFXMfckbfQYFBiu4amTrghqz2hvVuj6TeYRtsfLjGox3iHWJr9C57c7i8ixa3pf1dCjs0nmCnulVssnUxHVGtGd7oSOGir-Hqo_EsU-gII-n2azoZZkcRuvk_I1n98uvIlMpQtgCAUb9w=s593&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;387&quot; data-original-width=&quot;593&quot; height=&quot;209&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgtUnKUft8uvcc14VUc2Hgse6bbwHfcLjEeCSOCfczM9TBZCSFXMfckbfQYFBiu4amTrghqz2hvVuj6TeYRtsfLjGox3iHWJr9C57c7i8ixa3pf1dCjs0nmCnulVssnUxHVGtGd7oSOGir-Hqo_EsU-gII-n2azoZZkcRuvk_I1n98uvIlMpQtgCAUb9w=s320&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Amazingly, the uninstall only destroy the installation of the user who uninstall McAfee. Other PC users are able to access Windows Defender.&amp;nbsp;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Anyhow, after reading multiple blogs, I tried to open the PowerShell as administrator and run the following command&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;Get-AppxPackage *Microsoft.Windows.SecHealthUI* -AllUser | Reset-AppxPackage&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;But, it returns with error&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;Reset-AppxPackage : Package was not found.&lt;/p&gt;&lt;p&gt;Windows cannot remove Microsoft.Windows.SecHealthUI_10.0.19041.1023_neutral__cw5n1h2txyewy because the current user does not have that&lt;/p&gt;&lt;p&gt;package installed. Use Get-AppxPackage to see the list of packages installed.&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; At line:1 char:60&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; + ... xPackage *Microsoft.Windows.SecHealthUI* -AllUser | Reset-AppxPackage&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; +&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;~~~~~~~~~~~~~~~~~&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; + CategoryInfo&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : NotSpecified: (:) [Reset-AppxPackage], COMException&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; + FullyQualifiedErrorId : System.Runtime.InteropServices.COMException,Microsoft.Windows.Appx.PackageManager.Commands.ResetAppxPackageCommand&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Next, I do note that some blogs suggested the following action&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: white; color: #212121; font-family: &amp;quot;courier new&amp;quot;, courier, monospace; font-size: 14.6667px;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;Add-AppxPackage -Register -DisableDevelopmentMode “C:\Windows\SystemApps\Microsoft.Windows.SecHealthUI_cw5n1h2txyewy\AppXManifest.xml”&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;but that path does not exist in my system - including &quot;&lt;span style=&quot;background-color: white; color: #212121; font-family: &amp;quot;courier new&amp;quot;, courier, monospace; font-size: 14.6667px;&quot;&gt;C:\Windows\SystemApps\Microsoft.Windows.SecHealthUI&quot;.&amp;nbsp;&lt;/span&gt;Duh - each installation uses different installation location, doesn&#39;t it?&amp;nbsp;&lt;/p&gt;&lt;p&gt;After days of research, I found the post&amp;nbsp;&lt;a href=&quot;https://answers.microsoft.com/en-us/windows/forum/all/how-to-solved-error-with-windows-defender-when/a11fa5a1-fff5-4100-87ea-a4317361213d&quot; target=&quot;_blank&quot;&gt;How to solved error with Windows defender when update from Win10 to Win11&lt;/a&gt;. Although this post started with Reset-AppxPackage recommendation, a User suggested the following&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;add-appxpackage -disabledevelopmentmode -register ((Get-AppxPackage Microsoft.SecHealthUI -allusers).InstallLocation + &#39;\AppxManifest.xml&#39;)&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;This is effectively the similar command to the other Add-Appxpackage command, except the AppxManifest.xml is resolved based on Get-AppxPackage.&lt;/p&gt;&lt;p&gt;And the more important thing - it works!!! I can now open Microsoft Defender UI!!&lt;/p&gt;&lt;p&gt;Ending Note - The suggestions from other blog may work if I knew Get-AppxPackage Microsoft.SecHealthUI would return InstallLocation of Windows Defender.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description><link>http://thompsonng.blogspot.com/2024/08/windows-defenders-windows-cannot-remove.html</link><author>noreply@blogger.com (Thompson Ng)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEgtUnKUft8uvcc14VUc2Hgse6bbwHfcLjEeCSOCfczM9TBZCSFXMfckbfQYFBiu4amTrghqz2hvVuj6TeYRtsfLjGox3iHWJr9C57c7i8ixa3pf1dCjs0nmCnulVssnUxHVGtGd7oSOGir-Hqo_EsU-gII-n2azoZZkcRuvk_I1n98uvIlMpQtgCAUb9w=s72-c" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-181484357747627654.post-3062493535317084644</guid><pubDate>Mon, 01 Jul 2024 14:50:00 +0000</pubDate><atom:updated>2024-07-01T07:50:10.617-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Linux</category><title>Linux - passwd &quot;The password is too similar to the old one&quot;</title><description>&lt;p&gt;&amp;nbsp;At times, if you are&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;the VM owner&amp;nbsp;&lt;/li&gt;&lt;li&gt;does not really care about security on a this particular VM&lt;/li&gt;&lt;li&gt;need to change the password or keep it in sync with other password you are using&lt;/li&gt;&lt;li&gt;you had sudo access&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;You could bypass the error &quot;The password is too similar to the old one&quot; by running&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;sudo passwd &amp;lt;username&amp;gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;This is the root user way to reassign password for user and it does not check password similiarity.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description><link>http://thompsonng.blogspot.com/2024/07/linux-passwd-password-is-too-similar-to.html</link><author>noreply@blogger.com (Thompson Ng)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-181484357747627654.post-1824020842023616661</guid><pubDate>Fri, 14 Jun 2024 02:00:00 +0000</pubDate><atom:updated>2024-06-13T19:00:21.151-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Windows 11</category><title>Windows 11 - Restore old Right-click Context menu</title><description>&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;I really hate the new Windows 11 right click context menu. It literally makes me to perform extra click to perform my task&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;To restore the old right lick context menu, perform the following&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;1. Type cmd at Search to launch Command Prompt&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;2. Add the following registry&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;blockquote&gt;reg.exe add &quot;HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32&quot; /f /ve&lt;/blockquote&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzpx2ssHSENeN5BX7mBq46AxOiDgz3OSZufekOOItjR-JffuEbcew-n1aQPJF-vOJx4bDPfvqNqbvoSRP3pGRoWHYlTOpmWuA1KfKfoLojh7Q_b-gFdlgSgfURaVY6GhKPecTvwXOp6LiarDLZ8gaixntKGfrGOXIiaf-f9ecN4hiwUSPQmQkvjfYv-8_j/s1087/Snipaste_2024-06-14_09-52-38.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;249&quot; data-original-width=&quot;1087&quot; height=&quot;146&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzpx2ssHSENeN5BX7mBq46AxOiDgz3OSZufekOOItjR-JffuEbcew-n1aQPJF-vOJx4bDPfvqNqbvoSRP3pGRoWHYlTOpmWuA1KfKfoLojh7Q_b-gFdlgSgfURaVY6GhKPecTvwXOp6LiarDLZ8gaixntKGfrGOXIiaf-f9ecN4hiwUSPQmQkvjfYv-8_j/w640-h146/Snipaste_2024-06-14_09-52-38.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;3) Restart Windows Explorer from Task Manager if you do not want to restart your machine.&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgP_9D1qRslUCvTAQH5t9pF2a_r_6Ht8L0OJVm4VsTb6OHHK5xCHcW_A8r58mDKoIMRKi1fFvzuhnNQLlwaeCgg3f1_tSHwK3o6el64UnSSMlkDxfGFDh2L9anLK2ofLHRioe7EMpK2cxkoEAuOfRyNmXORzEvGA2tBrR0fx05SjXXniLzq0VwEkhKQwvE3/s755/Snipaste_2024-06-14_09-53-59.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;397&quot; data-original-width=&quot;755&quot; height=&quot;336&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgP_9D1qRslUCvTAQH5t9pF2a_r_6Ht8L0OJVm4VsTb6OHHK5xCHcW_A8r58mDKoIMRKi1fFvzuhnNQLlwaeCgg3f1_tSHwK3o6el64UnSSMlkDxfGFDh2L9anLK2ofLHRioe7EMpK2cxkoEAuOfRyNmXORzEvGA2tBrR0fx05SjXXniLzq0VwEkhKQwvE3/w640-h336/Snipaste_2024-06-14_09-53-59.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;4) Once restarted, you will see the old good right click context menu&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXl4FNXq931G-hM6VCAhFOvgmNu-WtMR2iU9V0X4bTXrP-_cGex6oNZ6DdnLqBeCA_6lBg40QpCnW-_e4mZoMtu52svRLOCSViUSh_R7vtyIYb0uVpXAMRs4FAX0tbumiSk6i-46LVstuCvuTW53DTxqUK48OTaXYTefDRH4lzK-PDs-d5DjmNWYWCa0Ls/s522/Snipaste_2024-06-14_09-55-11.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;522&quot; data-original-width=&quot;404&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXl4FNXq931G-hM6VCAhFOvgmNu-WtMR2iU9V0X4bTXrP-_cGex6oNZ6DdnLqBeCA_6lBg40QpCnW-_e4mZoMtu52svRLOCSViUSh_R7vtyIYb0uVpXAMRs4FAX0tbumiSk6i-46LVstuCvuTW53DTxqUK48OTaXYTefDRH4lzK-PDs-d5DjmNWYWCa0Ls/s320/Snipaste_2024-06-14_09-55-11.jpg&quot; width=&quot;248&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;Alternatively, you could always hold shift and right click to launch the old context menu without adding the registry key.&lt;/div&gt;&lt;br /&gt;&amp;nbsp;&lt;p&gt;&lt;/p&gt;&lt;div&gt;&lt;b&gt;Reference&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;https://answers.microsoft.com/en-us/windows/forum/all/restore-old-right-click-context-menu-in-windows-11/a62e797c-eaf3-411b-aeec-e460e6e5a82a&lt;/div&gt;</description><link>http://thompsonng.blogspot.com/2024/06/windows-11-restore-old-right-click.html</link><author>noreply@blogger.com (Thompson Ng)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzpx2ssHSENeN5BX7mBq46AxOiDgz3OSZufekOOItjR-JffuEbcew-n1aQPJF-vOJx4bDPfvqNqbvoSRP3pGRoWHYlTOpmWuA1KfKfoLojh7Q_b-gFdlgSgfURaVY6GhKPecTvwXOp6LiarDLZ8gaixntKGfrGOXIiaf-f9ecN4hiwUSPQmQkvjfYv-8_j/s72-w640-h146-c/Snipaste_2024-06-14_09-52-38.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-181484357747627654.post-4523147414024007426</guid><pubDate>Tue, 21 May 2024 10:59:00 +0000</pubDate><atom:updated>2024-10-01T15:42:16.809-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Hyper-V</category><category domain="http://www.blogger.com/atom/ns#">VirtualBox</category><category domain="http://www.blogger.com/atom/ns#">Windows 11</category><title>Oracle Virtual Box - &quot;Failed to get device handle and/or partition ID&quot; error</title><description>&lt;p&gt;&amp;nbsp;If you upgraded to Windows 11 recently and you are hit by the error&lt;/p&gt;&lt;p&gt;&quot;Failed to get device handle and/or partition ID&quot;&lt;/p&gt;&lt;p&gt;in Oracle Virtual Box, this may not be related to anything about disk. You should go to your Virtual Box log and check the underlying error.&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhP-Jmu3G1wDllG8satbyc_qeqCevqIBrIIW01LLuJUoyDvsP_zienuwE1UwHEkeERdeRYRWuK7ZOlAFyBBRQ6llBHY4SeMNOXFvR06fXqhWHp4grILoTRqyfuf_zimcx7v8T57ccofg9-u0j3cIR5jIlvUl1zpUYy4YzlG9gYCIJQ07d9Mja9RpjElXM7t/s1209/1.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;596&quot; data-original-width=&quot;1209&quot; height=&quot;316&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhP-Jmu3G1wDllG8satbyc_qeqCevqIBrIIW01LLuJUoyDvsP_zienuwE1UwHEkeERdeRYRWuK7ZOlAFyBBRQ6llBHY4SeMNOXFvR06fXqhWHp4grILoTRqyfuf_zimcx7v8T57ccofg9-u0j3cIR5jIlvUl1zpUYy4YzlG9gYCIJQ07d9Mja9RpjElXM7t/w640-h316/1.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;And if you see &quot;Attempting fall back to NEM: VT-x is not available&quot; when you scroll up the log, this is almost the hint that Hyper-V is enabled and prevented your VM to start up&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLEW4jv_PeowmkM-6czwfP-5k4St3KIKG6Ef_9SDorYLAStaaP1e3VZr7w89fjbzPrlm-JHx-Mcsq3AELq8T39NK8Kjpp5P-73_0Ssik1OGzoNga_CzgbxRfYUIaWAi6bX4_X5J3Hb-pnCskFRAZJk-JfkBUhzD9WZ065lPnD4OTy9bLRc87MkDke0jhHT/s804/2.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;484&quot; data-original-width=&quot;804&quot; height=&quot;386&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLEW4jv_PeowmkM-6czwfP-5k4St3KIKG6Ef_9SDorYLAStaaP1e3VZr7w89fjbzPrlm-JHx-Mcsq3AELq8T39NK8Kjpp5P-73_0Ssik1OGzoNga_CzgbxRfYUIaWAi6bX4_X5J3Hb-pnCskFRAZJk-JfkBUhzD9WZ065lPnD4OTy9bLRc87MkDke0jhHT/w640-h386/2.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;To fix this, you may want to first check if Hyper-V is turned on. One good check is&lt;/p&gt;&lt;p&gt;1) Open Command Prompt or PowerShell as Administrator&lt;/p&gt;&lt;p&gt;2) Run systeminfo&lt;/p&gt;&lt;div&gt;The last output of systeminfo is about Hyper-V Requirement.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you see&amp;nbsp;&quot; A hypervisor has been detected. Features required for Hyper-V will not be displayed.&quot;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1yTAVE8EoEzpxY5qDwwoQ4qIf9-MFIK2A5gpqR9T_erxd3lpFHTk7iyu5GXex5b1LwZvEZw_nC6Pjo1Hvzg5z7_oaKd8qGcduVZjkIQwzc1sTTQK8cBCyruqbphHfy4sehscJX9RS59Pib1GHoxQ-c3GpSpXP4Be3GmvQ5pPJDRgJJew7ix2w2at5GQOC/s1001/3.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;47&quot; data-original-width=&quot;1001&quot; height=&quot;30&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1yTAVE8EoEzpxY5qDwwoQ4qIf9-MFIK2A5gpqR9T_erxd3lpFHTk7iyu5GXex5b1LwZvEZw_nC6Pjo1Hvzg5z7_oaKd8qGcduVZjkIQwzc1sTTQK8cBCyruqbphHfy4sehscJX9RS59Pib1GHoxQ-c3GpSpXP4Be3GmvQ5pPJDRgJJew7ix2w2at5GQOC/w640-h30/3.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;it means that Hyper-V is enabled.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Otherwise, you should see something like the following&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiC2LfGohgdtcc1OhpACM3UJsDd_c-wJHLHe-f5FA9T_HS7jyPfKS-JL_wxJ9bfKv_m4dN7gly1Icu9Afp6UOh4wvObeTKHV5IkjoHyCW5y0PLHaoC13ItMGe77RiabWkzVJ4coYNX0bu6AiYNsKMQbdMJdYGEs09PV4wekAtA4TVl9KK3jnUegXK0ttYmh/s615/4.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;71&quot; data-original-width=&quot;615&quot; height=&quot;74&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiC2LfGohgdtcc1OhpACM3UJsDd_c-wJHLHe-f5FA9T_HS7jyPfKS-JL_wxJ9bfKv_m4dN7gly1Icu9Afp6UOh4wvObeTKHV5IkjoHyCW5y0PLHaoC13ItMGe77RiabWkzVJ4coYNX0bu6AiYNsKMQbdMJdYGEs09PV4wekAtA4TVl9KK3jnUegXK0ttYmh/w640-h74/4.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If Hyper-V is turned on, you will need to turned it off as follows&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1) Disable&amp;nbsp;Hyper-V feature&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Open Command Prompt or PowerShell as Administrator and run&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;dism.exe /Online /Disable-Feature:Microsoft-Hyper-V&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2)&amp;nbsp;Disable Windows Hypervisor Platform and Virtual Machine Platform&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;a) Press Win + R to open the Run dialog.&lt;/div&gt;&lt;div&gt;b) Type optionalfeatures and press Enter.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;c)&amp;nbsp;In the Windows Features dialog, uncheck Hyper-V, Windows Subsystem for Linux., Windows Hypervisor Platform and Virtual Machine Platform.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3)&amp;nbsp;Disable Hyper-V via Boot Configuration Data (BCD)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Open Command Prompt or PowerShell as Administrator and run&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;bcdedit /set hypervisorlaunchtype off&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;4)&amp;nbsp;&amp;nbsp;Ensure No Conflicting Services are Running&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;a) Press Win + R to open the Run dialog.&lt;/div&gt;&lt;div&gt;b) Type services.msc and press Enter.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;c)&amp;nbsp;Look for services like Hyper-V Virtual Machine Management and set their Startup type to Disabled.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;5) Make sure Turn on Virtualization Based Security is configured and disabled&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Go to&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Local Group Policy Editor &amp;gt; Computer Configuration &amp;gt; Administrative Templates &amp;gt; System &amp;gt; Device Guard &amp;gt; Turn on Virtualization Based Security&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;and set this to Disabled&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWKKHeMWnxdEi7CZ-zDlBc3lj5lABfYeJeu2D6DbdKjS7ehnMm-LyUuAGCsczpnqvUOgFwOsKAdUjcsjywjMMfN-P4aLXNUIs-Yu7AmE6SKVLiCZILQIMR3w99B4_ivfIkSxSK0ypw00nu9SleGa750sBvkCtVYQjDaD1zdjZbKiEXxrgKMwaJsxyeyIw0/s2520/Snipaste_2024-10-02_06-38-18.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;411&quot; data-original-width=&quot;2520&quot; height=&quot;104&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWKKHeMWnxdEi7CZ-zDlBc3lj5lABfYeJeu2D6DbdKjS7ehnMm-LyUuAGCsczpnqvUOgFwOsKAdUjcsjywjMMfN-P4aLXNUIs-Yu7AmE6SKVLiCZILQIMR3w99B4_ivfIkSxSK0ypw00nu9SleGa750sBvkCtVYQjDaD1zdjZbKiEXxrgKMwaJsxyeyIw0/w640-h104/Snipaste_2024-10-02_06-38-18.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;6) Finally, restart your computer.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;7) After restart, you could use systeminfo to check if Hyper-V had been turned off successfully.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;PS&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1) I had restarted at least 2 times before systeminfo shows Hyper-V is turned off.&lt;/div&gt;&lt;div&gt;2) You may want to take a look at your BIOS and check if there is any Hyper-V feature listed in Secure Boot. You need to turn off Secure Boot as well.&lt;/div&gt;&lt;div&gt;3) You may also need to set Turn on Virtualization Based Security to Not Configured and reboot again.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description><link>http://thompsonng.blogspot.com/2024/05/oracle-virtual-box-failed-to-get-device.html</link><author>noreply@blogger.com (Thompson Ng)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhP-Jmu3G1wDllG8satbyc_qeqCevqIBrIIW01LLuJUoyDvsP_zienuwE1UwHEkeERdeRYRWuK7ZOlAFyBBRQ6llBHY4SeMNOXFvR06fXqhWHp4grILoTRqyfuf_zimcx7v8T57ccofg9-u0j3cIR5jIlvUl1zpUYy4YzlG9gYCIJQ07d9Mja9RpjElXM7t/s72-w640-h316-c/1.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-181484357747627654.post-229692903468569354</guid><pubDate>Tue, 21 May 2024 10:13:00 +0000</pubDate><atom:updated>2024-05-21T03:13:44.091-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Windows 11</category><title>Window 11 - &quot;This is no longer located in&quot; error when deleting a directory</title><description>&lt;p&gt;In my previous &lt;a href=&quot;https://thompsonng.blogspot.com/2020/06/windows-7-this-is-no-longer-located.html&quot; target=&quot;_blank&quot;&gt;Windows 7 - this is no longer located&lt;/a&gt;&amp;nbsp;post, I mentioned 1 method to delete these trouble directories.&amp;nbsp;&lt;/p&gt;&lt;p&gt;There is an alternative way to do this. As a recap, below is the error message&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEh9xdq2jy4SDaPzd_UPJUkLCGID5C3BCFsIBU7yJjz7K5bSeapJQCS6-qriAg45ksZc_GnQ0LcAIagnwqQdUKtx0i2EN0pnUcyX4uRGs_V1L0eqxk1iTd5zpcZoTo4xB2kw3OGvip1D6snD1yvqyGQauyLqOJp1Pt4ZmyGMUfKGGX-cCOawQTeKsGGP0A=s479&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;479&quot; data-original-width=&quot;449&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEh9xdq2jy4SDaPzd_UPJUkLCGID5C3BCFsIBU7yJjz7K5bSeapJQCS6-qriAg45ksZc_GnQ0LcAIagnwqQdUKtx0i2EN0pnUcyX4uRGs_V1L0eqxk1iTd5zpcZoTo4xB2kw3OGvip1D6snD1yvqyGQauyLqOJp1Pt4ZmyGMUfKGGX-cCOawQTeKsGGP0A=w375-h400&quot; width=&quot;375&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;You can simply run&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;rd /s C:\Path\To\Bad\Directory&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;and say Y to the command. It will remove the directory.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;rd command is a remove directory Windows command. /s means deletes a directory tree (the specified directory and all its subdirectories, including all files).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;</description><link>http://thompsonng.blogspot.com/2024/05/window-11-this-is-no-longer-located-in.html</link><author>noreply@blogger.com (Thompson Ng)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEh9xdq2jy4SDaPzd_UPJUkLCGID5C3BCFsIBU7yJjz7K5bSeapJQCS6-qriAg45ksZc_GnQ0LcAIagnwqQdUKtx0i2EN0pnUcyX4uRGs_V1L0eqxk1iTd5zpcZoTo4xB2kw3OGvip1D6snD1yvqyGQauyLqOJp1Pt4ZmyGMUfKGGX-cCOawQTeKsGGP0A=s72-w375-h400-c" height="72" width="72"/><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-181484357747627654.post-4170403813959036867</guid><pubDate>Wed, 10 Jan 2024 06:13:00 +0000</pubDate><atom:updated>2024-01-09T22:13:03.752-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">WebEx</category><title>WebEx - Code Block with Syntax Highlighting in message</title><description>&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;WebEx provide a very nice feature to message code block with syntax highlighting - it is call Markdown.&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;To enable Markdown, do the following&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;1) Click on the T icon&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;2) Click on the M icon&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;3) Click on the Markdown enabled checkbox&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;Or to simplify all step&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;1) Click &quot;Ctrl+m&quot;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhRqEtO74P0y_ia3Y6nzlyLRwGjdrotp97QaKWJI2Ev_OAfZzc6-gEC4bAwrksgAzyYxjCkSxAY0ya0Hc3mt8bqx3sCHc0cIfGdntv-jmhgof_RcDmoulmybz95uZtYH-ndg8DwEKYRckVPD71mVkKREajVak-FsIxjJg9O0V3Nci5vXW5SnQGa8qb6Dg=s530&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;491&quot; data-original-width=&quot;530&quot; height=&quot;370&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhRqEtO74P0y_ia3Y6nzlyLRwGjdrotp97QaKWJI2Ev_OAfZzc6-gEC4bAwrksgAzyYxjCkSxAY0ya0Hc3mt8bqx3sCHc0cIfGdntv-jmhgof_RcDmoulmybz95uZtYH-ndg8DwEKYRckVPD71mVkKREajVak-FsIxjJg9O0V3Nci5vXW5SnQGa8qb6Dg=w400-h370&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;Once the T icon become M (below is example), Markdown is enabled&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEi-V1wopJHjsh6ORckWs9_rwNQ1fXGyi3uMwaPAsWKnd36X-iZwnX2jhPgDkfXedZEi6_qUiIq4lPwe_kXTvWaTwqb0NfyQB6ntRrRBqYkb2lJWkPDVSiGJmIAIlUgV54l2I8oCs2vFlbjEMqWEufCCoG_VuYEaMagPFMAy__uEXJWj1JrFKi06ZQBpUA=s415&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;98&quot; data-original-width=&quot;415&quot; height=&quot;95&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEi-V1wopJHjsh6ORckWs9_rwNQ1fXGyi3uMwaPAsWKnd36X-iZwnX2jhPgDkfXedZEi6_qUiIq4lPwe_kXTvWaTwqb0NfyQB6ntRrRBqYkb2lJWkPDVSiGJmIAIlUgV54l2I8oCs2vFlbjEMqWEufCCoG_VuYEaMagPFMAy__uEXJWj1JrFKi06ZQBpUA=w400-h95&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;Once you have markdown, you could provide code block with syntax highlighting as follow&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhQkJGaLYPwVkGrh3nSO-c7hCzY8OJZ9rTO7zAHb5l2DUmNjSWw4qaZjSB9ekJ8Ljjy6fPiz4giYaXbBqb059jBSWE95WHpI_dL6hsjsuGU7F5rH_I6eyVEtvniWJwk73iFmJtUIr0UkdK3HqXkplsNsroxUOetHRRpMLkbDdFGVsjloGHAUquGIJPnwQ=s745&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;435&quot; data-original-width=&quot;745&quot; height=&quot;234&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhQkJGaLYPwVkGrh3nSO-c7hCzY8OJZ9rTO7zAHb5l2DUmNjSWw4qaZjSB9ekJ8Ljjy6fPiz4giYaXbBqb059jBSWE95WHpI_dL6hsjsuGU7F5rH_I6eyVEtvniWJwk73iFmJtUIr0UkdK3HqXkplsNsroxUOetHRRpMLkbDdFGVsjloGHAUquGIJPnwQ=w400-h234&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;Below is an example&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;``` C++&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;int main() {&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;cout &amp;lt;&amp;lt; &quot;Hello World!&quot;;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;return 0;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;}&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;```&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;Note the following&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;` - this is a back-tick and NOT single quote&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;Use &#39;Shift + Enter&#39; for new line&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;language is optional - currently it supports only 16 languages: markup, css, clike, javascript, c, c++, c#, docker, git, java, json, objective-c, perl, powershell, python and swift.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&amp;nbsp;&lt;p&gt;&lt;/p&gt;</description><link>http://thompsonng.blogspot.com/2024/01/webex-code-block-with-syntax.html</link><author>noreply@blogger.com (Thompson Ng)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEhRqEtO74P0y_ia3Y6nzlyLRwGjdrotp97QaKWJI2Ev_OAfZzc6-gEC4bAwrksgAzyYxjCkSxAY0ya0Hc3mt8bqx3sCHc0cIfGdntv-jmhgof_RcDmoulmybz95uZtYH-ndg8DwEKYRckVPD71mVkKREajVak-FsIxjJg9O0V3Nci5vXW5SnQGa8qb6Dg=s72-w400-h370-c" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-181484357747627654.post-4710916341848039470</guid><pubDate>Wed, 13 Dec 2023 08:49:00 +0000</pubDate><atom:updated>2023-12-13T00:49:53.702-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Python</category><category domain="http://www.blogger.com/atom/ns#">TCP</category><title>Python - Wait for TCP ack before sending next data</title><description>&lt;p&gt;In usual case, it is not likely you need to control how socket send message, and most of the time, it is OK to send stream of data without waiting for acknowledgement for receiver.&amp;nbsp;&lt;/p&gt;&lt;p&gt;However, in some rare case, you may want to wait for TCP ack&#39;ed before sending the next data out to destination. You could use&amp;nbsp;fcntl.ioctl (https://docs.python.org/3/library/fcntl.html) to perform this requirement.&amp;nbsp;&lt;/p&gt;&lt;p&gt;In sockio.h (https://github.com/torvalds/linux/blob/master/include/uapi/linux/sockios.h), it define&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjt5Le9BbqHxYS5zBLSmOKb3JdFaEDWL6GTTEtQJI3Fr9okvR4IF2upU1xcal9eRkkPzhQVCwGIXvc_CLDanhfSf3-g8hRUm754Ypiue_tVQ-BVLcvKOk1bpznyWJEq-Lbzpe7pPvq1kfBI/s758/2.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;90&quot; data-original-width=&quot;758&quot; height=&quot;77&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjt5Le9BbqHxYS5zBLSmOKb3JdFaEDWL6GTTEtQJI3Fr9okvR4IF2upU1xcal9eRkkPzhQVCwGIXvc_CLDanhfSf3-g8hRUm754Ypiue_tVQ-BVLcvKOk1bpznyWJEq-Lbzpe7pPvq1kfBI/w640-h77/2.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;We can use the above SIOCOUTQ to queue the file descriptor and get the result. If the result is not zero, it means there are bytes unsent in the queue.&lt;/p&gt;&lt;p&gt;Below is a sample code&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxQMyeewwfusIPhQnwCsyLtHD20Tu-UOnQn7WUfwV8Yytq4Hr5IbDFn2Tu3vmCdnxXCU5EptHA2DwD0y-coNqp6UN857A5HDSHSxXEfs4GhPCdavEPTQjpijdTt-9zzICFZYrV7Wmv8Q0n/s791/1.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;574&quot; data-original-width=&quot;791&quot; height=&quot;464&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxQMyeewwfusIPhQnwCsyLtHD20Tu-UOnQn7WUfwV8Yytq4Hr5IbDFn2Tu3vmCdnxXCU5EptHA2DwD0y-coNqp6UN857A5HDSHSxXEfs4GhPCdavEPTQjpijdTt-9zzICFZYrV7Wmv8Q0n/w640-h464/1.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;</description><link>http://thompsonng.blogspot.com/2023/12/python-wait-for-tcp-ack-before-sending.html</link><author>noreply@blogger.com (Thompson Ng)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjt5Le9BbqHxYS5zBLSmOKb3JdFaEDWL6GTTEtQJI3Fr9okvR4IF2upU1xcal9eRkkPzhQVCwGIXvc_CLDanhfSf3-g8hRUm754Ypiue_tVQ-BVLcvKOk1bpznyWJEq-Lbzpe7pPvq1kfBI/s72-w640-h77-c/2.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-181484357747627654.post-4719440993179315110</guid><pubDate>Sat, 21 Oct 2023 11:13:00 +0000</pubDate><atom:updated>2023-10-21T04:13:49.533-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Linux</category><title>Linux - &quot;cannot execute: required file not found&quot; error</title><description>&lt;p&gt;In Bash, if you are running a script, for example installation, and it throws error&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;$./my_installer&lt;/p&gt;&lt;p&gt;-bash: ./my_installer: cannot execute: required file not found&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;and you are certain that all files requires exist. You may want to check what SHELL was used to write the install script.&lt;/p&gt;&lt;p&gt;If you are using BASH but the script is written by KSH and KSH is not installed, this error will happen.&lt;/p&gt;</description><link>http://thompsonng.blogspot.com/2023/10/linux-cannot-execute-required-file-not.html</link><author>noreply@blogger.com (Thompson Ng)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-181484357747627654.post-2869197884821877512</guid><pubDate>Fri, 15 Sep 2023 23:49:00 +0000</pubDate><atom:updated>2023-09-15T16:49:06.773-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">PowerShell</category><category domain="http://www.blogger.com/atom/ns#">Windows 10</category><category domain="http://www.blogger.com/atom/ns#">Windows 11</category><title>PowerShell - Increase screen buffer</title><description>&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;If you are facing problem when you cat a long file and the PowerShell does not show the earlier lines, you may want to check if you have a short Screen Buffer&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;You could check the Screen Buffer Size by&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;1) Right click at the PowerShell and click on Properties at the popup menu&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;2) Navigate to Layout tabe and chang the height of the Screen Buffer Size&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;No restart of the PowerShell is required.&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhla8yZvldiK29-83eCiebA-lNTS6-vooEzIBPNLfbG9DvIxTy3TLMemPj2u5kZHMO_eFUZJ2_bZz6IQS3jKjoNw4V_8RCo6xeb-cCDvHvVjw0hLNozbzRP5RRAR0KuzwAAw39hpGeYEKogFNOaBcItO0eyaser64WQeY2QR-Nan5EqgcYlBIjp7sqw8dB/s491/1.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;491&quot; data-original-width=&quot;390&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhla8yZvldiK29-83eCiebA-lNTS6-vooEzIBPNLfbG9DvIxTy3TLMemPj2u5kZHMO_eFUZJ2_bZz6IQS3jKjoNw4V_8RCo6xeb-cCDvHvVjw0hLNozbzRP5RRAR0KuzwAAw39hpGeYEKogFNOaBcItO0eyaser64WQeY2QR-Nan5EqgcYlBIjp7sqw8dB/s16000/1.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&amp;nbsp;&lt;p&gt;&lt;/p&gt;</description><link>http://thompsonng.blogspot.com/2023/09/powershell-increase-screen-buffer.html</link><author>noreply@blogger.com (Thompson Ng)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhla8yZvldiK29-83eCiebA-lNTS6-vooEzIBPNLfbG9DvIxTy3TLMemPj2u5kZHMO_eFUZJ2_bZz6IQS3jKjoNw4V_8RCo6xeb-cCDvHvVjw0hLNozbzRP5RRAR0KuzwAAw39hpGeYEKogFNOaBcItO0eyaser64WQeY2QR-Nan5EqgcYlBIjp7sqw8dB/s72-c/1.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-181484357747627654.post-2224618945547775283</guid><pubDate>Thu, 17 Aug 2023 08:49:00 +0000</pubDate><atom:updated>2023-08-17T01:49:28.848-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Wireshark</category><title>Wireshark - How to find Connection Timeout TCP packets?</title><description>&lt;p&gt;Connection Timeout in TCP happens after TCP has send multiple attempts of SYN packets but did not received a respond from the remote destination. Based on this, we could try to filter tcpdump by SYN flag and locate those that has multiple one directional packet.&lt;/p&gt;&lt;p&gt;The steps in Wireshark as follows&lt;/p&gt;&lt;p&gt;1) Filter by &#39;tcp.flags eq 0x02&#39; (only SYN flag set)&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLyPfoeqoWJ82SHzuDt7Bru_HgssquUKxN4nEK_lqPG-04lVdhL3uUT24ukAe2jCCWJLVchpXZ8QG3JfkefNbN_Qw_1KLKRqWclQtB55Cmccv1RhkDnaLQN325oJGZJdE1zpKhN0zclpes/s573/1.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;92&quot; data-original-width=&quot;573&quot; height=&quot;51&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLyPfoeqoWJ82SHzuDt7Bru_HgssquUKxN4nEK_lqPG-04lVdhL3uUT24ukAe2jCCWJLVchpXZ8QG3JfkefNbN_Qw_1KLKRqWclQtB55Cmccv1RhkDnaLQN325oJGZJdE1zpKhN0zclpes/s320/1.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;2) Then select Statistics -&amp;gt; Conversations&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRgmr8jkh63efyvYdPbn72Upwj2TYRcC-Oq8xmsD3f4Jg8JsxoELgizvE7dc_a_vPpSuAbdK3LeQgDIJshY958TUOXJlB9692774rZbiB84q3bh9Wr1TGMjdhePOuUZi715JxKOG91VZeb/s496/2.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;163&quot; data-original-width=&quot;496&quot; height=&quot;105&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRgmr8jkh63efyvYdPbn72Upwj2TYRcC-Oq8xmsD3f4Jg8JsxoELgizvE7dc_a_vPpSuAbdK3LeQgDIJshY958TUOXJlB9692774rZbiB84q3bh9Wr1TGMjdhePOuUZi715JxKOG91VZeb/s320/2.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;3) Then,&amp;nbsp;&lt;/p&gt;&lt;p&gt;a) Select on &quot;Limit to display filter&quot;. Limit to display filter will only show conversations matching the current display filter&lt;/p&gt;&lt;p&gt;b) Select TCP tab&lt;/p&gt;&lt;p&gt;c) Sort by Packets&lt;/p&gt;&lt;p&gt;Those that had more than 1 SYN packets are likely retransmission TCP packets&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhx0K03vnNQgQknAvg7DDReOaxeios223paAncbRnFhYCK369rHO2aMiltlgnnzsRZWPNay6CK0hysuMbmxFsQYJO1Pk64VnejZWbkKtcvr4cEQHeEL_SzRIE1AFQlho-BeeTvfBzeHVOzD/s952/3.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;249&quot; data-original-width=&quot;952&quot; height=&quot;84&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhx0K03vnNQgQknAvg7DDReOaxeios223paAncbRnFhYCK369rHO2aMiltlgnnzsRZWPNay6CK0hysuMbmxFsQYJO1Pk64VnejZWbkKtcvr4cEQHeEL_SzRIE1AFQlho-BeeTvfBzeHVOzD/s320/3.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;4) To drill in, right click on the &quot;Apply as Filter&quot; -&amp;gt; &quot;Selected&quot; &amp;gt; &quot;A &amp;lt;-&amp;gt;B&quot;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXRASr-v80smsrX8l5YkJsXiWwsf1hqtdQAJrsznCGVASE3NLmjyMtsLmGZRxuoE-wcEP-a1KTug-yuX2WYwPbd_TVx1cq0wfqZS6Ddzimnf1rIevHrOalxFNSYtFgFpoLBtBPNpSNJUaI/s946/4.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;199&quot; data-original-width=&quot;946&quot; height=&quot;67&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXRASr-v80smsrX8l5YkJsXiWwsf1hqtdQAJrsznCGVASE3NLmjyMtsLmGZRxuoE-wcEP-a1KTug-yuX2WYwPbd_TVx1cq0wfqZS6Ddzimnf1rIevHrOalxFNSYtFgFpoLBtBPNpSNJUaI/s320/4.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;5) You will see a packet trace on the TCP retransmission of SYN packet. That mean Connection Timeout.&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibpbUEY85lHplw81DGpTupEB9iHm_x8TbkWiI1sLH_IXKWGTcQWTg_ar2A0Jg_zLJm6OdFcz7qa3baP-pvGN9V9S_Ya1-zr_JRvc7UetRv-0U1GMenFn75sG1kHhFTEViKGrUxD7PJEb1i/s1591/5.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;153&quot; data-original-width=&quot;1591&quot; height=&quot;31&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibpbUEY85lHplw81DGpTupEB9iHm_x8TbkWiI1sLH_IXKWGTcQWTg_ar2A0Jg_zLJm6OdFcz7qa3baP-pvGN9V9S_Ya1-zr_JRvc7UetRv-0U1GMenFn75sG1kHhFTEViKGrUxD7PJEb1i/s320/5.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description><link>http://thompsonng.blogspot.com/2023/08/wireshark-how-to-find-connection.html</link><author>noreply@blogger.com (Thompson Ng)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLyPfoeqoWJ82SHzuDt7Bru_HgssquUKxN4nEK_lqPG-04lVdhL3uUT24ukAe2jCCWJLVchpXZ8QG3JfkefNbN_Qw_1KLKRqWclQtB55Cmccv1RhkDnaLQN325oJGZJdE1zpKhN0zclpes/s72-c/1.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-181484357747627654.post-6033702381446140566</guid><pubDate>Wed, 19 Jul 2023 05:43:00 +0000</pubDate><atom:updated>2023-07-18T22:43:42.804-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">FFMPEG</category><title>FFMPEG - Fast Forwarding a Video 100 times</title><description>&lt;p&gt;To create a fast forward video, you can create a filter to change the&amp;nbsp;presentation timestamp (PTS) of each video frame.&lt;/p&gt;&lt;p&gt;Below is a general command - Note - This method drops frame to achieve the speed up. And, I applied the above to a video only file.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;ffmpeg -i input.mkv -filter:v &quot;setpts=0.5*PTS&quot; output.mkv&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;where&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;-filter:v mean filter apply to video stream&lt;/li&gt;&lt;li&gt;setpts is the set presentation timestamp filter&lt;/li&gt;&lt;li&gt;0.5*PTS means 2X the speed.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Now, to speed thing up in 100x, you can run&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;ffmpeg -i input.mkv -filter:v &quot;setpts=PTS/100&quot; output.mkv&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;PTS/100 means speeding the video up by 100x&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;C:\ffmpeg-2021-11-03-git-08a501946f-full_build\bin&amp;gt;ffmpeg.exe -i &quot;..\..\TimeLapses - Pentas Lack Of Water\pantas_no_audio.mp4&quot; -filter:v &quot;setpts=PTS/100&quot; pantas_ff100x.mp4&lt;/div&gt;&lt;div&gt;ffmpeg version 2021-11-03-git-08a501946f-full_build-www.gyan.dev Copyright (c) 2000-2021 the FFmpeg developers&lt;/div&gt;&lt;div&gt;&amp;nbsp; built with gcc 11.2.0 (Rev1, Built by MSYS2 project)&lt;/div&gt;&lt;div&gt;&amp;nbsp; configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libdav1d --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-libglslang --enable-vulkan --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint&lt;/div&gt;&lt;div&gt;&amp;nbsp; libavutil&amp;nbsp; &amp;nbsp; &amp;nbsp; 57.&amp;nbsp; 7.100 / 57.&amp;nbsp; 7.100&lt;/div&gt;&lt;div&gt;&amp;nbsp; libavcodec&amp;nbsp; &amp;nbsp; &amp;nbsp;59. 12.100 / 59. 12.100&lt;/div&gt;&lt;div&gt;&amp;nbsp; libavformat&amp;nbsp; &amp;nbsp; 59.&amp;nbsp; 8.100 / 59.&amp;nbsp; 8.100&lt;/div&gt;&lt;div&gt;&amp;nbsp; libavdevice&amp;nbsp; &amp;nbsp; 59.&amp;nbsp; 0.101 / 59.&amp;nbsp; 0.101&lt;/div&gt;&lt;div&gt;&amp;nbsp; libavfilter&amp;nbsp; &amp;nbsp; &amp;nbsp;8. 16.101 /&amp;nbsp; 8. 16.101&lt;/div&gt;&lt;div&gt;&amp;nbsp; libswscale&amp;nbsp; &amp;nbsp; &amp;nbsp; 6.&amp;nbsp; 1.100 /&amp;nbsp; 6.&amp;nbsp; 1.100&lt;/div&gt;&lt;div&gt;&amp;nbsp; libswresample&amp;nbsp; &amp;nbsp;4.&amp;nbsp; 0.100 /&amp;nbsp; 4.&amp;nbsp; 0.100&lt;/div&gt;&lt;div&gt;&amp;nbsp; libpostproc&amp;nbsp; &amp;nbsp; 56.&amp;nbsp; 0.100 / 56.&amp;nbsp; 0.100&lt;/div&gt;&lt;div&gt;Input #0, mov,mp4,m4a,3gp,3g2,mj2, from &#39;..\..\TimeLapses - Pentas Lack Of Water\pantas_no_audio.mp4&#39;:&lt;/div&gt;&lt;div&gt;&amp;nbsp; Metadata:&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; major_brand&amp;nbsp; &amp;nbsp; &amp;nbsp;: isom&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; minor_version&amp;nbsp; &amp;nbsp;: 512&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; compatible_brands: isomiso2avc1mp41&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; encoder&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: Lavf59.8.100&lt;/div&gt;&lt;div&gt;&amp;nbsp; Duration: 02:54:08.33, start: 0.010000, bitrate: 13865 kb/s&lt;/div&gt;&lt;div&gt;&amp;nbsp; Stream #0:0[0x1](eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 1920x1080, 13862 kb/s, SAR 1:1 DAR 16:9, 30 fps, 30 tbr, 90k tbn (default)&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; Metadata:&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; handler_name&amp;nbsp; &amp;nbsp; : VideoHandle&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; vendor_id&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: [0][0][0][0]&lt;/div&gt;&lt;div&gt;Stream mapping:&lt;/div&gt;&lt;div&gt;&amp;nbsp; Stream #0:0 -&amp;gt; #0:0 (h264 (native) -&amp;gt; h264 (libx264))&lt;/div&gt;&lt;div&gt;Press [q] to stop, [?] for help&lt;/div&gt;&lt;div&gt;[libx264 @ 000001fd9e812780] using SAR=1/1&lt;/div&gt;&lt;div&gt;[libx264 @ 000001fd9e812780] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2 AVX512&lt;/div&gt;&lt;div&gt;[libx264 @ 000001fd9e812780] profile High, level 4.0, 4:2:0, 8-bit&lt;/div&gt;&lt;div&gt;[libx264 @ 000001fd9e812780] 264 - core 164 r3075 66a5bc1 - H.264/MPEG-4 AVC codec - Copyleft 2003-2021 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=12 lookahead_threads=2 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00&lt;/div&gt;&lt;div&gt;Output #0, mp4, to &#39;pantas_ff100x.mp4&#39;:&lt;/div&gt;&lt;div&gt;&amp;nbsp; Metadata:&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; major_brand&amp;nbsp; &amp;nbsp; &amp;nbsp;: isom&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; minor_version&amp;nbsp; &amp;nbsp;: 512&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; compatible_brands: isomiso2avc1mp41&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; encoder&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: Lavf59.8.100&lt;/div&gt;&lt;div&gt;&amp;nbsp; Stream #0:0(eng): Video: h264 (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 30 fps, 15360 tbn (default)&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; Metadata:&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; handler_name&amp;nbsp; &amp;nbsp; : VideoHandle&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; vendor_id&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: [0][0][0][0]&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; encoder&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: Lavc59.12.100 libx264&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; Side data:&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A&lt;/div&gt;&lt;div&gt;frame= 3137 fps=4.0 q=-1.0 Lsize=&amp;nbsp; &amp;nbsp;72397kB time=00:01:44.46 bitrate=5677.2kbits/s dup=0 drop=310358 speed=0.134x&lt;/div&gt;&lt;div&gt;video:72359kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.053391%&lt;/div&gt;&lt;div&gt;[libx264 @ 000001fd9e812780] frame I:13&amp;nbsp; &amp;nbsp; Avg QP:22.04&amp;nbsp; size:265781&lt;/div&gt;&lt;div&gt;[libx264 @ 000001fd9e812780] frame P:791&amp;nbsp; &amp;nbsp;Avg QP:24.62&amp;nbsp; size: 64773&lt;/div&gt;&lt;div&gt;[libx264 @ 000001fd9e812780] frame B:2333&amp;nbsp; Avg QP:27.59&amp;nbsp; size:&amp;nbsp; 8317&lt;/div&gt;&lt;div&gt;[libx264 @ 000001fd9e812780] consecutive B-frames:&amp;nbsp; 0.8%&amp;nbsp; 0.1%&amp;nbsp; 0.2% 98.9%&lt;/div&gt;&lt;div&gt;[libx264 @ 000001fd9e812780] mb I&amp;nbsp; I16..4:&amp;nbsp; 9.2% 61.0% 29.8%&lt;/div&gt;&lt;div&gt;[libx264 @ 000001fd9e812780] mb P&amp;nbsp; I16..4:&amp;nbsp; 0.9%&amp;nbsp; 1.1%&amp;nbsp; 0.1%&amp;nbsp; P16..4: 46.6% 16.5% 13.8%&amp;nbsp; 0.0%&amp;nbsp; 0.0%&amp;nbsp; &amp;nbsp; skip:21.1%&lt;/div&gt;&lt;div&gt;[libx264 @ 000001fd9e812780] mb B&amp;nbsp; I16..4:&amp;nbsp; 0.1%&amp;nbsp; 0.1%&amp;nbsp; 0.0%&amp;nbsp; B16..8: 38.4%&amp;nbsp; 3.0%&amp;nbsp; 0.6%&amp;nbsp; direct: 1.4%&amp;nbsp; skip:56.4%&amp;nbsp; L0:48.8% L1:43.1% BI: 8.0%&lt;/div&gt;&lt;div&gt;[libx264 @ 000001fd9e812780] 8x8 transform intra:55.6% inter:74.7%&lt;/div&gt;&lt;div&gt;[libx264 @ 000001fd9e812780] coded y,uvDC,uvAC intra: 41.9% 64.9% 21.8% inter: 14.0% 22.3% 0.8%&lt;/div&gt;&lt;div&gt;[libx264 @ 000001fd9e812780] i16 v,h,dc,p: 42% 21% 18% 19%&lt;/div&gt;&lt;div&gt;[libx264 @ 000001fd9e812780] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 26% 10% 41%&amp;nbsp; 3%&amp;nbsp; 4%&amp;nbsp; 6%&amp;nbsp; 3%&amp;nbsp; 4%&amp;nbsp; 4%&lt;/div&gt;&lt;div&gt;[libx264 @ 000001fd9e812780] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 30% 12%&amp;nbsp; 9%&amp;nbsp; 7%&amp;nbsp; 9% 10%&amp;nbsp; 8%&amp;nbsp; 8%&amp;nbsp; 8%&lt;/div&gt;&lt;div&gt;[libx264 @ 000001fd9e812780] i8c dc,h,v,p: 52% 19% 25%&amp;nbsp; 5%&lt;/div&gt;&lt;div&gt;[libx264 @ 000001fd9e812780] Weighted P-Frames: Y:2.0% UV:1.3%&lt;/div&gt;&lt;div&gt;[libx264 @ 000001fd9e812780] ref P L0: 36.3% 10.3% 39.2% 14.0%&amp;nbsp; 0.2%&lt;/div&gt;&lt;div&gt;[libx264 @ 000001fd9e812780] ref B L0: 65.0% 27.7%&amp;nbsp; 7.3%&lt;/div&gt;&lt;div&gt;[libx264 @ 000001fd9e812780] ref B L1: 86.8% 13.2%&lt;/div&gt;&lt;div&gt;[libx264 @ 000001fd9e812780] kb/s:5668.69&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;See&amp;nbsp;&lt;a href=&quot;https://trac.ffmpeg.org/wiki/How%20to%20speed%20up%20/%20slow%20down%20a%20video&quot;&gt;FFMPEG - Speeding up/slowing down video&lt;/a&gt;&lt;/p&gt;</description><link>http://thompsonng.blogspot.com/2023/07/ffmpeg-fast-forwarding-video-100-times.html</link><author>noreply@blogger.com (Thompson Ng)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-181484357747627654.post-7689072120903193975</guid><pubDate>Thu, 29 Jun 2023 04:45:00 +0000</pubDate><atom:updated>2023-06-28T21:45:10.376-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">TCP</category><category domain="http://www.blogger.com/atom/ns#">TCP Keepalive</category><category domain="http://www.blogger.com/atom/ns#">Wireshark</category><title>Wireshark - Beware of false positive marking by Wireshark - TCP Keep alive</title><description>&lt;p&gt;&amp;nbsp;Wireshark tries to provide intelligent information for the user, but no matter what, it is based on characteristic of the packet mentioned in&amp;nbsp;&lt;a href=&quot;https://www.wireshark.org/docs/wsug_html_chunked/ChAdvTCPAnalysis.html&quot;&gt;TCP Analysis&lt;/a&gt;&lt;/p&gt;&lt;p&gt;For example, it is very possible that Wireshark mark TCP Keep-alive wrongly.&lt;/p&gt;&lt;p&gt;Look at the below, Wireshark mark these packets are TCP keep-alive packet and acknowledgement. At first glace, they look legitimate.&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgR9UA7rAFgrBFmn0crkpR6A4Wbjm9aCgR2pDJOe5OpWsuahUSm_ShfprYrjFTV8bo_0266MJS3q3HFqrz_9kil6UXa8DRWlBFqIusXBabxgfIrKvYQ8l24aWeSnanDHEAECkCxKXt8flNe/s1211/1.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;122&quot; data-original-width=&quot;1211&quot; height=&quot;32&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgR9UA7rAFgrBFmn0crkpR6A4Wbjm9aCgR2pDJOe5OpWsuahUSm_ShfprYrjFTV8bo_0266MJS3q3HFqrz_9kil6UXa8DRWlBFqIusXBabxgfIrKvYQ8l24aWeSnanDHEAECkCxKXt8flNe/s320/1.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;But if you understand how TCP keep-alive work under Linux, these packets does not falls into the TCP keep alive packet pattern.&lt;/p&gt;&lt;p&gt;Based on&amp;nbsp;&lt;a href=&quot;https://man7.org/linux/man-pages/man7/tcp.7.html&quot;&gt;TCP Man Page&lt;/a&gt;, it said&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOr5BW4DZZG26caML5VQcINxMBTitiHvXj2m3pHsfeUGWdASnnnYw-CwVGfvmhrhXFPcP8nKhaT_0TdJz6qXpiXfYnOix6RDFsOzmgygsBTJ7BUFg9yMjtF6YKJcRNWB10ztPgWAH1wn52/s596/2.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;344&quot; data-original-width=&quot;596&quot; height=&quot;370&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOr5BW4DZZG26caML5VQcINxMBTitiHvXj2m3pHsfeUGWdASnnnYw-CwVGfvmhrhXFPcP8nKhaT_0TdJz6qXpiXfYnOix6RDFsOzmgygsBTJ7BUFg9yMjtF6YKJcRNWB10ztPgWAH1wn52/w640-h370/2.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;So, TCP keep alive packet will only start to send after a default of 7200 seconds (2 hours). Next, it will only send 9 probes for an interval of 75 seconds apart.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For the above example, those packets was not send after 2 hours of idle connection and they are send at 60 seconds apart. Wireshark marked them as TCP keep alive packet likely because of their payload of 1.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To demonstrate a genuine TCP keep alive packets, below is a genuine TCP keep alive mechanism in action&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYFs_eYKhoRSHzxLRXtEkrnBzHOwolxd47XksO6iDKGlSZprqwlm9O_sqfvR1V0TVVr-nJlxkScxvkc2BrAC2AALPWvHVrjvaRkhgSBEjEagZNxo-UgNh3LFlju_cCnE6kqzqzV4AnfeWV/s1179/6.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;338&quot; data-original-width=&quot;1179&quot; height=&quot;92&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYFs_eYKhoRSHzxLRXtEkrnBzHOwolxd47XksO6iDKGlSZprqwlm9O_sqfvR1V0TVVr-nJlxkScxvkc2BrAC2AALPWvHVrjvaRkhgSBEjEagZNxo-UgNh3LFlju_cCnE6kqzqzV4AnfeWV/s320/6.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;You can see that&amp;nbsp;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;There is a gap of 2 hours between the earlier packet and the TCP keep alive packet&lt;/li&gt;&lt;li&gt;Each packet are sent at 75 seconds interval&lt;/li&gt;&lt;li&gt;Each packet is 0 in bytes&lt;/li&gt;&lt;li&gt;There are only 9 probes&lt;/li&gt;&lt;li&gt;After 9 probes, the connection is close with RST flag&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In summary, you should verify Wireshark analysis if you are in doubt&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;</description><link>http://thompsonng.blogspot.com/2023/06/wireshark-beware-of-false-positive.html</link><author>noreply@blogger.com (Thompson Ng)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgR9UA7rAFgrBFmn0crkpR6A4Wbjm9aCgR2pDJOe5OpWsuahUSm_ShfprYrjFTV8bo_0266MJS3q3HFqrz_9kil6UXa8DRWlBFqIusXBabxgfIrKvYQ8l24aWeSnanDHEAECkCxKXt8flNe/s72-c/1.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-181484357747627654.post-6962691246871454489</guid><pubDate>Wed, 03 May 2023 15:28:00 +0000</pubDate><atom:updated>2023-05-03T08:28:41.658-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Java</category><category domain="http://www.blogger.com/atom/ns#">Linux</category><title>Java - How to map Linux Thread ID to Java Thread ID</title><description>&lt;p&gt;When you are looking at Top output, you will something see Java processes eating up CPU. The next question you will ask, what is happening to the Java process? Usually, I will do the following&lt;/p&gt;&lt;p&gt;1) Identify the process&lt;/p&gt;&lt;p&gt;In the following example, I saw CPU usage over 170% of one of the Java process. The process ID is 11795&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrLAZ1dqyfekRQQBeHmlIfSMggml63DoVuNLiV-RCZSI-c9ZXxjxzoSey1Kpg23h38MT1iikxrQ_Kk0VLYXRTwOy2Pd9rmEv63jZIKDKL9t8coc-lF9dzpa0YEPIXGEfmRL3Vp-vmF3HaL/s767/2.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;99&quot; data-original-width=&quot;767&quot; height=&quot;41&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrLAZ1dqyfekRQQBeHmlIfSMggml63DoVuNLiV-RCZSI-c9ZXxjxzoSey1Kpg23h38MT1iikxrQ_Kk0VLYXRTwOy2Pd9rmEv63jZIKDKL9t8coc-lF9dzpa0YEPIXGEfmRL3Vp-vmF3HaL/w320-h41/2.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;2) Find out the Linux thread&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;What next? Let&#39;s check the Linux threads within the process. I run&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;top -H -p 11795&lt;/div&gt;&lt;/blockquote&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;where -H is thread mode and -p is the pid&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;In the Top output, you will now see the threads that are using the CPU. 11797 and 11798 is the suspicious thread&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhA84aOouFh84PfIwS5bKuZksNRzMc4lJlUfBlYXocmCP6nbAvfA7XeHEjNpm680qWm6rms-9LDz1HExVi1Pm2BhBzWL4MgBvNMoRqocLHqkN8x28o9EGPbn_Jd3vq3U0-iC7G8dOh3rfuu/s879/1.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;183&quot; data-original-width=&quot;879&quot; height=&quot;67&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhA84aOouFh84PfIwS5bKuZksNRzMc4lJlUfBlYXocmCP6nbAvfA7XeHEjNpm680qWm6rms-9LDz1HExVi1Pm2BhBzWL4MgBvNMoRqocLHqkN8x28o9EGPbn_Jd3vq3U0-iC7G8dOh3rfuu/w320-h67/1.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;3) Find out the Java stack trace&lt;/p&gt;&lt;p&gt;Next, you will need the Java stack trace of the troubled process. In this case, you need jstack&lt;/p&gt;&lt;p&gt;I run&lt;/p&gt;&lt;p&gt;jstack 11795 &amp;gt; jstack_output1.txt&lt;/p&gt;&lt;div&gt;the above will print out the Java stack trace to a file.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;4) Mapping Linux thread id to Java thread id&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This is the most important part. First, if you look at the jstack output, you will see the following&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5XXcvHhaDsYblVFNrg-G3Uvg297tly1iz8LGruFGLiKN_fH75fZvUsq_d8F0P2YHMZE_Tfffs-eNweLDSYmLa5iy75rESBnfG3-_YQz0U3QnKEh9RQmyFL-mSUkkNhHqHHtfjDrxbtBKn/s1139/3.jpg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;44&quot; data-original-width=&quot;1139&quot; height=&quot;15&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5XXcvHhaDsYblVFNrg-G3Uvg297tly1iz8LGruFGLiKN_fH75fZvUsq_d8F0P2YHMZE_Tfffs-eNweLDSYmLa5iy75rESBnfG3-_YQz0U3QnKEh9RQmyFL-mSUkkNhHqHHtfjDrxbtBKn/w400-h15/3.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;especially, you will see nid=0x????&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;nid mean native thread id - OS&lt;/div&gt;&lt;div&gt;tid mean Java thread id&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The remaining thing to do is to map Linux thread id 11797 to Hex value. And Google will tell you it is 0x2E15&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiR7kLhijfHNrZ2ZE6DnrQMuw_ExEbuP9ho5vxHqwf1McioqKEjGie0jTBz0rxYNRUaUKBqOOBaaxHs3VEY0Z2pERdo7KDPd9_vY7f2RiuG2dU_Ouur5N73Iqbgc-8EpMjI_XskCyk4IxA-/s871/5.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;308&quot; data-original-width=&quot;871&quot; height=&quot;113&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiR7kLhijfHNrZ2ZE6DnrQMuw_ExEbuP9ho5vxHqwf1McioqKEjGie0jTBz0rxYNRUaUKBqOOBaaxHs3VEY0Z2pERdo7KDPd9_vY7f2RiuG2dU_Ouur5N73Iqbgc-8EpMjI_XskCyk4IxA-/s320/5.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;Now, if you search the jstack output file, you should see a match in nid. For me, they are&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiq3r2qx3Hx3SgMVp0GpT1cq-6JkYu33I7XlVermwZwBDF2_GtEbMkD6sIrX3b_bG1ZJDXcm8gmzzOn7tdzAFP0IuX3VUBM_-hSoNcPrSeM19Y1LSKS_dmCHJmUWwKmPsxMQRJb7YrGUxcF/s767/6.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;64&quot; data-original-width=&quot;767&quot; height=&quot;27&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiq3r2qx3Hx3SgMVp0GpT1cq-6JkYu33I7XlVermwZwBDF2_GtEbMkD6sIrX3b_bG1ZJDXcm8gmzzOn7tdzAFP0IuX3VUBM_-hSoNcPrSeM19Y1LSKS_dmCHJmUWwKmPsxMQRJb7YrGUxcF/s320/6.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;GC task threads that eating the CPU.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;</description><link>http://thompsonng.blogspot.com/2023/05/java-how-to-map-linux-thread-id-to-java.html</link><author>noreply@blogger.com (Thompson Ng)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrLAZ1dqyfekRQQBeHmlIfSMggml63DoVuNLiV-RCZSI-c9ZXxjxzoSey1Kpg23h38MT1iikxrQ_Kk0VLYXRTwOy2Pd9rmEv63jZIKDKL9t8coc-lF9dzpa0YEPIXGEfmRL3Vp-vmF3HaL/s72-w320-h41-c/2.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-181484357747627654.post-4926199335136823016</guid><pubDate>Sat, 15 Apr 2023 09:26:00 +0000</pubDate><atom:updated>2023-04-15T02:26:36.802-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Windows 10</category><title>Windows 10 - Could not find this item when deleting directory</title><description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;If you encounter &quot;Could not find this item&quot; and you could not delete the folder no matter what you do from the Windows Explorer, you may want to try rd command.&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjD9xt3tgaB6eXltlL5yub1bFJXKgHUnOkfccF6chJJvLT0aTYVO4gBEibiO5mtMxb8affff9ycKUfLERuvA71nn4BA9OXPYemTFVawebDPn0QYcAAmXiln9Y7azpoG6Pg3V9uVzaslmAy4/s1044/2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;606&quot; data-original-width=&quot;1044&quot; height=&quot;186&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjD9xt3tgaB6eXltlL5yub1bFJXKgHUnOkfccF6chJJvLT0aTYVO4gBEibiO5mtMxb8affff9ycKUfLERuvA71nn4BA9OXPYemTFVawebDPn0QYcAAmXiln9Y7azpoG6Pg3V9uVzaslmAy4/s320/2.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Windows being Windows, there are many reason for you to encounter this issue (ranging from invalid fold path to invalid files within the directory).&amp;nbsp;&lt;/p&gt;&lt;p&gt;To solve this issue, you could&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Open Command Prompt (cmd) from Windows Search Bar&lt;/li&gt;&lt;li&gt;Navigate to the parent directory of the troubled folder&lt;/li&gt;&lt;li&gt;Run&amp;nbsp;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;rd /s &quot;the trouble folder&quot;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhB-PsLKZu4MQNX6dkH_ug-PnWpU8AF9Wg7qaYW9GDATFdfc49N1FDfopMkVNj4asAS4JddJx5pC9p_mpqqgwRVaCh3njuO6zGtWhlQuYnn1aog4dZ3q_dme1DLcyQFpD2JaYGMn7tue3Ik/s1305/1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;161&quot; data-original-width=&quot;1305&quot; height=&quot;39&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhB-PsLKZu4MQNX6dkH_ug-PnWpU8AF9Wg7qaYW9GDATFdfc49N1FDfopMkVNj4asAS4JddJx5pC9p_mpqqgwRVaCh3njuO6zGtWhlQuYnn1aog4dZ3q_dme1DLcyQFpD2JaYGMn7tue3Ik/s320/1.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;The directory including the sub directory will be removed&lt;/p&gt;&lt;p&gt;See&amp;nbsp;&lt;a href=&quot;https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/rd&quot;&gt;Microsoft rd command&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;</description><link>http://thompsonng.blogspot.com/2023/04/windows-10-could-not-find-this-item.html</link><author>noreply@blogger.com (Thompson Ng)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjD9xt3tgaB6eXltlL5yub1bFJXKgHUnOkfccF6chJJvLT0aTYVO4gBEibiO5mtMxb8affff9ycKUfLERuvA71nn4BA9OXPYemTFVawebDPn0QYcAAmXiln9Y7azpoG6Pg3V9uVzaslmAy4/s72-c/2.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-181484357747627654.post-8607929922592698288</guid><pubDate>Wed, 29 Mar 2023 13:56:00 +0000</pubDate><atom:updated>2025-08-16T07:35:19.304-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Linux</category><title>Linux - What is the best way to identify currently used Linux Shell?</title><description>&lt;p&gt;In Linux, there is a convenience environment variable SHELL which may tell what is the current shell. However, please do not be confused by it, because, $SHELL only tells us the about the SHELL of the user (and likely the SHELL used when the user log in) and does not necessary tell the runtime shell the user is currently using.&lt;/p&gt;&lt;p&gt;In such runtime case, &quot;ps -p $$&quot; is a better choice&lt;/p&gt;&lt;p&gt;Below is an example&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;$ echo $SHELL&lt;/p&gt;&lt;p&gt;/bin/bash&lt;/p&gt;&lt;p&gt;$ ps -p $$&lt;/p&gt;&lt;p&gt;&amp;nbsp; PID TTY&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; TIME CMD&lt;/p&gt;&lt;p&gt;&amp;nbsp;6364 pts/0&amp;nbsp; &amp;nbsp; 00:00:00 bash&lt;/p&gt;&lt;p&gt;$ ksh&lt;/p&gt;&lt;p&gt;$ echo $SHELL&lt;/p&gt;&lt;p&gt;/bin/bash&lt;/p&gt;&lt;p&gt;$ ps -p $$&lt;/p&gt;&lt;p&gt;&amp;nbsp; PID TTY&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; TIME CMD&lt;/p&gt;&lt;p&gt;26970 pts/0&amp;nbsp; &amp;nbsp; 00:00:00 ksh&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;As you can see, $SHELL consistently say it is /bin/bash even after I had change to ksh shell during runtime. But, ps -p $$ provide consistent result.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ps is the command to list process&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;-p mean&amp;nbsp;Select by process ID&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;$$ mean current shell PID. It is a special shell variable.&lt;/div&gt;</description><link>http://thompsonng.blogspot.com/2023/03/linux-what-is-best-way-to-identify.html</link><author>noreply@blogger.com (Thompson Ng)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-181484357747627654.post-1654536040225312307</guid><pubDate>Fri, 03 Mar 2023 04:47:00 +0000</pubDate><atom:updated>2023-03-02T20:47:50.886-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Wireshark</category><title>Wireshark - What to do after you found a suspicious packet?</title><description>&lt;p&gt;&amp;nbsp;Now given that you found a suspicious packet from Expert Information and want to investigate further, what should you do next?&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmwGSbO3hf1e4BA_TpdwbidA4IPOHNk7LcvFqcRucfjhMnTx8KZlxzg3ODGfxqrdKjC6x8QAsEjLq36ixS1czlBq_7ybhshmx3zfvcfNHSIZ7fS6vw73YuKKNQuH2ON0wTuHTowZdQLZNf/s1134/2.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;302&quot; data-original-width=&quot;1134&quot; height=&quot;85&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmwGSbO3hf1e4BA_TpdwbidA4IPOHNk7LcvFqcRucfjhMnTx8KZlxzg3ODGfxqrdKjC6x8QAsEjLq36ixS1czlBq_7ybhshmx3zfvcfNHSIZ7fS6vw73YuKKNQuH2ON0wTuHTowZdQLZNf/s320/2.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;For example, I would like to investigate the Connection Reset packet. I double click on it and it brings me to the specific packet&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_z5Lx4YuX-4lhoxAM6XXcUO5fHJaJTPu4BWIjq1t0hOn48my-cAmTPaLO_aYUhRB4DJJ4A2WTOvitRGqoLK1X0KrX3wRYAzAZCh5JqCMsiLl8U3oGGbweAxXcb5hJHaCU2M92jkf3IHAZ/s1610/2.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;557&quot; data-original-width=&quot;1610&quot; height=&quot;111&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_z5Lx4YuX-4lhoxAM6XXcUO5fHJaJTPu4BWIjq1t0hOn48my-cAmTPaLO_aYUhRB4DJJ4A2WTOvitRGqoLK1X0KrX3wRYAzAZCh5JqCMsiLl8U3oGGbweAxXcb5hJHaCU2M92jkf3IHAZ/s320/2.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;What next? Of course, you could inspect the packet detail, including IP, port and data. But, what you usually want to know is the trail of the packet.&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;Wireshark allow you to follow the packet. You can right click the packet, Follow -&amp;gt; TCP stream (this is a tcp packet) to get the trail.&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIWVKO-yiB2Ey5rC-yzblGFh9pyTQ6wC5f0roM3wdO-8lFJijG16cxAF3pQW7hchPQTTxPabxxRdvNAWcq3WBaB3SW6fVWuZm6c-VYiDyyRsReYpQBjQcE7PIF-TvR-XMvhonihaHhrHZh/s1030/3.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;496&quot; data-original-width=&quot;1030&quot; height=&quot;154&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIWVKO-yiB2Ey5rC-yzblGFh9pyTQ6wC5f0roM3wdO-8lFJijG16cxAF3pQW7hchPQTTxPabxxRdvNAWcq3WBaB3SW6fVWuZm6c-VYiDyyRsReYpQBjQcE7PIF-TvR-XMvhonihaHhrHZh/s320/3.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;The result is the list of packets (time ordered) to let you know what had happen along the way&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgK6MwHq_BCk1xP0VCpHVsdzGo09y4z3sYwKvh3mZS0Y8UYbNxpLddRkQZndc8EX3tXSVawwA_6m0aJaZAz6bc7UujXR5RrvhRcH0z4114O_BvCHPfYbZ_LKl4orqX7_DY9BTTMO6jW0EXL/s1425/5.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;316&quot; data-original-width=&quot;1425&quot; height=&quot;71&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgK6MwHq_BCk1xP0VCpHVsdzGo09y4z3sYwKvh3mZS0Y8UYbNxpLddRkQZndc8EX3tXSVawwA_6m0aJaZAz6bc7UujXR5RrvhRcH0z4114O_BvCHPfYbZ_LKl4orqX7_DY9BTTMO6jW0EXL/s320/5.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;Worth mentioning, Wireshark provide a Flow Graph under Statistics menu. It shows a graphical view of connections between host. It is rather useful to understand packets sequences.&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiX4tNxL6fcQXFBH1WrVpFsnyeDQnyFvnRsBUcOXh2oQCJvT782Q8NDPmDhfjmcm3XpjMiZ_9OVLTMUwmfwgCCTbQkfGaaE0jOynEO9TfPnfrLP-p_kjfJJTYnhEUV8BkoFaKXMuFoOnLd/s1922/5.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;845&quot; data-original-width=&quot;1922&quot; height=&quot;141&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiX4tNxL6fcQXFBH1WrVpFsnyeDQnyFvnRsBUcOXh2oQCJvT782Q8NDPmDhfjmcm3XpjMiZ_9OVLTMUwmfwgCCTbQkfGaaE0jOynEO9TfPnfrLP-p_kjfJJTYnhEUV8BkoFaKXMuFoOnLd/s320/5.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;</description><link>http://thompsonng.blogspot.com/2023/03/wireshark-what-to-do-after-you-found.html</link><author>noreply@blogger.com (Thompson Ng)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmwGSbO3hf1e4BA_TpdwbidA4IPOHNk7LcvFqcRucfjhMnTx8KZlxzg3ODGfxqrdKjC6x8QAsEjLq36ixS1czlBq_7ybhshmx3zfvcfNHSIZ7fS6vw73YuKKNQuH2ON0wTuHTowZdQLZNf/s72-c/2.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-181484357747627654.post-2209139687998998659</guid><pubDate>Wed, 15 Feb 2023 06:24:00 +0000</pubDate><atom:updated>2023-02-14T22:24:54.998-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Wireshark</category><title>Wireshark - Where to start? Take a look at Expert Information</title><description>&lt;p&gt;&amp;nbsp;Often, when you are looking at the tcpdump, you will question yourself... What are you looking at? Where should I start?&lt;/p&gt;&lt;p&gt;In Wireshark, there is a Expert Information at the Analyze menu&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9m9vys6vl5j_xRZFW6Oa4yOB7MpVUirdPHDrXqiX7eToWxsb5JNn1wUUBXDeDxXJ4cv5YIFPeNYNkI5uwOqtKTvZbMiqenzqkPppcyZ2qk8X9n0s5N9KspLwHYqf8BWmM7mIY215tU0ee/s1157/1.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;537&quot; data-original-width=&quot;1157&quot; height=&quot;149&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9m9vys6vl5j_xRZFW6Oa4yOB7MpVUirdPHDrXqiX7eToWxsb5JNn1wUUBXDeDxXJ4cv5YIFPeNYNkI5uwOqtKTvZbMiqenzqkPppcyZ2qk8X9n0s5N9KspLwHYqf8BWmM7mIY215tU0ee/s320/1.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;It will tell you analysis information that is detected by Wireshark. There could be Error, Warning, Note, Chat message and these are based on Wireshark tagging base on packet characteristic. See&amp;nbsp;&lt;a href=&quot;https://www.wireshark.org/docs/wsug_html_chunked/ChAdvTCPAnalysis.html&quot;&gt;Wireshark TCP Analysis&lt;/a&gt;&amp;nbsp;for more details. It will also tell you the count of each type of message.&lt;/p&gt;&lt;p&gt;From the above example, the first thing that catch my eyes are&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Connection reset message&lt;/li&gt;&lt;li&gt;Retransmission anb Duplicate Ack message&lt;/li&gt;&lt;li&gt;Any not capture related message&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;If you expand each category, Wireshark will show you the packets summary that is related to the message. You can further drill into the packet by double clicking the packet row.&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2FgWGPUJFgejgyeFIE5WRrWR5yq7YVb_gKwb0HrNQ-NmGUtjkyp-AvIYfggkpsUJ1pV4PtxZDnF-O1iNgCdq0G-H2A62CB38YW5qCX7-PgjPXIWH2-JoP4Y_s9AsdDltWfecd2Xhn-P1_/s1134/2.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;302&quot; data-original-width=&quot;1134&quot; height=&quot;85&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2FgWGPUJFgejgyeFIE5WRrWR5yq7YVb_gKwb0HrNQ-NmGUtjkyp-AvIYfggkpsUJ1pV4PtxZDnF-O1iNgCdq0G-H2A62CB38YW5qCX7-PgjPXIWH2-JoP4Y_s9AsdDltWfecd2Xhn-P1_/s320/2.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description><link>http://thompsonng.blogspot.com/2023/02/wireshark-where-to-start-take-look-at.html</link><author>noreply@blogger.com (Thompson Ng)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9m9vys6vl5j_xRZFW6Oa4yOB7MpVUirdPHDrXqiX7eToWxsb5JNn1wUUBXDeDxXJ4cv5YIFPeNYNkI5uwOqtKTvZbMiqenzqkPppcyZ2qk8X9n0s5N9KspLwHYqf8BWmM7mIY215tU0ee/s72-c/1.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-181484357747627654.post-318107041860297666</guid><pubDate>Wed, 04 Jan 2023 07:03:00 +0000</pubDate><atom:updated>2023-01-03T23:03:46.560-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">JavaMelody</category><category domain="http://www.blogger.com/atom/ns#">Tomcat</category><title>Tomcat - Live monitoring with JavaMelody</title><description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;h1 id=&quot;MonitoringTomcat-LiveMonitoringofTomcatResource&quot; style=&quot;background-color: white; border-bottom-color: rgb(255, 255, 255); color: #172b4d; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 24px; font-weight: normal; letter-spacing: -0.01em; line-height: 1.25; margin: 0px; padding: 0px;&quot;&gt;Live Monitoring of Tomcat Resource&lt;/h1&gt;&lt;p style=&quot;background-color: white; color: #172b4d; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 14px; margin: 10px 0px 0px; padding: 0px;&quot;&gt;I used&amp;nbsp;&lt;a class=&quot;external-link&quot; href=&quot;https://github.com/javamelody/javamelody/wiki&quot; rel=&quot;nofollow&quot; style=&quot;color: #0052cc; text-decoration-line: none;&quot;&gt;JavaMelody&amp;nbsp;&lt;/a&gt;to provide live monitoring of Tomcat. It is as simple as dropping the following jar file&lt;/p&gt;&lt;ul style=&quot;background-color: white; color: #172b4d; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 14px; margin: 10px 0px 0px;&quot;&gt;&lt;li&gt;javamelody-core-1.88.0.jar&lt;/li&gt;&lt;li&gt;jrobin-1.5.9.jar&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;background-color: white; color: #172b4d; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 14px; margin: 10px 0px 0px; padding: 0px;&quot;&gt;into the WEB-INF directory. And run&amp;nbsp;&lt;a class=&quot;external-link&quot; href=&quot;http://tng-rh7:6761/ag_41/monitoring&quot; rel=&quot;nofollow&quot; style=&quot;color: #0052cc; text-decoration-line: none;&quot;&gt;http://host:port/context_path/monitoring&lt;/a&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #172b4d; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 14px; margin: 10px 0px 0px; padding: 0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2Vr9MY1Ihyphenhyphenvm2mwvMarMGMi4AIY_xMW47dM_FqAkKJnxJ-csVaEgliS-8CrNDNKx9XUzq7KhFb8fEJPT153gjJy9uR7JS_rBpGUaE3nU8SynUHZls3zc0_gc-wjzC4yMNKCTwKTawir9H/s1069/1.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;712&quot; data-original-width=&quot;1069&quot; height=&quot;213&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2Vr9MY1Ihyphenhyphenvm2mwvMarMGMi4AIY_xMW47dM_FqAkKJnxJ-csVaEgliS-8CrNDNKx9XUzq7KhFb8fEJPT153gjJy9uR7JS_rBpGUaE3nU8SynUHZls3zc0_gc-wjzC4yMNKCTwKTawir9H/s320/1.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p style=&quot;background-color: white; color: #172b4d; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 14px; margin: 10px 0px 0px; padding: 0px;&quot;&gt;They provide HTTP statistic which is very useful&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #172b4d; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 14px; margin: 10px 0px 0px; padding: 0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #172b4d; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 14px; margin: 10px 0px 0px; padding: 0px;&quot;&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJKzVr0xIrr3OrcGpRYZh4g3kE0H24RbWevi-mFyL88LAh2kgn3Em1yJFCLPQtpDS3AwQJGe1FCOw1IbmieOjycFvnKAp37xxs_fy-DJYIofzgsoZFuInOOjEqFYOADfZeTfGO8SY30CeD/s1295/2.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;717&quot; data-original-width=&quot;1295&quot; height=&quot;177&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJKzVr0xIrr3OrcGpRYZh4g3kE0H24RbWevi-mFyL88LAh2kgn3Em1yJFCLPQtpDS3AwQJGe1FCOw1IbmieOjycFvnKAp37xxs_fy-DJYIofzgsoZFuInOOjEqFYOADfZeTfGO8SY30CeD/s320/2.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;and many others which I think it is useful&lt;p&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #172b4d; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 14px; margin: 10px 0px 0px; padding: 0px;&quot;&gt;See&amp;nbsp;https://github.com/javamelody/javamelody/wiki/Screenshots#charts&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;</description><link>http://thompsonng.blogspot.com/2023/01/tomcat-live-monitoring-with-javamelody.html</link><author>noreply@blogger.com (Thompson Ng)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2Vr9MY1Ihyphenhyphenvm2mwvMarMGMi4AIY_xMW47dM_FqAkKJnxJ-csVaEgliS-8CrNDNKx9XUzq7KhFb8fEJPT153gjJy9uR7JS_rBpGUaE3nU8SynUHZls3zc0_gc-wjzC4yMNKCTwKTawir9H/s72-c/1.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-181484357747627654.post-3767801960504818674</guid><pubDate>Wed, 16 Nov 2022 06:56:00 +0000</pubDate><atom:updated>2024-11-10T04:49:03.632-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">SQL</category><title>SQL - Select ANY operator with using sub query </title><description>&lt;p&gt;&amp;nbsp;Most of the online guide provide Select ANY operator with sub query, for example&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;sqlkeywordcolor&quot; style=&quot;background-color: white; box-sizing: inherit; color: mediumblue; font-family: Consolas, Menlo, &amp;quot;courier new&amp;quot;, monospace; font-size: 15px;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;span class=&quot;sqlkeywordcolor&quot; style=&quot;background-color: white; box-sizing: inherit; color: mediumblue; font-family: Consolas, Menlo, &amp;quot;courier new&amp;quot;, monospace; font-size: 15px;&quot;&gt;SELECT&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: Consolas, Menlo, &amp;quot;courier new&amp;quot;, monospace; font-size: 15px;&quot;&gt;&amp;nbsp;ProductName&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sqlkeywordcolor&quot; style=&quot;background-color: white; box-sizing: inherit; color: mediumblue; font-family: Consolas, Menlo, &amp;quot;courier new&amp;quot;, monospace; font-size: 15px;&quot;&gt;FROM&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: Consolas, Menlo, &amp;quot;courier new&amp;quot;, monospace; font-size: 15px;&quot;&gt;&amp;nbsp;Products&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sqlkeywordcolor&quot; style=&quot;background-color: white; box-sizing: inherit; color: mediumblue; font-family: Consolas, Menlo, &amp;quot;courier new&amp;quot;, monospace; font-size: 15px;&quot;&gt;WHERE&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: Consolas, Menlo, &amp;quot;courier new&amp;quot;, monospace; font-size: 15px;&quot;&gt;&amp;nbsp;ProductID =&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sqlkeywordcolor&quot; style=&quot;background-color: white; box-sizing: inherit; color: mediumblue; font-family: Consolas, Menlo, &amp;quot;courier new&amp;quot;, monospace; font-size: 15px;&quot;&gt;ANY&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: Consolas, Menlo, &amp;quot;courier new&amp;quot;, monospace; font-size: 15px;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;sqlkeywordcolor&quot; style=&quot;background-color: white; box-sizing: inherit; color: mediumblue; font-family: Consolas, Menlo, &amp;quot;courier new&amp;quot;, monospace; font-size: 15px;&quot;&gt;SELECT&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: Consolas, Menlo, &amp;quot;courier new&amp;quot;, monospace; font-size: 15px;&quot;&gt;&amp;nbsp;ProductID&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sqlkeywordcolor&quot; style=&quot;background-color: white; box-sizing: inherit; color: mediumblue; font-family: Consolas, Menlo, &amp;quot;courier new&amp;quot;, monospace; font-size: 15px;&quot;&gt;FROM&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: Consolas, Menlo, &amp;quot;courier new&amp;quot;, monospace; font-size: 15px;&quot;&gt;&amp;nbsp;OrderDetails&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sqlkeywordcolor&quot; style=&quot;background-color: white; box-sizing: inherit; color: mediumblue; font-family: Consolas, Menlo, &amp;quot;courier new&amp;quot;, monospace; font-size: 15px;&quot;&gt;WHERE&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: Consolas, Menlo, &amp;quot;courier new&amp;quot;, monospace; font-size: 15px;&quot;&gt;&amp;nbsp;Quantity =&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;sqlnumbercolor&quot; style=&quot;background-color: white; box-sizing: inherit; color: red; font-family: Consolas, Menlo, &amp;quot;courier new&amp;quot;, monospace; font-size: 15px;&quot;&gt;10&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: Consolas, Menlo, &amp;quot;courier new&amp;quot;, monospace; font-size: 15px;&quot;&gt;);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;span style=&quot;background-color: white; font-family: Consolas, Menlo, &amp;quot;courier new&amp;quot;, monospace; font-size: 15px;&quot;&gt;It is possible not to use sub query, at least for PostgreSQL, and the working syntax is&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: white; font-size: 15px;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;span style=&quot;font-family: Consolas, Menlo, courier new, monospace;&quot;&gt;SELECT ProductName FROM Products WHERE ProductName = ANY(&#39;{Samsung}&#39;);&lt;/span&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: white; font-family: Consolas, Menlo, &amp;quot;courier new&amp;quot;, monospace; font-size: 15px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;</description><link>http://thompsonng.blogspot.com/2022/11/sql-select-any-operator-with-using-sub.html</link><author>noreply@blogger.com (Thompson Ng)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-181484357747627654.post-1184090312356815033</guid><pubDate>Mon, 07 Nov 2022 03:46:00 +0000</pubDate><atom:updated>2022-11-06T19:46:35.791-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">SQL</category><title>SQL - Duplicate table structure with existing table</title><description>&lt;p&gt;Some simply SQL which could duplicate table with table structure quickly from existing table.&lt;/p&gt;&lt;p&gt;Duplicate with full data&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;create table A_dup as (select * from A);&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Duplicate with no data&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;create table A_dup as (select * from A) with no data;&amp;nbsp;&lt;/p&gt;&lt;/blockquote&gt;</description><link>http://thompsonng.blogspot.com/2022/11/sql-duplicate-table-structure-with.html</link><author>noreply@blogger.com (Thompson Ng)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-181484357747627654.post-4061674377423556681</guid><pubDate>Tue, 11 Oct 2022 02:10:00 +0000</pubDate><atom:updated>2022-10-10T19:10:40.107-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Chrome</category><category domain="http://www.blogger.com/atom/ns#">Javascript</category><title>Chrome - Replaying Network Request</title><description>&lt;p&gt;&lt;span style=&quot;color: #172b4d; font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;&quot;&gt;&lt;span style=&quot;background-color: white; font-size: 14px;&quot;&gt;From debugging point of view, some time, you will want do stress test your web application by replaying network request. Chrome Developer Tools allows you to do so.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #172b4d; font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;&quot;&gt;&lt;span style=&quot;background-color: white; font-size: 14px;&quot;&gt;The steps are:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: white; color: #172b4d; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 14px;&quot;&gt;1) Open Chrome Developer Tools, then navigate to Network Tab&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #172b4d; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 14px; margin: 10px 0px 0px; padding: 0px;&quot;&gt;2) Then perform the UI action which you want to replay the network request.&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #172b4d; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 14px; margin: 10px 0px 0px; padding: 0px;&quot;&gt;3) Look at the Network tab and it will capture the network request&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #172b4d; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 14px; margin: 10px 0px 0px; padding: 0px;&quot;&gt;4) Then, right click on the request, select Copy&amp;nbsp;→ Copy as fetch&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #172b4d; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 14px; margin: 10px 0px 0px; padding: 0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #172b4d; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 14px; margin: 10px 0px 0px; padding: 0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbLL7upCfLxuWP-VbgOOtWOw5x4wJpPYNQzXQakBeOfkJWh888tAv_1zAHBgXwM9DtD3S1UHFUqTJQN8c95jporzwQU6j9SmVnH9B69I-ZVLFDtU2Jb2RqFSSy8J8q-HQdAhYCvDWb4hNR/s781/1.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;781&quot; data-original-width=&quot;560&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbLL7upCfLxuWP-VbgOOtWOw5x4wJpPYNQzXQakBeOfkJWh888tAv_1zAHBgXwM9DtD3S1UHFUqTJQN8c95jporzwQU6j9SmVnH9B69I-ZVLFDtU2Jb2RqFSSy8J8q-HQdAhYCvDWb4hNR/w229-h320/1.jpg&quot; width=&quot;229&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;span style=&quot;background-color: white; color: #172b4d; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 14px;&quot;&gt;5) Paste the copied fetch request to Console tab and press Enter. It will replay the request&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyBiZsAAsHVkKT__xiKziMCBpQypSjeRB16yjGBsa-VxL13-QrUMTHhT9Zcow4Jsv9f4ZcuIeSjg0sKsk5iQaCZ7CBUakKtvhTC-v7A80arB3Q9d1kqu9WBTDB6Qnx-vk-Fl7_y7hb7NnF/s779/2.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;779&quot; data-original-width=&quot;534&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyBiZsAAsHVkKT__xiKziMCBpQypSjeRB16yjGBsa-VxL13-QrUMTHhT9Zcow4Jsv9f4ZcuIeSjg0sKsk5iQaCZ7CBUakKtvhTC-v7A80arB3Q9d1kqu9WBTDB6Qnx-vk-Fl7_y7hb7NnF/s320/2.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;6) You could write fancy javascript at the Console, for example, loop the fetch request&lt;/div&gt;&lt;br style=&quot;text-align: left;&quot; /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipwP0xzJloGeUpCbyRUF1fK4ckko7jt9Z2PAoennJzxaceBgUesXxdXpvj8-3QdVULcbCeIHbgnrsFKU8icqB_TLLkAVFzYrWff_Fwp7GIXGOD9MzX3xR_mXfJBTa9jRUTa7-A0JjuyN4p/s594/3.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;594&quot; data-original-width=&quot;524&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipwP0xzJloGeUpCbyRUF1fK4ckko7jt9Z2PAoennJzxaceBgUesXxdXpvj8-3QdVULcbCeIHbgnrsFKU8icqB_TLLkAVFzYrWff_Fwp7GIXGOD9MzX3xR_mXfJBTa9jRUTa7-A0JjuyN4p/s320/3.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p style=&quot;background-color: white; color: #172b4d; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Oxygen, Ubuntu, &amp;quot;Fira Sans&amp;quot;, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Helvetica Neue&amp;quot;, sans-serif; font-size: 14px; margin: 10px 0px 0px; padding: 0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;</description><link>http://thompsonng.blogspot.com/2022/10/chrome-replaying-network-request.html</link><author>noreply@blogger.com (Thompson Ng)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbLL7upCfLxuWP-VbgOOtWOw5x4wJpPYNQzXQakBeOfkJWh888tAv_1zAHBgXwM9DtD3S1UHFUqTJQN8c95jporzwQU6j9SmVnH9B69I-ZVLFDtU2Jb2RqFSSy8J8q-HQdAhYCvDWb4hNR/s72-w229-h320-c/1.jpg" height="72" width="72"/><thr:total>0</thr:total></item></channel></rss>