<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns: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'><id>tag:blogger.com,1999:blog-5891293935093365308</id><updated>2026-07-17T21:48:47.240-07:00</updated><category term="install"/><category term="linux"/><category term="windows"/><category term="32 bit"/><category term="command line"/><category term="dos"/><category term="ubuntu"/><category term="xp"/><category term="16 bit"/><category term="5"/><category term="98"/><category term="VMWare"/><category term="compile"/><category term="connect"/><category term="driver"/><category term="drivers"/><category term="how to"/><category term="kernal"/><category term="monitor"/><category term="note"/><category term="open office"/><category term="pcmcia"/><category term="puppy"/><category term="puppy linux"/><category term="root"/><category term="samsung"/><category term="shell"/><category term="vista"/><category term="win 7"/><category term="2000"/><category term="4.2.1"/><category term="5020T"/><category term="6.5"/><category term="64 bit"/><category term="9.04"/><category term="AutoIt"/><category term="Bluetooth"/><category term="C#"/><category term="C1"/><category term="CLI"/><category term="ConsoleWrite"/><category term="Direct3D"/><category term="E343"/><category term="E344"/><category term="E345"/><category term="Intel"/><category term="Jaunty Jackalope"/><category term="Java"/><category term="Open Office 3.1"/><category term="PCG"/><category term="PCG C1"/><category term="SM Bus"/><category term="SMBus"/><category term="Sony NWZ"/><category term="adapter"/><category term="adb"/><category term="alcatel"/><category term="android"/><category term="architecture"/><category term="ata"/><category term="ata atapi"/><category term="atapi"/><category term="automated"/><category term="automation"/><category term="bash"/><category term="beginning"/><category term="beta"/><category term="boot"/><category term="bootstrapper"/><category term="box"/><category term="broken"/><category term="browser"/><category term="bug"/><category term="can&#39;t find"/><category term="cant"/><category term="cardbus"/><category term="cassandra"/><category term="change"/><category term="changer"/><category term="collector"/><category term="command"/><category term="controller"/><category term="converter"/><category term="create"/><category term="cursor"/><category term="custom"/><category term="cydia impactor"/><category term="data"/><category term="database"/><category term="debian"/><category term="defect"/><category term="demo"/><category term="demonstration"/><category term="deploy"/><category term="direct3d vmware 6.5"/><category term="disconnects"/><category term="display"/><category term="distribution"/><category term="distro"/><category term="doesn&#39;t"/><category term="doesn&#39;t work"/><category term="e donkey"/><category term="edonkey"/><category term="enable"/><category term="error"/><category term="evolve"/><category term="excel"/><category term="exe"/><category term="fails"/><category term="fix"/><category term="free"/><category term="from"/><category term="galaxy"/><category term="gear"/><category term="generate"/><category term="genuine"/><category term="handspring"/><category term="highid"/><category term="howto"/><category term="hp"/><category term="import"/><category term="installation"/><category term="intermittent"/><category term="introduction"/><category term="ip"/><category term="join"/><category term="key"/><category term="ldu"/><category term="line"/><category term="live"/><category term="logman"/><category term="low id"/><category term="lowid"/><category term="mautic"/><category term="md5"/><category term="microsoft"/><category term="mode"/><category term="mouse"/><category term="nosql"/><category term="nt"/><category term="one click"/><category term="one touch"/><category term="output"/><category term="pcmcia to ata"/><category term="pcmcia to atapi"/><category term="pdf"/><category term="perfmon"/><category term="performance"/><category term="planetside"/><category term="printer"/><category term="quality center"/><category term="rc"/><category term="relational"/><category term="requirement"/><category term="resolution"/><category term="retail"/><category term="rom"/><category term="run"/><category term="scite"/><category term="screen"/><category term="scripts"/><category term="scylla"/><category term="selectPopUp"/><category term="selectWindow"/><category term="selenium"/><category term="service"/><category term="set"/><category term="sha1"/><category term="shareaza"/><category term="shared"/><category term="sharing"/><category term="sleep"/><category term="sm-920x"/><category term="sm-n920x"/><category term="sony"/><category term="sql"/><category term="start"/><category term="steam"/><category term="stutter"/><category term="table"/><category term="template"/><category term="test"/><category term="tmobile"/><category term="tool"/><category term="turnkey"/><category term="unit"/><category term="update"/><category term="upgrade"/><category term="upload"/><category term="utility"/><category term="vaio"/><category term="validate"/><category term="validation"/><category term="video"/><category term="virtual"/><category term="visor"/><category term="visor handspring"/><category term="vr"/><category term="why"/><category term="win7"/><category term="window"/><category term="windows 7"/><category term="won&#39;t work"/><category term="work"/><category term="x"/><category term="xorg"/><category term="xorg.conf"/><title type='text'>Thanks a lot, man!</title><subtitle type='html'>A blog to collect the little helpful bits of information I have run across.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://thanksalotman.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5891293935093365308/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://thanksalotman.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/5891293935093365308/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>MrTwist</name><uri>http://www.blogger.com/profile/05059283899115065086</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgufch6gY1V3XaRQB96XbLYYqFzXjjf_U4HnmicaNkQNxcU0xzyYIH9be4_hX8lo_JkZqW3m_OZNmixGAQ8zZhUvz5nw7q8wPFVCnNzbhgeckgXW-YsuRaJHusIQZfm_oEPHbLD-oo7WaEUrsv04FFi56sWClKnw9wKfdxk0WGZldx/s220/54a38e78-7618-481d-872d-b1df2f0cf0ab.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>36</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5891293935093365308.post-1619580871020601265</id><published>2025-11-14T11:57:00.000-08:00</published><updated>2025-11-14T11:58:25.017-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="automated"/><category scheme="http://www.blogger.com/atom/ns#" term="automation"/><category scheme="http://www.blogger.com/atom/ns#" term="bash"/><category scheme="http://www.blogger.com/atom/ns#" term="debian"/><category scheme="http://www.blogger.com/atom/ns#" term="install"/><category scheme="http://www.blogger.com/atom/ns#" term="installation"/><category scheme="http://www.blogger.com/atom/ns#" term="mautic"/><title type='text'>Mautic Installation Bash Script for Debian</title><content type='html'>&lt;p&gt;Here&#39;s a bash script to install Mautic on Debian.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Name the Mautic deployment package to &quot;mautic.zip&quot; and place it in the same directory as the installation script.&lt;/p&gt;&lt;p&gt;Health checks are built-in, so re-running the script won&#39;t clobber existing installed items. The database user configuration is always overwritten, though.&lt;/p&gt;&lt;p&gt;Installation items:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;MariaDB (MySQL drop-in replacement)&lt;/li&gt;&lt;li&gt;PHP 8.2&lt;/li&gt;&lt;li&gt;Nginx&lt;/li&gt;&lt;li&gt;Mautic&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;&lt;u&gt;Installation script&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;#!/usr/bin/env bash&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;set -euo pipefail&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;trap &#39;echo &quot;Error on line $LINENO&quot;; exit 1&#39; ERR&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;# Variables&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;DB_NAME=&quot;mautic&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;DB_USER=&quot;mauticuser&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;DB_PASS=&quot;YourSecurePassword&quot; #CHANGE THIS&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;MAUTIC_DIR=&quot;/var/www/mautic&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;PHP_VERSION=&quot;8.2&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;DOMAIN=&quot;YourAwesomeDomain.xyz&quot; #CHANGE THIS&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;SERVER_IP=&quot;$(hostname -I | awk &#39;{print $1}&#39;)&quot;&amp;nbsp; &amp;nbsp;# auto-detect primary IP&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;SCRIPT_DIR=&quot;$(cd &quot;$(dirname &quot;${BASH_SOURCE[0]}&quot;)&quot; &amp;amp;&amp;amp; pwd)&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;MAUTIC_ZIP=&quot;${SCRIPT_DIR}/mautic.zip&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;# Ensure root&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;if [[ $EUID -ne 0 ]]; then&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; echo &quot;Run as root (sudo).&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; exit 1&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;fi&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;install_packages() {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; echo &quot;Checking required packages...&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; local packages=(&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; nginx mariadb-server mariadb-client&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; php${PHP_VERSION} php${PHP_VERSION}-cli php${PHP_VERSION}-mysql&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; php${PHP_VERSION}-curl php${PHP_VERSION}-xml php${PHP_VERSION}-mbstring&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; php${PHP_VERSION}-zip php${PHP_VERSION}-intl php${PHP_VERSION}-fpm&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; unzip curl git composer&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; )&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; local to_install=()&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; for pkg in &quot;${packages[@]}&quot;; do&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; if ! dpkg -s &quot;$pkg&quot; &amp;gt;/dev/null 2&amp;gt;&amp;amp;1; then&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; to_install+=(&quot;$pkg&quot;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; else&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; echo &quot;✔ $pkg already installed, skipping.&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; fi&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; done&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; if [[ ${#to_install[@]} -gt 0 ]]; then&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; echo &quot;Installing missing packages: ${to_install[*]}&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; apt-get update -y&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; DEBIAN_FRONTEND=noninteractive apt-get install -y &quot;${to_install[@]}&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; else&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; echo &quot;All required packages already installed.&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; fi&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;setup_database() {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; echo &quot;Configuring database...&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; mysql -u root -e &quot;CREATE DATABASE IF NOT EXISTS ${DB_NAME} CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; mysql -u root -e &quot;DROP USER IF EXISTS &#39;${DB_USER}&#39;@&#39;localhost&#39;;&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; mysql -u root -e &quot;CREATE USER &#39;${DB_USER}&#39;@&#39;localhost&#39; IDENTIFIED BY &#39;${DB_PASS}&#39;;&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; mysql -u root -e &quot;GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO &#39;${DB_USER}&#39;@&#39;localhost&#39;;&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; mysql -u root -e &quot;FLUSH PRIVILEGES;&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;install_mautic() {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; echo &quot;Installing Mautic from local zip...&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; if [[ ! -f &quot;${MAUTIC_ZIP}&quot; ]]; then&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; echo &quot;❌ Mautic archive not found at ${MAUTIC_ZIP}&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; exit 1&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; fi&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; if [[ ! -d &quot;${MAUTIC_DIR}&quot; || -z &quot;$(ls -A &quot;${MAUTIC_DIR}&quot;)&quot; ]]; then&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; mkdir -p &quot;${MAUTIC_DIR}&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; unzip -o &quot;${MAUTIC_ZIP}&quot; -d &quot;${MAUTIC_DIR}&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; chown -R www-data:www-data &quot;${MAUTIC_DIR}&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; chmod -R 755 &quot;${MAUTIC_DIR}&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; else&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; echo &quot;Mautic directory already populated, skipping extraction.&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; fi&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;configure_nginx() {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; echo &quot;Configuring Nginx...&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; CONF_FILE=&quot;/etc/nginx/sites-available/mautic&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; if [[ ! -f &quot;${CONF_FILE}&quot; ]]; then&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; cat &amp;gt; &quot;${CONF_FILE}&quot; &amp;lt;&amp;lt;EOF&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;server {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; listen 80;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; server_name ${DOMAIN} ${SERVER_IP} localhost _;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; root ${MAUTIC_DIR};&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; index index.php index.html;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; location / {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; try_files \$uri /index.php\$is_args\$args;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; location ~ \.php\$ {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; include snippets/fastcgi-php.conf;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; fastcgi_pass unix:/run/php/php${PHP_VERSION}-fpm.sock;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; include fastcgi_params;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; location ~ /\.ht {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; deny all;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;EOF&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; ln -sf &quot;${CONF_FILE}&quot; /etc/nginx/sites-enabled/mautic&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; else&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; echo &quot;Nginx config already exists, skipping.&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; fi&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; # Disable default site if present&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; if [[ -f /etc/nginx/sites-enabled/default ]]; then&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; echo &quot;Disabling default Nginx site...&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; rm -f /etc/nginx/sites-enabled/default&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; fi&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; nginx -t&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; systemctl reload nginx&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;setup_systemd_unit() {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; echo &quot;Configuring systemd unit for Mautic jobs...&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; UNIT_DIR=&quot;/etc/systemd/system&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; SERVICE_FILE=&quot;${UNIT_DIR}/mautic-jobs.service&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; TIMER_FILE=&quot;${UNIT_DIR}/mautic-jobs.timer&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; if [[ ! -f &quot;${SERVICE_FILE}&quot; ]]; then&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; cat &amp;gt; &quot;${SERVICE_FILE}&quot; &amp;lt;&amp;lt;EOF&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;[Unit]&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;Description=Mautic consolidated background jobs&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;After=network.target mariadb.service php${PHP_VERSION}-fpm.service&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;[Service]&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;Type=oneshot&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;User=www-data&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;Group=www-data&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;WorkingDirectory=${MAUTIC_DIR}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;ExecStart=/usr/bin/php ${MAUTIC_DIR}/bin/console mautic:segments:update --env=prod&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;ExecStart=/usr/bin/php ${MAUTIC_DIR}/bin/console mautic:campaigns:update --env=prod&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;ExecStart=/usr/bin/php ${MAUTIC_DIR}/bin/console mautic:emails:send --env=prod&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;EOF&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; fi&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; if [[ ! -f &quot;${TIMER_FILE}&quot; ]]; then&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; cat &amp;gt; &quot;${TIMER_FILE}&quot; &amp;lt;&amp;lt;EOF&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;[Unit]&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;Description=Run Mautic jobs periodically&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;[Timer]&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;OnBootSec=5m&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;OnUnitActiveSec=15m&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;Persistent=true&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;[Install]&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;WantedBy=timers.target&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;EOF&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; fi&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; systemctl daemon-reexec&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; systemctl enable --now mautic-jobs.timer&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;ensure_services_running() {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; echo &quot;Ensuring Nginx and PHP-FPM are running...&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; systemctl enable --now nginx&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; systemctl enable --now php${PHP_VERSION}-fpm&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;health_check() {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; echo &quot;Performing health check...&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; STATUS=$(curl -s -o /dev/null -w &quot;%{http_code}&quot; &quot;http://localhost&quot;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; if [[ &quot;$STATUS&quot; =~ ^2|3 ]]; then&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; echo &quot;✅ Health check passed: Mautic web interface responded with HTTP $STATUS&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; echo &quot;&amp;nbsp; &amp;nbsp;Access it at http://localhost or http://${SERVER_IP}&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; else&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; echo &quot;❌ Health check failed: HTTP $STATUS returned. Check Nginx/PHP-FPM logs.&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; exit 1&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; fi&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;main() {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; install_packages&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; setup_database&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; install_mautic&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; configure_nginx&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; setup_systemd_unit&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; ensure_services_running&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; health_check&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&amp;nbsp; echo &quot;✅ Mautic 6.0.6 installed with Nginx + MariaDB, idempotent and safe for reruns.&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: white; font-family: courier;&quot;&gt;main &quot;$@&quot;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;background-color: #d0e0e3;&quot;&gt;&lt;br /&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;p&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://thanksalotman.blogspot.com/feeds/1619580871020601265/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5891293935093365308/1619580871020601265' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5891293935093365308/posts/default/1619580871020601265'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5891293935093365308/posts/default/1619580871020601265'/><link rel='alternate' type='text/html' href='http://thanksalotman.blogspot.com/2025/11/mautic-installation-bash-script-for.html' title='Mautic Installation Bash Script for Debian'/><author><name>MrTwist</name><uri>http://www.blogger.com/profile/05059283899115065086</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgufch6gY1V3XaRQB96XbLYYqFzXjjf_U4HnmicaNkQNxcU0xzyYIH9be4_hX8lo_JkZqW3m_OZNmixGAQ8zZhUvz5nw7q8wPFVCnNzbhgeckgXW-YsuRaJHusIQZfm_oEPHbLD-oo7WaEUrsv04FFi56sWClKnw9wKfdxk0WGZldx/s220/54a38e78-7618-481d-872d-b1df2f0cf0ab.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5891293935093365308.post-2118176325248845141</id><published>2025-02-05T20:48:00.000-08:00</published><updated>2025-02-08T07:37:38.606-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="box"/><category scheme="http://www.blogger.com/atom/ns#" term="browser"/><category scheme="http://www.blogger.com/atom/ns#" term="connect"/><category scheme="http://www.blogger.com/atom/ns#" term="ip"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="turnkey"/><category scheme="http://www.blogger.com/atom/ns#" term="virtual"/><category scheme="http://www.blogger.com/atom/ns#" term="VMWare"/><title type='text'></title><content type='html'>&lt;h1 style=&quot;text-align: center;&quot;&gt;How to connect to Turnkey Linux application hosted in a VirtualBox virtual machine&lt;/h1&gt;&lt;div&gt;If the IP address of the VirtualBox virtual machine is something like 10.0.2.15, the virtual machine networking mode is probably set to NAT (network address translation).&lt;br /&gt;&lt;br /&gt;That means the host machine is acting as a router for internet traffic to that virtual machine and you won&#39;t be able to connect it.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;What you need to do is set the virtual machine networking mode to &#39;bridged&#39;, which means the host machine and the virtual machine will be able to see each other on a virtual network connecting them together and to the internet.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The snag here is that the network drivers for VirtualBox aren&#39;t installed by default because TurnKey Linux is owned by VMWare and the virtual machines are built for VMWare platforms, so you need to install the VirtualBox guest additions.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here&#39;s how to do that for the Debian Linux distribution:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;b&gt;Update Package Indexes:&lt;/b&gt;&lt;br /&gt;sudo apt update&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;b&gt;Upgrade Installed Packages:&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;sudo apt upgrade&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Install Required Packages:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;sudo apt install build-essential dkms linux-headers-$(uname -r)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Insert Guest Additions CD Image:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;In the VirtualBox menu, go to Devices &amp;gt; Insert Guest Additions CD Image.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Mount the CD Image:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;sudo mkdir -p /mnt/cdrom&lt;/div&gt;&lt;div&gt;sudo mount /dev/cdrom /mnt/cdrom&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Run the Guest Additions Installer:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;cd /mnt/cdrom&lt;/div&gt;&lt;div&gt;sudo ./VBoxLinuxAdditions.run&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Shutdown the System:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;sudo shutdown now&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Configure the Virtual Machine to use &quot;Bridged&quot; networking:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;The physical network adapter of the computer should be shown as the network adapter name.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Start the virtual machine:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;The IP address should now be something similar to 192.168.1.78&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Navigate to the new IP address via the browser of your host machine:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Lemon squeezy.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thanksalotman.blogspot.com/feeds/2118176325248845141/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5891293935093365308/2118176325248845141' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5891293935093365308/posts/default/2118176325248845141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5891293935093365308/posts/default/2118176325248845141'/><link rel='alternate' type='text/html' href='http://thanksalotman.blogspot.com/2025/02/how-to-connect-to-turnkey-linux.html' title=''/><author><name>MrTwist</name><uri>http://www.blogger.com/profile/05059283899115065086</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgufch6gY1V3XaRQB96XbLYYqFzXjjf_U4HnmicaNkQNxcU0xzyYIH9be4_hX8lo_JkZqW3m_OZNmixGAQ8zZhUvz5nw7q8wPFVCnNzbhgeckgXW-YsuRaJHusIQZfm_oEPHbLD-oo7WaEUrsv04FFi56sWClKnw9wKfdxk0WGZldx/s220/54a38e78-7618-481d-872d-b1df2f0cf0ab.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5891293935093365308.post-2807643340507242144</id><published>2023-01-19T14:18:00.004-08:00</published><updated>2023-01-19T14:20:20.697-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AutoIt"/><category scheme="http://www.blogger.com/atom/ns#" term="command line"/><category scheme="http://www.blogger.com/atom/ns#" term="compile"/><category scheme="http://www.blogger.com/atom/ns#" term="ConsoleWrite"/><category scheme="http://www.blogger.com/atom/ns#" term="exe"/><category scheme="http://www.blogger.com/atom/ns#" term="how to"/><category scheme="http://www.blogger.com/atom/ns#" term="output"/><category scheme="http://www.blogger.com/atom/ns#" term="scite"/><title type='text'>How to get AutoIt ConsoleWrite to output when running as an application .exe </title><content type='html'>&lt;p&gt;&amp;nbsp;An AutoIt script the using ConsoleWrite() function will output as expected to the Scite console when run as a script, but if you use the compile tool in the &quot;Extras&quot; folder, the .exe doesn&#39;t output information when run from Windows command prompt.&lt;/p&gt;&lt;p&gt;The solution is to:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ol style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Execute the &quot;Compile&quot; option from the Tools menu (or CTRL + F7)&lt;/li&gt;&lt;li&gt;Select the &quot;Create CUI instead of GUI EXE&quot; option in the Output arch section.&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;Using that workflow will compile the script into an .exe that will output to a command line window without having to modify the script to use complicated Windows system calls to get your progress/information/error/whatever messages displayed.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span&gt;&amp;nbsp;The Tools Menu Option&lt;/span&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/AVvXsEjjJpMoesB3Q6Kygvgf_Qr5GCQpngVMNvv4nJyCh9XExB07IiyM6dveJEX5bLuX6s_DX-oLTJgGbjPh-2q6rV-DvUW_gljk0x8uquJlMEHJWyd3P0N7vxPlK8gdizoc3TrcuQcAyGFroCDScfQCGWb_4Zk0E5JoTb42iMhsPrZufpg5SZ_C4kFZboAM/s799/Compile%20Tool%20Option.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;496&quot; data-original-width=&quot;799&quot; height=&quot;199&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjJpMoesB3Q6Kygvgf_Qr5GCQpngVMNvv4nJyCh9XExB07IiyM6dveJEX5bLuX6s_DX-oLTJgGbjPh-2q6rV-DvUW_gljk0x8uquJlMEHJWyd3P0N7vxPlK8gdizoc3TrcuQcAyGFroCDScfQCGWb_4Zk0E5JoTb42iMhsPrZufpg5SZ_C4kFZboAM/s320/Compile%20Tool%20Option.png&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: center;&quot;&gt;The Compiler Option&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/AVvXsEgaCZvRjXydQAb2alQ_LOs-p6eN7LJY0dyGF4YdaFNJbFYaLVRee-t2Afuz8s52GTXG2hkS9Z8hKsxI6x_3rUmuuVIBQA234PlyG4y7kRKnq9-LDoRws3ZZ9NnoJIi_igop1VAex4psa_t9qLmh5Dpkb-Xq0bRLJcY5Xr4lLg_dmZ94ih94BShW19Xv/s1057/Compile%20Option%20To%20Enable.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;833&quot; data-original-width=&quot;1057&quot; height=&quot;252&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaCZvRjXydQAb2alQ_LOs-p6eN7LJY0dyGF4YdaFNJbFYaLVRee-t2Afuz8s52GTXG2hkS9Z8hKsxI6x_3rUmuuVIBQA234PlyG4y7kRKnq9-LDoRws3ZZ9NnoJIi_igop1VAex4psa_t9qLmh5Dpkb-Xq0bRLJcY5Xr4lLg_dmZ94ih94BShW19Xv/s320/Compile%20Option%20To%20Enable.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;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://thanksalotman.blogspot.com/feeds/2807643340507242144/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5891293935093365308/2807643340507242144' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5891293935093365308/posts/default/2807643340507242144'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5891293935093365308/posts/default/2807643340507242144'/><link rel='alternate' type='text/html' href='http://thanksalotman.blogspot.com/2023/01/how-to-get-autoit-consolewrite-to.html' title='How to get AutoIt ConsoleWrite to output when running as an application .exe '/><author><name>MrTwist</name><uri>http://www.blogger.com/profile/05059283899115065086</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgufch6gY1V3XaRQB96XbLYYqFzXjjf_U4HnmicaNkQNxcU0xzyYIH9be4_hX8lo_JkZqW3m_OZNmixGAQ8zZhUvz5nw7q8wPFVCnNzbhgeckgXW-YsuRaJHusIQZfm_oEPHbLD-oo7WaEUrsv04FFi56sWClKnw9wKfdxk0WGZldx/s220/54a38e78-7618-481d-872d-b1df2f0cf0ab.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjJpMoesB3Q6Kygvgf_Qr5GCQpngVMNvv4nJyCh9XExB07IiyM6dveJEX5bLuX6s_DX-oLTJgGbjPh-2q6rV-DvUW_gljk0x8uquJlMEHJWyd3P0N7vxPlK8gdizoc3TrcuQcAyGFroCDScfQCGWb_4Zk0E5JoTb42iMhsPrZufpg5SZ_C4kFZboAM/s72-c/Compile%20Tool%20Option.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5891293935093365308.post-3691915468458370514</id><published>2022-12-01T22:19:00.004-08:00</published><updated>2023-01-19T13:52:36.996-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="cassandra"/><category scheme="http://www.blogger.com/atom/ns#" term="database"/><category scheme="http://www.blogger.com/atom/ns#" term="join"/><category scheme="http://www.blogger.com/atom/ns#" term="nosql"/><category scheme="http://www.blogger.com/atom/ns#" term="relational"/><category scheme="http://www.blogger.com/atom/ns#" term="scylla"/><category scheme="http://www.blogger.com/atom/ns#" term="sql"/><category scheme="http://www.blogger.com/atom/ns#" term="table"/><title type='text'>Scylla Table Join</title><content type='html'>&lt;h1 style=&quot;text-align: left;&quot;&gt;&amp;nbsp;Scylla Table Join&lt;/h1&gt;&lt;div&gt;Scylla can&#39;t join tables.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It&#39;s a NOSQL database which is designed for key-value lookups in a single table. It&#39;s not flexible, but Scylla is very, very fast if you want to find a particular piece of information.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Do you have an order number and you want to find items in that order? Scylla excels at that.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;That&#39;s different from a relational database which usually has multiple tables&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;The main difference between NoSQL and relational databases is the way they store and organize data. Relational databases store data in structured tables with rows and columns and use a structured query language (SQL) for managing and accessing the data. In contrast, NoSQL databases are designed to store and manage data in a more flexible and scalable way. NoSQL databases typically use a non-relational data model, such as key-value pairs, document-based, or graph-based data, and often use a more flexible and scalable query language.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There are several other differences between NoSQL and relational databases. For example, NoSQL databases are often more scalable and can handle larger volumes of data but may not offer the same level of consistency and transactional support as relational databases. Relational databases are typically more established and mature but may not be as well-suited for modern web-scale applications that require high performance and flexibility. Ultimately, the choice of which type of database to use will depend on the specific needs and requirements of the application.&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thanksalotman.blogspot.com/feeds/3691915468458370514/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5891293935093365308/3691915468458370514' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5891293935093365308/posts/default/3691915468458370514'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5891293935093365308/posts/default/3691915468458370514'/><link rel='alternate' type='text/html' href='http://thanksalotman.blogspot.com/2022/12/scylla-table-join.html' title='Scylla Table Join'/><author><name>MrTwist</name><uri>http://www.blogger.com/profile/05059283899115065086</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgufch6gY1V3XaRQB96XbLYYqFzXjjf_U4HnmicaNkQNxcU0xzyYIH9be4_hX8lo_JkZqW3m_OZNmixGAQ8zZhUvz5nw7q8wPFVCnNzbhgeckgXW-YsuRaJHusIQZfm_oEPHbLD-oo7WaEUrsv04FFi56sWClKnw9wKfdxk0WGZldx/s220/54a38e78-7618-481d-872d-b1df2f0cf0ab.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5891293935093365308.post-6475375034981980166</id><published>2018-12-15T12:39:00.006-08:00</published><updated>2023-01-19T14:21:58.813-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="bootstrapper"/><category scheme="http://www.blogger.com/atom/ns#" term="planetside"/><category scheme="http://www.blogger.com/atom/ns#" term="service"/><category scheme="http://www.blogger.com/atom/ns#" term="steam"/><category scheme="http://www.blogger.com/atom/ns#" term="stutter"/><title type='text'>Planetside 2 Stuttering - Steam Client Bootstrapper Service Disk Usage</title><content type='html'>I bought a new&amp;nbsp; beast of a video card and when playing&amp;nbsp;&lt;a href=&quot;https://www.planetside2.com/&quot; target=&quot;_blank&quot;&gt;Planetside 2&lt;/a&gt;&amp;nbsp;(it&#39;s free to play!) it became unplayable at certain points in game, particularly right before engaging enemy due to framerate drop. It seemed like right before I would encounter enemy, the game was loading files and it would overburden the system.&lt;br /&gt;
&lt;br /&gt;
I also happened to have a task manager window open, so when I quit the game in frustration, I saw the Steam Client Bootstrapper Service was transferring 30 to 40 MBs of data almost constantly.&lt;br /&gt;
&lt;br /&gt;
I dug around and found that there seems to be something confusing the Steam background downloader and making it keep accessing the disk and the solution is to clear the Steam cache.&lt;br /&gt;
&lt;br /&gt;
To do this in Windows, press Win-R (or type &quot;run&quot;) and run steam://flushconfig&lt;br /&gt;
&lt;br /&gt;
You may need to completely exit Steam first. This will not remove any games or save games, just clean the download cache. You&#39;ll need to log into Steam again.&lt;br /&gt;
&lt;br /&gt;
This worked for me and Planetside 2 is running smoothly again.</content><link rel='replies' type='application/atom+xml' href='http://thanksalotman.blogspot.com/feeds/6475375034981980166/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5891293935093365308/6475375034981980166' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5891293935093365308/posts/default/6475375034981980166'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5891293935093365308/posts/default/6475375034981980166'/><link rel='alternate' type='text/html' href='http://thanksalotman.blogspot.com/2018/12/planetside-2-stuttering-steam-client.html' title='Planetside 2 Stuttering - Steam Client Bootstrapper Service Disk Usage'/><author><name>MrTwist</name><uri>http://www.blogger.com/profile/05059283899115065086</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgufch6gY1V3XaRQB96XbLYYqFzXjjf_U4HnmicaNkQNxcU0xzyYIH9be4_hX8lo_JkZqW3m_OZNmixGAQ8zZhUvz5nw7q8wPFVCnNzbhgeckgXW-YsuRaJHusIQZfm_oEPHbLD-oo7WaEUrsv04FFi56sWClKnw9wKfdxk0WGZldx/s220/54a38e78-7618-481d-872d-b1df2f0cf0ab.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5891293935093365308.post-4087490571588891046</id><published>2018-01-21T18:40:00.001-08:00</published><updated>2018-01-22T19:31:08.174-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="5"/><category scheme="http://www.blogger.com/atom/ns#" term="gear"/><category scheme="http://www.blogger.com/atom/ns#" term="note"/><category scheme="http://www.blogger.com/atom/ns#" term="rom"/><category scheme="http://www.blogger.com/atom/ns#" term="root"/><category scheme="http://www.blogger.com/atom/ns#" term="samsung"/><category scheme="http://www.blogger.com/atom/ns#" term="sm-920x"/><category scheme="http://www.blogger.com/atom/ns#" term="vr"/><title type='text'>How to root a Samsung Note 5 SM-N920X and flash a Gear VR compatible ROM</title><content type='html'>&lt;i&gt;Attention! The &quot;one click root&quot; applications out there will hijack your phone and load it with adware, malware and worse. KingoRoot, KingRoot, and the rest should be avoided.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I bought a Samsung Note 5 SM-920X Live Demo Unit (it&#39;s the display model you see at stores) and found this ROM which works with Gear VR.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://thanksalotman.blogspot.com/2018/01/how-to-disable-retail-mode-on-samsung.html&quot; target=&quot;_blank&quot;&gt;Here&#39;s my post on turning off &quot;Retail Mode&quot;, if you need it&lt;/a&gt;.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The installation steps will flash a rooted kernel and the TWRP recovery bootloader.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The ROM is Dr. Ketan&#39;s Android 7 which has a lot of useful features.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
You&#39;ll have lots of space to store VR content on your Note 5.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Enjoy!&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;a href=&quot;https://forum.xda-developers.com/showpost.php?p=74653947&amp;amp;postcount=13622&quot;&gt;https://forum.xda-developers.com/showpost.php?p=74653947&amp;amp;postcount=13622&lt;/a&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;
</content><link rel='replies' type='application/atom+xml' href='http://thanksalotman.blogspot.com/feeds/4087490571588891046/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5891293935093365308/4087490571588891046' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5891293935093365308/posts/default/4087490571588891046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5891293935093365308/posts/default/4087490571588891046'/><link rel='alternate' type='text/html' href='http://thanksalotman.blogspot.com/2018/01/how-to-root-samsung-note-5-sm-n920x-and.html' title='How to root a Samsung Note 5 SM-N920X and flash a Gear VR compatible ROM'/><author><name>MrTwist</name><uri>http://www.blogger.com/profile/05059283899115065086</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgufch6gY1V3XaRQB96XbLYYqFzXjjf_U4HnmicaNkQNxcU0xzyYIH9be4_hX8lo_JkZqW3m_OZNmixGAQ8zZhUvz5nw7q8wPFVCnNzbhgeckgXW-YsuRaJHusIQZfm_oEPHbLD-oo7WaEUrsv04FFi56sWClKnw9wKfdxk0WGZldx/s220/54a38e78-7618-481d-872d-b1df2f0cf0ab.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5891293935093365308.post-5786155985586707782</id><published>2018-01-18T19:51:00.002-08:00</published><updated>2018-01-22T18:13:56.371-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="5"/><category scheme="http://www.blogger.com/atom/ns#" term="demo"/><category scheme="http://www.blogger.com/atom/ns#" term="demonstration"/><category scheme="http://www.blogger.com/atom/ns#" term="galaxy"/><category scheme="http://www.blogger.com/atom/ns#" term="ldu"/><category scheme="http://www.blogger.com/atom/ns#" term="live"/><category scheme="http://www.blogger.com/atom/ns#" term="mode"/><category scheme="http://www.blogger.com/atom/ns#" term="note"/><category scheme="http://www.blogger.com/atom/ns#" term="retail"/><category scheme="http://www.blogger.com/atom/ns#" term="samsung"/><category scheme="http://www.blogger.com/atom/ns#" term="sm-n920x"/><category scheme="http://www.blogger.com/atom/ns#" term="unit"/><title type='text'>How to Disable Retail Mode on a Samsung Galaxy Note 5 SM-N920X Live Demo Unit</title><content type='html'>&lt;h3&gt;
Device Limitations&lt;/h3&gt;
First of all, the Samsung Note 5 SM-N920X doesn&#39;t have a cellular modem so it is unable to place telephone calls or send text messages. It&#39;s intended as a store demonstration unit and is essentially a tablet with wifi.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Unlock&lt;/h3&gt;
The most common method to disable &quot;Retail Mode&quot; on a Samsung Note 5 is as follows:&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Go to the app drawer and open an app called Samsung Retail.&lt;/li&gt;
&lt;li&gt;Tap the triple dots and then tap &quot;Configuration Settings&quot; or &quot;Store Settings&quot; and enter the password 5444 to unlock it.&lt;/li&gt;
&lt;li&gt;Then uncheck “Disable the factory reset” and enter the following password M729Q16K8546.&lt;/li&gt;
&lt;li&gt;Turn your Samsung Galaxy S5 off and &lt;a href=&quot;https://www.digitaltrends.com/mobile/use-recovery-mode-android/&quot; target=&quot;_blank&quot;&gt;boot into Recovery mode&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Go to Wipe data &amp;amp; factory reset and press OK.&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
Apparently, Walmart and Sam&#39;s Club have a unique password to disable Retail Mode.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The password is &quot;&lt;b&gt;walton&lt;/b&gt;&quot; in lowercase.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
I&#39;ve also read &quot;rollback&quot; has been used, in case you need another option.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Best Buy uses &quot;&lt;b&gt;blue&lt;/b&gt;&quot; as the password.&lt;br /&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;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://thanksalotman.blogspot.com/feeds/5786155985586707782/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5891293935093365308/5786155985586707782' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5891293935093365308/posts/default/5786155985586707782'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5891293935093365308/posts/default/5786155985586707782'/><link rel='alternate' type='text/html' href='http://thanksalotman.blogspot.com/2018/01/how-to-disable-retail-mode-on-samsung.html' title='How to Disable Retail Mode on a Samsung Galaxy Note 5 SM-N920X Live Demo Unit'/><author><name>MrTwist</name><uri>http://www.blogger.com/profile/05059283899115065086</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgufch6gY1V3XaRQB96XbLYYqFzXjjf_U4HnmicaNkQNxcU0xzyYIH9be4_hX8lo_JkZqW3m_OZNmixGAQ8zZhUvz5nw7q8wPFVCnNzbhgeckgXW-YsuRaJHusIQZfm_oEPHbLD-oo7WaEUrsv04FFi56sWClKnw9wKfdxk0WGZldx/s220/54a38e78-7618-481d-872d-b1df2f0cf0ab.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5891293935093365308.post-707261306351161840</id><published>2014-11-13T07:05:00.001-08:00</published><updated>2014-11-13T20:18:51.630-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="4.2.1"/><category scheme="http://www.blogger.com/atom/ns#" term="5020T"/><category scheme="http://www.blogger.com/atom/ns#" term="adb"/><category scheme="http://www.blogger.com/atom/ns#" term="alcatel"/><category scheme="http://www.blogger.com/atom/ns#" term="android"/><category scheme="http://www.blogger.com/atom/ns#" term="cydia impactor"/><category scheme="http://www.blogger.com/atom/ns#" term="evolve"/><category scheme="http://www.blogger.com/atom/ns#" term="one click"/><category scheme="http://www.blogger.com/atom/ns#" term="one touch"/><category scheme="http://www.blogger.com/atom/ns#" term="root"/><category scheme="http://www.blogger.com/atom/ns#" term="shell"/><category scheme="http://www.blogger.com/atom/ns#" term="tmobile"/><title type='text'>How to root T-Mobile Alcatel One Touch  Evolve 5020T</title><content type='html'>The Alcatel One Touch &amp;nbsp;Evolve 5020T from T-Mobile can be rooted using Cydia Impactor from the guys of iOS jailbreak fame. Version for Mac, Windows, and Linux are available.&lt;br /&gt;
&lt;a href=&quot;http://www.cydiaimpactor.com/&quot; target=&quot;_blank&quot;&gt;You can get Cydia Impactor here.&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://mega.co.nz/#!NdRHVLCR!qnMJ7JAkvj6yQp7gb-qI6cbFqS9iC9laLNBEAXdbgXw&quot; target=&quot;_blank&quot;&gt;Backup copy for Windows: Cydia Impactor 0.9.14&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
The tool uses a one-click method. It could not be easier!&lt;br /&gt;
&lt;br /&gt;
Here&#39;s how to root an Alcatel Evolve 5020T:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Times, Times New Roman, serif;&quot;&gt;Download Cydia Impactor to your desktop – Windows | Mac | Linux 32-bit | Linux 64-bit&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Times, Times New Roman, serif;&quot;&gt;Extract the package to your desktop.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Times, Times New Roman, serif;&quot;&gt;Run the Cydia Impactor tool.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Times, Times New Roman, serif;&quot;&gt;On your Android device, enable USB Debugging from Settings &amp;gt; Developer Options&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Times, Times New Roman, serif;&quot;&gt;Connect the Alcatel Evolve 5020T to a USB port on your computer.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Times, Times New Roman, serif;&quot;&gt;On Windows, you would need to have the USB &amp;nbsp;drivers for your device installed. If not, you can also use the Driver Scan function in Cydia Impactor to automatically construct and install a driver for your device.&lt;/span&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://cdn1.dottech.org/wp-content/uploads/2013/12/Driver-Scan-Cydia-Impactor.jpg?68a68a&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;span style=&quot;font-family: Times, Times New Roman, serif;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://cdn1.dottech.org/wp-content/uploads/2013/12/Driver-Scan-Cydia-Impactor.jpg?68a68a&quot; height=&quot;63&quot; width=&quot;320&quot; /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Times, Times New Roman, serif;&quot;&gt;After making sure that # drop SuperSU su to /system/xbin/su is selected in the drop down menu, click the &#39;Start&#39; button.&lt;/span&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://cdn1.dottech.org/wp-content/uploads/2013/12/cydia-impactor.jpg?68a68a&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;span style=&quot;font-family: Times, Times New Roman, serif;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://cdn1.dottech.org/wp-content/uploads/2013/12/cydia-impactor.jpg?68a68a&quot; height=&quot;64&quot; width=&quot;320&quot; /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Times, Times New Roman, serif;&quot;&gt;Wait for the tool to do its thing.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Times, Times New Roman, serif;&quot;&gt;Once done, download and install &lt;a href=&quot;https://play.google.com/store/apps/details?id=com.koushikdutta.superuser&amp;amp;hl=en&quot; target=&quot;_blank&quot;&gt;Superuser&lt;/a&gt;&amp;nbsp;from the Google Play Store.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: Times, Times New Roman, serif;&quot;&gt;Enjoy Root access on your Android device.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
Another helpful utility to install is&amp;nbsp;&lt;a href=&quot;https://play.google.com/store/apps/details?id=com.keramidas.TitaniumBackup&amp;amp;hl=en&quot; target=&quot;_blank&quot;&gt;Titanium Backup&lt;/a&gt; which allows you archive all the applications and data on the Alcatel Evolve 5020T. After the backup is complete, you can start to delete the T-mobile bloatware. &lt;br /&gt;
&lt;br /&gt;
Handily, Cydia Impactor also includes an ADB (Android Debug) shell that you can use to list all the packages on the phone. You can also backup the packages as well using the ADB shell:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHyPSRa6J0ShFaWQYqRlE-PBwp-4kQLmXwIrg_Xk3k1Ksp96AvLq3oaj0MYHiN3JM9Z8I9etiPow0oNj6lNi7R2h5H4h_M7fP89Kiug1qclIxRgA-6XqYe7iaSn6ECnEHxPzG7gAABdW8/s1600/ADB+Shell.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;98&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHyPSRa6J0ShFaWQYqRlE-PBwp-4kQLmXwIrg_Xk3k1Ksp96AvLq3oaj0MYHiN3JM9Z8I9etiPow0oNj6lNi7R2h5H4h_M7fP89Kiug1qclIxRgA-6XqYe7iaSn6ECnEHxPzG7gAABdW8/s320/ADB+Shell.png&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;
Here&#39;s how to use the shell:&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;h2 style=&quot;background: none rgb(255, 255, 255); border-bottom-color: rgb(170, 170, 170); border-bottom-style: solid; border-bottom-width: 1px; font-family: sans-serif; font-size: 19px; font-weight: normal; line-height: 19.2000007629395px; margin: 0px 0px 0.6em; overflow: hidden; padding-bottom: 0.17em; padding-top: 0.5em;&quot;&gt;
&lt;span class=&quot;mw-headline&quot; id=&quot;Backup_apks&quot;&gt;Backup apks&lt;/span&gt;&lt;/h2&gt;
&lt;div style=&quot;background-color: white; font-family: sans-serif; font-size: 13px; line-height: 19.2000007629395px; margin-bottom: 0.5em; margin-top: 0.4em;&quot;&gt;
You should back up any apks that you plan to remove. That way, you can easily re-install them if you change your mind. You have two main options:&lt;/div&gt;
&lt;ul style=&quot;background-color: white; font-family: sans-serif; font-size: 13px; line-height: 19.2000007629395px; list-style-image: url(data:image/png; margin: 0.3em 0px 0px 1.6em; padding: 0px;&quot;&gt;
&lt;li style=&quot;margin-bottom: 0.1em;&quot;&gt;Nandroid backup from the recovery console, or&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0.1em;&quot;&gt;Manual backup with&lt;/li&gt;
&lt;/ul&gt;
&lt;pre style=&quot;background-color: #f9f9f9; border: 1px solid rgb(221, 221, 221); font-family: monospace, Courier; font-size: 13px; line-height: 1.3em; padding: 1em; white-space: pre-wrap;&quot;&gt;&lt;code style=&quot;color: green; font-family: monospace, Courier;&quot;&gt;$ adb pull /system/app/ ~/Desktop/app/&lt;/code&gt;
&lt;/pre&gt;
&lt;h2 style=&quot;background: none rgb(255, 255, 255); border-bottom-color: rgb(170, 170, 170); border-bottom-style: solid; border-bottom-width: 1px; font-family: sans-serif; font-size: 19px; font-weight: normal; line-height: 19.2000007629395px; margin: 0px 0px 0.6em; overflow: hidden; padding-bottom: 0.17em; padding-top: 0.5em;&quot;&gt;
&lt;span class=&quot;mw-headline&quot; id=&quot;How_to_find_applications&quot;&gt;How to find applications&lt;/span&gt;&lt;/h2&gt;
&lt;div style=&quot;background-color: white; font-family: sans-serif; font-size: 13px; line-height: 19.2000007629395px; margin-bottom: 0.5em; margin-top: 0.4em;&quot;&gt;
To find what apps are installed on the device, you will need to run the following, either in adb shell, or the device&#39;s term:&lt;/div&gt;
&lt;pre style=&quot;background-color: #f9f9f9; border: 1px solid rgb(221, 221, 221); font-family: monospace, Courier; font-size: 13px; line-height: 1.3em; padding: 1em; white-space: pre-wrap;&quot;&gt;&lt;code style=&quot;color: green; font-family: monospace, Courier;&quot;&gt;$ ls /system/app&lt;/code&gt;
&lt;/pre&gt;
&lt;div style=&quot;background-color: white; font-family: sans-serif; font-size: 13px; line-height: 19.2000007629395px; margin-bottom: 0.5em; margin-top: 0.4em;&quot;&gt;
or&lt;/div&gt;
&lt;pre style=&quot;background-color: #f9f9f9; border: 1px solid rgb(221, 221, 221); font-family: monospace, Courier; font-size: 13px; line-height: 1.3em; padding: 1em; white-space: pre-wrap;&quot;&gt;&lt;code style=&quot;color: green; font-family: monospace, Courier;&quot;&gt;$ ls /data/app&lt;/code&gt;
&lt;/pre&gt;
&lt;div style=&quot;background-color: white; font-family: sans-serif; font-size: 13px; line-height: 19.2000007629395px; margin-bottom: 0.5em; margin-top: 0.4em;&quot;&gt;
You can also list installed packages using the package manager, either in Terminal Emulator or via adb shell:&lt;/div&gt;
&lt;pre style=&quot;background-color: #f9f9f9; border: 1px solid rgb(221, 221, 221); font-family: monospace, Courier; font-size: 13px; line-height: 1.3em; padding: 1em; white-space: pre-wrap;&quot;&gt;&lt;code style=&quot;color: green; font-family: monospace, Courier;&quot;&gt;$ pm list packages&lt;/code&gt;
&lt;/pre&gt;
&lt;div style=&quot;background-color: white; font-family: sans-serif; font-size: 13px; line-height: 19.2000007629395px; margin-bottom: 0.5em; margin-top: 0.4em;&quot;&gt;
To see a list of installed packages along with their associated files:&lt;/div&gt;
&lt;pre style=&quot;background-color: #f9f9f9; border: 1px solid rgb(221, 221, 221); font-family: monospace, Courier; font-size: 13px; line-height: 1.3em; padding: 1em; white-space: pre-wrap;&quot;&gt;&lt;code style=&quot;color: green; font-family: monospace, Courier;&quot;&gt;$ pm list packages -f&lt;/code&gt;
&lt;/pre&gt;
&lt;div style=&quot;background-color: white; font-family: sans-serif; font-size: 13px; line-height: 19.2000007629395px; margin-bottom: 0.5em; margin-top: 0.4em;&quot;&gt;
At a lower level, you can pull the packages.xml and the packages.list files using adb and examine them directly to determine what is installed and what the related .apk file is called and where it is stored.&amp;nbsp;&lt;b&gt;packages.xml&lt;/b&gt;&amp;nbsp;will show you the package name and the .apk file installation path and name. In&amp;nbsp;&lt;b&gt;packages.list&lt;/b&gt;&amp;nbsp;you can look up the package name and locate the data path. Both of these files will tell you a great deal more, these are the things that pertain to the present article.&lt;/div&gt;
&lt;pre style=&quot;background-color: #f9f9f9; border: 1px solid rgb(221, 221, 221); font-family: monospace, Courier; font-size: 13px; line-height: 1.3em; padding: 1em; white-space: pre-wrap;&quot;&gt;&lt;code style=&quot;color: green; font-family: monospace, Courier;&quot;&gt;$ adb pull /data/system/packages.xml
$ adb pull /data/system/packages.list&lt;/code&gt;
&lt;/pre&gt;
&lt;div style=&quot;background-color: white; font-family: sans-serif; font-size: 13px; line-height: 19.2000007629395px; margin-bottom: 0.5em; margin-top: 0.4em;&quot;&gt;
Generally, any apps you install from the market or otherwise manually install will be in&amp;nbsp;&lt;code style=&quot;background-color: #f9f9f9; color: green; font-family: monospace, Courier;&quot;&gt;/data/app&lt;/code&gt;, while any apps that come pre-installed will be in&amp;nbsp;&lt;code style=&quot;background-color: #f9f9f9; color: green; font-family: monospace, Courier;&quot;&gt;/system/app&lt;/code&gt;.&lt;/div&gt;
&lt;h2 style=&quot;background: none rgb(255, 255, 255); border-bottom-color: rgb(170, 170, 170); border-bottom-style: solid; border-bottom-width: 1px; font-family: sans-serif; font-size: 19px; font-weight: normal; line-height: 19.2000007629395px; margin: 0px 0px 0.6em; overflow: hidden; padding-bottom: 0.17em; padding-top: 0.5em;&quot;&gt;
&lt;span class=&quot;mw-headline&quot; id=&quot;How_to_remove_applications&quot;&gt;How to remove applications&lt;/span&gt;&lt;/h2&gt;
&lt;div style=&quot;background-color: white; font-family: sans-serif; font-size: 13px; line-height: 19.2000007629395px; margin-bottom: 0.5em; margin-top: 0.4em;&quot;&gt;
&lt;b&gt;Remember to watch the case of all files, directories, apk names, and package names!&lt;/b&gt;&lt;/div&gt;
&lt;dl style=&quot;background-color: white; font-family: sans-serif; font-size: 13px; line-height: 19.2000007629395px; margin-bottom: 0.5em; margin-top: 0.2em;&quot;&gt;&lt;dd style=&quot;line-height: 1.5em; margin-bottom: 0.1em; margin-left: 1.6em; margin-right: 0px;&quot;&gt;Case matters. Example.apk and example.apk are two different things.&lt;/dd&gt;&lt;/dl&gt;
&lt;div style=&quot;background-color: white; font-family: sans-serif; font-size: 13px; line-height: 19.2000007629395px; margin-bottom: 0.5em; margin-top: 0.4em;&quot;&gt;
To remove applications you can use aps on the market&amp;nbsp;&lt;b&gt;Titanium Backup, ROM Toolbox Pro, ES File Explorer&lt;/b&gt;&amp;nbsp;or do it through ADB First of all you restart adbd as root&lt;/div&gt;
&lt;pre style=&quot;background-color: #f9f9f9; border: 1px solid rgb(221, 221, 221); font-family: monospace, Courier; font-size: 13px; line-height: 1.3em; padding: 1em; white-space: pre-wrap;&quot;&gt;&lt;code style=&quot;color: green; font-family: monospace, Courier;&quot;&gt;$ adb root&lt;/code&gt;
&lt;/pre&gt;
&lt;h3 style=&quot;background: none rgb(255, 255, 255); border-bottom-style: none; font-family: sans-serif; font-size: 17px; line-height: 19.2000007629395px; margin: 0px 0px 0.3em; overflow: hidden; padding-bottom: 0.17em; padding-top: 0.5em;&quot;&gt;
&lt;span class=&quot;mw-headline&quot; id=&quot;ADB&quot;&gt;ADB&lt;/span&gt;&lt;/h3&gt;
&lt;table class=&quot;wikitable&quot; style=&quot;background-color: #f9f9f9; border-collapse: collapse; border: 1px solid rgb(170, 170, 170); color: black; font-family: sans-serif; font-size: 13px; line-height: 19.2000007629395px; margin: 1em 0px;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;th style=&quot;background-color: #f2f2f2; border: 1px solid rgb(170, 170, 170); font-size: 16px; padding: 0.2em; text-align: center; width: 500px;&quot;&gt;/system apps&lt;/th&gt;&lt;th style=&quot;background-color: #f2f2f2; border: 1px solid rgb(170, 170, 170); font-size: 16px; padding: 0.2em; text-align: center; width: 500px;&quot;&gt;/data apps&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;border: 1px solid rgb(170, 170, 170); padding: 0.2em;&quot;&gt;&lt;pre style=&quot;border: 1px solid rgb(221, 221, 221); font-family: monospace, Courier; line-height: 1.3em; padding: 1em; white-space: pre-wrap;&quot;&gt;&lt;code style=&quot;color: green; font-family: monospace, Courier;&quot;&gt;$ adb remount
$ adb shell rm -f /system/app/&lt;apk name=&quot;&quot;&gt;.apk&lt;/apk&gt;&lt;/code&gt;
&lt;/pre&gt;
&lt;/td&gt;&lt;td style=&quot;border: 1px solid rgb(170, 170, 170); padding: 0.2em;&quot;&gt;&lt;pre style=&quot;border: 1px solid rgb(221, 221, 221); font-family: monospace, Courier; line-height: 1.3em; padding: 1em; white-space: pre-wrap;&quot;&gt;&lt;code style=&quot;color: green; font-family: monospace, Courier;&quot;&gt;$ adb uninstall &lt;package name=&quot;&quot;&gt;
&lt;/package&gt;&lt;/code&gt;
&lt;/pre&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div style=&quot;background-color: white; font-family: sans-serif; font-size: 13px; line-height: 19.2000007629395px; margin-bottom: 0.5em; margin-top: 0.4em;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3 style=&quot;background: none rgb(255, 255, 255); border-bottom-style: none; font-family: sans-serif; font-size: 17px; line-height: 19.2000007629395px; margin: 0px 0px 0.3em; overflow: hidden; padding-bottom: 0.17em; padding-top: 0.5em;&quot;&gt;
&lt;span class=&quot;mw-headline&quot; id=&quot;Term_.28on_device.29&quot;&gt;Term (on device)&lt;/span&gt;&lt;/h3&gt;
&lt;table class=&quot;wikitable&quot; style=&quot;background-color: #f9f9f9; border-collapse: collapse; border: 1px solid rgb(170, 170, 170); color: black; font-family: sans-serif; font-size: 13px; line-height: 19.2000007629395px; margin: 1em 0px;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;th style=&quot;background-color: #f2f2f2; border: 1px solid rgb(170, 170, 170); font-size: 16px; padding: 0.2em; text-align: center; width: 500px;&quot;&gt;/system apps&lt;/th&gt;&lt;th style=&quot;background-color: #f2f2f2; border: 1px solid rgb(170, 170, 170); font-size: 16px; padding: 0.2em; text-align: center; width: 500px;&quot;&gt;/data apps&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;border: 1px solid rgb(170, 170, 170); padding: 0.2em;&quot;&gt;&lt;pre style=&quot;border: 1px solid rgb(221, 221, 221); font-family: monospace, Courier; line-height: 1.3em; padding: 1em; white-space: pre-wrap;&quot;&gt;&lt;code style=&quot;color: green; font-family: monospace, Courier;&quot;&gt;$ su
$ mount -o rw,remount /system
$ rm -f /system/app/&lt;apk name=&quot;&quot;&gt;.apk
&lt;/apk&gt;&lt;/code&gt;
&lt;/pre&gt;
&lt;/td&gt;&lt;td style=&quot;border: 1px solid rgb(170, 170, 170); padding: 0.2em;&quot;&gt;&lt;pre style=&quot;border: 1px solid rgb(221, 221, 221); font-family: monospace, Courier; line-height: 1.3em; padding: 1em; white-space: pre-wrap;&quot;&gt;&lt;code style=&quot;color: green; font-family: monospace, Courier;&quot;&gt;$ su
$ mount -o rw,remount /data
$ rm -f /data/app/&lt;apk name=&quot;&quot;&gt;.apk
$ pm uninstall &lt;package name=&quot;&quot;&gt;&lt;/package&gt;&lt;/apk&gt;&lt;/code&gt;
&lt;/pre&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;h2 style=&quot;background: none rgb(255, 255, 255); border-bottom-color: rgb(170, 170, 170); border-bottom-style: solid; border-bottom-width: 1px; font-family: sans-serif; font-size: 19px; font-weight: normal; line-height: 19.2000007629395px; margin: 0px 0px 0.6em; overflow: hidden; padding-bottom: 0.17em; padding-top: 0.5em;&quot;&gt;
&lt;span class=&quot;mw-headline&quot; id=&quot;How_to_reinstall_applications&quot;&gt;How to reinstall applications&lt;/span&gt;&lt;/h2&gt;
&lt;div style=&quot;background-color: white; font-family: sans-serif; font-size: 13px; line-height: 19.2000007629395px; margin-bottom: 0.5em; margin-top: 0.4em;&quot;&gt;
Change your mind? No problem! You have two options, depending on how you backed up your files:&lt;/div&gt;
&lt;ul style=&quot;background-color: white; font-family: sans-serif; font-size: 13px; line-height: 19.2000007629395px; list-style-image: url(data:image/png; margin: 0.3em 0px 0px 1.6em; padding: 0px;&quot;&gt;
&lt;li style=&quot;margin-bottom: 0.1em;&quot;&gt;Restore your Nandroid backup from the recovery console, or&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0.1em;&quot;&gt;Manually restore your app with&lt;/li&gt;
&lt;/ul&gt;
&lt;pre style=&quot;background-color: #f9f9f9; border: 1px solid rgb(221, 221, 221); font-family: monospace, Courier; font-size: 13px; line-height: 1.3em; padding: 1em; white-space: pre-wrap;&quot;&gt;&lt;code style=&quot;color: green; font-family: monospace, Courier;&quot;&gt;$ adb install ~/Desktop/app/&lt;apk name=&quot;&quot;&gt;.apk&lt;/apk&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://thanksalotman.blogspot.com/feeds/707261306351161840/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5891293935093365308/707261306351161840' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5891293935093365308/posts/default/707261306351161840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5891293935093365308/posts/default/707261306351161840'/><link rel='alternate' type='text/html' href='http://thanksalotman.blogspot.com/2014/11/how-to-root-t-mobile-alcatel-onetouch.html' title='How to root T-Mobile Alcatel One Touch  Evolve 5020T'/><author><name>MrTwist</name><uri>http://www.blogger.com/profile/05059283899115065086</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgufch6gY1V3XaRQB96XbLYYqFzXjjf_U4HnmicaNkQNxcU0xzyYIH9be4_hX8lo_JkZqW3m_OZNmixGAQ8zZhUvz5nw7q8wPFVCnNzbhgeckgXW-YsuRaJHusIQZfm_oEPHbLD-oo7WaEUrsv04FFi56sWClKnw9wKfdxk0WGZldx/s220/54a38e78-7618-481d-872d-b1df2f0cf0ab.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHyPSRa6J0ShFaWQYqRlE-PBwp-4kQLmXwIrg_Xk3k1Ksp96AvLq3oaj0MYHiN3JM9Z8I9etiPow0oNj6lNi7R2h5H4h_M7fP89Kiug1qclIxRgA-6XqYe7iaSn6ECnEHxPzG7gAABdW8/s72-c/ADB+Shell.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5891293935093365308.post-5772601541391257555</id><published>2014-11-09T14:00:00.002-08:00</published><updated>2014-11-09T14:00:23.564-08:00</updated><title type='text'>What are Python decorators?</title><content type='html'>&lt;div style=&quot;background-color: #fcfcfc; color: #161616; font-family: verdana, arial, helvetica, sans-serif; font-size: small; line-height: 1.4286em; margin-bottom: 0.7143em; padding: 0px;&quot;&gt;
First we need to get the concept of higher-order programming. This is when we treat functions as just more things to work with; we can write functions which take other functions as arguments, return new functions, etc.&lt;/div&gt;
&lt;div style=&quot;background-color: #fcfcfc; color: #161616; font-family: verdana, arial, helvetica, sans-serif; font-size: small; line-height: 1.4286em; margin-bottom: 0.7143em; padding: 0px;&quot;&gt;
So, for example, suppose we have this simple function:&lt;/div&gt;
&lt;pre style=&quot;background: rgb(239, 239, 255); border-bottom-left-radius: 5px; border-bottom-right-radius: 5px; border-top-left-radius: 5px; border-top-right-radius: 5px; border: 1px solid rgb(237, 237, 237); color: #161616; font-size: 1em; line-height: 1.3em; margin-bottom: 1.2857em; padding: 0px 0px 0px 1.5714em; position: relative;&quot;&gt;&lt;code style=&quot;background: rgb(255, 255, 255); border-left-color: rgb(237, 237, 237); border-left-style: solid; border-left-width: 1px; display: block; font-size: 1em; line-height: 1.4286em; margin-bottom: 0px; margin-left: 1.4286em; overflow: auto; padding-left: 10px;&quot;&gt;def add(x, y):
    return x + y
&lt;/code&gt;&lt;/pre&gt;
&lt;div style=&quot;background-color: #fcfcfc; color: #161616; font-family: verdana, arial, helvetica, sans-serif; font-size: small; line-height: 1.4286em; margin-bottom: 0.7143em; padding: 0px;&quot;&gt;
But let&#39;s say there&#39;s something in our codebase that often requires adding 2 -- and not any other number -- to something. So we could do something like:&lt;/div&gt;
&lt;pre style=&quot;background: rgb(239, 239, 255); border-bottom-left-radius: 5px; border-bottom-right-radius: 5px; border-top-left-radius: 5px; border-top-right-radius: 5px; border: 1px solid rgb(237, 237, 237); color: #161616; font-size: 1em; line-height: 1.3em; margin-bottom: 1.2857em; padding: 0px 0px 0px 1.5714em; position: relative;&quot;&gt;&lt;code style=&quot;background: rgb(255, 255, 255); border-left-color: rgb(237, 237, 237); border-left-style: solid; border-left-width: 1px; display: block; font-size: 1em; line-height: 1.4286em; margin-bottom: 0px; margin-left: 1.4286em; overflow: auto; padding-left: 10px;&quot;&gt;def add2(x):
    return add(x, 2)
&lt;/code&gt;&lt;/pre&gt;
&lt;div style=&quot;background-color: #fcfcfc; color: #161616; font-family: verdana, arial, helvetica, sans-serif; font-size: small; line-height: 1.4286em; margin-bottom: 0.7143em; padding: 0px;&quot;&gt;
This is a technique that&#39;s called&amp;nbsp;&lt;em&gt;currying&lt;/em&gt;&amp;nbsp;-- we&#39;re making a new function which has fewer arguments, because the arguments that have disappeared now have fixed values on every call (in the case of&amp;nbsp;&lt;code style=&quot;font-size: 1em; line-height: 1.4286em; margin-bottom: 0px;&quot;&gt;add2&lt;/code&gt;, one of the arguments of&lt;code style=&quot;font-size: 1em; line-height: 1.4286em; margin-bottom: 0px;&quot;&gt;add&lt;/code&gt;&amp;nbsp;is now fixed as 2, instead of potentially varying on every call).&lt;/div&gt;
&lt;div style=&quot;background-color: #fcfcfc; color: #161616; font-family: verdana, arial, helvetica, sans-serif; font-size: small; line-height: 1.4286em; margin-bottom: 0.7143em; padding: 0px;&quot;&gt;
We could even write a function which generates specific &quot;adder&quot; functions:&lt;/div&gt;
&lt;pre style=&quot;background: rgb(239, 239, 255); border-bottom-left-radius: 5px; border-bottom-right-radius: 5px; border-top-left-radius: 5px; border-top-right-radius: 5px; border: 1px solid rgb(237, 237, 237); color: #161616; font-size: 1em; line-height: 1.3em; margin-bottom: 1.2857em; padding: 0px 0px 0px 1.5714em; position: relative;&quot;&gt;&lt;code style=&quot;background: rgb(255, 255, 255); border-left-color: rgb(237, 237, 237); border-left-style: solid; border-left-width: 1px; display: block; font-size: 1em; line-height: 1.4286em; margin-bottom: 0px; margin-left: 1.4286em; overflow: auto; padding-left: 10px;&quot;&gt;def make_adder(number):
    def _adder(x):
        return add(x, number)
    return _adder
&lt;/code&gt;&lt;/pre&gt;
&lt;div style=&quot;background-color: #fcfcfc; color: #161616; font-family: verdana, arial, helvetica, sans-serif; font-size: small; line-height: 1.4286em; margin-bottom: 0.7143em; padding: 0px;&quot;&gt;
This works because the value of&amp;nbsp;&lt;code style=&quot;font-size: 1em; line-height: 1.4286em; margin-bottom: 0px;&quot;&gt;number&lt;/code&gt;&amp;nbsp;gets &quot;closed over&quot; (the usual term is that this relies on a&amp;nbsp;&lt;em&gt;closure&lt;/em&gt;) -- Python remembers that value, and so whenever we call the function returned by&amp;nbsp;&lt;code style=&quot;font-size: 1em; line-height: 1.4286em; margin-bottom: 0px;&quot;&gt;make_adder&lt;/code&gt;&amp;nbsp;we&#39;ll get the value of&amp;nbsp;&lt;code style=&quot;font-size: 1em; line-height: 1.4286em; margin-bottom: 0px;&quot;&gt;number&lt;/code&gt;&amp;nbsp;from that specific time we called&amp;nbsp;&lt;code style=&quot;font-size: 1em; line-height: 1.4286em; margin-bottom: 0px;&quot;&gt;make_adder&lt;/code&gt;. So, for example, we could do:&lt;/div&gt;
&lt;pre style=&quot;background: rgb(239, 239, 255); border-bottom-left-radius: 5px; border-bottom-right-radius: 5px; border-top-left-radius: 5px; border-top-right-radius: 5px; border: 1px solid rgb(237, 237, 237); color: #161616; font-size: 1em; line-height: 1.3em; margin-bottom: 1.2857em; padding: 0px 0px 0px 1.5714em; position: relative;&quot;&gt;&lt;code style=&quot;background: rgb(255, 255, 255); border-left-color: rgb(237, 237, 237); border-left-style: solid; border-left-width: 1px; display: block; font-size: 1em; line-height: 1.4286em; margin-bottom: 0px; margin-left: 1.4286em; overflow: auto; padding-left: 10px;&quot;&gt;add2 = make_adder(2)
add3 = make_adder(3)
&lt;/code&gt;&lt;/pre&gt;
&lt;div style=&quot;background-color: #fcfcfc; color: #161616; font-family: verdana, arial, helvetica, sans-serif; font-size: small; line-height: 1.4286em; margin-bottom: 0.7143em; padding: 0px;&quot;&gt;
and so on.&lt;/div&gt;
&lt;div style=&quot;background-color: #fcfcfc; color: #161616; font-family: verdana, arial, helvetica, sans-serif; font-size: small; line-height: 1.4286em; margin-bottom: 0.7143em; padding: 0px;&quot;&gt;
Now, decorators. Decorators are just another example of higher-order programming. A decorator is a function which takes a function as an argument (and may take other arguments, too), and returns a new function.&lt;/div&gt;
&lt;div style=&quot;background-color: #fcfcfc; color: #161616; font-family: verdana, arial, helvetica, sans-serif; font-size: small; line-height: 1.4286em; margin-bottom: 0.7143em; padding: 0px;&quot;&gt;
The simplest case for decorators is when you have an existing function, and you want to make a new function that does some extra stuff before or after. Like, say, if you need to debug by printing out the arguments a function was called with, you could write this:&lt;/div&gt;
&lt;pre style=&quot;background: rgb(239, 239, 255); border-bottom-left-radius: 5px; border-bottom-right-radius: 5px; border-top-left-radius: 5px; border-top-right-radius: 5px; border: 1px solid rgb(237, 237, 237); color: #161616; font-size: 1em; line-height: 1.3em; margin-bottom: 1.2857em; padding: 0px 0px 0px 1.5714em; position: relative;&quot;&gt;&lt;code style=&quot;background: rgb(255, 255, 255); border-left-color: rgb(237, 237, 237); border-left-style: solid; border-left-width: 1px; display: block; font-size: 1em; line-height: 1.4286em; margin-bottom: 0px; margin-left: 1.4286em; overflow: auto; padding-left: 10px;&quot;&gt;def argument_printer(func):
    def _wrapper(*args, **kwargs):
        print &quot;Called with positional arguments: %s&quot; % list(args)
        print &quot;And with keyword arguments: %s&quot; % kwargs
        return func(*args, **kwargs)
    return _wrapper
&lt;/code&gt;&lt;/pre&gt;
&lt;div style=&quot;background-color: #fcfcfc; color: #161616; font-family: verdana, arial, helvetica, sans-serif; font-size: small; line-height: 1.4286em; margin-bottom: 0.7143em; padding: 0px;&quot;&gt;
Now, suppose we want to always know what arguments our original&amp;nbsp;&lt;code style=&quot;font-size: 1em; line-height: 1.4286em; margin-bottom: 0px;&quot;&gt;add&lt;/code&gt;&amp;nbsp;function gets called with. We could do:&lt;/div&gt;
&lt;pre style=&quot;background: rgb(239, 239, 255); border-bottom-left-radius: 5px; border-bottom-right-radius: 5px; border-top-left-radius: 5px; border-top-right-radius: 5px; border: 1px solid rgb(237, 237, 237); color: #161616; font-size: 1em; line-height: 1.3em; margin-bottom: 1.2857em; padding: 0px 0px 0px 1.5714em; position: relative;&quot;&gt;&lt;code style=&quot;background: rgb(255, 255, 255); border-left-color: rgb(237, 237, 237); border-left-style: solid; border-left-width: 1px; display: block; font-size: 1em; line-height: 1.4286em; margin-bottom: 0px; margin-left: 1.4286em; overflow: auto; padding-left: 10px;&quot;&gt;add = argument_printer(add)
&lt;/code&gt;&lt;/pre&gt;
&lt;div style=&quot;background-color: #fcfcfc; color: #161616; font-family: verdana, arial, helvetica, sans-serif; font-size: small; line-height: 1.4286em; margin-bottom: 0.7143em; padding: 0px;&quot;&gt;
Or, using the decorator syntax:&lt;/div&gt;
&lt;pre style=&quot;background: rgb(239, 239, 255); border-bottom-left-radius: 5px; border-bottom-right-radius: 5px; border-top-left-radius: 5px; border-top-right-radius: 5px; border: 1px solid rgb(237, 237, 237); color: #161616; font-size: 1em; line-height: 1.3em; margin-bottom: 1.2857em; padding: 0px 0px 0px 1.5714em; position: relative;&quot;&gt;&lt;code style=&quot;background: rgb(255, 255, 255); border-left-color: rgb(237, 237, 237); border-left-style: solid; border-left-width: 1px; display: block; font-size: 1em; line-height: 1.4286em; margin-bottom: 0px; margin-left: 1.4286em; overflow: auto; padding-left: 10px;&quot;&gt;@argument_printer
def add(x, y):
    return x + y
&lt;/code&gt;&lt;/pre&gt;
&lt;div style=&quot;background-color: #fcfcfc; color: #161616; font-family: verdana, arial, helvetica, sans-serif; font-size: small; line-height: 1.4286em; margin-bottom: 0.7143em; padding: 0px;&quot;&gt;
And now any call to&amp;nbsp;&lt;code style=&quot;font-size: 1em; line-height: 1.4286em; margin-bottom: 0px;&quot;&gt;add&lt;/code&gt;&amp;nbsp;will print out the arguments it was called with, before actually calling&amp;nbsp;&lt;code style=&quot;font-size: 1em; line-height: 1.4286em; margin-bottom: 0px;&quot;&gt;add&lt;/code&gt;&amp;nbsp;and returning the correct result.&lt;/div&gt;
&lt;div style=&quot;background-color: #fcfcfc; color: #161616; font-family: verdana, arial, helvetica, sans-serif; font-size: small; line-height: 1.4286em; margin-bottom: 0.7143em; padding: 0px;&quot;&gt;
And... that&#39;s it. That&#39;s a decorator. But that&#39;s just the tip of the iceberg as far as what they can do. Decorators can do pre- and/or post-processing, as in this example. Or they can implement more complex logic, or choose what to do based on what arguments the function gets called with, or... well, all sorts of things, really.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://thanksalotman.blogspot.com/feeds/5772601541391257555/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5891293935093365308/5772601541391257555' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5891293935093365308/posts/default/5772601541391257555'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5891293935093365308/posts/default/5772601541391257555'/><link rel='alternate' type='text/html' href='http://thanksalotman.blogspot.com/2014/11/what-are-python-decorators.html' title='What are Python decorators?'/><author><name>MrTwist</name><uri>http://www.blogger.com/profile/05059283899115065086</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgufch6gY1V3XaRQB96XbLYYqFzXjjf_U4HnmicaNkQNxcU0xzyYIH9be4_hX8lo_JkZqW3m_OZNmixGAQ8zZhUvz5nw7q8wPFVCnNzbhgeckgXW-YsuRaJHusIQZfm_oEPHbLD-oo7WaEUrsv04FFi56sWClKnw9wKfdxk0WGZldx/s220/54a38e78-7618-481d-872d-b1df2f0cf0ab.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5891293935093365308.post-8298297110592221066</id><published>2014-05-01T12:33:00.000-07:00</published><updated>2014-05-02T06:52:16.913-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Bluetooth"/><category scheme="http://www.blogger.com/atom/ns#" term="disconnects"/><category scheme="http://www.blogger.com/atom/ns#" term="doesn&#39;t work"/><category scheme="http://www.blogger.com/atom/ns#" term="intermittent"/><category scheme="http://www.blogger.com/atom/ns#" term="mouse"/><category scheme="http://www.blogger.com/atom/ns#" term="sleep"/><category scheme="http://www.blogger.com/atom/ns#" term="won&#39;t work"/><title type='text'>Bluetooth Mouse Works or Sleeps Intermittently</title><content type='html'>If you find that your Bluetooth mouse stops working every couple of minutes, it could be that the Bluetooth device manager in your system is configured to save power by turning off the radio. &lt;br /&gt;
&lt;br /&gt;
This seems to be the default behavior for Windows and I&#39;ve seen many posts about it happening with Linux installations as well so I hope this post helps all the people who are frustrated and probably angry with this annoyance of their mouse falling asleep every couple of minutes. This problem with my Bluetooth mouse always plagues me when I get a new laptop until I get frustrated enough to fix the issue. This post is for me as well as you.&lt;br /&gt;
&lt;br /&gt;
On Windows:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span class=&quot;phrase&quot;&gt;Open Device Manager by clicking the &lt;span class=&quot;ui&quot;&gt;Start&lt;/span&gt; button&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;phrase&quot;&gt;Click &lt;span class=&quot;ui&quot;&gt;Control Panel&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;phrase&quot;&gt;&lt;span class=&quot;ui&quot;&gt;&lt;/span&gt;Click &lt;span class=&quot;ui&quot;&gt;System and Security&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;phrase&quot;&gt;And then, under &lt;span class=&quot;ui&quot;&gt;System&lt;/span&gt;, click &lt;span class=&quot;ui&quot;&gt;Device Manager&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;phrase&quot;&gt;&lt;span class=&quot;ui&quot;&gt;Expand the Bluetooth list item&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;phrase&quot;&gt;&lt;span class=&quot;ui&quot;&gt;Right click the Bluetooth Adapter device and click Properties&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;phrase&quot;&gt;&lt;span class=&quot;ui&quot;&gt;Click the Power Management tab&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;phrase&quot;&gt;&lt;span class=&quot;ui&quot;&gt;Uncheck the &#39;Allow the computer to turn off this device to save power&#39; option&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&quot;phrase&quot;&gt;&lt;span class=&quot;ui&quot;&gt;Click OK&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&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/AVvXsEj7YLKpRPHIvCIcbx7BebNGNxSAnP3PYiuB2xi8T0lnKcega1jBJd67whNmh1vIyYlGfxTFZ1Sik-izJ81VGiQGiPh1B6Gmt5iG7zEMWay73OpBHOZkT-eLMNuSmfI59hU7uLNpIY7Sozw/s1600/Bluetooth.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7YLKpRPHIvCIcbx7BebNGNxSAnP3PYiuB2xi8T0lnKcega1jBJd67whNmh1vIyYlGfxTFZ1Sik-izJ81VGiQGiPh1B6Gmt5iG7zEMWay73OpBHOZkT-eLMNuSmfI59hU7uLNpIY7Sozw/s1600/Bluetooth.png&quot; height=&quot;496&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span class=&quot;phrase&quot;&gt;&lt;span class=&quot;ui&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;phrase&quot;&gt;&lt;span class=&quot;ui&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;phrase&quot;&gt;&lt;span class=&quot;ui&quot;&gt;Now enjoy your constantly connected Bluetooth mouse!&lt;/span&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://thanksalotman.blogspot.com/feeds/8298297110592221066/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5891293935093365308/8298297110592221066' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5891293935093365308/posts/default/8298297110592221066'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5891293935093365308/posts/default/8298297110592221066'/><link rel='alternate' type='text/html' href='http://thanksalotman.blogspot.com/2014/05/bluetooth-mouse-works-intermittently.html' title='Bluetooth Mouse Works or Sleeps Intermittently'/><author><name>MrTwist</name><uri>http://www.blogger.com/profile/05059283899115065086</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgufch6gY1V3XaRQB96XbLYYqFzXjjf_U4HnmicaNkQNxcU0xzyYIH9be4_hX8lo_JkZqW3m_OZNmixGAQ8zZhUvz5nw7q8wPFVCnNzbhgeckgXW-YsuRaJHusIQZfm_oEPHbLD-oo7WaEUrsv04FFi56sWClKnw9wKfdxk0WGZldx/s220/54a38e78-7618-481d-872d-b1df2f0cf0ab.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7YLKpRPHIvCIcbx7BebNGNxSAnP3PYiuB2xi8T0lnKcega1jBJd67whNmh1vIyYlGfxTFZ1Sik-izJ81VGiQGiPh1B6Gmt5iG7zEMWay73OpBHOZkT-eLMNuSmfI59hU7uLNpIY7Sozw/s72-c/Bluetooth.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5891293935093365308.post-3741077851647728266</id><published>2014-04-16T16:18:00.004-07:00</published><updated>2014-04-16T16:32:01.098-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="beginning"/><category scheme="http://www.blogger.com/atom/ns#" term="C#"/><category scheme="http://www.blogger.com/atom/ns#" term="CLI"/><category scheme="http://www.blogger.com/atom/ns#" term="command"/><category scheme="http://www.blogger.com/atom/ns#" term="cursor"/><category scheme="http://www.blogger.com/atom/ns#" term="line"/><category scheme="http://www.blogger.com/atom/ns#" term="shell"/><category scheme="http://www.blogger.com/atom/ns#" term="start"/><category scheme="http://www.blogger.com/atom/ns#" term="window"/><title type='text'>How to move the command line cursor to the beginning of the line in C#</title><content type='html'>&lt;span style=&quot;color: black; font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;I was working on a little C# application to process online documents and didn&#39;t want to clutter the window with a running list of items processed. I just wanted a single line to update with the item being worked on.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: black; font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: black; font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Using &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;Console.WriteLine&lt;/span&gt; outputs the data and starts new on the next line. Nope.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: black; font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Using &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;Console.Write&lt;/span&gt; outputs the data in one big long stream. Nope.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: black; font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: black; font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;I needed a way to return the cursor to the beginning of the current line.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: black; font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: black;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Using &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;Console.Write(&#39;\x000D&#39;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;)&lt;/span&gt; does that.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: black; font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: black; font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Here&#39;s why:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: black; font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: black; font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Windows uses two character to create a new line when displaying information in the shell window. It sort of works like a typewriter (or teletype for that matter)&amp;nbsp;by moving the cursor to the beginning of the line and then advancing the cursor one row on the screen.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: black; font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: black; font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Those two ASCII characters are &#39;\r&#39; and &#39;\n&#39;, being &#39;return&#39; and &#39;new line&#39; respectively.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: black; font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: black; font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;Here are the ASCII, decimal and hexadecimal values for those characters:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: black; font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: black; font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;u&gt;ASCII&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Decimal&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Hex&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;color: black; font-family: &amp;quot;Helvetica Neue&amp;quot;, Arial, Helvetica, sans-serif;&quot;&gt;&amp;nbsp; \r&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;13&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; 0D&lt;br /&gt;&amp;nbsp; \n&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;10&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; 0A&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;Including the &#39;\x&#39; in the Console.Write parameter tells the application to that the data is encoded in hexadecimal. You could use &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;Console.Write(char(13))&lt;/span&gt; to type cast the ASCII code if you wanted to.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;The &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;&quot;&gt;Console.Write(&#39;\x000D&#39;)&lt;/span&gt; example above includes two extra zeros to account for Unicode&#39;s two-byte character set... just FYI.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial;&quot;&gt;A possible use for this could be to create progress bar/completion percentage in your application.&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://thanksalotman.blogspot.com/feeds/3741077851647728266/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5891293935093365308/3741077851647728266' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5891293935093365308/posts/default/3741077851647728266'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5891293935093365308/posts/default/3741077851647728266'/><link rel='alternate' type='text/html' href='http://thanksalotman.blogspot.com/2014/04/how-to-move-command-line-cursor-to.html' title='How to move the command line cursor to the beginning of the line in C#'/><author><name>MrTwist</name><uri>http://www.blogger.com/profile/05059283899115065086</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgufch6gY1V3XaRQB96XbLYYqFzXjjf_U4HnmicaNkQNxcU0xzyYIH9be4_hX8lo_JkZqW3m_OZNmixGAQ8zZhUvz5nw7q8wPFVCnNzbhgeckgXW-YsuRaJHusIQZfm_oEPHbLD-oo7WaEUrsv04FFi56sWClKnw9wKfdxk0WGZldx/s220/54a38e78-7618-481d-872d-b1df2f0cf0ab.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5891293935093365308.post-4480367507683821488</id><published>2014-03-01T15:48:00.001-08:00</published><updated>2014-03-03T20:18:44.899-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="command line"/><category scheme="http://www.blogger.com/atom/ns#" term="create"/><category scheme="http://www.blogger.com/atom/ns#" term="free"/><category scheme="http://www.blogger.com/atom/ns#" term="generate"/><category scheme="http://www.blogger.com/atom/ns#" term="md5"/><category scheme="http://www.blogger.com/atom/ns#" term="sha1"/><category scheme="http://www.blogger.com/atom/ns#" term="tool"/><category scheme="http://www.blogger.com/atom/ns#" term="utility"/><category scheme="http://www.blogger.com/atom/ns#" term="windows"/><title type='text'>How to compute an MD5 and SHA1 cryptographic hash values for a file in Windows</title><content type='html'>Microsoft has a handy command line tool to compute the MD5 or SHA1 value for file and makes it available for free. &lt;br /&gt;
&lt;br /&gt;
So if you need a quick way to check your torrent hashes, this is probably the tool you want. You could throw together a quick GUI using &lt;a href=&quot;http://www.autoitscript.com/&quot; target=&quot;_blank&quot;&gt;AutoIt Script&lt;/a&gt; if you want to be fancy.&lt;br /&gt;
&lt;br /&gt;
The name of the utility tool is&lt;span style=&quot;font-family: inherit;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #333333; font-size: 13px;&quot;&gt;&lt;a href=&quot;http://www.microsoft.com/en-us/download/details.aspx?id=11533&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;File Checksum Integrity Verifier (FCIV)&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;background-color: white; color: #333333; font-size: 13px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
To compute the MD5 and the SHA-1 hash values for a file at the &lt;i&gt;same time&lt;/i&gt; (how handy!), type the following command at a command line:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;b&gt;&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;FCIV -md5 -sha1 path\filename.ext&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
For example, to compute the MD5 and SHA-1 hash values for the &lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;Shdocvw.dll&lt;/span&gt; file in your &lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;%Systemroot%\System32&lt;/span&gt; folder, type the following command:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;b&gt;&lt;span style=&quot;font-family: Trebuchet MS, sans-serif;&quot;&gt;FCIV -md5 -sha1 c:\windows\system32\shdocvw.dll&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
I can think of examples of where having a command line hash generator - in both MD5 and SHA1 - would be very handy.</content><link rel='replies' type='application/atom+xml' href='http://thanksalotman.blogspot.com/feeds/4480367507683821488/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5891293935093365308/4480367507683821488' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5891293935093365308/posts/default/4480367507683821488'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5891293935093365308/posts/default/4480367507683821488'/><link rel='alternate' type='text/html' href='http://thanksalotman.blogspot.com/2014/03/how-to-compute-md5-or-sha1.html' title='How to compute an MD5 and SHA1 cryptographic hash values for a file in Windows'/><author><name>MrTwist</name><uri>http://www.blogger.com/profile/05059283899115065086</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgufch6gY1V3XaRQB96XbLYYqFzXjjf_U4HnmicaNkQNxcU0xzyYIH9be4_hX8lo_JkZqW3m_OZNmixGAQ8zZhUvz5nw7q8wPFVCnNzbhgeckgXW-YsuRaJHusIQZfm_oEPHbLD-oo7WaEUrsv04FFi56sWClKnw9wKfdxk0WGZldx/s220/54a38e78-7618-481d-872d-b1df2f0cf0ab.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5891293935093365308.post-848549483239373642</id><published>2013-08-07T00:14:00.002-07:00</published><updated>2014-03-01T16:17:30.282-08:00</updated><title type='text'>How To Choose A Good Password</title><content type='html'>&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;Contemporary password design confirms long simple passwords are more secure than complicated short passwords.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Long story short, the explanation is here:&amp;nbsp;&lt;a href=&quot;http://xkcd.com/936/&quot;&gt;http://xkcd.com/936/&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The upshot of this is that you have the chance to make your unique poem.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
You could start with a haiku:&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; ExplosionBoomBoom&lt;br /&gt;
&amp;nbsp; &amp;nbsp; WelcomeToTheShowWelcome&lt;br /&gt;
&amp;nbsp; &amp;nbsp; PleaseComeInSideBoom&lt;br /&gt;
&lt;br /&gt;
I modified &lt;a href=&quot;http://www.youtube.com/watch?v=tMlKmELIhgY&quot; target=&quot;_blank&quot;&gt;&#39;Welcome Ladies and Gentleman&quot; by &lt;span id=&quot;goog_1455268416&quot;&gt;&lt;/span&gt;Saliva&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/&quot;&gt;&lt;span id=&quot;goog_1455268417&quot;&gt;&lt;/span&gt;&lt;/a&gt;&amp;nbsp;(I&#39;m on vacation and feel like ROCKING) for that example. But you grasp the concept, right?&lt;br /&gt;
&lt;br /&gt;
You could idealize an idea and then write a sentence about it:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &quot;Monster Movie Season Is So Fun!&quot;&lt;br /&gt;
&lt;br /&gt;
That is a very secure password.&lt;br /&gt;
&lt;br /&gt;
Per the rules of my organization, I have to change my password every 10 weeks. The choice of formats I have are either one that&#39;s less that sixteen characters with so many capitals and non-alphanumeric symbols as to make the password unrememberable and gymnastic to type or a &quot;passphrase&quot; that is much more manageable, like a sentence.&lt;br /&gt;
&lt;br /&gt;
Would you mind being reminded to change your password every so often if you could skip the &#39;more capitals and punctuation&#39; message? I don&#39;t now that I know I can use a lyric from my favorite song of the moment.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://thanksalotman.blogspot.com/feeds/848549483239373642/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5891293935093365308/848549483239373642' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5891293935093365308/posts/default/848549483239373642'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5891293935093365308/posts/default/848549483239373642'/><link rel='alternate' type='text/html' href='http://thanksalotman.blogspot.com/2013/08/how-to-choose-good-password.html' title='How To Choose A Good Password'/><author><name>MrTwist</name><uri>http://www.blogger.com/profile/05059283899115065086</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgufch6gY1V3XaRQB96XbLYYqFzXjjf_U4HnmicaNkQNxcU0xzyYIH9be4_hX8lo_JkZqW3m_OZNmixGAQ8zZhUvz5nw7q8wPFVCnNzbhgeckgXW-YsuRaJHusIQZfm_oEPHbLD-oo7WaEUrsv04FFi56sWClKnw9wKfdxk0WGZldx/s220/54a38e78-7618-481d-872d-b1df2f0cf0ab.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5891293935093365308.post-5876524223083589878</id><published>2013-08-05T17:03:00.001-07:00</published><updated>2018-01-18T19:52:18.943-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="collector"/><category scheme="http://www.blogger.com/atom/ns#" term="data"/><category scheme="http://www.blogger.com/atom/ns#" term="deploy"/><category scheme="http://www.blogger.com/atom/ns#" term="import"/><category scheme="http://www.blogger.com/atom/ns#" term="install"/><category scheme="http://www.blogger.com/atom/ns#" term="logman"/><category scheme="http://www.blogger.com/atom/ns#" term="monitor"/><category scheme="http://www.blogger.com/atom/ns#" term="perfmon"/><category scheme="http://www.blogger.com/atom/ns#" term="performance"/><category scheme="http://www.blogger.com/atom/ns#" term="set"/><category scheme="http://www.blogger.com/atom/ns#" term="template"/><category scheme="http://www.blogger.com/atom/ns#" term="windows"/><title type='text'>How to import Windows Performance Monitor Data Collector Sets</title><content type='html'>&lt;br /&gt;
It&#39;s possible to export Windows Performance Monitor Data Collector Sets from perfmon.exe and then reopen the template on a different machine.&lt;br /&gt;
&lt;br /&gt;
For a couple data collector sets on a couple different machines, this is not much of a problem. But if you have many performance data collector templates or many machines or both, you need an automated way to import the data collector templates. &lt;br /&gt;
&lt;br /&gt;
An easier way is to use logman.exe to import the performance monitor data collector set.&lt;br /&gt;
&lt;br /&gt;
Here&#39;s the magic:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;strong&gt;logman import -name &quot;MonitorName&quot;&lt;thedcsname&gt; -xml &quot;MonitorTemplate.xml&quot;&amp;nbsp;&lt;thetemplate .xml=&quot;&quot;&gt;&lt;/thetemplate&gt;&lt;/thedcsname&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
Create a batch file or Powershell script with that command for each data collector set and you can deploy multiple performance monitors to multiple machines quickly.</content><link rel='replies' type='application/atom+xml' href='http://thanksalotman.blogspot.com/feeds/5876524223083589878/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5891293935093365308/5876524223083589878' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5891293935093365308/posts/default/5876524223083589878'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5891293935093365308/posts/default/5876524223083589878'/><link rel='alternate' type='text/html' href='http://thanksalotman.blogspot.com/2013/08/how-to-import-windows-performance.html' title='How to import Windows Performance Monitor Data Collector Sets'/><author><name>MrTwist</name><uri>http://www.blogger.com/profile/05059283899115065086</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgufch6gY1V3XaRQB96XbLYYqFzXjjf_U4HnmicaNkQNxcU0xzyYIH9be4_hX8lo_JkZqW3m_OZNmixGAQ8zZhUvz5nw7q8wPFVCnNzbhgeckgXW-YsuRaJHusIQZfm_oEPHbLD-oo7WaEUrsv04FFi56sWClKnw9wKfdxk0WGZldx/s220/54a38e78-7618-481d-872d-b1df2f0cf0ab.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5891293935093365308.post-5579635326334652089</id><published>2012-10-10T22:38:00.002-07:00</published><updated>2012-10-10T22:38:28.323-07:00</updated><title type='text'></title><content type='html'>&lt;h2 style=&quot;text-align: center;&quot;&gt;
How to open an Xbox 360&lt;/h2&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
This is great guide on how to open an Xbox 360 because the instructions are simple and the photos are descriptive themselves.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
I was able to open my Xbox 360 with a screwdriver from a kit I got a dollar store and a torx 10 driver.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
I wish I had a torx 9 driver so I could take the heatsinks off and apply some Arctic Silver 5 to them, but so it goes.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;a href=&quot;http://www.morehawes.co.uk/open-xbox-360&quot; target=&quot;_blank&quot;&gt;Here&#39;s the &quot;Open your Xbox 360&quot; guide.&lt;/a&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://thanksalotman.blogspot.com/feeds/5579635326334652089/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5891293935093365308/5579635326334652089' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5891293935093365308/posts/default/5579635326334652089'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5891293935093365308/posts/default/5579635326334652089'/><link rel='alternate' type='text/html' href='http://thanksalotman.blogspot.com/2012/10/how-to-open-xbox-360-this-is-great.html' title=''/><author><name>MrTwist</name><uri>http://www.blogger.com/profile/05059283899115065086</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgufch6gY1V3XaRQB96XbLYYqFzXjjf_U4HnmicaNkQNxcU0xzyYIH9be4_hX8lo_JkZqW3m_OZNmixGAQ8zZhUvz5nw7q8wPFVCnNzbhgeckgXW-YsuRaJHusIQZfm_oEPHbLD-oo7WaEUrsv04FFi56sWClKnw9wKfdxk0WGZldx/s220/54a38e78-7618-481d-872d-b1df2f0cf0ab.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5891293935093365308.post-8394584188424558495</id><published>2012-03-06T13:27:00.000-08:00</published><updated>2012-03-06T13:27:03.608-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="broken"/><category scheme="http://www.blogger.com/atom/ns#" term="bug"/><category scheme="http://www.blogger.com/atom/ns#" term="doesn&#39;t"/><category scheme="http://www.blogger.com/atom/ns#" term="fails"/><category scheme="http://www.blogger.com/atom/ns#" term="selectPopUp"/><category scheme="http://www.blogger.com/atom/ns#" term="selectWindow"/><category scheme="http://www.blogger.com/atom/ns#" term="selenium"/><category scheme="http://www.blogger.com/atom/ns#" term="work"/><title type='text'>Selenium selectWindow method is broken</title><content type='html'>The Selenium method &#39;selectWindow&#39; has a longstanding bug in that Selenium cannot see new windows created by hyperlinks with a target specified.

The Selenium method selectWindow will only select the newest window if the &#39;target&#39; field is null or blank. In this regard, selectWindow functions like selectPopUp.

&lt;a href=&quot;https://docs.google.com/viewer?a=v&amp;q=cache:kkcQ3OuIWgYJ:jira.openqa.org/secure/attachment/12030/Selenium%2BselectWindow%2Bfailing.doc+&amp;hl=en&amp;gl=us&amp;pid=bl&amp;srcid=ADGEESg1NzmFu2LJ2Xl44gqt72I9K2nCe8ssQdo11P-CT4pkKTe9fjaXznKUAtZsP2pfT2Hdhbbe8vUwGEYCuUN-q3MpIbwU7YDVhYrgPMLZTODy7EV6bwBCSnibaDllHUH-kqCaq7Op&amp;sig=AHIEtbRgvHcC-elGMwq3RGtV6UPJ71L4xw&amp;pli=1&quot;&gt;Here is more detail:&lt;/a&gt;


&lt;blockquote&gt;Selenium selectWindow failing

A ton of research and testing has gone into my conclusion that the method selectWindow
simply does not work for anything but an empty string or NULL. The investigation started
with Selenium IDE and continued in SeleniumRC with java in Eclipse. As of this writing the
versions used were

Selenium IDE 1.0.2
Selenium Remote Control 1.0.1
Firefox 3.0.11
IE 6

Use Case:
1. Navigate to the site’s main page
2. Click on a link that spawns a new window/tab
3. Select the new window
4. Validate stuff in the new window with asserts and verifies
5. Close the new window
6. Return to the main window
7. Rinse and repeat with other browsers and platforms ( IE6, IE7, FF2, FF3, WinXP, Mac,
Vista, …)

1st attempt
Firefox + Selenium IDE record/replay
All steps recorded as expected except for the close method at the end
open
/
assertElementPresent
link=Texas Accessibility
Policy
click
link=Texas Accessibility
Policy
selectWindow
name=AccessibilityPolicy
waitForTitle
AccessibilityPolicy
verifyText
//div[@id=&#39;fullPage&#39;]/h1
Electronic And
Information Resources
Accessibility Policy

This has never replayed correctly. Each time we get to the selectWindow step it fails and
says “[error] Window does not exist. If this looks like a Selenium bug, make sure to read http://
selenium-core.openqa.org/reference.html#openWindow for potential workarounds.”

The suggested URL was wrong so I had to search for their “workarounds”. In short, none
of the workarounds work, which violates the basic premise of the term. They should be
called “time wasters” instead because I have about 60 hours into this problem so far with no
working tests in either IDE or RC that the QA group could use.

What I have tried and observed so far:

The first case that we tried was complex, in that the new window was a completely different
domain as the original window.

Main URL https://www.texascollegesavings.com/
New Window URL http://www.window.state.tx.us/accessibility.html

This led me to believe that we were violating the JavaScript Same Origin Policy (http://
www.devarticles.com/c/a/JavaScript/JavaScript-Security/). In order to eliminate the same
origin policy as a problem I changed to a different site

Main URL
New URL

Since neither the domain or the port changed for the new window, this should not violate the
security policy.

Next step was to create a script that would conform to the use case. In the Selenium IDE
recording produced:

open
waitForTitle
verifyTitle
clickAndWait
selectWindow
waitForTitle
selectWindow
waitForTitle

At first I was ecstatic that it recorded very much the way I thought it should look. However on
replay I got the exact same problem. On the step
selectWindow | name=NEW |

it returned more than 1 error. Output:

•

[info] Executing: |open | /HomeSite/HomePage/HomePage.asp | |

•

[info] Executing: |waitForTitle | OPnet, The OFI Corporate Intranet | |

[info] Executing: |verifyTitle | OPnet, The OFI Corporate Intranet | |

•

•

[info] Executing: |clickAndWait | //table[@id=&#39;TVAds_Table&#39;]/tbody/tr/td[2]/a/img | |

http://opnet/HomeSite/HomePage/HomePage.asp
http://opnet/departments/hr_contacts/learningdev/hrportal/Index.html

/HomeSite/HomePage/HomePage.asp
OPnet, The OFI Corporate Intranet
OPnet, The OFI Corporate Intranet
//table[@id=&#39;TVAds_Table&#39;]/tbody/tr/td[2]/a/img
name=NEW
E-HR Home Page
name=null
OPnet, The OFI Corporate Intranet

•

[error] Timed out after 30000ms

[info] Executing: |selectWindow | name=NEW | |

•

[error] Window does not exist. If this looks like a Selenium bug, make sure to read http://
selenium-core.openqa.org/reference.html#openWindow for potential workarounds.

•

So the clickAndWait did not work since the original page was not ever re-loading, so turn
that back to a click. But the last error is confounding because Selenium recorder captured
the “name” of the new window so it must be able to “see” the window, only that’s not true on
playback. Further research on the forums and documentation shows I should try using the
waitForPopUp method
waitForPopUp ( windowID,timeout )

Apparently name and windowID are synonymous, so I used the value of NEW which is the
value of the target attribute on our main page that creates the new window. Again, it did not
work

• [info] Executing: |waitForPopUp | NEW | 2000 |
• [error] Timed out after 2000ms
• [info] Executing: |selectWindow | name=NEW | |
• [error] Window does not exist. If this looks like a Selenium bug, make sure to read http://selenium-
core.openqa.org/reference.html#openWindow for potential workarounds.

This is when I bailed out of the IDE and started working with Java in Eclipse with Selenium
Remote control. This way I could use some other methods like
getAllWindowIds()
getAllWindowNames()
getAllWindowTitles()

And I could also get some more logging options from the RC server. This led to some
interesting discoveries.

If the browser creates a new window using the method
&lt;a target=&quot;NEW&quot; href=&quot;/departments/hr_contacts/learningdev/hrportal/Index.html&quot;&gt;
&lt;img border=&quot;0&quot; src=&quot;graphics/ehr2.gif&quot;/&gt;
&lt;/a&gt;
Selenium cannot see the new window with the name “NEW”. I came to that conclusion
because all three getAll… methods return only the main window, not the child.
windowIds String[1] (id=51)
[0]
&quot;undefined&quot; (id=55)
windowNames
String[1] (id=53)
[0]
&quot;selenium_main_app_window&quot; (id=56)
windowTitles String[1] (id=54)
[0]
&quot;OPnet, The OFI Corporate Intranet&quot; (id=57)

No wonder the selectWindow | NEW statement does not work, because the collection of
available windows does not have that window in it. I can see the window open and investigate
it’s properties with Firebug or at the Javascript console, but Selenium cannot. This means
that an extremely common method of opening new windows in web programming is unusable
and not testable using Selenium. Another interesting discrepancy is that the windowIds array
shows the window id to be “undefined” which does not match the documentation for Selenium.

Out of curiosity I modified the steps to perform the open window myself instead of emulating
the click behavior on the object in the page.

The steps:
- capture the HREF attribute of the object and store it in a variable
- use the openWindow method from Selenium to create a new window with an ID that I
control and the href from the page

The code:

String eHRhref = selenium.getAttribute(&quot;//table[@id=&#39;TVAds_Table&#39;]/tbody/tr/td[2]/
a@href&quot;);
selenium.openWindow(eHRhref, &quot;eHR&quot;);

Now when I run Selenium CAN see both the main window and the child window
windowIds String[2] (id=47)
[0]
&quot;undefined&quot; (id=828)
[1]
&quot;undefined&quot; (id=829)
windowNames
String[2] (id=52)
[0]
&quot;selenium_main_app_window&quot; (id=54)
[1]
&quot;eHR&quot; (id=824)
windowTitles String[2] (id=53)
[0]
&quot;OPnet, The OFI Corporate Intranet&quot; (id=823)
[1]
&quot;E-HR Home Page&quot; (id=826)

However the window IDs still come up as “undefined” which does not match they say the ID
should be. Continuing on to the selectWindow step, based on the Selenium documentation I
should be able to use the name of “eHR” to select the new window, a name I made up.

The code:

selenium.selectWindow(&quot;eHR&quot;);

The output/error:
com.thoughtworks.selenium.SeleniumException: ERROR: Window does not exist. If
this looks like a Selenium bug, make sure to read http://selenium-core.openqa.org/
reference.html#openWindow for potential workarounds.
at
com.thoughtworks.selenium.HttpCommandProcessor.throwAssertionFailureExceptionOrError(
HttpCommandProcessor.java:97)
at
com.thoughtworks.selenium.HttpCommandProcessor.doCommand(HttpCommandProcessor.ja
va:91)

at
com.thoughtworks.selenium.DefaultSelenium.selectWindow(DefaultSelenium.java:343)
at OpnetNewWindow.testOpnetNewWindow(OpnetNewWindow.java:60)…

Window does not exist?! I made the window, I named the window, I asked Selenium if it can
see the window and sure enough it can, now it says it cannot. This is what is called a defect.
The thing just does not work as designed.

I then played some more with the selectWindow method and found that only and empty
string “” or the value of NULL would run without error.&lt;/blockquote&gt;</content><link rel='replies' type='application/atom+xml' href='http://thanksalotman.blogspot.com/feeds/8394584188424558495/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5891293935093365308/8394584188424558495' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5891293935093365308/posts/default/8394584188424558495'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5891293935093365308/posts/default/8394584188424558495'/><link rel='alternate' type='text/html' href='http://thanksalotman.blogspot.com/2012/03/selenium-selectwindow-method-is-broken.html' title='Selenium selectWindow method is broken'/><author><name>MrTwist</name><uri>http://www.blogger.com/profile/05059283899115065086</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgufch6gY1V3XaRQB96XbLYYqFzXjjf_U4HnmicaNkQNxcU0xzyYIH9be4_hX8lo_JkZqW3m_OZNmixGAQ8zZhUvz5nw7q8wPFVCnNzbhgeckgXW-YsuRaJHusIQZfm_oEPHbLD-oo7WaEUrsv04FFi56sWClKnw9wKfdxk0WGZldx/s220/54a38e78-7618-481d-872d-b1df2f0cf0ab.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5891293935093365308.post-646119442045773564</id><published>2012-02-08T16:59:00.000-08:00</published><updated>2012-02-08T16:59:03.297-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="boot"/><category scheme="http://www.blogger.com/atom/ns#" term="command line"/><category scheme="http://www.blogger.com/atom/ns#" term="dos"/><category scheme="http://www.blogger.com/atom/ns#" term="from"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="puppy"/><category scheme="http://www.blogger.com/atom/ns#" term="puppy linux"/><category scheme="http://www.blogger.com/atom/ns#" term="run"/><title type='text'>How to install Puppy Linux from DOS</title><content type='html'>After finally getting the  PCMCIA CD-ROM to work, I was able to copy the contents of the Puppy Linux Live CD to the notebook.&lt;br /&gt;&lt;br /&gt;The next problem to overcome was how to get Puppy Linux up and running from DOS.&lt;br /&gt;&lt;br /&gt;Here&#39;s how to do it:&lt;br /&gt;&lt;br /&gt;1. Download GRUB.EXE&lt;br /&gt;2. Copy GRUB.EXE to c:\boot\grub&lt;br /&gt;3. Create a menu.lst file in c:\boot\grub&lt;br /&gt;&lt;br /&gt;If you&#39;re using a Puppy Linux 3.00 or later like I am, this for a bare bones get-up-and-running menu.lst worked for me.&lt;br /&gt;&lt;pre&gt;&lt;span class=&quot;postbody&quot;&gt;title Puppy Linux 4.00&lt;br /&gt;rootnoverify (hd0,5)&lt;br /&gt;kernel /vmlinuz &lt;/span&gt;&lt;span class=&quot;postbody&quot;&gt;pmedia=idehd &lt;/span&gt;&lt;span class=&quot;postbody&quot;&gt;&lt;br /&gt;initrd /initrd.gz&lt;/span&gt;&lt;/pre&gt;GRUB.EXE requires absolute paths, so if you copied the Puppy Linux to a sub-directory on your hard drive, say to puppy400, your menu.lst would look like this:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;span class=&quot;postbody&quot;&gt;title Puppy Linux 4.00&lt;br /&gt;rootnoverify (hd0,5)&lt;br /&gt;kernel /puppy400/vmlinuz&lt;/span&gt;&lt;span class=&quot;postbody&quot;&gt; pmedia=idehd &lt;span style=&quot;color: rgb(153, 51, 0);&quot;&gt;psubdir=puppy400&lt;/span&gt; &lt;/span&gt;&lt;span class=&quot;postbody&quot;&gt;&lt;br /&gt;initrd /puppy400/initrd.gz&lt;br /&gt;&lt;br /&gt;And just to reiterate: GRUB.EXE and menu.lst have to be installed in \boot\grub&lt;br /&gt;&lt;br /&gt;I hope this helps.&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://thanksalotman.blogspot.com/feeds/646119442045773564/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5891293935093365308/646119442045773564' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5891293935093365308/posts/default/646119442045773564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5891293935093365308/posts/default/646119442045773564'/><link rel='alternate' type='text/html' href='http://thanksalotman.blogspot.com/2012/02/how-to-install-puppy-linux-from-dos.html' title='How to install Puppy Linux from DOS'/><author><name>MrTwist</name><uri>http://www.blogger.com/profile/05059283899115065086</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgufch6gY1V3XaRQB96XbLYYqFzXjjf_U4HnmicaNkQNxcU0xzyYIH9be4_hX8lo_JkZqW3m_OZNmixGAQ8zZhUvz5nw7q8wPFVCnNzbhgeckgXW-YsuRaJHusIQZfm_oEPHbLD-oo7WaEUrsv04FFi56sWClKnw9wKfdxk0WGZldx/s220/54a38e78-7618-481d-872d-b1df2f0cf0ab.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5891293935093365308.post-3467702934283980056</id><published>2012-02-08T16:56:00.000-08:00</published><updated>2012-02-08T16:58:01.600-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="32 bit"/><category scheme="http://www.blogger.com/atom/ns#" term="64 bit"/><category scheme="http://www.blogger.com/atom/ns#" term="architecture"/><category scheme="http://www.blogger.com/atom/ns#" term="distribution"/><category scheme="http://www.blogger.com/atom/ns#" term="distro"/><category scheme="http://www.blogger.com/atom/ns#" term="kernal"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><title type='text'>How to check if Linux is 32 bit or 64 bit</title><content type='html'>How can I determine what the bit architecture of my Linux distribution is? 

It would be a command or an environment setting, right?

And the answer is:&lt;br /&gt;&lt;br /&gt;
&lt;code&gt;&gt;$ uname -m&lt;br /&gt;
x86_64&lt;code&gt;</content><link rel='replies' type='application/atom+xml' href='http://thanksalotman.blogspot.com/feeds/3467702934283980056/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5891293935093365308/3467702934283980056' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5891293935093365308/posts/default/3467702934283980056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5891293935093365308/posts/default/3467702934283980056'/><link rel='alternate' type='text/html' href='http://thanksalotman.blogspot.com/2012/02/how-to-check-if-linux-is-32-bit-or-64.html' title='How to check if Linux is 32 bit or 64 bit'/><author><name>MrTwist</name><uri>http://www.blogger.com/profile/05059283899115065086</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgufch6gY1V3XaRQB96XbLYYqFzXjjf_U4HnmicaNkQNxcU0xzyYIH9be4_hX8lo_JkZqW3m_OZNmixGAQ8zZhUvz5nw7q8wPFVCnNzbhgeckgXW-YsuRaJHusIQZfm_oEPHbLD-oo7WaEUrsv04FFi56sWClKnw9wKfdxk0WGZldx/s220/54a38e78-7618-481d-872d-b1df2f0cf0ab.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5891293935093365308.post-6832997316107730592</id><published>2012-01-26T09:44:00.000-08:00</published><updated>2012-01-26T09:47:28.336-08:00</updated><title type='text'>Stop Windows From Stealing Focus</title><content type='html'>Here&#39;s how to stop Windows from stealing focus with &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;   The easy method: Use the Tweak UI tool&lt;/div&gt;&lt;div&gt;&lt;div id=&quot;abw&quot; style=&quot;font-family: inherit; font-size: 12px; font-style: inherit; margin-top: 0px; margin-right: auto; margin-bottom: 0.75em; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; border-top-width: 0px; border-top-style: initial; border-top-color: initial; position: relative; width: 984px; background-position: 0px 50%; &quot;&gt;&lt;div id=&quot;abb&quot; style=&quot;font-family: inherit; font-style: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); -webkit-box-shadow: rgba(0, 0, 0, 0.226563) 0px 10px 15px; box-shadow: rgba(0, 0, 0, 0.226563) 0px 10px 15px; position: relative; &quot;&gt;&lt;div id=&quot;abm&quot; class=&quot;clear&quot; style=&quot;font-family: inherit; font-style: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 15px; padding-bottom: 0px; padding-left: 15px; text-decoration: inherit; zoom: 1; position: relative; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; &quot;&gt;&lt;div id=&quot;abc&quot; style=&quot;font-family: inherit; font-style: inherit; margin-top: 0px; margin-right: -342px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; position: relative; width: 954px; &quot;&gt;&lt;div id=&quot;articlebody&quot; style=&quot;font-family: inherit; font-style: inherit; margin-top: 1.5em; margin-right: 357px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; position: static; &quot;&gt;&lt;ol style=&quot;font-family: inherit; font-style: inherit; margin-top: 1.5em; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; position: relative; z-index: 0; &quot;&gt;&lt;li style=&quot;font-family: inherit; font-style: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; list-style-type: decimal; &quot;&gt;&lt;p style=&quot;font-family: inherit; font-style: inherit; margin-top: 1.5em; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; &quot;&gt;&lt;a href=&quot;http://www.microsoft.com/windowsxp/downloads/powertoys/xppowertoys.mspx&quot; zt=&quot;-o1/XJ&quot; target=&quot;_blank&quot; style=&quot;font-family: inherit; font-style: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(51, 102, 204); cursor: pointer; &quot;&gt;Download Tweak UI from Microsoft&lt;/a&gt;. Scroll down the page and look for it on the right-hand side. Be sure to download the program to a location where you can easily find it, like your Desktop.&lt;/p&gt;&lt;p style=&quot;font-family: inherit; font-style: inherit; margin-top: 1.5em; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; &quot;&gt;&lt;b style=&quot;font-weight: bold; &quot;&gt;Note:&lt;/b&gt; Tweak UI is freely available software provided by Microsoft. Tweak UI is used to make a number of changes to your system that would otherwise require edits to the registry.&lt;/p&gt;&lt;/li&gt;&lt;li style=&quot;font-family: inherit; font-style: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; list-style-type: decimal; &quot;&gt;&lt;p style=&quot;font-family: inherit; font-style: inherit; margin-top: 1.5em; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; &quot;&gt;Double-click the downloaded file to install it. Follow the instructions provided during installation.&lt;/p&gt;&lt;/li&gt;&lt;li style=&quot;font-family: inherit; font-style: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; list-style-type: decimal; &quot;&gt;&lt;p style=&quot;font-family: inherit; font-style: inherit; margin-top: 1.5em; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; &quot;&gt;Navigate to &lt;b style=&quot;font-weight: bold; &quot;&gt;Start&lt;/b&gt;, then &lt;b style=&quot;font-weight: bold; &quot;&gt;All Programs&lt;/b&gt; (or &lt;b style=&quot;font-weight: bold; &quot;&gt;Programs&lt;/b&gt;), then to the &lt;b style=&quot;font-weight: bold; &quot;&gt;Powertoys for Windows XP&lt;/b&gt; folder.&lt;/p&gt;&lt;/li&gt;&lt;li style=&quot;font-family: inherit; font-style: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; list-style-type: decimal; &quot;&gt;&lt;p style=&quot;font-family: inherit; font-style: inherit; margin-top: 1.5em; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; &quot;&gt;Click on the &lt;b style=&quot;font-weight: bold; &quot;&gt;Tweak UI&lt;/b&gt; shortcut.&lt;/p&gt;&lt;/li&gt;&lt;li style=&quot;font-family: inherit; font-style: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; list-style-type: decimal; &quot;&gt;&lt;p style=&quot;font-family: inherit; font-style: inherit; margin-top: 1.5em; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; &quot;&gt;In the Tweak UI program, click the &lt;b style=&quot;font-weight: bold; &quot;&gt;+&lt;/b&gt; next to &lt;i&gt;General&lt;/i&gt; on the left.&lt;/p&gt;&lt;/li&gt;&lt;li style=&quot;font-family: inherit; font-style: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; list-style-type: decimal; &quot;&gt;&lt;p style=&quot;font-family: inherit; font-style: inherit; margin-top: 1.5em; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; &quot;&gt;Click on &lt;b style=&quot;font-weight: bold; &quot;&gt;Focus&lt;/b&gt;.&lt;/p&gt;&lt;/li&gt;&lt;li style=&quot;font-family: inherit; font-style: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; list-style-type: decimal; &quot;&gt;&lt;p style=&quot;font-family: inherit; font-style: inherit; margin-top: 1.5em; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; &quot;&gt;On the right, check the &lt;b style=&quot;font-weight: bold; &quot;&gt;Prevent applications from stealing focus&lt;/b&gt; checkbox and then click the &lt;b style=&quot;font-weight: bold; &quot;&gt;OK&lt;/b&gt; button.&lt;/p&gt;&lt;/li&gt;&lt;li style=&quot;font-family: inherit; font-style: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; list-style-type: decimal; &quot;&gt;&lt;p style=&quot;font-family: inherit; font-style: inherit; margin-top: 1.5em; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; &quot;&gt;From this point forward, programs should no longer steal the focus from the window that you&#39;re currently working in.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div id=&quot;abw&quot; style=&quot;font-family: inherit; font-size: 12px; font-style: inherit; margin-top: 0px; margin-right: auto; margin-bottom: 0.75em; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; border-top-width: 0px; border-top-style: initial; border-top-color: initial; position: relative; width: 984px; background-position: 0px 50%; &quot;&gt;&lt;div id=&quot;abb&quot; style=&quot;font-family: inherit; font-style: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); -webkit-box-shadow: rgba(0, 0, 0, 0.226563) 0px 10px 15px; box-shadow: rgba(0, 0, 0, 0.226563) 0px 10px 15px; position: relative; &quot;&gt;&lt;div id=&quot;abm&quot; class=&quot;clear&quot; style=&quot;font-family: inherit; font-style: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 15px; padding-bottom: 0px; padding-left: 15px; text-decoration: inherit; zoom: 1; position: relative; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; &quot;&gt;&lt;div id=&quot;abc&quot; style=&quot;font-family: inherit; font-style: inherit; margin-top: 0px; margin-right: -342px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; position: relative; width: 954px; &quot;&gt;&lt;div id=&quot;articlebody&quot; style=&quot;font-family: inherit; font-style: inherit; margin-top: 1.5em; margin-right: 357px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; position: static; &quot;&gt;&lt;h3 style=&quot;font-family: inherit; font-size: 12px; font-style: inherit; margin-top: 1.5em; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; color: inherit; &quot;&gt;The Advanced Method: Use RegEdit.exe&lt;/h3&gt;&lt;ol style=&quot;font-family: inherit; font-style: inherit; margin-top: 1.5em; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; position: relative; z-index: 0; &quot;&gt;&lt;li style=&quot;font-family: inherit; font-style: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; list-style-type: decimal; &quot;&gt;&lt;p style=&quot;font-family: inherit; font-style: inherit; margin-top: 1.5em; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; &quot;&gt;Click on &lt;b style=&quot;font-weight: bold; &quot;&gt;Start&lt;/b&gt; and then &lt;b style=&quot;font-weight: bold; &quot;&gt;Run&lt;/b&gt;.&lt;/p&gt;&lt;/li&gt;&lt;li style=&quot;font-family: inherit; font-style: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; list-style-type: decimal; &quot;&gt;&lt;p style=&quot;font-family: inherit; font-style: inherit; margin-top: 1.5em; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; &quot;&gt;In the text box in the &lt;i&gt;Run&lt;/i&gt; window, type &lt;b style=&quot;font-weight: bold; &quot;&gt;regedit&lt;/b&gt; and click OK. This will open the &lt;i&gt;Registry Editor&lt;/i&gt; program.&lt;/p&gt;&lt;/li&gt;&lt;li style=&quot;font-family: inherit; font-style: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; list-style-type: decimal; &quot;&gt;&lt;p style=&quot;font-family: inherit; font-style: inherit; margin-top: 1.5em; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; &quot;&gt;Locate the &lt;b style=&quot;font-weight: bold; &quot;&gt;HKEY_CURRENT_USER&lt;/b&gt; folder under &lt;i&gt;My Computer&lt;/i&gt; and click on the &lt;b style=&quot;font-weight: bold; &quot;&gt;(+)&lt;/b&gt; sign next the folder name to expand the folder.&lt;/p&gt;&lt;/li&gt;&lt;li style=&quot;font-family: inherit; font-style: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; list-style-type: decimal; &quot;&gt;&lt;p style=&quot;font-family: inherit; font-style: inherit; margin-top: 1.5em; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; &quot;&gt;Continue to expand folders until you reach the&lt;b style=&quot;font-weight: bold; &quot;&gt;HKEY_CURRENT_USER\Control Panel&lt;/b&gt; registry key.&lt;/p&gt;&lt;/li&gt;&lt;li style=&quot;font-family: inherit; font-style: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; list-style-type: decimal; &quot;&gt;&lt;p style=&quot;font-family: inherit; font-style: inherit; margin-top: 1.5em; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; &quot;&gt;Select the &lt;b style=&quot;font-weight: bold; &quot;&gt;Desktop&lt;/b&gt; key under &lt;i&gt;Control Panel&lt;/i&gt;.&lt;/p&gt;&lt;/li&gt;&lt;li style=&quot;font-family: inherit; font-style: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; list-style-type: decimal; &quot;&gt;&lt;p style=&quot;font-family: inherit; font-style: inherit; margin-top: 1.5em; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; &quot;&gt;On the right-hand side of the screen, locate and double-click on the &lt;b style=&quot;font-weight: bold; &quot;&gt;ForegroundLockTimeout&lt;/b&gt;DWORD.&lt;/p&gt;&lt;/li&gt;&lt;li style=&quot;font-family: inherit; font-style: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; list-style-type: decimal; &quot;&gt;&lt;p style=&quot;font-family: inherit; font-style: inherit; margin-top: 1.5em; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; &quot;&gt;In the &lt;i&gt;Edit DWORD Value&lt;/i&gt; window that appears, set the &lt;i&gt;Value data:&lt;/i&gt; field to &lt;b style=&quot;font-weight: bold; &quot;&gt;30d40&lt;/b&gt;.&lt;/p&gt;&lt;p style=&quot;font-family: inherit; font-style: inherit; margin-top: 1.5em; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; &quot;&gt;&lt;b style=&quot;font-weight: bold; &quot;&gt;Note:&lt;/b&gt; Make sure the &lt;i&gt;Base&lt;/i&gt; option is set to &lt;b style=&quot;font-weight: bold; &quot;&gt;Hexadecimal&lt;/b&gt; when entering the DWORD value.&lt;/p&gt;&lt;/li&gt;&lt;li style=&quot;font-family: inherit; font-style: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; list-style-type: decimal; &quot;&gt;&lt;p style=&quot;font-family: inherit; font-style: inherit; margin-top: 1.5em; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; &quot;&gt;Click &lt;b style=&quot;font-weight: bold; &quot;&gt;OK&lt;/b&gt; and then close &lt;i&gt;Registry Editor&lt;/i&gt;.&lt;/p&gt;&lt;/li&gt;&lt;li style=&quot;font-family: inherit; font-style: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; list-style-type: decimal; &quot;&gt;&lt;p style=&quot;font-family: inherit; font-style: inherit; margin-top: 1.5em; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; &quot;&gt;Reboot your PC for the changes you made to take effect.&lt;/p&gt;&lt;/li&gt;&lt;li style=&quot;font-family: inherit; font-style: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 1.5em; margin-left: 30px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; list-style-type: decimal; &quot;&gt;&lt;p style=&quot;font-family: inherit; font-style: inherit; margin-top: 1.5em; margin-right: 0px; margin-bottom: 1.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: inherit; &quot;&gt;From this point forward, programs should no longer steal the focus from the window that you&#39;re currently working in.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thanksalotman.blogspot.com/feeds/6832997316107730592/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5891293935093365308/6832997316107730592' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5891293935093365308/posts/default/6832997316107730592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5891293935093365308/posts/default/6832997316107730592'/><link rel='alternate' type='text/html' href='http://thanksalotman.blogspot.com/2012/01/stop-windows-from-stealing-focus.html' title='Stop Windows From Stealing Focus'/><author><name>MrTwist</name><uri>http://www.blogger.com/profile/05059283899115065086</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgufch6gY1V3XaRQB96XbLYYqFzXjjf_U4HnmicaNkQNxcU0xzyYIH9be4_hX8lo_JkZqW3m_OZNmixGAQ8zZhUvz5nw7q8wPFVCnNzbhgeckgXW-YsuRaJHusIQZfm_oEPHbLD-oo7WaEUrsv04FFi56sWClKnw9wKfdxk0WGZldx/s220/54a38e78-7618-481d-872d-b1df2f0cf0ab.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5891293935093365308.post-8607864985695805612</id><published>2011-02-09T13:40:00.000-08:00</published><updated>2011-02-09T13:50:09.300-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="defect"/><category scheme="http://www.blogger.com/atom/ns#" term="excel"/><category scheme="http://www.blogger.com/atom/ns#" term="hp"/><category scheme="http://www.blogger.com/atom/ns#" term="quality center"/><category scheme="http://www.blogger.com/atom/ns#" term="requirement"/><category scheme="http://www.blogger.com/atom/ns#" term="scripts"/><category scheme="http://www.blogger.com/atom/ns#" term="test"/><category scheme="http://www.blogger.com/atom/ns#" term="upload"/><category scheme="http://www.blogger.com/atom/ns#" term="vista"/><category scheme="http://www.blogger.com/atom/ns#" term="win 7"/><category scheme="http://www.blogger.com/atom/ns#" term="windows"/><title type='text'>Uploading test scripts to HP Quality Center from Excel</title><content type='html'>I got stuck at Step 5 of uploading test scripts from Excel to HP Quality Center using the HP Excel HP Add-in. Step 5 is the part about selecting a map name.&lt;br /&gt;&lt;br /&gt;I would enter a map name and click &#39;Next&#39; and the process would not progress.&lt;br /&gt;&lt;br /&gt;The problem is that the Excel Add-in needs to have adminstrator privilege to create the map in QC.&lt;br /&gt;&lt;br /&gt;The solution is to run Excel as administrator, open the spreadsheet with the tests, and then start the HP QC Excel Add-in to upload the test scripts / defects / requirements.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://forums11.itrc.hp.com/service/forums/questionanswer.do?threadId=1355096&quot;&gt;Answer at HP.&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://thanksalotman.blogspot.com/feeds/8607864985695805612/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5891293935093365308/8607864985695805612' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5891293935093365308/posts/default/8607864985695805612'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5891293935093365308/posts/default/8607864985695805612'/><link rel='alternate' type='text/html' href='http://thanksalotman.blogspot.com/2011/02/uploading-test-scripts-to-hp-quality.html' title='Uploading test scripts to HP Quality Center from Excel'/><author><name>MrTwist</name><uri>http://www.blogger.com/profile/05059283899115065086</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgufch6gY1V3XaRQB96XbLYYqFzXjjf_U4HnmicaNkQNxcU0xzyYIH9be4_hX8lo_JkZqW3m_OZNmixGAQ8zZhUvz5nw7q8wPFVCnNzbhgeckgXW-YsuRaJHusIQZfm_oEPHbLD-oo7WaEUrsv04FFi56sWClKnw9wKfdxk0WGZldx/s220/54a38e78-7618-481d-872d-b1df2f0cf0ab.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5891293935093365308.post-6217800708333265281</id><published>2010-11-08T11:11:00.000-08:00</published><updated>2010-11-08T11:19:40.268-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="change"/><category scheme="http://www.blogger.com/atom/ns#" term="changer"/><category scheme="http://www.blogger.com/atom/ns#" term="genuine"/><category scheme="http://www.blogger.com/atom/ns#" term="key"/><category scheme="http://www.blogger.com/atom/ns#" term="validate"/><category scheme="http://www.blogger.com/atom/ns#" term="validation"/><category scheme="http://www.blogger.com/atom/ns#" term="windows"/><title type='text'>Change Windows XP Key</title><content type='html'>Here is what you need: &lt;b&gt;&lt;a href=&quot;http://www.microsoft.com/genuine/selfhelp/pkuinstructions.aspx&quot;&gt;Windows Product Key Update Tool&lt;/a&gt;&lt;/b&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;There are a bunch of scripts on the net that supposedly remove the non-working Windows key from your Windows installation but many of them do not work. This tool from Microsoft does what you need it to do with a minimum of fuss.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you&#39;re like me and have a bunch of keys from second-hand machines and can&#39;t remember which goes with which, this tool is handy for changing the key that was allowed for installation of Windows but won&#39;t validate with Windows Update or the Genuine Windows service. &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;</content><link rel='replies' type='application/atom+xml' href='http://thanksalotman.blogspot.com/feeds/6217800708333265281/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5891293935093365308/6217800708333265281' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5891293935093365308/posts/default/6217800708333265281'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5891293935093365308/posts/default/6217800708333265281'/><link rel='alternate' type='text/html' href='http://thanksalotman.blogspot.com/2010/11/change-windows-xp-key.html' title='Change Windows XP Key'/><author><name>MrTwist</name><uri>http://www.blogger.com/profile/05059283899115065086</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgufch6gY1V3XaRQB96XbLYYqFzXjjf_U4HnmicaNkQNxcU0xzyYIH9be4_hX8lo_JkZqW3m_OZNmixGAQ8zZhUvz5nw7q8wPFVCnNzbhgeckgXW-YsuRaJHusIQZfm_oEPHbLD-oo7WaEUrsv04FFi56sWClKnw9wKfdxk0WGZldx/s220/54a38e78-7618-481d-872d-b1df2f0cf0ab.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5891293935093365308.post-6781648195798950983</id><published>2010-02-24T14:09:00.000-08:00</published><updated>2015-11-04T02:07:27.444-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="e donkey"/><category scheme="http://www.blogger.com/atom/ns#" term="edonkey"/><category scheme="http://www.blogger.com/atom/ns#" term="fix"/><category scheme="http://www.blogger.com/atom/ns#" term="highid"/><category scheme="http://www.blogger.com/atom/ns#" term="low id"/><category scheme="http://www.blogger.com/atom/ns#" term="lowid"/><category scheme="http://www.blogger.com/atom/ns#" term="shareaza"/><title type='text'>How to fix eDonkey LOWID problem in Shareaza</title><content type='html'>&lt;br /&gt;
Having a LOWID with eDonkey is a bad situation because when your client gets to the front of the download queue, it won&#39;t send the request for the file. Below is how to fix your Shareaza connection.&lt;br /&gt;
&lt;br /&gt;
Your client will just still there waiting for the server to tell it that it may download the file and with the Shareaza implementation (a bug, maybe?), that will never happen.&lt;br /&gt;
&lt;br /&gt;
So here is the solution so you can get a HighID:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , &amp;quot;helvetica&amp;quot; , sans-serif; font-size: 85%;&quot;&gt;1) Click &quot;connection&quot; in the Shareaza settings and enter port number below 65535. Do &lt;span style=&quot;font-style: italic; font-weight: bold;&quot;&gt;NOT&lt;/span&gt; select &quot;random.&quot;&lt;br /&gt;2) Open/forward the port in your firewalls and/or routers.        Port forwarding tutorials for almost all routers are at&amp;nbsp;&lt;a href=&quot;http://portforward.com/&quot; target=&quot;_blank&quot;&gt;portforward.com&lt;/a&gt;.&lt;br /&gt;3) Connect Shareaza to eD2k and check that your Shareaza port is  really        open on &lt;a href=&quot;http://www.canyouseeme.org/&quot;&gt;http://www.canyouseeme.org&lt;/a&gt;.        If it isn&#39;t, go back to step 1.&lt;br /&gt;4) Low ID with open port? Disconnect from eD2k, hit F9 to open  &quot;Discovery        Services,&quot; right-click and make sure only &quot;Show server met&#39;s&quot;        is checked, then delete all Server met&#39;s.&lt;br /&gt;5) Hit F8 to open the Host Cache, select &quot;eDonkey Cache,&quot; select        all eDonkey hosts, and delete &#39;em all.&lt;br /&gt;6) Quit Shareaza, restart, and connect to eD2k&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://thanksalotman.blogspot.com/feeds/6781648195798950983/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5891293935093365308/6781648195798950983' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5891293935093365308/posts/default/6781648195798950983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5891293935093365308/posts/default/6781648195798950983'/><link rel='alternate' type='text/html' href='http://thanksalotman.blogspot.com/2010/02/how-to-fix-edonkey-lowid-problem-in.html' title='How to fix eDonkey LOWID problem in Shareaza'/><author><name>MrTwist</name><uri>http://www.blogger.com/profile/05059283899115065086</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgufch6gY1V3XaRQB96XbLYYqFzXjjf_U4HnmicaNkQNxcU0xzyYIH9be4_hX8lo_JkZqW3m_OZNmixGAQ8zZhUvz5nw7q8wPFVCnNzbhgeckgXW-YsuRaJHusIQZfm_oEPHbLD-oo7WaEUrsv04FFi56sWClKnw9wKfdxk0WGZldx/s220/54a38e78-7618-481d-872d-b1df2f0cf0ab.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5891293935093365308.post-5612991430195060819</id><published>2010-01-25T11:38:00.000-08:00</published><updated>2014-11-13T20:27:42.945-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="16 bit"/><category scheme="http://www.blogger.com/atom/ns#" term="32 bit"/><category scheme="http://www.blogger.com/atom/ns#" term="98"/><category scheme="http://www.blogger.com/atom/ns#" term="cardbus"/><category scheme="http://www.blogger.com/atom/ns#" term="dos"/><category scheme="http://www.blogger.com/atom/ns#" term="drivers"/><category scheme="http://www.blogger.com/atom/ns#" term="nt"/><category scheme="http://www.blogger.com/atom/ns#" term="pcmcia"/><category scheme="http://www.blogger.com/atom/ns#" term="xp"/><title type='text'>PCMCIA / CardBus drivers for Windows NT, XP, 98, DOS</title><content type='html'>&lt;a href=&quot;https://mega.co.nz/#!FZZ0FICA!ZI2PyivjIvudN2HsIJg4IIZq89yah8gr43obdCpaw6w&quot; target=&quot;_blank&quot;&gt;Here&lt;/a&gt; are some 16 and 32 bit PCMCIA / CardBus adapter drivers for Windows NT, XP, 98, and Dos.</content><link rel='replies' type='application/atom+xml' href='http://thanksalotman.blogspot.com/feeds/5612991430195060819/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5891293935093365308/5612991430195060819' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5891293935093365308/posts/default/5612991430195060819'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5891293935093365308/posts/default/5612991430195060819'/><link rel='alternate' type='text/html' href='http://thanksalotman.blogspot.com/2010/01/pcmcia-cardbus-drivers-for-windows-nt.html' title='PCMCIA / CardBus drivers for Windows NT, XP, 98, DOS'/><author><name>MrTwist</name><uri>http://www.blogger.com/profile/05059283899115065086</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgufch6gY1V3XaRQB96XbLYYqFzXjjf_U4HnmicaNkQNxcU0xzyYIH9be4_hX8lo_JkZqW3m_OZNmixGAQ8zZhUvz5nw7q8wPFVCnNzbhgeckgXW-YsuRaJHusIQZfm_oEPHbLD-oo7WaEUrsv04FFi56sWClKnw9wKfdxk0WGZldx/s220/54a38e78-7618-481d-872d-b1df2f0cf0ab.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5891293935093365308.post-9035831105915025042</id><published>2009-11-06T04:01:00.001-08:00</published><updated>2023-01-19T13:54:33.931-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="converter"/><category scheme="http://www.blogger.com/atom/ns#" term="E343"/><category scheme="http://www.blogger.com/atom/ns#" term="E344"/><category scheme="http://www.blogger.com/atom/ns#" term="E345"/><category scheme="http://www.blogger.com/atom/ns#" term="Sony NWZ"/><category scheme="http://www.blogger.com/atom/ns#" term="video"/><title type='text'>Getting a video to work on a Sony NWZ-E343 / E344 / E345</title><content type='html'>I tried a bunch of different methods to convert DivX videos to WMV so they would be watchable on my Sony NWZ E344 -- copying the files directly to the device, syncing via Window Media Player 11, using FormatFactory, but nothing worked.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
I finally downloaded and installed the &lt;a href=&quot;http://esupport.sony.com/US/perl/swu-spec-eula.pl?mdl=NWZE344&amp;amp;upd_id=5295&amp;amp;os_id=48&amp;amp;ULA=YES&quot;&gt;Sony Content Transfer&lt;/a&gt; application and it worked.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
It&#39;s drag-and-drop and super easy to use. &lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
I should have started there.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://thanksalotman.blogspot.com/feeds/9035831105915025042/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5891293935093365308/9035831105915025042' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5891293935093365308/posts/default/9035831105915025042'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5891293935093365308/posts/default/9035831105915025042'/><link rel='alternate' type='text/html' href='http://thanksalotman.blogspot.com/2009/11/getting-video-to-work-on-sony-nwz-e343.html' title='Getting a video to work on a Sony NWZ-E343 / E344 / E345'/><author><name>MrTwist</name><uri>http://www.blogger.com/profile/05059283899115065086</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgufch6gY1V3XaRQB96XbLYYqFzXjjf_U4HnmicaNkQNxcU0xzyYIH9be4_hX8lo_JkZqW3m_OZNmixGAQ8zZhUvz5nw7q8wPFVCnNzbhgeckgXW-YsuRaJHusIQZfm_oEPHbLD-oo7WaEUrsv04FFi56sWClKnw9wKfdxk0WGZldx/s220/54a38e78-7618-481d-872d-b1df2f0cf0ab.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5891293935093365308.post-407084744932046956</id><published>2009-05-28T16:48:00.000-07:00</published><updated>2009-05-28T16:52:58.634-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="9.04"/><category scheme="http://www.blogger.com/atom/ns#" term="Jaunty Jackalope"/><category scheme="http://www.blogger.com/atom/ns#" term="open office"/><category scheme="http://www.blogger.com/atom/ns#" term="Open Office 3.1"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu"/><title type='text'>How to upgrade Open Office on Ubuntu 9.04 Jaunty Jackalope</title><content type='html'>How to upgrade from your earlier Open Office to the new version of Open Office 3.1 in Ubuntu 9.04 Jaunty Jackalope .  &lt;p&gt;1. Add the repositories to &quot;Software Sources&quot;&lt;br /&gt;&lt;/p&gt;&lt;pre&gt;  &lt;span style=&quot;color:#003300;&quot;&gt;&lt;strong&gt;deb http://ppa.launchpad.net/openoffice-pkgs/ppa/ubuntu jaunty main&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre class=&quot;source-code&quot;&gt;&lt;span style=&quot;color:#003300;&quot;&gt;&lt;strong&gt;  deb-src http://ppa.launchpad.net/openoffice-pkgs/ppa/ubuntu jaunty main&lt;/strong&gt;&lt;/span&gt;&lt;/pre&gt;&lt;p class=&quot;source-code&quot;&gt; 2. Copy this pulic key and save it to your desktop under the name &quot;key&quot;&lt;/p&gt;&lt;p class=&quot;source-code&quot;&gt;&lt;span style=&quot;color:#ff0000;&quot;&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;pre class=&quot;source-code&quot;&gt;-----BEGIN PGP PUBLIC KEY BLOCK-----&lt;br /&gt;Version: SKS 1.0.10&lt;br /&gt;&lt;br /&gt;mI0ESXanRwEEAOTPu1sTcJChTjkA9LkIh6WqiBgPzxNY2p8w18Qt/cE3ev4VyjiIadZtr+fh&lt;br /&gt;C+kuRRQuRinLV+MzeD7Od3uqyR1plc90lqUeLeKJMgXfCoGMmKwng0qD2gpevIvEEpdlmsRo&lt;br /&gt;1hutsyRxAL3o/NfFpovg6dWC27Y1Vwwma8UIL5wXABEBAAG0K0xhdW5jaHBhZCBQUEEgZm9y&lt;br /&gt;IE9wZW5PZmZpY2Uub3JnIFNjcmliYmxlcnOIRgQQEQIABgUCSfELVQAKCRCOdOC7YXbF3vut&lt;br /&gt;AJ9MObKG5ZqP7PP1xcxnnWCJMbuVFgCgqG+XOCTAE8OmlhnofJ9vooh+pKeIRgQQEQIABgUC&lt;br /&gt;Sf9GaAAKCRAVC1z5P+pRYAsKAKCamb8nOz1dEYwaSZKgpjJmkUsvTACcD+Ze+9xguvDaRaCt&lt;br /&gt;XlMigrINEteItgQTAQIAIAUCSXanRwIbAwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEGDR&lt;br /&gt;EhckfRz/4QoEAOJ429PsO5oi1xsnX/lraHACYpHNvk4KVghucY2p6J8M0WTTlfls96jRYGlD&lt;br /&gt;BDuyZcfW0W+VJlaiu28u2Y9zEnXTWHMlIk6PiOmLPxXofgDflKRqvBFYdRD8+33TBeD6u6qa&lt;br /&gt;jNOLYTL08dnqCfVqmJTGZxqXTmYIOF1NdIs0KlF/&lt;br /&gt;=rx3y&lt;br /&gt;-----END PGP PUBLIC KEY BLOCK-----&lt;/pre&gt;&lt;/span&gt;&lt;/span&gt; &lt;/p&gt;&lt;p class=&quot;source-code&quot;&gt;3. Import the key using this command &lt;/p&gt;&lt;pre class=&quot;source-code&quot;&gt;&lt;span style=&quot;color:#003300;&quot;&gt;&lt;strong&gt;  sudo apt-key add /home/YourUsername/Desktop/key&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;p class=&quot;source-code&quot;&gt;If need be, change   /home/YourUsername/Desktop to location where you saved the key file.&lt;/p&gt;&lt;p class=&quot;source-code&quot;&gt; 4.  Now update and upgrade&lt;strong&gt;&lt;span style=&quot;color:#003300;&quot;&gt;&lt;span class=&quot;fullpost&quot;&gt;&lt;pre class=&quot;source-code&quot;&gt;  sudo apt-get update &amp;amp;&amp;amp; sudo apt-get dist-upgrade&lt;/pre&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://thanksalotman.blogspot.com/feeds/407084744932046956/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5891293935093365308/407084744932046956' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5891293935093365308/posts/default/407084744932046956'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5891293935093365308/posts/default/407084744932046956'/><link rel='alternate' type='text/html' href='http://thanksalotman.blogspot.com/2009/05/how-to-upgrade-open-office-on-ubuntu.html' title='How to upgrade Open Office on Ubuntu 9.04 Jaunty Jackalope'/><author><name>MrTwist</name><uri>http://www.blogger.com/profile/05059283899115065086</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgufch6gY1V3XaRQB96XbLYYqFzXjjf_U4HnmicaNkQNxcU0xzyYIH9be4_hX8lo_JkZqW3m_OZNmixGAQ8zZhUvz5nw7q8wPFVCnNzbhgeckgXW-YsuRaJHusIQZfm_oEPHbLD-oo7WaEUrsv04FFi56sWClKnw9wKfdxk0WGZldx/s220/54a38e78-7618-481d-872d-b1df2f0cf0ab.jpg'/></author><thr:total>0</thr:total></entry></feed>