<?xml version="1.0" encoding="utf-8" standalone="no"?><rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0"><channel><title>Arul Blog</title><description>Thoughts, Stories and Ideas</description><managingEditor>noemail@noemail.org (arul)</managingEditor><pubDate>Sun, 12 Jan 2025 15:33:39 +0530</pubDate><link>https://www.arulraj.net/</link><language>en-us</language><itunes:explicit>no</itunes:explicit><itunes:subtitle>Thoughts, Stories and Ideas</itunes:subtitle><itunes:owner><itunes:email>noemail@noemail.org</itunes:email></itunes:owner><xhtml:meta content="noindex" name="robots" xmlns:xhtml="http://www.w3.org/1999/xhtml"/><item><title>No More Basic Auth : htpasswd with OAuth2 Proxy</title><link>https://www.arulraj.net/2024/12/no-more-basic-auth-htpasswd-with-oauth2-proxy/</link><category>Security</category><category>proxy</category><category>Traefik</category><category>APISix</category><category>nginx</category><author>noemail@noemail.org (arul)</author><pubDate>Sun, 15 Dec 2024 20:44:14 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2024-12-15:/2024/12/no-more-basic-auth-htpasswd-with-oauth2-proxy/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>In this blog post, we are going to see how we can enable authentication based on an htpasswd file using OAuth2 Proxy.</p>
<p>Before that, let’s discuss the problems with htpasswd + Basic Authentication.</p>
<h2 id="the-problem">The problem</h2>
<h3 id="what-is-an-htpasswd-file">What is an htpasswd File?</h3>
<p>An <code>htpasswd</code> file contains a finite number of usernames and passwords encrypted using the highly secure bcrypt algorithm. The file looks like the following:</p>
<div class="highlight"><pre><span></span><code><span class="k">admin</span><span class="nv">@mycompany</span><span class="p">.</span><span class="nl">com</span><span class="p">:</span><span class="err">$</span><span class="mi">2</span><span class="n">y</span><span class="err">$</span><span class="mi">05</span><span class="err">$</span><span class="n">Npda</span><span class="o">/</span><span class="n">wcHOGrBKYgr9sNJo</span><span class="p">.</span><span class="o">/</span><span class="n">O8KZbXQqwTrF0BcRxiS5Vr</span><span class="p">.</span><span class="n">P37zDJC</span>
<span class="k">user</span><span class="nv">@mycompany</span><span class="p">.</span><span class="nl">com</span><span class="p">:</span><span class="err">$</span><span class="mi">2</span><span class="n">y</span><span class="err">$</span><span class="mi">05</span><span class="err">$</span><span class="n">crIQ3pU</span><span class="o">/</span><span class="n">dJi2T6c8IM1UNOXV6KlgxjvFBvJH2ZfmmhgRSS8qObZVu</span>
<span class="n">another</span><span class="o">-</span><span class="k">user</span><span class="nv">@mycompany</span><span class="p">.</span><span class="nl">com</span><span class="p">:</span><span class="err">$</span><span class="mi">2</span><span class="n">y</span><span class="err">$</span><span class="mi">05</span><span class="err">$</span><span class="n">tQrvnJQgeroRwi8FJgHsUufUZpU3lrmoMMXC9xYZ9XA9Kno0iwDWy</span>
</code></pre></div>
<p>Most of the time, the htpasswd file is used in conjunction with Basic Authentication. Basic Authentication works by sending a Base64-encoded username and password as an <code>Authorization</code> header in every request. On the server side, these credentials are validated against the htpasswd file.</p>
<!-- ### Proxies That Support This Authentication Method

The following proxies support this method of authentication:

* [NGinx](https://docs.nginx.com/nginx/admin-guide/security-controls/configuring-http-basic-authentication/)
* [HAProxy](https://www.haproxy.com/documentation/haproxy-configuration-tutorials/authentication/basic-authentication/)
* [Traefik](https://doc.traefik.io/traefik/middlewares/http/basicauth/)
* [APISix](https://apisix.apache.org/docs/apisix/plugins/basic-auth/)
* [Caddy](https://caddyserver.com/docs/caddyfile/directives/basic_auth)
* [Envoy](https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/basic_auth_filter.html) -->
<h3 id="why-is-this-the-most-insecure-way-to-handle-authentication">Why Is This the Most Insecure Way to Handle Authentication?</h3>
<p>Using htpasswd with Basic Authentication is considered highly insecure for the following reasons:</p>
<ul>
<li><strong>Plain Username and Password Are Sent in Every Request</strong><ul>
<li>Although encoded in Base64, it is easily decodable.</li>
</ul>
</li>
<li><strong>Lack of Session Management</strong><ul>
<li>There is no session handling; credentials are sent repeatedly with every request.</li>
</ul>
</li>
<li><strong>Password Stored in Client-Side Cache as Plain Text</strong><ul>
<li>If the client device is compromised, cached credentials can be exploited.</li>
</ul>
</li>
<li><strong>Exposure in Logs</strong><ul>
<li>Credentials can appear in browser history, server logs, and proxy logs, increasing the chances of leakage.</li>
</ul>
</li>
<li><strong>No Logout Mechanism</strong><ul>
<li>There is no way to log out a user or invalidate credentials once they are compromised.</li>
</ul>
</li>
</ul>
<p>You might also have seen this method in use in legacy devices, such as older routers and network appliances.</p>
<p><img alt="basic-auth-popup.png" src="https://www.arulraj.net/assets/images/basic-auth-popup.png"/></p>
<h2 id="the-objective">The Objective</h2>
<p>The <strong>htpasswd</strong> file is an excellent fit for applications with a finite number of users. If an application wants to leverage the flexibility of an htpasswd file but without relying on Basic Authentication, <strong>OAuth2-Proxy</strong> is the perfect solution for this use case.</p>
<p>OAuth2-Proxy creates a cookie-based session upon login and uses this cookie for subsequent authentication. The cookie has an expiration time and can be refreshed at regular intervals. It also includes built-in support for CSRF tokens, enhancing security.</p>
<h2 id="the-challenges">The challenges</h2>
<p>While there are various ways to replace Basic Authentication, we’ve chosen to address it using the open-source software <a href="https://github.com/oauth2-proxy/oauth2-proxy">OAuth2-Proxy</a>. However, using OAuth2-Proxy comes with its own set of challenges:</p>
<ul>
<li><strong>Focus on OIDC/OAuth2-Based Authentication</strong><ul>
<li>As the name suggests, OAuth2-Proxy primarily focuses on OpenID Connect (OIDC) and OAuth2 authentication methods.</li>
<li>By default, the application requires <strong>at least one OIDC provider to be configured</strong>.</li>
<li>There is no official support for disable provider <a href="https://github.com/oauth2-proxy/oauth2-proxy/issues/1725#issuecomment-1195865190">https://github.com/oauth2-proxy/oauth2-proxy/issues/1725#issuecomment-1195865190</a></li>
<li>The <code>htpasswd</code> file-based authentication is optional and secondary.</li>
</ul>
</li>
<li><strong>No Support for External Standalone Login Pages</strong><ul>
<li>OAuth2-Proxy includes a built-in login page, which can be customized. However, it is pure HTML and lacks advanced design capabilities.</li>
<li>If your application uses a <strong>ReactJS-based branded login page</strong>, it won’t be supported by default.</li>
</ul>
</li>
</ul>
<h2 id="solutions">Solutions</h2>
<p>There are two main approaches to address these challenges:</p>
<ul>
<li>Dummy OAuth2 Provider + Built-in Login Page.</li>
<li>Dummy OAuth2 Provider + Standalone Login page.</li>
</ul>
<p>The OAuth2-Proxy can be run as a http proxy to route traffic to the upstream. In this setup, the routing is handled by some well known proxy and OAuth2-Proxy act as a <a href="https://doc.traefik.io/traefik/middlewares/http/forwardauth/">forward-auth</a>.</p>
<h3 id="with-built-in-login-page">with built-in login page</h3>
<p>I’m a big fan of <strong>Traefik Proxy</strong>! Its Docker label-based configuration is on another level🔥in CNCF ecosystem. For this setup, I’ve chosen Traefik as the reverse proxy in front of OAuth2-Proxy.</p>
<p><img alt="htpasswd-oauth2-proxy.drawio.png" src="https://www.arulraj.net/assets/images/htpasswd-oauth2-proxy.drawio.png"/></p>
<p>The config of oauth2 proxy is look like</p>
<div class="highlight"><pre><span></span><code>--client-id<span class="o">=</span>dummy-client-id,
--client-secret<span class="o">=</span>dummy-client-secret,
--cookie-expire<span class="o">=</span>168h,
--cookie-name<span class="o">=</span>_session,
--cookie-refresh<span class="o">=</span>30m,
--cookie-secret<span class="o">=</span><span class="nv">cbiGJkwts9Ye6XD2Pbt_L1jLcipIZBDMfMuqxDWRbeQ</span><span class="o">=</span>,
--custom-sign-in-logo<span class="o">=</span>https://avatars.githubusercontent.com/u/4029521?v<span class="o">=</span><span class="m">4</span>,
--custom-templates-dir<span class="o">=</span>/templates,
--cookie-secure<span class="o">=</span>false,
--email-domain<span class="o">=</span>*,
--footer<span class="o">=</span>Powered<span class="w"> </span>by<span class="w"> </span><a<span class="w"> <span class="nv">href</span><span class="o">=</span><span class="s1">'https://mycompany.com'</span>&gt;My<span class="w"> </span>Company,
--htpasswd-file<span class="o">=</span>/.htpasswd,
--http-address<span class="o">=</span><span class="m">0</span>.0.0.0:4181,
--provider<span class="o">=</span>google,
--proxy-prefix<span class="o">=</span>/auth,
--reverse-proxy<span class="o">=</span>true,
--set-authorization-header,
--set-xauthrequest,
--skip-provider-button<span class="o">=</span>false,
--upstream<span class="o">=</span>static://202
</a<span></code></pre></div>
<p>In this the client-id and client-secret are dummy values.</p>
<p><strong>The Login page</strong></p>
<p><img alt="oauth2-proxy-login-page.png" src="https://www.arulraj.net/assets/images/oauth2-proxy-login-page.png"/></p>
<p><strong>The Cookie</strong></p>
<p><img alt="oauth2-proxy-cookie-page.png" src="https://www.arulraj.net/assets/images/oauth2-proxy-cookie-page.png"/></p>
<p>The docker compose stack is in <a href="https://github.com/arulrajnet/oauth2-proxy-without-provider/tree/main/built-in-login-page">GitHub Repo</a></p>
<h3 id="with-standalone-login-page">with standalone login page</h3>
<p>In some cases, the login page also serve from the application. This is for, how to handle it.</p>
<p><img alt="htpasswd-oauth2-proxy-standalone-login.drawio.png" src="https://www.arulraj.net/assets/images/htpasswd-oauth2-proxy-standalone-login.drawio.png"/></p>
<p><strong>Traefik Config</strong></p>
<p>Remove the middleware for the <code>/login</code> and <code>/static</code> URL for app.</p>
<div class="highlight"><pre><span></span><code>- traefik.http.routers.app-noauth.rule=PathPrefix(`/login`) || PathPrefix(`/static`)
- traefik.http.routers.app-noauth.entrypoints=web
- traefik.http.routers.app-noauth.priority=200
</code></pre></div>
<p>Added errors middleware to handle errors.</p>
<div class="highlight"><pre><span></span><code><span class="o">-</span><span class="w"> </span><span class="n">traefik</span><span class="p">.</span><span class="n">http</span><span class="p">.</span><span class="n">middlewares</span><span class="p">.</span><span class="n">oauth2</span><span class="o">-</span><span class="n">proxy</span><span class="o">-</span><span class="n">error</span><span class="p">.</span><span class="n">errors</span><span class="p">.</span><span class="n">service</span><span class="o">=</span><span class="n">app</span><span class="nv">@docker</span>
<span class="o">-</span><span class="w"> </span><span class="n">traefik</span><span class="p">.</span><span class="n">http</span><span class="p">.</span><span class="n">middlewares</span><span class="p">.</span><span class="n">oauth2</span><span class="o">-</span><span class="n">proxy</span><span class="o">-</span><span class="n">error</span><span class="p">.</span><span class="n">errors</span><span class="p">.</span><span class="n">status</span><span class="o">=</span><span class="mi">401</span><span class="p">,</span><span class="mi">403</span>
<span class="o">-</span><span class="w"> </span><span class="n">traefik</span><span class="p">.</span><span class="n">http</span><span class="p">.</span><span class="n">middlewares</span><span class="p">.</span><span class="n">oauth2</span><span class="o">-</span><span class="n">proxy</span><span class="o">-</span><span class="n">error</span><span class="p">.</span><span class="n">errors</span><span class="p">.</span><span class="n">query</span><span class="o">=/</span><span class="n">login</span>
</code></pre></div>
<p>This is not working. TODO.</p>
<p><strong>OAuth2 Config</strong></p>
<p>The Login page written in Your Preferrable language.</p>
<p><img alt="oauth2-proxy-standalone-login-screen.png" src="https://www.arulraj.net/assets/images/oauth2-proxy-standalone-login-screen.png"/></p>
<p>The form POST request to <code>/auth/sign_in</code></p>
<p><strong>The Cookie</strong></p>
<p>There is no difference in the cookie.</p>
<h2 id="final-thoughts">Final Thoughts</h2>
<p>This solution eliminates Basic Authentication for your application using OAuth2 Proxy, making it ideal for newly developed software (Greenfield projects).</p>
<p>But what about the legacy devices and applications (Brownfield systems) in your network that have relied on Basic Authentication for decades? If you’re still accessing them using Basic Authentication, your system is at significant risk.</p>
<p>How can these systems be protected? This is a critical topic with plenty to discuss, which we’ll cover in detail in an upcoming <a href="shielding-legacy-applications-eliminating-basic-authentication-without-code-changes">post</a>(coming soon).</p>]]></content:encoded><description>&lt;p&gt;In this blog post, we are going to see how we can enable authentication based on an htpasswd file using OAuth2 Proxy.&lt;/p&gt;
&lt;p&gt;Before that, let&amp;rsquo;s discuss the problems with htpasswd + Basic Authentication.&lt;/p&gt;
&lt;h2 id="the-problem"&gt;The problem&lt;/h2&gt;
&lt;h3 id="what-is-an-htpasswd-file"&gt;What is an htpasswd File?&lt;/h3&gt;
&lt;p&gt;An &lt;code&gt;htpasswd&lt;/code&gt; file contains a finite number of usernames and …&lt;/p&gt;</description></item><item><title>Pi-Hole as Internet Parental Control</title><link>https://www.arulraj.net/2024/12/pi-hole-as-internet-parental-control/</link><category>Network</category><category>network</category><category>DIY</category><author>noemail@noemail.org (arul)</author><pubDate>Mon, 9 Dec 2024 07:54:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2024-12-09:/2024/12/pi-hole-as-internet-parental-control/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>This post explains how I am using Pi-hole to block the internet for my TV 📺. I am using Pi-hole as parental control 👨‍👩‍👧‍👦.</p>
<p>Some time back I set up <a href="https://github.com/pi-hole/pi-hole">pi-hole</a> on a Raspberry Pi in my home network to block advertisements.</p>
<blockquote class="twitter-tweet" data-dnt="true"><p dir="ltr" lang="en">~30% of my home internet traffic are tracking or advertisement. Now its all are blocked with <a href="https://twitter.com/hashtag/pihole?src=hash&amp;ref_src=twsrc%5Etfw">#pihole</a> <a href="https://t.co/mRai9IBwgb">pic.twitter.com/mRai9IBwgb</a></p>— arulraj.net (@arulrajnet) <a href="https://twitter.com/arulrajnet/status/1272530082129522688?ref_src=twsrc%5Etfw">June 15, 2020</a></blockquote>
<script async="" charset="utf-8" src="https://platform.twitter.com/widgets.js"></script>
<p>Now, I have reused it to block the internet for a specific device or domain.</p>
<h2 id="my-network">My network</h2>
<ul>
<li>The pi-Hole act as a DNS and DHCP server</li>
<li>Main Router is just a WAN provider<ul>
<li>Route 8.8.8.8, 4.4.4.4 and 8.8.4.4 traffic to 192.168.1.53</li>
<li>Youtube app or Android SmartTV doesn’t honor the DNS received via DHCP Offer.</li>
<li>Thats why route all the DNS traffic to pi-hole</li>
</ul>
</li>
<li>Extender is to widen the coverage</li>
</ul>
<p><img alt="my-home-network-pihole.drawio.png" src="https://www.arulraj.net/assets/images/my-home-network-pihole.drawio.png"/></p>
<h2 id="use-case">Use case</h2>
<p>At our home, TV time for the kids is mostly reserved for weekends. But once they start watching, getting them to stop can feel like a never-ending struggle. Forget asking for the remote; that’s practically impossible!</p>
<p>I needed a foolproof way to ensure the TV goes off after a set time without any arguments.</p>
<p>The Pi-hole came for rescue.</p>
<h2 id="hack">Hack</h2>
<p>A little bit background on Pi-Hole.</p>
<ul>
<li>Its a DNS server with the <a href="https://github.com/StevenBlack/hosts">advertisement domains</a> list.</li>
<li>Whenever a device try to resolve those domains, it returns as <code>0.0.0.0</code></li>
<li>Its also acts as DHCP server</li>
</ul>
<p><img alt="nslookup-output-of-tracking-domain-with-pi-hole.png" src="https://www.arulraj.net/assets/images/nslookup-output-of-tracking-domain-with-pi-hole.png"/></p>
<p>We are going to use the following resources to block internet.</p>
<ul>
<li>Groups - Its for grouping clients</li>
<li>Clients - Every MAC address in the network as client and assign the client to a Group</li>
<li>Domains - Custom whitelist or blocklist the domains and assign to a Group.</li>
</ul>
<p>These are the steps we are going to do</p>
<ul>
<li>Create a group.</li>
<li>Create domain. Add the domain to block and add that domain to group.</li>
<li>Create client and assign that client to group.</li>
</ul>
<p>Create a Group. This will used to add the blocklist client.</p>
<p><img alt="pi-hole-create-group.png" src="https://www.arulraj.net/assets/images/pi-hole-create-group.png"/>
Here I have created group called <code>Block_Internet</code></p>
<h2 id="to-block-all-internet-for-the-particular-device">To block all internet for the particular device</h2>
<p>Add a new block list domain.</p>
<p>Domains → Regex Filter</p>
<p>Regular Expression: <code>.*</code>
Comment: <code>Block All</code>
Click Add to Blacklist</p>
<p><img alt="pi-hole-regex-filter-for-block-all.png" src="https://www.arulraj.net/assets/images/pi-hole-regex-filter-for-block-all.png"/></p>
<p>Once added, change the group to <code>Block_Internet</code></p>
<p><img alt="pi-hole-add-the-black-list-to-group.png" src="https://www.arulraj.net/assets/images/pi-hole-add-the-black-list-to-group.png"/></p>
<p>Now add the client to the group.</p>
<p>In my case whenever the TV time got over, I will add the <code>TV</code> client into the list.</p>
<p><img alt="pi-hole-add-client-to-block-group.png" src="https://www.arulraj.net/assets/images/pi-hole-add-client-to-block-group.png"/></p>
<h2 id="to-block-youtube">To block youtube</h2>
<p>Add <code>*.googlevideo.com</code> domain to the regex filter.</p>
<h2 id="things-to-improve-on-pi-hole">Things to Improve on Pi-Hole</h2>
<ul>
<li>Time based restriction or group assignment</li>
<li>domain list support for this kind of use cases</li>
</ul>
<h2 id="final-thoughts">Final Thoughts</h2>
<p>All this blocking works perfectly—until the day they discover VPNs. For now, they’re too young to figure it out. To them, it’s just “Dad’s magic.” 😆</p>]]></content:encoded><description>&lt;p&gt;This post explains how I am using Pi-hole to block the internet for my TV &#128250;. I am using Pi-hole as parental control &#128104;‍&#128105;‍&#128103;‍&#128102;.&lt;/p&gt;
&lt;p&gt;Some time back I set up &lt;a href="https://github.com/pi-hole/pi-hole"&gt;pi-hole&lt;/a&gt; on a Raspberry Pi in my home network to block advertisements.&lt;/p&gt;
&lt;blockquote class="twitter-tweet" data-dnt="true"&gt;&lt;p lang="en" dir="ltr"&gt;~30% of my home internet traffic are tracking or advertisement …&lt;/p&gt;&lt;/blockquote&gt;</description></item><item><title>Golang Version Manager(GVM) for Windows Git Bash</title><link>https://www.arulraj.net/2024/10/golang-version-manager-gvm-for-windows-git-bash/</link><category>Development</category><category>Golang</category><category>Dev-Setup</category><category>Git-Bash</category><category>windows</category><author>noemail@noemail.org (arul)</author><pubDate>Sun, 20 Oct 2024 09:13:50 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2024-10-20:/2024/10/golang-version-manager-gvm-for-windows-git-bash/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>I use windows for my work and I frequently switch between Golang 18 and the latest version. Also I use Git Bash as terminal in my windows. Here is the steps to setup GVM in that. There is a slight difference between the official documentation. Thats why this post. </p>
<h2 id="what-official-documentation-says">What official documentation says?</h2>
<p>Most of you used this <a href="https://github.com/moovweb/gvm">gvm</a> . But this is doesn’t support for windows. So I have found this <a href="https://github.com/andrewkroh/gvm">andrewkroh/gvm: Go Version Manager</a> . Its supports windows as well. </p>
<p>If you are using powershell go with their documentation</p>
<div class="highlight"><pre><span></span><code><span class="o">[</span>Net.ServicePointManager<span class="o">]</span>::SecurityProtocol<span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"tls12"</span>
Invoke-WebRequest<span class="w"> </span>-URI<span class="w"> </span>https://github.com/andrewkroh/gvm/releases/download/v0.5.2/gvm-windows-amd64.exe<span class="w"> </span>-Outfile<span class="w"> </span>C:<span class="se">\W</span>indows<span class="se">\S</span>ystem32<span class="se">\g</span>vm.exe
gvm<span class="w"> </span>--format<span class="o">=</span>powershell<span class="w"> </span><span class="m">1</span>.23.2<span class="w"> </span><span class="p">|</span><span class="w"> </span>Invoke-Expression
go<span class="w"> </span>version
</code></pre></div>
<p>But there is no documentation for Git bash. </p>
<h2 id="how-to-do-in-git-bash">How to do in Git Bash</h2>
<h3 id="install">Install</h3>
<p>Open Git Bash.</p>
<p>This is for install gvm and install golang 1.18</p>
<div class="highlight"><pre><span></span><code>mkdir<span class="w"> </span>-p<span class="w"> </span>~/bin
curl<span class="w"> </span>-sL<span class="w"> </span>-o<span class="w"> </span>~/bin/gvm<span class="w"> </span>https://github.com/andrewkroh/gvm/releases/download/v0.5.2/gvm-windows-amd64.exe
chmod<span class="w"> </span>+x<span class="w"> </span>~/bin/gvm
gvm<span class="w"> </span>install<span class="w"> </span><span class="m">1</span>.18
</code></pre></div>
<h3 id="setup-default-golang">Setup default Golang</h3>
<p>The following will auto add it in your <code>.bashrc</code> file. This will setup golang 1.18 as default.</p>
<div class="highlight"><pre><span></span><code>cat<span class="w"> </span>&lt;&lt;<span class="w"> </span><span class="s2">"EOF"</span><span class="w"> </span>&gt;&gt;<span class="w"> </span>~/.bashrc
<span class="c1">#</span>
<span class="c1"># GVM (Go Version Manager) https://github.com/andrewkroh/gvm</span>
<span class="c1">#</span>
<span class="k">if</span><span class="w"> </span>which<span class="w"> </span>gvm<span class="w"> </span>&gt;<span class="w"> </span>/dev/null<span class="p">;</span><span class="w"> </span><span class="k">then</span>
<span class="w">  </span><span class="k">if</span><span class="w"> </span>gvm<span class="w"> </span>list<span class="w"> </span><span class="p">|</span><span class="w"> </span>grep<span class="w"> </span>-q<span class="w"> </span><span class="s2">"1.18"</span><span class="p">;</span><span class="w"> </span><span class="k">then</span>
<span class="w">    </span><span class="nb">eval</span><span class="w"> </span><span class="s2">"</span><span class="k">$(</span>gvm<span class="w"> </span>--format<span class="o">=</span>bash<span class="w"> </span><span class="m">1</span>.18<span class="k">)</span><span class="s2">"</span>
<span class="w">  </span><span class="k">fi</span>
<span class="k">fi</span>
EOF
</code></pre></div>
<h3 id="to-change-golang">To change Golang</h3>
<p>To change the golang to <code>1.23</code> from <code>1.18</code> on runtime</p>
<p>Install 1.23 if not already installed</p>
<div class="highlight"><pre><span></span><code>gvm<span class="w"> </span>install<span class="w"> </span><span class="m">1</span>.23
</code></pre></div>
<p>To change</p>
<div class="highlight"><pre><span></span><code><span class="nb">eval</span><span class="w"> </span><span class="k">$(</span>gvm<span class="w"> </span>use<span class="w"> </span>--format<span class="o">=</span>bash<span class="w"> </span><span class="m">1</span>.23<span class="k">)</span>
</code></pre></div>]]></content:encoded><description>&lt;p&gt;I use windows for my work and I frequently switch between Golang 18 and the latest version. Also I use Git Bash as terminal in my windows. Here is the steps to setup GVM in that. There is a slight difference between the official documentation. Thats why this post. &lt;/p&gt;
&lt;h2 id="what-official-documentation-says"&gt;What …&lt;/h2&gt;</description></item><item><title>How I copy and paste text from my PC to Phone</title><link>https://www.arulraj.net/2024/10/how-i-copy-and-paste-text-from-my-pc-to-phone/</link><category>Android</category><category>Tips-and-Tricks</category><author>noemail@noemail.org (arul)</author><pubDate>Fri, 18 Oct 2024 07:56:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2024-10-18:/2024/10/how-i-copy-and-paste-text-from-my-pc-to-phone/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>There are many ways to do this. I am following these two ways</p>
<ul>
<li>WhatsApp Web Way</li>
<li>QR Code Way</li>
</ul>
<h2 id="whatsapp-web">WhatsApp Web</h2>
<p>I am from Chennai, India. Here WhatsApp messenger app is widely used. So this app is installed by default.</p>
<p>We can access the messenger from PC via browser. <a href="https://web.whatsapp.com">web.whatsapp.com</a></p>
<p>In WhatsApp, you can chat against your own profile. You can use that for text copy and file transfer.</p>
<p><img alt="whatsapp-web-self-profile.png" src="https://www.arulraj.net/assets/images/whatsapp-web-self-profile.png"/></p>
<h2 id="qr-code">QR Code</h2>
<p>Use any online QR code generator to copy text. Then scan it using your camera app. My personal favorite is <a href="https://zxing.appspot.com/generator/">zxing</a></p>
<p><img alt="zxing-qr-code-generate-for-copy-text.png" src="https://www.arulraj.net/assets/images/zxing-qr-code-generate-for-copy-text.png"/></p>
<p>Personally I don’t want to install any extra software/app in my pc or phone. That is the reason I am following this.</p>
<p>What is your way of doing this?</p>]]></content:encoded><description>&lt;p&gt;There are many ways to do this. I am following these two ways&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;WhatsApp Web Way&lt;/li&gt;
&lt;li&gt;QR Code Way&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="whatsapp-web"&gt;WhatsApp Web&lt;/h2&gt;
&lt;p&gt;I am from Chennai, India. Here WhatsApp messenger app is widely used. So this app is installed by default.&lt;/p&gt;
&lt;p&gt;We can access the messenger from PC via browser. &lt;a href="https://web.whatsapp.com"&gt;web …&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Apisix Without etcd in Docker Compose</title><link>https://www.arulraj.net/2024/10/apisix-without-etcd-and-ssl-in-compose/</link><category>APISix</category><category>proxy</category><category>etcd</category><category>APISix</category><author>noemail@noemail.org (arul)</author><pubDate>Sat, 5 Oct 2024 07:14:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2024-10-05:/2024/10/apisix-without-etcd-and-ssl-in-compose/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>This  blog post for running apisix without ETCD.</p>
<h2 id="why">Why❓</h2>
<p>By default, apisix depends on etcd for storing configuration.</p>
<p>But most of the time your upstream services are fixed. Not changed often. Then do we really need etcd for configuration. Maintain and managing etcd cluster is pain and money 💲</p>
<p>Here is the <a href="https://apisix.apache.org/docs/apisix/deployment-modes/#standalone" target="_blank">standalone mode</a> to solve this.</p>
<h2 id="how">🤔How ?</h2>
<p>If you are geek, here is the <a href="https://github.com/arulrajnet/apisix_without_etcd">Github repo</a> for docker-compose example with full source code. Go there.</p>
<h3 id="configyaml">config.yaml</h3>
<p>This file has the configuration as you do earlier</p>
<div class="highlight"><pre><span></span><code><span class="nt">deployment</span><span class="p">:</span>
<span class="w">  </span><span class="nt">role</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">data_plane</span>
<span class="w">  </span><span class="nt">role_data_plane</span><span class="p">:</span>
<span class="w">    </span><span class="nt">config_provider</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">yaml</span>

<span class="c1">#END</span>
</code></pre></div>
<p>Here the <code>config_provider</code> as yaml.</p>
<p>This has to be mounted as <code>/usr/local/apisix/conf/config.yaml</code></p>
<h3 id="apisixyaml">apisix.yaml</h3>
<p>This file is responsible for routes, services and upstreams.  The file will be look like</p>
<div class="highlight"><pre><span></span><code><span class="nt">routes</span><span class="p">:</span>
<span class="w">  </span><span class="p p-Indicator">-</span>
<span class="w">    </span><span class="nt">uri</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">/*</span>
<span class="w">    </span><span class="nt">service_id</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">1</span>
<span class="nt">services</span><span class="p">:</span>
<span class="w">  </span><span class="p p-Indicator">-</span>
<span class="w">    </span><span class="nt">id</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">1</span>
<span class="w">    </span><span class="nt">upstream_id</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">1</span>
<span class="nt">upstreams</span><span class="p">:</span>
<span class="w">  </span><span class="p p-Indicator">-</span>
<span class="w">    </span><span class="nt">id</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">1</span>
<span class="w">    </span><span class="nt">nodes</span><span class="p">:</span>
<span class="w">      </span><span class="s">"web1:80"</span><span class="p p-Indicator">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">1</span>
<span class="w">    </span><span class="nt">type</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">roundrobin</span>

<span class="c1">#END</span>
</code></pre></div>
<p>This has to be mounted as <code>/usr/local/apisix/conf/apisix.yaml</code></p>
<h3 id="docker-composeyml">docker-compose.yml</h3>
<div class="highlight"><pre><span></span><code><span class="nt">services</span><span class="p">:</span>
<span class="w">  </span><span class="nt">apisix</span><span class="p">:</span>
<span class="w">    </span><span class="nt">image</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">apache/apisix:3.10.0-debian</span>
<span class="w">    </span><span class="nt">environment</span><span class="p">:</span>
<span class="w">      </span><span class="nt">APISIX_STAND_ALONE</span><span class="p">:</span><span class="w"> </span><span class="s">"true"</span>
<span class="w">    </span><span class="nt">volumes</span><span class="p">:</span>
<span class="w">      </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">${PWD}/apisix.yaml:/usr/local/apisix/conf/apisix.yaml</span>
<span class="w">      </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">${PWD}/config.yaml:/usr/local/apisix/conf/config.yaml</span>
<span class="w">    </span><span class="nt">ports</span><span class="p">:</span>
<span class="w">      </span><span class="c1"># Web - Proxy</span>
<span class="w">      </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">9080</span>
</code></pre></div>
<p>The common areas where manual errors occur</p>
<ul>
<li>The mounting path of the files.</li>
<li>The content of the files. The different content for different files.</li>
<li>The <code>#END</code> line at the end of file.</li>
<li>The environmental variable for apisix <code>APISIX_STAND_ALONE: "true"</code></li>
</ul>
<h2 id="what-is-on-the-repo">What is on the Repo?</h2>
<p>There are two upstreams behind the APISix.</p>
<p>The URI <code>/</code> and <code>/web1</code> forwards to the web1.</p>
<p>The URI <code>/web2</code> forwards to the web2.</p>
<p>These routes, services and upstreams configured in <a href="https://github.com/arulrajnet/apisix_without_etcd/blob/main/apisix.yaml">apisix.yaml</a></p>
<p><img alt="apisix-without-etcd.drawio.png" src="https://www.arulraj.net/assets/images/apisix-without-etcd.drawio.png"/></p>]]></content:encoded><description>&lt;p&gt;This  blog post for running apisix without ETCD.&lt;/p&gt;
&lt;h2 id="why"&gt;Why❓&lt;/h2&gt;
&lt;p&gt;By default, apisix depends on etcd for storing configuration.&lt;/p&gt;
&lt;p&gt;But most of the time your upstream services are fixed. Not changed often. Then do we really need etcd for configuration. Maintain and managing etcd cluster is pain and money &#128178;&lt;/p&gt;
&lt;p&gt;Here is …&lt;/p&gt;</description></item><item><title>Generate NATS seed and Keypair using Python nkeys</title><link>https://www.arulraj.net/2024/09/generate-nats-seed-and-keypair-using-python-nkeys/</link><category>Python</category><category>NATS</category><category>Cryptography</category><category>PyNacl</category><author>noemail@noemail.org (arul)</author><pubDate>Sat, 28 Sep 2024 09:32:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2024-09-28:/2024/09/generate-nats-seed-and-keypair-using-python-nkeys/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>This blog post about generate a seed, private key and public key using Python <a href="https://github.com/nats-io/nkeys.py">nkeys.py</a></p>
<p>I couldn’t find any direct example to create seed for user, account or cluster as like Golang or Java.</p>
<h2 id="golang-example">🐎Golang Example</h2>
<p>From their <a href="https://github.com/nats-io/nkeys/blob/main/README.md#basic-api-usage">source code</a> to create new user seed</p>
<div class="highlight"><pre><span></span><code><span class="c1">// Create a new User KeyPair</span>
<span class="nx">user</span><span class="p">,</span><span class="w"> </span><span class="nx">_</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">nkeys</span><span class="p">.</span><span class="nx">CreateUser</span><span class="p">()</span>

<span class="c1">// Access the seed, the only thing that needs to be stored and kept safe.</span>
<span class="nx">seed</span><span class="p">,</span><span class="w"> </span><span class="nx">_</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">user</span><span class="p">.</span><span class="nx">Seed</span><span class="p">()</span>

<span class="c1">// Access the public key which can be shared.</span>
<span class="nx">publicKey</span><span class="p">,</span><span class="w"> </span><span class="nx">_</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">user</span><span class="p">.</span><span class="nx">PublicKey</span><span class="p">()</span>
</code></pre></div>
<h2 id="java-example">☕Java Example</h2>
<p>From their <a href="https://javadoc.io/static/io.nats/jnats/2.6.6/io/nats/client/NKey.html">javadoc</a> to create new user seed</p>
<p><img alt="nats-nkey-java-example.png" src="https://www.arulraj.net/assets/images/nats-nkey-java-example.png"/>
The pseudo code for create user is look like</p>
<div class="highlight"><pre><span></span><code><span class="kn">import</span><span class="w"> </span><span class="nn">io.nats.client.NKey</span><span class="p">;</span>

<span class="n">NKey</span><span class="w"> </span><span class="n">nkey</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">NKey</span><span class="p">.</span><span class="na">createUser</span><span class="p">(</span><span class="kc">null</span><span class="p">);</span>
<span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">nkey</span><span class="p">.</span><span class="na">getPublicKey</span><span class="p">());</span>
<span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">nkey</span><span class="p">.</span><span class="na">getSeed</span><span class="p">());</span>
</code></pre></div>
<p>The source code is in <a href="https://github.com/nats-io/nkeys.java">here</a></p>
<h2 id="python-example">🐍Python Example</h2>
<p>The source code is in <a href="https://github.com/nats-io/nkeys.py">here</a> . But there is no reference to create user, account or cluster.</p>
<p><img alt="nats-nkey-python-example-on-their-repo.png" src="https://www.arulraj.net/assets/images/nats-nkey-python-example-on-their-repo.png"/></p>
<p>Their documentation talks about from a seed file how we can decode user. Doesn’t talks about create new one in anywhere.</p>
<p>So I have create an example for creating seed for different purposes.</p>
<p>First of all you have to install nkeys</p>
<div class="highlight"><pre><span></span><code>pip<span class="w"> </span>install<span class="w"> </span>nkeys
</code></pre></div>
<h3 id="create-user">Create User</h3>
<p>Create seed for User</p>
<div class="highlight"><pre><span></span><code><span class="kn">import</span><span class="w"> </span><span class="nn">nkeys</span>
<span class="kn">from</span><span class="w"> </span><span class="nn">nacl.signing</span><span class="w"> </span><span class="kn">import</span> <span class="n">SigningKey</span>

<span class="n">signing_key</span> <span class="o">=</span> <span class="n">SigningKey</span><span class="o">.</span><span class="n">generate</span><span class="p">()</span><span class="o">.</span><span class="n">encode</span><span class="p">()</span>

<span class="c1"># Nats encoded seed for user</span>
<span class="n">src</span> <span class="o">=</span> <span class="n">nkeys</span><span class="o">.</span><span class="n">encode_seed</span><span class="p">(</span><span class="n">signing_key</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="n">nkeys</span><span class="o">.</span><span class="n">PREFIX_BYTE_USER</span><span class="p">)</span>

<span class="c1"># Seed</span>
<span class="n">seed</span> <span class="o">=</span> <span class="n">nkeys</span><span class="o">.</span><span class="n">from_seed</span><span class="p">(</span><span class="n">src</span><span class="p">)</span><span class="o">.</span><span class="n">seed</span>

<span class="c1"># Private Key</span>
<span class="n">private_key</span> <span class="o">=</span> <span class="n">nkeys</span><span class="o">.</span><span class="n">from_seed</span><span class="p">(</span><span class="n">src</span><span class="p">)</span><span class="o">.</span><span class="n">private_key</span>

<span class="c1"># Public Key</span>
<span class="n">public_key</span> <span class="o">=</span> <span class="n">nkeys</span><span class="o">.</span><span class="n">from_seed</span><span class="p">(</span><span class="n">src</span><span class="p">)</span><span class="o">.</span><span class="n">public_key</span>
</code></pre></div>
<h3 id="create-account">Create Account</h3>
<p>Create seed for Account</p>
<div class="highlight"><pre><span></span><code><span class="kn">import</span><span class="w"> </span><span class="nn">nkeys</span>
<span class="kn">from</span><span class="w"> </span><span class="nn">nacl.signing</span><span class="w"> </span><span class="kn">import</span> <span class="n">SigningKey</span>

<span class="n">signing_key</span> <span class="o">=</span> <span class="n">SigningKey</span><span class="o">.</span><span class="n">generate</span><span class="p">()</span><span class="o">.</span><span class="n">encode</span><span class="p">()</span>

<span class="c1"># Nats encoded seed for account</span>
<span class="n">src</span> <span class="o">=</span> <span class="n">nkeys</span><span class="o">.</span><span class="n">encode_seed</span><span class="p">(</span><span class="n">signing_key</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="n">nkeys</span><span class="o">.</span><span class="n">PREFIX_BYTE_ACCOUNT</span><span class="p">)</span>

<span class="c1"># Seed</span>
<span class="n">seed</span> <span class="o">=</span> <span class="n">nkeys</span><span class="o">.</span><span class="n">from_seed</span><span class="p">(</span><span class="n">src</span><span class="p">)</span><span class="o">.</span><span class="n">seed</span>

<span class="c1"># Private Key</span>
<span class="n">private_key</span> <span class="o">=</span> <span class="n">nkeys</span><span class="o">.</span><span class="n">from_seed</span><span class="p">(</span><span class="n">src</span><span class="p">)</span><span class="o">.</span><span class="n">private_key</span>

<span class="c1"># Public Key</span>
<span class="n">public_key</span> <span class="o">=</span> <span class="n">nkeys</span><span class="o">.</span><span class="n">from_seed</span><span class="p">(</span><span class="n">src</span><span class="p">)</span><span class="o">.</span><span class="n">public_key</span>
</code></pre></div>
<h3 id="create-cluster">Create Cluster</h3>
<p>Same way just change the prefix for others</p>
<p>Create seed for Cluster</p>
<div class="highlight"><pre><span></span><code><span class="c1"># Nats encoded seed for cluster</span>
<span class="n">src</span> <span class="o">=</span> <span class="n">nkeys</span><span class="o">.</span><span class="n">encode_seed</span><span class="p">(</span><span class="n">signing_key</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="n">nkeys</span><span class="o">.</span><span class="n">PREFIX_BYTE_CLUSTER</span><span class="p">)</span>
</code></pre></div>
<h3 id="create-server">Create Server</h3>
<p>Create seed for Server</p>
<div class="highlight"><pre><span></span><code><span class="c1"># Nats encoded seed for server</span>
<span class="n">src</span> <span class="o">=</span> <span class="n">nkeys</span><span class="o">.</span><span class="n">encode_seed</span><span class="p">(</span><span class="n">signing_key</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="n">nkeys</span><span class="o">.</span><span class="n">PREFIX_BYTE_SERVER</span><span class="p">)</span>
</code></pre></div>
<h3 id="create-operator">Create Operator</h3>
<p>Create seed for Operator</p>
<div class="highlight"><pre><span></span><code><span class="c1"># Nats encoded seed for server</span>
<span class="n">src</span> <span class="o">=</span> <span class="n">nkeys</span><span class="o">.</span><span class="n">encode_seed</span><span class="p">(</span><span class="n">signing_key</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="n">nkeys</span><span class="o">.</span><span class="n">PREFIX_BYTE_OPERATOR</span><span class="p">)</span>
</code></pre></div>
<p>You can find all the <a href="https://github.com/nats-io/nkeys.py/blob/main/nkeys/__init__.py#L24">prefix</a> in their source code.</p>
<h2 id="how-i-found">💡How I found</h2>
<p>I am always a believer of the show me the code principle. Also we learn more by seeing others code.</p>
<p>In this <a href="https://github.com/nats-io/nkeys.py/blob/main/nkeys/__init__.py#L59">code</a> they do padding with given binary array. Also they check the first byte against the predefined byte. Its all start from there.</p>
<h2 id="learnings-in-the-process">📖 Learnings in the process</h2>
<ul>
<li>As you know the keys used by NATS are <code>ED25519</code>. There is an python <a href="https://pypi.org/project/ed25519/">lib</a> for that</li>
<li>Python Nkeys earlier used that only and they <a href="https://github.com/nats-io/nkeys.py/pull/4/files">switch over</a> to PyNacl. Since the above lib is not working with latest Python.</li>
<li>Lot of the things get from their PyNacl <a href="https://pynacl.readthedocs.io/en/latest/signing/">doc</a></li>
<li>Got to know about <a href="https://github.com/nats-io/nats-box">nats-box</a> docker and <a href="https://github.com/nats-io/nsc">nsc</a> command line binary tool available to create creds file and other stuff.</li>
<li>The output of seed, private and public key starts with specific prefixes</li>
</ul>
<table>
<thead>
<tr>
<th>Type</th>
<th>Seed</th>
<th>Private Key</th>
<th>Public Key</th>
</tr>
</thead>
<tbody>
<tr>
<td>User</td>
<td>SU</td>
<td>P</td>
<td>U</td>
</tr>
<tr>
<td>Account</td>
<td>SA</td>
<td>P</td>
<td>A</td>
</tr>
<tr>
<td>Server</td>
<td>SN</td>
<td>P</td>
<td>N</td>
</tr>
<tr>
<td>Cluster</td>
<td>SC</td>
<td>P</td>
<td>C</td>
</tr>
<tr>
<td>Operator</td>
<td>SO</td>
<td>P</td>
<td>O</td>
</tr>
</tbody>
</table>]]></content:encoded><description>&lt;p&gt;This blog post about generate a seed, private key and public key using Python &lt;a href="https://github.com/nats-io/nkeys.py"&gt;nkeys.py&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I couldn&amp;rsquo;t find any direct example to create seed for user, account or cluster as like Golang or Java.&lt;/p&gt;
&lt;h2 id="golang-example"&gt;&#128014;Golang Example&lt;/h2&gt;
&lt;p&gt;From their &lt;a href="https://github.com/nats-io/nkeys/blob/main/README.md#basic-api-usage"&gt;source code&lt;/a&gt; to create new user seed&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="c1"&gt;// Create a new …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Docker Compose inline configuration file</title><link>https://www.arulraj.net/2024/09/docker-compose-inline-configuration-file/</link><category>Docker</category><category>docker-compose</category><author>noemail@noemail.org (arul)</author><pubDate>Sat, 21 Sep 2024 14:10:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2024-09-21:/2024/09/docker-compose-inline-configuration-file/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>You know I am the big fan of docker compose (fig 😸). I am the advanced user in compose and swarm. Deployed swarm based cluster for different product and its handles millions of request every day.</p>
<h2 id="the-requirement">The requirement</h2>
<p>Here is the example about how we can use a single YAML file for docker services and configuration. We don’t need separate file or folder maintained in the repo. Just single <code>docker-compose.yml</code> file is enough. All the configuration is with in that as inline content.</p>
<p>Lets dive into the topic.</p>
<ul>
<li>We want to deploy a nginx proxy.</li>
<li>Its has a configuration file.</li>
<li>It has HTML file to serve.</li>
<li>It has a image file to serve.</li>
</ul>
<h2 id="single-yaml">Single YAML</h2>
<p>How I can define the inline config file</p>
<div class="highlight"><pre><span></span><code><span class="nt">configs</span><span class="p">:</span>
<span class="w">  </span><span class="nt">nginx.conf</span><span class="p">:</span>
<span class="w">    </span><span class="nt">content</span><span class="p">:</span><span class="w"> </span><span class="p p-Indicator">|</span>
<span class="w">      </span><span class="no">your config file content</span>
</code></pre></div>
<p>Refer this <a href="https://github.com/compose-spec/compose-spec/blob/231b09c30d339e950c0da17fe5bdc793366b8fde/08-configs.md" target="_blank">doc</a> in GitHub.</p>
<p>Here is the compose yaml file for nginx serve the html file content.</p>
<div class="highlight"><pre><span></span><code><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">nginx-inline</span>
<span class="nt">services</span><span class="p">:</span>
<span class="w">  </span><span class="nt">nginx</span><span class="p">:</span>
<span class="w">    </span><span class="nt">image</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">nginx:1.27.1</span>
<span class="w">    </span><span class="nt">ports</span><span class="p">:</span>
<span class="w">      </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">8080:80</span>
<span class="w">    </span><span class="nt">configs</span><span class="p">:</span>
<span class="w">      </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">source</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">index.html</span>
<span class="w">        </span><span class="nt">target</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">/usr/share/nginx/html/index.html</span>
<span class="nt">configs</span><span class="p">:</span>
<span class="w">  </span><span class="nt">index.html</span><span class="p">:</span>
<span class="w">    </span><span class="nt">content</span><span class="p">:</span><span class="w"> </span><span class="p p-Indicator">|</span>
<span class="w">      </span><span class="no"><!DOCTYPE html>
</span>
<span class="w">      </span><span class="no"><html></html></span>
<span class="w">        </span><span class="no"><head></head></span>
<span class="w">          </span><span class="no"><title>Hello nginx</title></span>
<span class="w">          </span><span class="no"><meta charset="utf-8"/></span>
<span class="w">        </span><span class="no"></span>
<span class="w">        </span><span class="no"><body></body></span>
<span class="w">          </span><span class="no"><h1></h1></span>
<span class="w">            </span><span class="no">Hello arulraj.net!</span>
<span class="w">          </span><span class="no"></span>
<span class="w">        </span><span class="no"></span>
<span class="w">      </span><span class="no"></span>
</code></pre></div>
<p>Bring up the system using <code>docker-compose up -d</code>. Then access <a href="http://localhost:8080">http://localhost:8080</a></p>
<p>Now you see the page like this.</p>
<p><img alt="nginx-inline-example.png" src="https://www.arulraj.net/assets/images/nginx-inline-example.png"/></p>
<p>The index.html loaded successfully.</p>
<h2 id="environmental-interpolation">Environmental interpolation</h2>
<p>You can do the <a href="https://docs.docker.com/reference/compose-file/interpolation/" target="_blank">environmental interpolation</a> in <code>docker-compose.yml</code> file in a usual way.</p>
<ul>
<li>The good old <code>.env</code> file</li>
<li>OR use <code>export</code> before ran <code>docker-compose up -d</code></li>
</ul>
<p>The following content has <code>WELCOME_MESSAGE</code> in the index.html</p>
<div class="highlight"><pre><span></span><code><span class="nt">configs</span><span class="p">:</span>
<span class="w">  </span><span class="nt">index.html</span><span class="p">:</span>
<span class="w">    </span><span class="nt">content</span><span class="p">:</span><span class="w"> </span><span class="p p-Indicator">|</span>
<span class="w">      </span><span class="no"><!DOCTYPE html>
</span>
<span class="w">      </span><span class="no"><html></html></span>
<span class="w">        </span><span class="no"><head></head></span>
<span class="w">          </span><span class="no"><title>Hello nginx</title></span>
<span class="w">          </span><span class="no"><meta charset="utf-8"/></span>
<span class="w">        </span><span class="no"></span>
<span class="w">        </span><span class="no"><body></body></span>
<span class="w">          </span><span class="no"><h1></h1></span>
<span class="w">            </span><span class="no">${WELCOME_MESSAGE:-Hello, World!}</span>
<span class="w">          </span><span class="no"></span>
<span class="w">        </span><span class="no"></span>
<span class="w">      </span><span class="no"></span>
</code></pre></div>
<p>Then</p>
<div class="highlight"><pre><span></span><code><span class="k">export</span><span class="w"> </span><span class="n">WELCOME_MESSAGE</span><span class="o">=</span><span class="s2">"Hello, Arul!"</span>
<span class="n">docker</span><span class="o">-</span><span class="n">compose</span><span class="w"> </span><span class="n">up</span><span class="w"> </span><span class="o">-</span><span class="n">d</span>
</code></pre></div>
<h2 id="store-environmental-variable-as-config-file">Store environmental variable as config file</h2>
<p>Expose the host machine environment variable inside the container as config file.</p>
<div class="highlight"><pre><span></span><code><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">nginx-inline</span>
<span class="nt">services</span><span class="p">:</span>
<span class="w">  </span><span class="nt">nginx</span><span class="p">:</span>
<span class="w">    </span><span class="nt">image</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">nginx:1.21.1</span>
<span class="w">    </span><span class="nt">ports</span><span class="p">:</span>
<span class="w">      </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">8080:80</span>
<span class="w">    </span><span class="nt">configs</span><span class="p">:</span>
<span class="w">      </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">source</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">path.txt</span>
<span class="w">        </span><span class="nt">target</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">/usr/share/nginx/html/path.txt</span>
<span class="nt">configs</span><span class="p">:</span>
<span class="w">  </span><span class="nt">path.txt</span><span class="p">:</span>
<span class="w">    </span><span class="nt">environment</span><span class="p">:</span><span class="w"> </span><span class="s">"PATH"</span>
</code></pre></div>
<p>Here we expose the host machine <code>PATH</code> env as <code>path.txt</code></p>
<h2 id="binary-file">Binary file</h2>
<p>The binary file converted as <code>base64</code> and can be used.</p>
<p>But this is not supported in compose spec as like kubernetes.</p>
<p>Will update this post once its supported.</p>]]></content:encoded><description>&lt;p&gt;You know I am the big fan of docker compose (fig &#128568;). I am the advanced user in compose and swarm. Deployed swarm based cluster for different product and its handles millions of request every day.&lt;/p&gt;
&lt;h2 id="the-requirement"&gt;The requirement&lt;/h2&gt;
&lt;p&gt;Here is the example about how we can use a single YAML file …&lt;/p&gt;</description></item><item><title>Finding Library for Python Interactive CLI/Shell</title><link>https://www.arulraj.net/2024/09/finding-library-for-python-interactive-clishell/</link><category>Python</category><category>CLI</category><author>noemail@noemail.org (arul)</author><pubDate>Thu, 12 Sep 2024 07:16:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2024-09-12:/2024/09/finding-library-for-python-interactive-clishell/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>My requirement is to Ask question to user and the user select the answer from choices. I want the cli should be in python because the libraries the cli interact with is already developed python.</p>
<p>First I have found below from <a href="https://www.reddit.com/r/learnpython/comments/spphji/recommended_library_for_an_interactive_cli/" target="_blank">Reddit</a></p>
<p><a href="https://github.com/CITGuru/PyInquirer" target="_blank">PyInquirer</a></p>
<p>Its fits my requirement. But it seems not maintained. So searching for other <a href="https://www.google.com/search?q=pyinquirer+alternatives" target="_blank">alternatives</a>.</p>
<p>Found the below awesome list</p>
<p><a href="https://github.com/shadawck/awesome-cli-frameworks?tab=readme-ov-file#python" target="_blank">Awesome CLI Frameworks in python</a></p>
<p>Then short listed these</p>
<ul>
<li><a href="https://github.com/prompt-toolkit/python-prompt-toolkit" target="_blank">Python Prompt Toolkit</a></li>
<li><a href="https://github.com/CITGuru/PyInquirer" target="_blank">PyInquirer</a></li>
<li><a href="https://github.com/kazhala/InquirerPy" target="_blank">InquirerPy</a></li>
<li><a href="https://github.com/tmbo/questionary" target="_blank">Questionary</a></li>
</ul>
<p>My intuition says, I am mostly go with <code>Questionary</code> . Lets see. Will update the post after completed.</p>
<p>Got to know about</p>
<ul>
<li>Text User Interface - TUI</li>
<li>Seems python prompt toolkit is most <a href="https://github.com/prompt-toolkit/python-prompt-toolkit/blob/master/PROJECTS.rst" target="_blank">widely used</a> and actively maintained.</li>
<li><a href="https://github.com/SBoudrias/Inquirer.js/" target="_blank">Inquirer.js</a> for NodeJS</li>
<li><a href="https://github.com/spf13/cobra" target="_blank">Cobra</a> for Golang</li>
</ul>
<p>Created Git <a href="https://github.com/stars/arulrajnet/lists/cli" target="_blank">CLI</a> list.</p>]]></content:encoded><description>&lt;p&gt;My requirement is to Ask question to user and the user select the answer from choices. I want the cli should be in python because the libraries the cli interact with is already developed python.&lt;/p&gt;
&lt;p&gt;First I have found below from &lt;a href="https://www.reddit.com/r/learnpython/comments/spphji/recommended_library_for_an_interactive_cli/" target="_blank"&gt;Reddit&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/CITGuru/PyInquirer" target="_blank"&gt;PyInquirer&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Its fits my requirement. But it seems …&lt;/p&gt;</description></item><item><title>Install Docker, Compose and Buildx Manually</title><link>https://www.arulraj.net/2024/08/install-docker-compose-and-buildx-manually/</link><category>Docker</category><category>Tips-and-Tricks</category><author>noemail@noemail.org (arul)</author><pubDate>Mon, 19 Aug 2024 07:06:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2024-08-19:/2024/08/install-docker-compose-and-buildx-manually/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>In this article, Install the docker binary manually. The setup <code>compose</code> and <code>buildx</code>. So that <code>docker buildx</code> or <code>docker compose</code> (There is a space after docker) command will work as like any other installation.</p>
<p>These can be used install <code>docker with in docker.</code></p>
<h2 id="docker">Docker</h2>
<div class="highlight"><pre><span></span><code><span class="nv">DOCKER_VERSION</span><span class="o">=</span><span class="m">27</span>.2.0
curl<span class="w"> </span>-SLO<span class="w"> </span><span class="s2">"https://download.docker.com/linux/static/stable/x86_64/docker-</span><span class="si">${</span><span class="nv">DOCKER_VERSION</span><span class="si">}</span><span class="s2">.tgz"</span>
tar<span class="w"> </span>-xzvf<span class="w"> </span><span class="s2">"docker-</span><span class="si">${</span><span class="nv">DOCKER_VERSION</span><span class="si">}</span><span class="s2">.tgz"</span><span class="w"> </span>-C<span class="w"> </span>/tmp
cp<span class="w"> </span>/tmp/docker/docker<span class="w"> </span>/usr/local/bin/
rm<span class="w"> </span>-rf<span class="w"> </span>/tmp/docker
rm<span class="w"> </span>-rf<span class="w"> </span><span class="s2">"docker-</span><span class="si">${</span><span class="nv">DOCKER_VERSION</span><span class="si">}</span><span class="s2">.tgz"</span>
</code></pre></div>
<p>The compose and buildx comes under the docker cli plugins.</p>
<h3 id="docker-buildx">Docker Buildx</h3>
<div class="highlight"><pre><span></span><code><span class="nv">DOCKER_BUILDX_VERSION</span><span class="o">=</span><span class="m">0</span>.16.2
curl<span class="w"> </span>-SLO<span class="w"> </span><span class="s2">"https://github.com/docker/buildx/releases/download/v</span><span class="si">${</span><span class="nv">DOCKER_BUILDX_VERSION</span><span class="si">}</span><span class="s2">/buildx-v</span><span class="si">${</span><span class="nv">DOCKER_BUILDX_VERSION</span><span class="si">}</span><span class="s2">.linux-amd64"</span>
mkdir<span class="w"> </span>-p<span class="w"> </span><span class="si">${</span><span class="nv">HOME</span><span class="si">}</span>/.docker/cli-plugins
cp<span class="w"> </span><span class="s2">"buildx-v</span><span class="si">${</span><span class="nv">DOCKER_BUILDX_VERSION</span><span class="si">}</span><span class="s2">.linux-amd64"</span><span class="w"> </span><span class="si">${</span><span class="nv">HOME</span><span class="si">}</span>/.docker/cli-plugins/docker-buildx
rm<span class="w"> </span><span class="s2">"buildx-v</span><span class="si">${</span><span class="nv">DOCKER_BUILDX_VERSION</span><span class="si">}</span><span class="s2">.linux-amd64"</span>
</code></pre></div>
<h3 id="docker-compose">Docker Compose</h3>
<div class="highlight"><pre><span></span><code><span class="nv">DOCKER_COMPOSE_VERSION</span><span class="o">=</span>v2.29.2
curl<span class="w"> </span>-SLO<span class="w"> </span><span class="s2">"https://github.com/docker/compose/releases/download/</span><span class="si">${</span><span class="nv">DOCKER_COMPOSE_VERSION</span><span class="si">}</span><span class="s2">/docker-compose-linux-x86_64"</span>
mkdir<span class="w"> </span>-p<span class="w"> </span><span class="si">${</span><span class="nv">HOME</span><span class="si">}</span>/.docker/cli-plugins
cp<span class="w"> </span><span class="s2">"docker-compose-linux-x86_64"</span><span class="w"> </span><span class="si">${</span><span class="nv">HOME</span><span class="si">}</span>/.docker/cli-plugins/
rm<span class="w"> </span><span class="s2">"docker-compose-linux-x86_64"</span>
</code></pre></div>
<p>Read more <a href="https://docs.docker.com/compose/install/linux/">here</a></p>
<h2 id="usual-way-of-install-docker-and-compose">Usual way of install Docker and Compose</h2>
<p>Docker</p>
<div class="highlight"><pre><span></span><code>curl<span class="w"> </span>-sSL<span class="w"> </span>https://get.docker.com/<span class="w"> </span><span class="p">|</span><span class="w"> </span>sh
sudo<span class="w"> </span>usermod<span class="w"> </span>-aG<span class="w"> </span>docker<span class="w"> </span><span class="si">${</span><span class="nv">USER</span><span class="si">}</span>
</code></pre></div>
<p>Docker compose</p>
<div class="highlight"><pre><span></span><code><span class="nv">DOCKER_COMPOSE_VERSION</span><span class="o">=</span>v2.29.2
sudo<span class="w"> </span>curl<span class="w"> </span>-L<span class="w"> </span>https://github.com/docker/compose/releases/download/<span class="si">${</span><span class="nv">DOCKER_COMPOSE_VERSION</span><span class="si">}</span>/docker-compose-<span class="sb">`</span>uname<span class="w"> </span>-s<span class="sb">`</span>-<span class="sb">`</span>uname<span class="w"> </span>-m<span class="sb">`</span><span class="w"> </span>-o<span class="w"> </span>/usr/local/bin/docker-compose
sudo<span class="w"> </span>chmod<span class="w"> </span>+x<span class="w"> </span>/usr/local/bin/docker-compose
cat<span class="w"> </span>&lt;&lt;<span class="w"> </span><span class="s2">"EOF"</span><span class="w"> </span>&gt;&gt;<span class="w"> </span>~/.bashrc
<span class="nb">alias</span><span class="w"> </span><span class="nv">fig</span><span class="o">=</span><span class="s2">"docker-compose"</span>
EOF
</code></pre></div>
<h3 id="why-fig-alias">Why fig alias?</h3>
<p>The docker-compose project was originally named <code>fig</code> as an open-source initiative. After Docker acquired it, the project was renamed to <code>docker-compose</code>.</p>
<p>Just a history.</p>
<blockquote class="twitter-tweet"><p dir="ltr" lang="en">I wanted to call it "Plum" but thankfully <a href="https://twitter.com/AanandPrasad?ref_src=twsrc%5Etfw">@AanandPrasad</a> had better taste in names. <a href="https://t.co/V45MyfvYyG">https://t.co/V45MyfvYyG</a></p>— Ben Firshman (@bfirsh) <a href="https://twitter.com/bfirsh/status/1737641556386132396?ref_src=twsrc%5Etfw">December 21, 2023</a></blockquote>
<script async="" charset="utf-8" src="https://platform.twitter.com/widgets.js"></script>
<p>Refer this <a href="https://github.com/docker/compose/commit/8998bd1adc3def9e6e55b654b16415a46e1ca28b">commit</a></p>]]></content:encoded><description>&lt;p&gt;In this article, Install the docker binary manually. The setup &lt;code&gt;compose&lt;/code&gt; and &lt;code&gt;buildx&lt;/code&gt;. So that &lt;code&gt;docker buildx&lt;/code&gt; or &lt;code&gt;docker compose&lt;/code&gt; (There is a space after docker) command will work as like any other installation.&lt;/p&gt;
&lt;p&gt;These can be used install &lt;code&gt;docker with in docker.&lt;/code&gt;&lt;/p&gt;
&lt;h2 id="docker"&gt;Docker&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nv"&gt;DOCKER_VERSION&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;27&lt;/span&gt;.2.0
curl&lt;span class="w"&gt; &lt;/span&gt;-SLO …&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Install Android SDK Without Android Studio</title><link>https://www.arulraj.net/2024/08/install-android-sdk-without-android-studio/</link><category>Android</category><category>Mobile</category><category>Git-Bash</category><category>windows</category><author>noemail@noemail.org (arul)</author><pubDate>Sun, 18 Aug 2024 10:57:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2024-08-18:/2024/08/install-android-sdk-without-android-studio/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Recently I have found opensource <a href="https://github.com/KeyurDiwan/Water-Reminder">water reminder</a> application. But they don’t provide APK file in their releases. So I want to build the APK file from the source.</p>
<p>I don’t want to install Android Studio. Just want to setup Android SDK and build using Gradle. If you have these kind of niche requirement then this article for you.</p>
<p>I am using GitBash on windows. The steps will work on other operating system as well with minor tweaks.</p>
<h2 id="install-sdk">🥎Install SDK</h2>
<div class="highlight"><pre><span></span><code>mkdir -p $HOME/portable/android-sdk
</code></pre></div>
<p>Then Add the <code>ANDROID_SDK_ROOT</code> in <code>.bashrc</code></p>
<div class="highlight"><pre><span></span><code><span class="n">tee</span><span class="w"> </span><span class="o">-</span><span class="n">a</span><span class="w"> </span><span class="o">~/.</span><span class="n">bashrc</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="s2">"EOF"</span>
<span class="k">export</span><span class="w"> </span><span class="n">ANDROID_SDK_ROOT</span><span class="o">=</span><span class="s2">"$HOME/portable/android-sdk"</span>
<span class="k">export</span><span class="w"> </span><span class="n">PATH</span><span class="o">=</span><span class="s2">"$PATH:$ANDROID_SDK_ROOT/cmdline-tools/bin:$ANDROID_SDK_ROOT/platform-tools"</span>
<span class="n">EOF</span>
</code></pre></div>
<h3 id="cmdline-and-platform-tools">Cmdline and Platform tools</h3>
<p>Download the <code>cmdline-tools</code> and <code>platform-tools</code>. Then extract those inside the folder</p>
<div class="highlight"><pre><span></span><code><span class="n">curl</span><span class="w"> </span><span class="o">-</span><span class="n">L</span><span class="w"> </span><span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">dl</span><span class="o">.</span><span class="n">google</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">android</span><span class="o">/</span><span class="n">repository</span><span class="o">/</span><span class="n">commandlinetools</span><span class="o">-</span><span class="n">win</span><span class="o">-</span><span class="mi">11076708</span><span class="n">_latest</span><span class="o">.</span><span class="n">zip</span><span class="w"> </span><span class="o">-</span><span class="n">o</span><span class="w"> </span><span class="o">$</span><span class="n">HOME</span><span class="o">/</span><span class="n">portable</span><span class="o">/</span><span class="n">android</span><span class="o">-</span><span class="n">sdk</span><span class="o">/</span><span class="n">cmdlinetools</span><span class="o">-</span><span class="n">win</span><span class="o">.</span><span class="n">zip</span>

<span class="n">curl</span><span class="w"> </span><span class="o">-</span><span class="n">L</span><span class="w"> </span><span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">dl</span><span class="o">.</span><span class="n">google</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">android</span><span class="o">/</span><span class="n">repository</span><span class="o">/</span><span class="n">platform</span><span class="o">-</span><span class="n">tools</span><span class="o">-</span><span class="n">latest</span><span class="o">-</span><span class="n">windows</span><span class="o">.</span><span class="n">zip</span><span class="w"> </span><span class="o">-</span><span class="n">o</span><span class="w"> </span><span class="o">$</span><span class="n">HOME</span><span class="o">/</span><span class="n">portable</span><span class="o">/</span><span class="n">android</span><span class="o">-</span><span class="n">sdk</span><span class="o">/</span><span class="n">platform</span><span class="o">-</span><span class="n">tools</span><span class="o">.</span><span class="n">zip</span>
</code></pre></div>
<p>Extract</p>
<div class="highlight"><pre><span></span><code><span class="n">unzip</span><span class="w"> </span><span class="o">$</span><span class="n">HOME</span><span class="o">/</span><span class="n">portable</span><span class="o">/</span><span class="n">android</span><span class="o">-</span><span class="n">sdk</span><span class="o">/</span><span class="n">cmdlinetools</span><span class="o">-</span><span class="n">win</span><span class="o">.</span><span class="n">zip</span><span class="w"> </span><span class="o">-</span><span class="n">d</span><span class="w"> </span><span class="o">$</span><span class="n">HOME</span><span class="o">/</span><span class="n">portable</span><span class="o">/</span><span class="n">android</span><span class="o">-</span><span class="n">sdk</span><span class="o">/</span>
<span class="n">unzip</span><span class="w"> </span><span class="o">$</span><span class="n">HOME</span><span class="o">/</span><span class="n">portable</span><span class="o">/</span><span class="n">android</span><span class="o">-</span><span class="n">sdk</span><span class="o">/</span><span class="n">platform</span><span class="o">-</span><span class="n">tools</span><span class="o">.</span><span class="n">zip</span><span class="w"> </span><span class="o">-</span><span class="n">d</span><span class="w"> </span><span class="o">$</span><span class="n">HOME</span><span class="o">/</span><span class="n">portable</span><span class="o">/</span><span class="n">android</span><span class="o">-</span><span class="n">sdk</span><span class="o">/</span>
</code></pre></div>
<p>Install Android 30. This app requires this platform version.</p>
<div class="highlight"><pre><span></span><code><span class="n">cd</span><span class="w"> </span><span class="o">$</span><span class="n">HOME</span><span class="o">/</span><span class="n">portable</span><span class="o">/</span><span class="n">android</span><span class="o">-</span><span class="n">sdk</span><span class="o">/</span>
<span class="o">./</span><span class="n">cmdline</span><span class="o">-</span><span class="n">tools</span><span class="o">/</span><span class="n">bin</span><span class="o">/</span><span class="n">sdkmanager</span><span class="w"> </span><span class="o">--</span><span class="n">sdk_root</span><span class="o">=$</span><span class="p">{</span><span class="n">PWD</span><span class="p">}</span><span class="w"> </span><span class="o">--</span><span class="n">list</span>
<span class="o">./</span><span class="n">cmdline</span><span class="o">-</span><span class="n">tools</span><span class="o">/</span><span class="n">bin</span><span class="o">/</span><span class="n">sdkmanager</span><span class="w"> </span><span class="o">--</span><span class="n">sdk_root</span><span class="o">=$</span><span class="p">{</span><span class="n">PWD</span><span class="p">}</span><span class="w"> </span><span class="o">--</span><span class="n">install</span><span class="w"> </span><span class="s2">"platforms;android-30"</span>
<span class="o">./</span><span class="n">cmdline</span><span class="o">-</span><span class="n">tools</span><span class="o">/</span><span class="n">bin</span><span class="o">/</span><span class="n">sdkmanager</span><span class="w"> </span><span class="o">--</span><span class="n">sdk_root</span><span class="o">=$</span><span class="p">{</span><span class="n">PWD</span><span class="p">}</span><span class="w"> </span><span class="o">--</span><span class="n">install</span><span class="w"> </span><span class="s2">"build-tools;30.0.3"</span>
<span class="o">./</span><span class="n">cmdline</span><span class="o">-</span><span class="n">tools</span><span class="o">/</span><span class="n">bin</span><span class="o">/</span><span class="n">sdkmanager</span><span class="w"> </span><span class="o">--</span><span class="n">sdk_root</span><span class="o">=$</span><span class="p">{</span><span class="n">PWD</span><span class="p">}</span><span class="w"> </span><span class="o">--</span><span class="n">list_installed</span>
</code></pre></div>
<p>Now you have successfully installed Android SDK in your PC.</p>
<p>To Get the latest zip or file for other Operating Systems from here</p>
<p>To download <a href="https://developer.android.com/studio/index.html#command-line-tools-only">Command Line Tools Only</a></p>
<p>To download <a href="https://developer.android.com/tools/releases/platform-tools?hl=en#downloads">Platform Tools</a></p>
<p>If you want to uninstall particular version</p>
<div class="highlight"><pre><span></span><code><span class="o">./</span><span class="n">cmdline</span><span class="o">-</span><span class="n">tools</span><span class="o">/</span><span class="n">bin</span><span class="o">/</span><span class="n">sdkmanager</span><span class="w"> </span><span class="o">--</span><span class="n">sdk_root</span><span class="o">=$</span><span class="p">{</span><span class="n">PWD</span><span class="p">}</span><span class="w"> </span><span class="o">--</span><span class="n">uninstall</span><span class="w"> </span><span class="s2">"platforms;android-30"</span>
<span class="o">./</span><span class="n">cmdline</span><span class="o">-</span><span class="n">tools</span><span class="o">/</span><span class="n">bin</span><span class="o">/</span><span class="n">sdkmanager</span><span class="w"> </span><span class="o">--</span><span class="n">sdk_root</span><span class="o">=$</span><span class="p">{</span><span class="n">PWD</span><span class="p">}</span><span class="w"> </span><span class="o">--</span><span class="n">uninstall</span><span class="w"> </span><span class="s2">"build-tools;30.0.3"</span>
</code></pre></div>
<h2 id="build-app">🛠Build App</h2>
<p>Now I just clone the above app. Then</p>
<div class="highlight"><pre><span></span><code>gradle bundle
</code></pre></div>
<p>Then you can find the apk files in <code>Water-Reminder/app/build/outputs/apk/</code></p>
<h2 id="connect-your-phone">📱Connect Your Phone</h2>
<p>In Your phone</p>
<ul>
<li>Settings → About Phone → Build number → Tab 7 times</li>
<li>Then Setting → Developer Options → Enable USB debugging</li>
</ul>
<p>Then connect your phone via USB</p>
<div class="highlight"><pre><span></span><code><span class="o">./</span><span class="n">platform</span><span class="o">-</span><span class="n">tools</span><span class="o">/</span><span class="n">adb</span><span class="w"> </span><span class="n">devices</span><span class="w"> </span><span class="o">-</span><span class="n">l</span>
</code></pre></div>
<p>Now its should list your device.</p>
<h2 id="install-app">⛓Install App</h2>
<p>To install using adb</p>
<div class="highlight"><pre><span></span><code><span class="o">./</span><span class="n">platform</span><span class="o">-</span><span class="n">tools</span><span class="o">/</span><span class="n">adb</span><span class="w"> </span><span class="n">install</span><span class="w"> </span><span class="o">/</span><span class="n">path</span><span class="o">/</span><span class="n">of</span><span class="o">/</span><span class="n">app</span><span class="o">-</span><span class="n">debug</span><span class="o">.</span><span class="n">apk</span>
</code></pre></div>
<p>To install using gradle</p>
<div class="highlight"><pre><span></span><code>gradle installDebug
</code></pre></div>
<h2 id="issues-faced">🐛Issues faced</h2>
<h3 id="try-to-build-the-app-with-android-31">Try to build the app with android 31</h3>
<p>Initially I tried with the platform version <code>android-31</code> since my mobile Android version is 12. You can find the mapping <a href="https://en.wikipedia.org/wiki/Android_version_history">here</a></p>
<p>Changed the compileSdkVersion, buildToolsVersion and targetSdkVersion in build.gradle</p>
<div class="highlight"><pre><span></span><code>    compileSdkVersion 31
    buildToolsVersion "31.0.0"
    defaultConfig {
        applicationId "io.github.z3r0c00l_2k.aquadroid"
        minSdkVersion 21
        targetSdkVersion 31
</code></pre></div>
<p>While building the app with that version I got the following error.</p>
<div class="highlight"><pre><span></span><code><span class="n">Build</span><span class="o">-</span><span class="k">tool</span><span class="w"> </span><span class="mf">31.0</span><span class="o">.</span><span class="mi">0</span><span class="w"> </span><span class="k">is</span><span class="w"> </span><span class="n">missing</span><span class="w"> </span><span class="n">DX</span><span class="w"> </span><span class="n">at</span><span class="w"> </span><span class="n">android</span><span class="o">-</span><span class="n">sdk</span>\<span class="n">build</span><span class="o">-</span><span class="n">tools</span>\<span class="mf">31.0</span><span class="o">.</span><span class="mi">0</span>\<span class="n">dx</span><span class="o">.</span><span class="n">bat</span>
</code></pre></div>
<p><img alt="android-sdk-build-tool-31-error.png" src="https://www.arulraj.net/assets/images/android-sdk-build-tool-31-error.png"/></p>
<p>The fix for this is</p>
<div class="highlight"><pre><span></span><code><span class="n">cd</span><span class="w"> </span><span class="o">$</span><span class="n">HOME</span><span class="o">/</span><span class="n">portable</span><span class="o">/</span><span class="n">android</span><span class="o">-</span><span class="n">sdk</span><span class="o">/</span><span class="n">build</span><span class="o">-</span><span class="n">tools</span><span class="o">/</span><span class="mf">31.0</span><span class="o">.</span><span class="mi">0</span><span class="o">/</span>
<span class="n">ln</span><span class="w"> </span><span class="o">-</span><span class="n">s</span><span class="w"> </span><span class="n">d8</span><span class="o">.</span><span class="n">bat</span><span class="w"> </span><span class="n">dx</span><span class="o">.</span><span class="n">bat</span>

<span class="n">cd</span><span class="w"> </span><span class="o">$</span><span class="n">HOME</span><span class="o">/</span><span class="n">portable</span><span class="o">/</span><span class="n">android</span><span class="o">-</span><span class="n">sdk</span><span class="o">/</span><span class="n">build</span><span class="o">-</span><span class="n">tools</span><span class="o">/</span><span class="mf">31.0</span><span class="o">.</span><span class="mi">0</span><span class="o">/</span><span class="n">lib</span><span class="o">/</span>
<span class="n">ln</span><span class="w"> </span><span class="o">-</span><span class="n">s</span><span class="w"> </span><span class="n">d8</span><span class="o">.</span><span class="n">jar</span><span class="w"> </span><span class="n">dx</span><span class="o">.</span><span class="n">jar</span>
</code></pre></div>
<p>After this <code>gradle build</code> got success.</p>
<p>Refer <a href="https://github.com/microsoft/appcenter/issues/2341#issuecomment-1314272461">Github issue</a> . There is a issue in both 31 and 32 version of tools.</p>
<h3 id="cannot-install-without-signing">Cannot install without signing</h3>
<p>Initially try to install normal APK. Its not installed and got error. Debug build solves that problem</p>
<h3 id="different-notification-tone-for-this-app">Different Notification tone for this app</h3>
<p>Since its a water reminder app. I want to send different notification sound for this. To do that.</p>
<p>Settings → Apps → All apps → Water Reminder</p>
<p><img alt="android-sdk-water-reminder-notification.png" src="https://www.arulraj.net/assets/images/android-sdk-water-reminder-notification.png"/></p>
<p>Click on the Notification Channel. Then select the sound in that</p>
<p><img alt="android-sdk-water-reminder-notification-sound.png" src="https://www.arulraj.net/assets/images/android-sdk-water-reminder-notification-sound.png"/></p>]]></content:encoded><description>&lt;p&gt;Recently I have found opensource &lt;a href="https://github.com/KeyurDiwan/Water-Reminder"&gt;water reminder&lt;/a&gt; application. But they don&amp;rsquo;t provide APK file in their releases. So I want to build the APK file from the source.&lt;/p&gt;
&lt;p&gt;I don&amp;rsquo;t want to install Android Studio. Just want to setup Android SDK and build using Gradle. If you have …&lt;/p&gt;</description></item><item><title>WinGet Uninstall Multiple Package With Same Name</title><link>https://www.arulraj.net/2024/08/winget-uninstall-multiple-package-with-same-name/</link><category>Windows</category><category>Tips-and-Tricks</category><category>Git-Bash</category><author>noemail@noemail.org (arul)</author><pubDate>Sat, 17 Aug 2024 06:27:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2024-08-17:/2024/08/winget-uninstall-multiple-package-with-same-name/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>We want to remove a package from windows using <code>winget</code>.</p>
<p>Before uninstalling, list the package with the name.</p>
<p><img alt="winget-list-package.png" src="https://www.arulraj.net/assets/images/winget-list-package.png"/></p>
<p>There is two packages with the same name “WhatsApp Web”. But the Id and Version are different.</p>
<p>Use <code>winget list</code> to get all the installed packages.</p>
<h2 id="error-on-uninstall-with-specific-version">Error on uninstall with specific version</h2>
<p>Tried this</p>
<div class="highlight"><pre><span></span><code>winget<span class="w"> </span>uninstall<span class="w"> </span>--name<span class="w"> </span><span class="s2">"WhatsApp Web"</span><span class="w"> </span>--version<span class="w"> </span><span class="s2">"1.0.0.0"</span>
</code></pre></div>
<p>Got the following error</p>
<div class="highlight"><pre><span></span><code><span class="nx">Multiple</span><span class="w"> </span><span class="nx">installed</span><span class="w"> </span><span class="nx">packages</span><span class="w"> </span><span class="nx">found</span><span class="w"> </span><span class="nx">matching</span><span class="w"> </span><span class="nx">input</span><span class="w"> </span><span class="nx">criteria</span><span class="p">.</span><span class="w"> </span><span class="nx">Please</span><span class="w"> </span><span class="nx">refine</span><span class="w"> </span><span class="nx">the</span><span class="w"> </span><span class="nx">input</span><span class="p">.</span>
</code></pre></div>
<p><img alt="winget-uninstall-with-version.png" src="https://www.arulraj.net/assets/images/winget-uninstall-with-version.png"/></p>
<h2 id="error-on-uninstall-with-id">Error on uninstall with Id</h2>
<p>Tried this</p>
<div class="highlight"><pre><span></span><code>winget<span class="w"> </span>uninstall<span class="w"> </span>--name<span class="w"> </span><span class="s2">"WhatsApp Web"</span><span class="w"> </span>--id<span class="w"> </span>MSIX<span class="se">\w</span>eb.whatsapp.com-6EC4871F_1.0.0.0_neutral__910631y4v73xw
</code></pre></div>
<p>Got the following error</p>
<div class="highlight"><pre><span></span><code><span class="nx">No</span><span class="w"> </span><span class="nx">installed</span><span class="w"> </span><span class="kn">package</span><span class="w"> </span><span class="nx">found</span><span class="w"> </span><span class="nx">matching</span><span class="w"> </span><span class="nx">input</span><span class="w"> </span><span class="nx">criteria</span><span class="p">.</span>
</code></pre></div>
<p><img alt="winget-uninstall-with-id.png" src="https://www.arulraj.net/assets/images/winget-uninstall-with-id.png"/></p>
<h2 id="the-fix">The Fix</h2>
<p>We have to escape the backslash ()</p>
<div class="highlight"><pre><span></span><code>winget<span class="w"> </span>uninstall<span class="w"> </span>--name<span class="w"> </span><span class="s2">"WhatsApp Web"</span><span class="w"> </span>--id<span class="w"> </span>MSIX<span class="se">\\</span>web.whatsapp.com-6EC4871F_1.0.0.0_neutral__910631y4v73xw
</code></pre></div>
<p>Now its uninstalled successfully.</p>
<p><img alt="winget-unistall-success.png" src="https://www.arulraj.net/assets/images/winget-unistall-success.png"/></p>]]></content:encoded><description>&lt;p&gt;We want to remove a package from windows using &lt;code&gt;winget&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Before uninstalling, list the package with the name.&lt;/p&gt;
&lt;p&gt;&lt;img alt="winget-list-package.png" src="https://www.arulraj.net/assets/images/winget-list-package.png"&gt;&lt;/p&gt;
&lt;p&gt;There is two packages with the same name &amp;ldquo;WhatsApp Web&amp;rdquo;. But the Id and Version are different.&lt;/p&gt;
&lt;p&gt;Use &lt;code&gt;winget list&lt;/code&gt; to get all the installed packages.&lt;/p&gt;
&lt;h2 id="error-on-uninstall-with-specific-version"&gt;Error on uninstall with specific version …&lt;/h2&gt;</description></item><item><title>Start Blogging Again</title><link>https://www.arulraj.net/2024/08/start-blogging-again/</link><category>Blog</category><category>others</category><author>noemail@noemail.org (arul)</author><pubDate>Fri, 16 Aug 2024 11:04:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2024-08-16:/2024/08/start-blogging-again/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>It has been ~10 years since my last post. Every time I am thinking of writing back again, these are the questions in front of me</p>
<h3 id="why-no-post">❓ Why no post ?</h3>
<ul>
<li>Why should I write this as blog post ?. Just twitter/x post is sufficient right?</li>
<li>Does this really helpful to someone ?</li>
<li>Its just a small thing, just a little effort anyone can get to know themselves.</li>
<li>Does my employer like it or not ?</li>
<li>blah.. blah.. blah..</li>
</ul>
<p>A little bit background, In the past decade</p>
<ul>
<li>Get married and Got two kids. More responsibility and I really enjoy spend time with my family.</li>
<li>I work for an organization called IoTium Systems Private Ltd., I really love what I am doing there.</li>
</ul>
<p>Its been really hard to find time for this apart form Family + Work 😃</p>
<h2 id="why-now">⏰ Why now?</h2>
<p>Recently I went through a minor surgery. Nothing to worry. But, It made me think in multiple dimensions.</p>
<ul>
<li>Writing is clear my thoughts.</li>
<li>Its for me. Not for anyone.</li>
<li>Everything has my perspective even its small thing.</li>
<li>As long as not exposing confidential information, its fine.</li>
</ul>
<p>Also I am big believer of Gandhian Thoughts.. Here are some of quotes related to that</p>
<blockquote>
<p>கைகளால் ஒன்றை உருவாக்குபவன் தன் அகத்தை அதன் வழியாகச் சீரமைத்துக் கொள்கிறான்.
- காந்தி</p>
</blockquote>
<p><img alt="Image Credit: arunchol.com" src="https://www.arulraj.net/assets/images/gandhi-quote-about-small-thing.png"/>
Image Credit: arunchol.com</p>
<p>English Translations are</p>
<blockquote>
<p>Who builds something with his hands aligns his inner self through it.
- Gandhi</p>
<p>Even in the simplest way you can rock the world.
- Gandhi</p>
</blockquote>
<p>The another mantra I learned is <code>Dedicate</code>🧑‍🤝‍🧑. Even though 10/20% less in quality its fine. Empower the others.</p>
<h2 id="what-next">🎆 What next?</h2>
<p>FYI, I quit social media long back except <a href="https://x.com/arulrajnet">twitter</a> and <a href="https://www.reddit.com/user/arulrajnet/">reddit</a>. Even though I am not write on internet. I write a lot as confluence pages, JIRA comment and PR comments. I have been expert in many things in these days. When I look back I have been deep understanding of many things, The first principles. So I want to write those things.</p>
<p>Expect a post sooner not later.</p>]]></content:encoded><description>&lt;p&gt;It has been ~10 years since my last post. Every time I am thinking of writing back again, these are the questions in front of me&lt;/p&gt;
&lt;h3 id="why-no-post"&gt;❓ Why no post ?&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Why should I write this as blog post ?. Just twitter/x post is sufficient right?&lt;/li&gt;
&lt;li&gt;Does this really helpful to someone …&lt;/li&gt;&lt;/ul&gt;</description></item><item><title>Setup docker and tools</title><link>https://www.arulraj.net/2016/01/setup-docker-and-tools/</link><category>Docker</category><category>ubuntu</category><category>bash-completion</category><author>noemail@noemail.org (arul)</author><pubDate>Sun, 24 Jan 2016 06:34:22 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2016-01-24:/2016/01/setup-docker-and-tools/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Guide to install and configure docker and related tools.</p>
<h2 id="install-docker">Install Docker</h2>
<p>Installing docker on any bash systems.</p>
<div class="highlight"><pre><span></span><code>curl<span class="w"> </span>-sSL<span class="w"> </span>https://get.docker.com/<span class="w"> </span><span class="p">|</span><span class="w"> </span>sh
sudo<span class="w"> </span>usermod<span class="w"> </span>-aG<span class="w"> </span>docker<span class="w"> </span><span class="si">${</span><span class="nv">USER</span><span class="si">}</span>
</code></pre></div>
<h2 id="docker-tools">Docker Tools</h2>
<p><strong>Docker compose</strong></p>
<p>To install docker-compose</p>
<div class="highlight"><pre><span></span><code><span class="nv">VERSION</span><span class="o">=</span><span class="s2">"v2.24.6"</span>
sudo<span class="w"> </span>curl<span class="w"> </span>-L<span class="w"> </span>https://github.com/docker/compose/releases/download/<span class="si">${</span><span class="nv">VERSION</span><span class="si">}</span>/docker-compose-<span class="sb">`</span>uname<span class="w"> </span>-s<span class="sb">`</span>-<span class="sb">`</span>uname<span class="w"> </span>-m<span class="sb">`</span><span class="w"> </span>-o<span class="w"> </span>/usr/local/bin/docker-compose
sudo<span class="w"> </span>chmod<span class="w"> </span>+x<span class="w"> </span>/usr/local/bin/docker-compose
</code></pre></div>
<p>To install bash completions for docker-compose</p>
<div class="highlight"><pre><span></span><code>curl<span class="w"> </span>-ksSL<span class="w"> </span>https://raw.githubusercontent.com/docker/compose/<span class="k">$(</span>docker-compose<span class="w"> </span>--version<span class="w"> </span><span class="p">|</span><span class="w"> </span>awk<span class="w"> </span><span class="s1">'NR==1{print $NF}'</span><span class="k">)</span>/contrib/completion/bash/docker-compose<span class="w"> </span><span class="p">|</span>sudo<span class="w"> </span>tee<span class="w"> </span>/etc/bash_completion.d/docker-compose
</code></pre></div>
<p><strong>Docker alias</strong></p>
<p>Add this in your <code>.bashrc</code> file.</p>
<div class="highlight"><pre><span></span><code><span class="c1"># ------------------------------------</span>
<span class="c1"># Docker alias and function</span>
<span class="c1"># ------------------------------------</span>

<span class="c1"># Get latest container ID</span>
<span class="nb">alias</span><span class="w"> </span><span class="nv">dl</span><span class="o">=</span><span class="s2">"docker ps -l -q"</span>

<span class="c1"># Get container process</span>
<span class="nb">alias</span><span class="w"> </span><span class="nv">dps</span><span class="o">=</span><span class="s2">"docker ps"</span>

<span class="c1"># Get process included stop container</span>
<span class="nb">alias</span><span class="w"> </span><span class="nv">dpa</span><span class="o">=</span><span class="s2">"docker ps -a"</span>

<span class="c1"># Get images</span>
<span class="nb">alias</span><span class="w"> </span><span class="nv">di</span><span class="o">=</span><span class="s2">"docker images"</span>

<span class="c1"># Get container IP</span>
<span class="nb">alias</span><span class="w"> </span><span class="nv">dip</span><span class="o">=</span><span class="s2">"docker inspect --format '{{ .NetworkSettings.IPAddress }}'"</span>

<span class="c1"># Run deamonized container, e.g., $dkd base /bin/echo hello</span>
<span class="nb">alias</span><span class="w"> </span><span class="nv">dkd</span><span class="o">=</span><span class="s2">"docker run -d -P"</span>

<span class="c1"># Run interactive container, e.g., $dki base /bin/bash</span>
<span class="nb">alias</span><span class="w"> </span><span class="nv">dki</span><span class="o">=</span><span class="s2">"docker run -i -t -P"</span>

<span class="c1"># Execute interactive container, e.g., $dex base /bin/bash</span>
<span class="nb">alias</span><span class="w"> </span><span class="nv">dex</span><span class="o">=</span><span class="s2">"docker exec -i -t"</span>

<span class="c1"># Stop all containers</span>
dstop<span class="o">()</span><span class="w"> </span><span class="o">{</span><span class="w"> </span>docker<span class="w"> </span>stop<span class="w"> </span><span class="k">$(</span>docker<span class="w"> </span>ps<span class="w"> </span>-a<span class="w"> </span>-q<span class="k">)</span><span class="p">;</span><span class="w"> </span><span class="o">}</span>

<span class="c1"># Remove all containers</span>
drm<span class="o">()</span><span class="w"> </span><span class="o">{</span><span class="w"> </span>docker<span class="w"> </span>rm<span class="w"> </span><span class="k">$(</span>docker<span class="w"> </span>ps<span class="w"> </span>-a<span class="w"> </span>-q<span class="k">)</span><span class="p">;</span><span class="w"> </span><span class="o">}</span>

<span class="c1"># Stop and Remove all containers</span>
<span class="nb">alias</span><span class="w"> </span><span class="nv">drmf</span><span class="o">=</span><span class="s1">'docker stop $(docker ps -a -q) &amp;&amp; docker rm $(docker ps -a -q)'</span>

<span class="c1"># Remove all images</span>
dri<span class="o">()</span><span class="w"> </span><span class="o">{</span><span class="w"> </span>docker<span class="w"> </span>rmi<span class="w"> </span><span class="k">$(</span>docker<span class="w"> </span>images<span class="w"> </span>-q<span class="k">)</span><span class="p">;</span><span class="w"> </span><span class="o">}</span>

<span class="c1"># Dockerfile build, e.g., $dbu tcnksm/test</span>
dbu<span class="o">()</span><span class="w"> </span><span class="o">{</span><span class="w"> </span>docker<span class="w"> </span>build<span class="w"> </span>-t<span class="o">=</span><span class="nv">$1</span><span class="w"> </span>.<span class="p">;</span><span class="w"> </span><span class="o">}</span>

<span class="c1"># Show all alias related docker</span>
dalias<span class="o">()</span><span class="w"> </span><span class="o">{</span><span class="w"> </span><span class="nb">alias</span><span class="w"> </span><span class="p">|</span><span class="w"> </span>grep<span class="w"> </span><span class="s1">'docker'</span><span class="w"> </span><span class="p">|</span><span class="w"> </span>sed<span class="w"> </span><span class="s2">"s/^\([^=]*\)=\(.*\)/\1 =&gt; \2/"</span><span class="p">|</span><span class="w"> </span>sed<span class="w"> </span><span class="s2">"s/['|\']//g"</span><span class="w"> </span><span class="p">|</span><span class="w"> </span>sort<span class="p">;</span><span class="w"> </span><span class="o">}</span>
</code></pre></div>
<p>Refer from <a href="https://github.com/tcnksm/docker-alias/">https://github.com/tcnksm/docker-alias/</a></p>]]></content:encoded><description>&lt;p&gt;Guide to install and configure docker and related tools.&lt;/p&gt;
&lt;h2 id="install-docker"&gt;Install Docker&lt;/h2&gt;
&lt;p&gt;Installing docker on any bash systems.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;curl&lt;span class="w"&gt; &lt;/span&gt;-sSL&lt;span class="w"&gt; &lt;/span&gt;https://get.docker.com/&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;sh
sudo&lt;span class="w"&gt; &lt;/span&gt;usermod&lt;span class="w"&gt; &lt;/span&gt;-aG&lt;span class="w"&gt; &lt;/span&gt;docker&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;USER&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2 id="docker-tools"&gt;Docker Tools&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Docker compose&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;To install docker-compose&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nv"&gt;VERSION&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;v2.24.6&amp;quot;&lt;/span&gt;
sudo&lt;span class="w"&gt; &lt;/span&gt;curl&lt;span class="w"&gt; &lt;/span&gt;-L&lt;span class="w"&gt; &lt;/span&gt;https://github.com/docker/compose/releases/download …&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Bash completions for kubectl</title><link>https://www.arulraj.net/2016/01/bash-completions-for-kubectl/</link><category>Kubernetes</category><category>ubuntu</category><category>bash-completion</category><author>noemail@noemail.org (arul)</author><pubDate>Sat, 23 Jan 2016 12:26:32 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2016-01-23:/2016/01/bash-completions-for-kubectl/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>To install bash completion for your kubectl</p>
<p>Get your kubectl client version</p>
<div class="highlight"><pre><span></span><code>kubectl<span class="w"> </span>version<span class="w"> </span>-c
</code></pre></div>
<p>Get the completion script for the corresponding to your kubectl version.</p>
<p><strong>Ubuntu</strong></p>
<div class="highlight"><pre><span></span><code>curl<span class="w"> </span>-sSL<span class="w"> </span>https://raw.githubusercontent.com/kubernetes/kubernetes/<span class="k">$(</span>kubectl<span class="w"> </span>version<span class="w"> </span>-c<span class="w"> </span><span class="p">|</span><span class="w"> </span>grep<span class="w"> </span>-o<span class="w"> </span>-P<span class="w"> </span><span class="s1">'(?&lt;=GitCommit:").*(?=",)'</span><span class="k">)</span>/contrib/completions/bash/kubectl<span class="w"> </span><span class="p">|</span><span class="w"> </span>sudo<span class="w"> </span>tee<span class="w"> </span>/etc/bash_completion.d/kubectl
</code></pre></div>
<p><strong>Mac</strong></p>
<div class="highlight"><pre><span></span><code>brew<span class="w"> </span>install<span class="w"> </span>bash-completion
curl<span class="w"> </span>-sSL<span class="w"> </span>https://raw.githubusercontent.com/kubernetes/kubernetes/<span class="k">$(</span>kubectl<span class="w"> </span>version<span class="w"> </span>-c<span class="w"> </span><span class="p">|</span><span class="w"> </span>grep<span class="w"> </span>-o<span class="w"> </span>-P<span class="w"> </span><span class="s1">'(?&lt;=GitCommit:").*(?=",)'</span><span class="k">)</span>/contrib/completions/bash/kubectl<span class="w"> </span>&gt;<span class="w"> </span>/usr/local/etc/bash_completion.d/kubectl
</code></pre></div>
<figure class="align-center">
<img alt="/assets/images/2016/1/kubectl-bash-completion.png" src="/assets/images/2016/1/kubectl-bash-completion.png"/>
</figure>]]></content:encoded><description>&lt;p&gt;To install bash completion for your kubectl&lt;/p&gt;
&lt;p&gt;Get your kubectl client version&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;kubectl&lt;span class="w"&gt; &lt;/span&gt;version&lt;span class="w"&gt; &lt;/span&gt;-c
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Get the completion script for the corresponding to your kubectl version.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ubuntu&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;curl&lt;span class="w"&gt; &lt;/span&gt;-sSL&lt;span class="w"&gt; &lt;/span&gt;https://raw.githubusercontent.com/kubernetes/kubernetes/&lt;span class="k"&gt;$(&lt;/span&gt;kubectl&lt;span class="w"&gt; &lt;/span&gt;version&lt;span class="w"&gt; &lt;/span&gt;-c&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;grep&lt;span class="w"&gt; &lt;/span&gt;-o&lt;span class="w"&gt; &lt;/span&gt;-P&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;(?&amp;lt;=GitCommit:&amp;quot;).*(?=&amp;quot;,)&amp;#39;&lt;/span&gt;&lt;span class="k"&gt;)&lt;/span&gt;/contrib/completions/bash/kubectl&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;tee&lt;span class="w"&gt; &lt;/span&gt;/etc/bash_completion …&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Download any videos in android using youtube-dl</title><link>https://www.arulraj.net/2015/11/download-any-videos-in-android-using-youtube-dl/</link><category>Android</category><category>streaming</category><category>mobile</category><category>youtube-dl</category><category>android</category><author>noemail@noemail.org (arul)</author><pubDate>Sat, 21 Nov 2015 12:14:38 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2015-11-21:/2015/11/download-any-videos-in-android-using-youtube-dl/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>There are lot of app there in google play store to download video
youtube. All are claiming it has all the features and so and so... But
the reality is, they are not working in all the times.</p>
<p>In my laptop I am using <a href="https://rg3.github.io/youtube-dl/">youtube_dl</a>
to download videos. Its working for most of the video sites including
youtube, vimeo and etc., I want setup that in my android mobile. So here
is the how to do...</p>
<p><strong>Steps</strong></p>
<blockquote>
<ul>
<li>Install python on android</li>
<li>Install youtube-dl</li>
<li>Download a video using youtube-dl</li>
</ul>
</blockquote>
<h2 id="install-python">Install Python</h2>
<p>Install
<a href="https://play.google.com/store/apps/details?id=com.hipipal.qpyplus&amp;hl=en">QPython</a>
from google app store to use python in android.</p>
<figure class="align-center">
<img alt="/assets/images/QPython-Google-Play.png" src="/assets/images/QPython-Google-Play.png"/>
</figure>
<h2 id="install-youtube-dl">Install youtube-dl</h2>
<p>Goto QPython Dashboard. Slide left from home screen to go dashboard.</p>
<figure class="align-center">
<img alt="/assets/images/QPython-dashboard.png" src="/assets/images/QPython-dashboard.png"/>
</figure>
<p>Click Libraries and "pip console"</p>
<figure class="align-center">
<img alt="/assets/images/QPython-pip-console.png" src="/assets/images/QPython-pip-console.png"/>
</figure>
<p>In the console <code>pip install -U youtube-dl</code></p>
<figure class="align-center">
<img alt="/assets/images/QPython-Installing-youtube-dl.png" src="/assets/images/QPython-Installing-youtube-dl.png"/>
</figure>
<p>To validate the youtube downloader in android <code>youtube-dl --version</code></p>
<figure class="align-center">
<img alt="/assets/images/QPython-youtube-dl-version.jpeg" src="/assets/images/QPython-youtube-dl-version.jpeg"/>
</figure>
<h2 id="download-video">Download Video</h2>
<p>To download video, Goto pip console</p>
<p>Then
<code>youtube-dl -o Chammak_Challo.mp4 https://www.youtube.com/watch?v=yh2K9VlGj9Q</code></p>
<p>The argument "-o NAME_OF_FILE.mp4" is required field.</p>
<p>From youtube</p>
<figure class="align-center">
<img alt="/assets/images/Qpython-downloding-from-youtube.jpeg" src="/assets/images/Qpython-downloding-from-youtube.jpeg"/>
</figure>
<p>From facebook</p>
<figure class="align-center">
<img alt="/assets/images/Qpython-downloding-from-facebook.png" src="/assets/images/Qpython-downloding-from-facebook.png"/>
</figure>]]></content:encoded><description>&lt;p&gt;There are lot of app there in google play store to download video
youtube. All are claiming it has all the features and so and so... But
the reality is, they are not working in all the times.&lt;/p&gt;
&lt;p&gt;In my laptop I am using &lt;a href="https://rg3.github.io/youtube-dl/"&gt;youtube_dl&lt;/a&gt;
to download videos. Its working …&lt;/p&gt;</description></item><item><title>PixelServ using Nginx</title><link>https://www.arulraj.net/2015/11/pixelserv-using-nginx/</link><category>proxy</category><category>proxy</category><category>adblock</category><category>nginx</category><author>noemail@noemail.org (arul)</author><pubDate>Sat, 21 Nov 2015 11:31:49 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2015-11-21:/2015/11/pixelserv-using-nginx/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Hope you know about
<a href="http://proxytunnel.sourceforge.net/pixelserv.php">pixelserv</a>. It is a
webserver which will always response 1x1 transparent gif image for all
kind of requests. Mainly used in adblocking and proxy environmental.</p>
<p>In this setup I am going to serve 1x1 pixel using nginx server.</p>
<p><strong>Install nginx</strong></p>
<div class="highlight"><pre><span></span><code>sudo<span class="w"> </span>apt-get<span class="w"> </span>install<span class="w"> </span>nginx<span class="w"> </span>-y
</code></pre></div>
<p><strong>Configuration</strong></p>
<p>changing <code>/etc/nginx/nginx.conf</code> as below</p>
<div class="highlight"><pre><span></span><code><span class="err">user</span><span class="w"> </span><span class="kc">n</span><span class="err">gi</span><span class="kc">n</span><span class="err">x;</span>
<span class="err">worker_processes</span><span class="w"> </span><span class="mi">4</span><span class="err">;</span>

<span class="err">error_log</span><span class="w">  </span><span class="err">/dev/s</span><span class="kc">t</span><span class="err">dou</span><span class="kc">t</span><span class="err">;</span>
<span class="err">pid</span><span class="w">        </span><span class="err">/var/ru</span><span class="kc">n</span><span class="err">/</span><span class="kc">n</span><span class="err">gi</span><span class="kc">n</span><span class="err">x.pid;</span>

<span class="err">eve</span><span class="kc">nts</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="err">worker_co</span><span class="kc">nne</span><span class="err">c</span><span class="kc">t</span><span class="err">io</span><span class="kc">ns</span><span class="w"> </span><span class="mi">1024</span><span class="err">;</span><span class="w"> </span><span class="p">}</span>

<span class="err">h</span><span class="kc">tt</span><span class="err">p</span><span class="w"> </span><span class="p">{</span>

<span class="w">    </span><span class="err">log_</span><span class="kc">f</span><span class="err">orma</span><span class="kc">t</span><span class="w">  </span><span class="err">mai</span><span class="kc">n</span><span class="w">  </span><span class="err">'$remo</span><span class="kc">te</span><span class="err">_addr</span><span class="w"> </span><span class="mi">-</span><span class="w"> </span><span class="err">$remo</span><span class="kc">te</span><span class="err">_user</span><span class="w"> </span><span class="p">[</span><span class="err">$</span><span class="kc">t</span><span class="err">ime_local</span><span class="p">]</span><span class="w"> </span><span class="s2">"$request"</span><span class="w"> </span><span class="err">'</span>
<span class="w">                      </span><span class="err">'$s</span><span class="kc">tatus</span><span class="w"> </span><span class="err">$body_by</span><span class="kc">tes</span><span class="err">_se</span><span class="kc">nt</span><span class="w"> </span><span class="s2">"$http_referer"</span><span class="w"> </span><span class="err">'</span>
<span class="w">                      </span><span class="err">'</span><span class="s2">"$http_user_agent"</span><span class="w"> </span><span class="s2">"$http_x_forwarded_for"</span><span class="err">';</span>

<span class="w">      </span><span class="err">access_log</span><span class="w">  </span><span class="err">/dev/s</span><span class="kc">t</span><span class="err">dou</span><span class="kc">t</span><span class="err">;</span>
<span class="w">      </span><span class="err">se</span><span class="kc">n</span><span class="err">d</span><span class="kc">f</span><span class="err">ile</span><span class="w">        </span><span class="err">o</span><span class="kc">n</span><span class="err">;</span>
<span class="w">      </span><span class="err">keepalive_</span><span class="kc">t</span><span class="err">imeou</span><span class="kc">t</span><span class="w">  </span><span class="mi">65</span><span class="err">;</span>

<span class="w">      </span><span class="err">server</span><span class="w"> </span><span class="p">{</span>
<span class="w">        </span><span class="err">lis</span><span class="kc">ten</span><span class="w"> </span><span class="mi">80</span><span class="w"> </span><span class="err">de</span><span class="kc">fault</span><span class="err">_server;</span>
<span class="w">        </span><span class="err">lis</span><span class="kc">ten</span><span class="w"> </span><span class="p">[::]:</span><span class="mi">80</span><span class="w"> </span><span class="err">de</span><span class="kc">fault</span><span class="err">_server</span><span class="w"> </span><span class="err">ipv</span><span class="mi">6</span><span class="err">o</span><span class="kc">nl</span><span class="err">y=o</span><span class="kc">n</span><span class="err">;</span>

<span class="w">        </span><span class="err">#</span><span class="w"> </span><span class="err">Make</span><span class="w"> </span><span class="err">si</span><span class="kc">te</span><span class="w"> </span><span class="err">accessible</span><span class="w"> </span><span class="kc">fr</span><span class="err">om</span><span class="w"> </span><span class="err">h</span><span class="kc">tt</span><span class="err">p</span><span class="p">:</span><span class="c1">//localhost/</span>
<span class="w">        </span><span class="err">server_</span><span class="kc">na</span><span class="err">me</span><span class="w"> </span><span class="err">_;</span>

<span class="w">        </span><span class="err">loca</span><span class="kc">t</span><span class="err">io</span><span class="kc">n</span><span class="w"> </span><span class="err">/</span><span class="w"> </span><span class="p">{</span>
<span class="w">          </span><span class="err">emp</span><span class="kc">t</span><span class="err">y_gi</span><span class="kc">f</span><span class="err">;</span>
<span class="w">        </span><span class="p">}</span>
<span class="w">      </span><span class="p">}</span>
<span class="p">}</span>
</code></pre></div>
<p><strong>Check</strong></p>
<div class="highlight"><pre><span></span><code>sudo<span class="w"> </span>service<span class="w"> </span>nginx<span class="w"> </span>restart
curl<span class="w"> </span>http://localhost/
</code></pre></div>
<p>You will get binary GIF blob in terminal.</p>
<figure class="align-center">
<img alt="/assets/images/nginx-pixelserv.png" src="/assets/images/nginx-pixelserv.png"/>
</figure>
<p><strong>Using Docker</strong></p>
<p>docker-compose.yml for that is</p>
<div class="highlight"><pre><span></span><code><span class="n">pixelserv</span><span class="o">:</span>
<span class="w">  </span><span class="n">image</span><span class="o">:</span><span class="w"> </span><span class="n">nginx</span><span class="o">:</span><span class="mf">1.9</span><span class="o">.</span><span class="mi">6</span>
<span class="w">  </span><span class="n">ports</span><span class="o">:</span>
<span class="w">    </span><span class="o">-</span><span class="w"> </span><span class="mi">80</span><span class="o">:</span><span class="mi">80</span>
<span class="w">  </span><span class="n">volumes</span><span class="o">:</span>
<span class="w">    </span><span class="o">-</span><span class="w"> </span><span class="o">./</span><span class="n">nginx</span><span class="o">.</span><span class="na">conf</span><span class="o">:/</span><span class="n">etc</span><span class="sr">/nginx/</span><span class="n">nginx</span><span class="o">.</span><span class="na">conf</span>
<span class="w">  </span><span class="n">hostname</span><span class="o">:</span><span class="w"> </span><span class="n">pixelserv</span>
</code></pre></div>]]></content:encoded><description>&lt;p&gt;Hope you know about
&lt;a href="http://proxytunnel.sourceforge.net/pixelserv.php"&gt;pixelserv&lt;/a&gt;. It is a
webserver which will always response 1x1 transparent gif image for all
kind of requests. Mainly used in adblocking and proxy environmental.&lt;/p&gt;
&lt;p&gt;In this setup I am going to serve 1x1 pixel using nginx server.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Install nginx&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;apt-get&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;nginx&lt;span class="w"&gt; &lt;/span&gt;-y
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Configuration …&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Stream any video into VLC</title><link>https://www.arulraj.net/2015/09/stream-any-video-into-vlc/</link><category>Streaming</category><category>streaming</category><category>vlc</category><category>youtube-dl</category><author>noemail@noemail.org (arul)</author><pubDate>Fri, 11 Sep 2015 22:07:12 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2015-09-11:/2015/09/stream-any-video-into-vlc/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>You can stream any online like youtube, vimeo, facebook, dailymotion,
etc., video into your VLC / mplayer using youtube-dl. Here I will
explain how to do that.</p>
<figure class="align-center">
<img alt="http://1.bp.blogspot.com/-oE3JlsHUyPE/VfMISTKA3TI/AAAAAAAAWWY/7oGiGoyFx5Q/s320/stream-to-vlc.png" src="http://1.bp.blogspot.com/-oE3JlsHUyPE/VfMISTKA3TI/AAAAAAAAWWY/7oGiGoyFx5Q/s320/stream-to-vlc.png"/>
</figure>
<p>First Install latest greatest youtube-dl</p>
<div class="highlight"><pre><span></span><code>sudo<span class="w"> </span>pip<span class="w"> </span>install<span class="w"> </span>--upgrade<span class="w"> </span>youtube-dl
OR
sudo<span class="w"> </span>apt-get<span class="w"> </span>install<span class="w"> </span>youtube-dl
</code></pre></div>
<p>As per todoy the version is 2015.09.09. To get version
<code>youtube-dl --version</code></p>
<p>Here is the command to stream to vlc</p>
<div class="highlight"><pre><span></span><code>youtube-dl<span class="w"> </span>-o<span class="w"> </span>-<span class="w"> </span><span class="s2">"http://your.media/url"</span><span class="w"> </span><span class="p">|</span><span class="w"> </span>vlc<span class="w"> </span>-
</code></pre></div>
<p>You can also set up a function in your \~/.bash_aliases file like</p>
<div class="highlight"><pre><span></span><code><span class="k">function</span><span class="w"> </span>streamer<span class="o">()</span><span class="w"> </span><span class="o">{</span>
<span class="w">  </span>youtube-dl<span class="w"> </span>-o<span class="w"> </span>-<span class="w"> </span><span class="s2">"</span><span class="nv">$1</span><span class="s2">"</span><span class="w"> </span><span class="p">|</span><span class="w"> </span>vlc<span class="w"> </span>-
<span class="o">}</span>
</code></pre></div>
<p>Referred from
<a href="https://github.com/rg3/youtube-dl/issues/2124#issuecomment-32429104">https://github.com/rg3/youtube-dl/issues/2124#issuecomment-32429104</a></p>]]></content:encoded><description>&lt;p&gt;You can stream any online like youtube, vimeo, facebook, dailymotion,
etc., video into your VLC / mplayer using youtube-dl. Here I will
explain how to do that.&lt;/p&gt;
&lt;figure class="align-center"&gt;
&lt;img
src="http://1.bp.blogspot.com/-oE3JlsHUyPE/VfMISTKA3TI/AAAAAAAAWWY/7oGiGoyFx5Q/s320/stream-to-vlc.png"
alt="http://1.bp.blogspot.com/-oE3JlsHUyPE/VfMISTKA3TI/AAAAAAAAWWY/7oGiGoyFx5Q/s320/stream-to-vlc.png" /&gt;
&lt;/figure&gt;

&lt;p&gt;First Install latest greatest youtube-dl&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;pip&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;--upgrade&lt;span class="w"&gt; &lt;/span&gt;youtube-dl
OR
sudo&lt;span class="w"&gt; &lt;/span&gt;apt-get&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;youtube-dl
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;As per todoy the version is 2015.09.09 …&lt;/p&gt;</description></item><item><title>Script to get Stock History Information</title><link>https://www.arulraj.net/2015/09/script-to-get-stock-history-information/</link><category>Linux</category><category>share</category><category>market</category><category>linux</category><category>python</category><category>shellscript</category><author>noemail@noemail.org (arul)</author><pubDate>Sun, 6 Sep 2015 23:06:45 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2015-09-06:/2015/09/script-to-get-stock-history-information/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>I wrote a python script to get stock market current and history
information based on Google finance API. Here I am going to explain
about that.</p>
<h2 id="how-to-setup">How to setup</h2>
<ul>
<li>Download
    <a href="https://gist.github.com/arulrajnet/cb1476234967717a4d6d">GetStockInfo.py</a>
    into /usr/local/bin folder as stockinfo</li>
<li>chmod +x /usr/local/bin/stockinfo</li>
<li>Run [stockinfo]{.title-ref} as command from anywhere in your
    terminal</li>
<li>I create alias command with different stock list and get info
    whenever I want</li>
</ul>
<div class="highlight"><pre><span></span><code>wget<span class="w"> </span>--no-check-certificate<span class="w"> </span>https://gist.github.com/arulrajnet/cb1476234967717a4d6d/raw/GetStockInfo.py
chmod<span class="w"> </span>+x<span class="w"> </span>GetStockInfo.py
sudo<span class="w"> </span>cp<span class="w"> </span>GetStockInfo.py<span class="w"> </span>/usr/local/bin/stockinfo
</code></pre></div>
<p>To get given stock current and history information</p>
<div class="highlight"><pre><span></span><code>stockinfo<span class="w"> </span>-s<span class="w"> </span>NASDAQ:AAPL,NASDAQ:GOOG,NASDAQ:MSFT,INDEXBOM:SENSEX<span class="w"> </span>-i<span class="w"> </span>7d,1m,1y
</code></pre></div>
<p>Instead of you can use</p>
<div class="highlight"><pre><span></span><code>python<span class="w"> </span>GetStockInfo.py<span class="w"> </span>-s<span class="w"> </span>NASDAQ:AAPL,NASDAQ:GOOG,NASDAQ:MSFT,INDEXBOM:SENSEX<span class="w"> </span>-i<span class="w"> </span>7d,1m,1y
</code></pre></div>
<p><a href="https://cloud.githubusercontent.com/assets/834529/9387826/f2011440-477f-11e5-94b3-dacf7fd595db.png"><img alt="Stock Info with Stock and Interval
Selection" src="https://cloud.githubusercontent.com/assets/834529/9387826/f2011440-477f-11e5-94b3-dacf7fd595db.png"/></a></p>
<p>To get given stock current information</p>
<div class="highlight"><pre><span></span><code>stockinfo<span class="w"> </span>-s<span class="w"> </span>NASDAQ:AAPL,NASDAQ:GOOG,NASDAQ:MSFT,INDEXBOM:SENSEX
</code></pre></div>
<p><a href="https://cloud.githubusercontent.com/assets/834529/9387855/16dc856a-4780-11e5-9c28-1af6d3511fb0.png"><img alt="Stock Info with Stock Selection
only" src="https://cloud.githubusercontent.com/assets/834529/9387855/16dc856a-4780-11e5-9c28-1af6d3511fb0.png"/></a></p>
<p>To get default stock current information</p>
<div class="highlight"><pre><span></span><code>stockinfo
</code></pre></div>
<p><a href="https://cloud.githubusercontent.com/assets/834529/9387927/6be8b38a-4780-11e5-9e94-b5189264c9d6.png"><img alt="Stock Info with default
stock" src="https://cloud.githubusercontent.com/assets/834529/9387927/6be8b38a-4780-11e5-9e94-b5189264c9d6.png"/></a></p>
<p>To get default stock current and history information</p>
<div class="highlight"><pre><span></span><code>stockinfo<span class="w"> </span>-i<span class="w"> </span>7d,1m
</code></pre></div>
<p><a href="https://cloud.githubusercontent.com/assets/834529/9387975/b09f5254-4780-11e5-853c-efc6ed2f0bd6.png"><img alt="stock info with interval selection
only" src="https://cloud.githubusercontent.com/assets/834529/9387975/b09f5254-4780-11e5-853c-efc6ed2f0bd6.png"/></a></p>
<h2 id="license">License</h2>
<p>Free to copy paste. Back-link to this post if you are good coder :wink:</p>]]></content:encoded><description>&lt;p&gt;I wrote a python script to get stock market current and history
information based on Google finance API. Here I am going to explain
about that.&lt;/p&gt;
&lt;h2 id="how-to-setup"&gt;How to setup&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Download
    &lt;a href="https://gist.github.com/arulrajnet/cb1476234967717a4d6d"&gt;GetStockInfo.py&lt;/a&gt;
    into /usr/local/bin folder as stockinfo&lt;/li&gt;
&lt;li&gt;chmod +x /usr/local/bin/stockinfo&lt;/li&gt;
&lt;li&gt;Run [stockinfo]{.title-ref} as command …&lt;/li&gt;&lt;/ul&gt;</description></item><item><title>How to get TNEB Service Details without capcha</title><link>https://www.arulraj.net/2015/09/how-to-get-tneb-service-details-without-capcha/</link><category>Tools</category><category>javascript</category><author>noemail@noemail.org (arul)</author><pubDate>Sun, 6 Sep 2015 21:03:28 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2015-09-06:/2015/09/how-to-get-tneb-service-details-without-capcha/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>To get direct link for find your usage from TNEB give your service
number in the below form and press submit.</p>
<p><strong>TNEB Usage permlink Form</strong></p>
<iframe allowfullscreen="allowfullscreen" frameborder="0" height="400" src="//jsfiddle.net/arulrajnet/0dfht8L2/embedded/result" width="100%"></iframe>
<h2 id="how-its-works">How its works</h2>
<ul>
<li>For example, the service no is 265 / 005 / 1234</li>
<li>It will take your service no and do base64 of "TANGEDCO||1234"
    is <code>VEFOR0VEQ098fDI2NXx8MDA1fHwxMjM0</code></li>
<li>Then base64 of Region(09) is <code>OQ==</code></li>
<li>Then finally URL is
    <a href="http://tneb.tnebnet.org/newlt/consumerwise_gmc_report.php?encserno=VEFOR0VEQ098fDI2NXx8MDA1fHwxMjM0&amp;rsno=OQ==">http://tneb.tnebnet.org/newlt/consumerwise_gmc_report.php?encserno=VEFOR0VEQ098fDI2NXx8MDA1fHwxMjM0&amp;rsno=OQ==</a></li>
</ul>
<p>You can find the source code from here
<a href="https://jsfiddle.net/arulrajnet/0dfht8L2/">https://jsfiddle.net/arulrajnet/0dfht8L2/</a></p>]]></content:encoded><description>&lt;p&gt;To get direct link for find your usage from TNEB give your service
number in the below form and press submit.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;TNEB Usage permlink Form&lt;/strong&gt;&lt;/p&gt;
&lt;iframe width="100%" height="400" src="//jsfiddle.net/arulrajnet/0dfht8L2/embedded/result" allowfullscreen="allowfullscreen" frameborder="0"&gt;&lt;/iframe&gt;

&lt;h2 id="how-its-works"&gt;How its works&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;For example, the service no is 265 / 005 / 1234&lt;/li&gt;
&lt;li&gt;It will take your service no and do base64 of "TANGEDCO||1234"
    is …&lt;/li&gt;&lt;/ul&gt;</description></item><item><title>Prompter4J Released 1.0</title><link>https://www.arulraj.net/2015/05/prompter4j-released-1-0/</link><category>Prompter4J</category><category>java</category><category>prompter4j</category><author>noemail@noemail.org (arul)</author><pubDate>Sun, 10 May 2015 15:34:09 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2015-05-10:/2015/05/prompter4j-released-1-0/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Prompter4J is a library to get the user raw input in an interactive
manner.</p>
<h2 id="maven">Maven</h2>
<p>Add this dependency in your pom.xml and start using.</p>
<div class="highlight"><pre><span></span><code><span class="nt"><dependency></dependency></span>
<span class="w">    </span><span class="nt"><groupid></groupid></span>com.github.arulrajnet<span class="nt"></span>
<span class="w">    </span><span class="nt"><artifactid></artifactid></span>prompter4j<span class="nt"></span>
<span class="w">    </span><span class="nt"><version></version></span>1.0<span class="nt"></span>
<span class="nt"></span>
</code></pre></div>
<h2 id="download-jar">Download JAR</h2>
<p><a href="http://central.maven.org/maven2/com/github/arulrajnet/prompter4j/1.0/prompter4j-1.0.jar">http://central.maven.org/maven2/com/github/arulrajnet/prompter4j/1.0/prompter4j-1.0.jar</a></p>
<h2 id="how-to-use">How to Use</h2>
<p><strong>Get an integer value</strong></p>
<div class="highlight"><pre><span></span><code><span class="kt">int</span><span class="w"> </span><span class="n">dd</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">Prompter</span><span class="p">.</span><span class="na">prompt</span><span class="p">(</span><span class="k">new</span><span class="w"> </span><span class="n">PromptOptions</span><span class="p">(</span><span class="s">"Enter your age :"</span><span class="p">).</span>
<span class="w">        </span><span class="n">required</span><span class="p">(</span><span class="n">Boolean</span><span class="p">.</span><span class="na">TRUE</span><span class="p">).</span><span class="na">type</span><span class="p">(</span><span class="n">Integer</span><span class="p">.</span><span class="na">class</span><span class="p">));</span>
</code></pre></div>
<p><em>The Output</em></p>
<div class="highlight"><pre><span></span><code>Enter your age :
&gt; df
Give input as Integer
Enter your age :
&gt; 12
</code></pre></div>
<p><strong>Choose a value from an array</strong></p>
<div class="highlight"><pre><span></span><code><span class="n">Integer</span><span class="o">[]</span><span class="w"> </span><span class="n">levelArray</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span><span class="mi">3</span><span class="w"> </span><span class="p">,</span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p">};</span>
<span class="n">Integer</span><span class="w"> </span><span class="n">ee</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">Prompter</span><span class="p">.</span><span class="na">prompt</span><span class="p">(</span><span class="k">new</span><span class="w"> </span><span class="n">PromptOptions</span><span class="p">(</span><span class="s">"Select Any one :"</span><span class="p">).</span>
<span class="w">            </span><span class="n">choices</span><span class="p">(</span><span class="n">levelArray</span><span class="p">).</span><span class="na">required</span><span class="p">(</span><span class="kc">true</span><span class="p">).</span><span class="na">type</span><span class="p">(</span><span class="n">Integer</span><span class="p">.</span><span class="na">class</span><span class="p">));</span>
</code></pre></div>
<p><em>The output</em></p>
<div class="highlight"><pre><span></span><code>Select Any one :
3
4
5
&gt; 8
Select from choices
Select Any one :
3
4
5
&gt; 5
</code></pre></div>
<p><strong>Choose a value from Enum</strong></p>
<div class="highlight"><pre><span></span><code><span class="kd">enum</span><span class="w"> </span><span class="n">DAY</span><span class="w"> </span><span class="p">{</span>
<span class="w">    </span><span class="n">SUNDAY</span><span class="p">,</span><span class="w"> </span><span class="n">MONDAY</span><span class="p">,</span><span class="w"> </span><span class="n">TUESDAY</span><span class="p">,</span><span class="w"> </span><span class="n">WEDNESDAY</span><span class="p">,</span><span class="w"> </span><span class="n">THURSDAY</span><span class="p">,</span><span class="w"> </span><span class="n">FRIDAY</span><span class="p">,</span><span class="w"> </span><span class="n">SATURDAY</span>
<span class="p">}</span>
<span class="n">DAY</span><span class="w"> </span><span class="n">ff</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">Prompter</span><span class="p">.</span><span class="na">prompt</span><span class="p">(</span><span class="k">new</span><span class="w"> </span><span class="n">PromptOptions</span><span class="p">(</span><span class="s">"Select your day :"</span><span class="p">).</span>
<span class="w">        </span><span class="n">choices</span><span class="p">(</span><span class="n">DAY</span><span class="p">.</span><span class="na">class</span><span class="p">).</span><span class="na">defaultValue</span><span class="p">(</span><span class="n">DAY</span><span class="p">.</span><span class="na">SUNDAY</span><span class="p">.</span><span class="na">toString</span><span class="p">()).</span><span class="na">type</span><span class="p">(</span><span class="n">DAY</span><span class="p">.</span><span class="na">class</span><span class="p">));</span>
</code></pre></div>
<p><em>The Output</em></p>
<div class="highlight"><pre><span></span><code>Select your day : Default is SUNDAY
SUNDAY
MONDAY
TUESDAY
WEDNESDAY
THURSDAY
FRIDAY
SATURDAY
&gt;
SUNDAY
</code></pre></div>]]></content:encoded><description>&lt;p&gt;Prompter4J is a library to get the user raw input in an interactive
manner.&lt;/p&gt;
&lt;h2 id="maven"&gt;Maven&lt;/h2&gt;
&lt;p&gt;Add this dependency in your pom.xml and start using.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;dependency&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;com.github.arulrajnet&lt;span class="nt"&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;prompter4j&lt;span class="nt"&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;version&amp;gt;&lt;/span&gt;1.0&lt;span class="nt"&gt;&amp;lt;/version&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/dependency&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2 id="download-jar"&gt;Download JAR&lt;/h2&gt;
&lt;p&gt;&lt;a href="http://central.maven.org/maven2/com/github/arulrajnet/prompter4j/1.0/prompter4j-1.0.jar"&gt;http://central.maven.org/maven2/com/github/arulrajnet/prompter4j …&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Live India Stock Market Indices on your Terminal</title><link>https://www.arulraj.net/2015/05/live-india-stock-market-indices-on-your-terminal/</link><category>Linux</category><category>share</category><category>market</category><category>linux</category><category>python</category><category>shellscript</category><author>noemail@noemail.org (arul)</author><pubDate>Sun, 10 May 2015 14:18:18 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2015-05-10:/2015/05/live-india-stock-market-indices-on-your-terminal/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><strong>Live BSE and NSE index on your bash terminal</strong></p>
<p><a href="http://1.bp.blogspot.com/-fDoy3dPAOBQ/VUXc8-MHu3I/AAAAAAAAAus/YhaywsrtU4g/s1600/stockmarketindia.png"><img alt="stockmarketindia" src="http://1.bp.blogspot.com/-fDoy3dPAOBQ/VUXc8-MHu3I/AAAAAAAAAus/YhaywsrtU4g/s640/stockmarketindia.png"/></a></p>
<p>The script get the live index from BSE and NSE stock market.</p>
<h2 id="how-to-use">How to Use</h2>
<ul>
<li>Download the script from github
    <a href="https://gist.githubusercontent.com/arulrajnet/21addbacdbdfd6e190f4">stockmarketindia.py</a></li>
<li>Copy the file into <code>/usr/bin</code> folder.</li>
<li>Run <code>stockmarketindia</code> anywhere from terminal.</li>
</ul>
<div class="highlight"><pre><span></span><code>wget<span class="w"> </span>--no-check-certificate<span class="w"> </span>https://gist.githubusercontent.com/arulrajnet/21addbacdbdfd6e190f4/raw/stockmarketindia.py
chmod<span class="w"> </span>+x<span class="w"> </span>stockmarketindia.py
sudo<span class="w"> </span>cp<span class="w"> </span>stockmarketindia.py<span class="w"> </span>/usr/bin/stockmarketindia
</code></pre></div>
<h2 id="api-used">API Used</h2>
<p>The python script using google finance API.
<a href="http://finance.google.com/finance/info?client=ig&amp;q=INDEXBOM:SENSEX">http://finance.google.com/finance/info?client=ig&amp;q=INDEXBOM:SENSEX</a></p>
<h2 id="indexes-are-included">Indexes are Included</h2>
<p><strong>BSE</strong></p>
<div class="highlight"><pre><span></span><code>INDEXBOM:SENSEX
INDEXBOM:BSE-100
INDEXBOM:BSE-200
INDEXBOM:BSE-500
INDEXBOM:BSE-SMLCAP
INDEXBOM:BSE-MIDCAP
</code></pre></div>
<p><strong>NSE</strong></p>
<div class="highlight"><pre><span></span><code>NSE:NIFTY
NSE:NIFTYJR
</code></pre></div>]]></content:encoded><description>&lt;p&gt;&lt;strong&gt;Live BSE and NSE index on your bash terminal&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://1.bp.blogspot.com/-fDoy3dPAOBQ/VUXc8-MHu3I/AAAAAAAAAus/YhaywsrtU4g/s1600/stockmarketindia.png"&gt;&lt;img alt="stockmarketindia" src="http://1.bp.blogspot.com/-fDoy3dPAOBQ/VUXc8-MHu3I/AAAAAAAAAus/YhaywsrtU4g/s640/stockmarketindia.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The script get the live index from BSE and NSE stock market.&lt;/p&gt;
&lt;h2 id="how-to-use"&gt;How to Use&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Download the script from github
    &lt;a href="https://gist.githubusercontent.com/arulrajnet/21addbacdbdfd6e190f4"&gt;stockmarketindia.py&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Copy the file into &lt;code&gt;/usr/bin&lt;/code&gt; folder.&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;stockmarketindia&lt;/code&gt; anywhere from terminal.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;wget&lt;span class="w"&gt; &lt;/span&gt;--no-check-certificate&lt;span class="w"&gt; &lt;/span&gt;https://gist.githubusercontent.com/arulrajnet …&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Live Cricket Score on your terminal</title><link>https://www.arulraj.net/2015/05/live-cricket-score-on-your-terminal/</link><category>Linux</category><category>linux</category><category>cricket</category><category>shellscript</category><author>noemail@noemail.org (arul)</author><pubDate>Sun, 10 May 2015 13:11:59 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2015-05-10:/2015/05/live-cricket-score-on-your-terminal/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><strong>Live Cricket Score From CricInfo on your Bash Terminal</strong></p>
<p><a href="http://1.bp.blogspot.com/-aJzVV1AyHS4/VU4v696M-HI/AAAAAAAAWPc/iWGrzuIGMMc/s1600/livecricketscore.png"><img alt="score_terminal" src="http://1.bp.blogspot.com/-aJzVV1AyHS4/VU4v696M-HI/AAAAAAAAWPc/iWGrzuIGMMc/s640/livecricketscore.png"/></a></p>
<p>You are a hardcore cricket fan, want to get updated the score while
working 😄 😄 . But bored to open a browser ⇒ goto cricinfo ⇒ goto
particular cricket match. Welcome, this script for you only.</p>
<h2 id="why-this-script">Why this Script..?</h2>
<p>I am not the fan of cricket. But some of friends working as Linux
Administrators who is always looking black and white terminal, They want
to know the score. So I wrote a shellscript to get score from cricinfo.
Now they happily run this script in an another terminal and gets updated
about score.</p>
<h2 id="how-to-use">How to use..?</h2>
<ul>
<li>Download the file from github
    <a href="https://gist.githubusercontent.com/arulrajnet/fb71169c35180f9d9abd%20%22Gist%20Link%20for%20LiveCricketScore%22">livecricketscore.sh</a></li>
<li>Then copy that file in to /usr/bin/ folder</li>
<li>Run that <code>livecricketscore</code> from anywhere</li>
<li>It will ask for the which match score you want to know</li>
<li>Select the matcher number</li>
<li>It will continuously run untill you kill ( CTRL + C ) that</li>
</ul>
<div class="highlight"><pre><span></span><code>wget<span class="w"> </span>--no-check-certificate<span class="w"> </span>https://gist.githubusercontent.com/arulrajnet/fb71169c35180f9d9abd/raw/livecricketscore.sh
chmod<span class="w"> </span>+x<span class="w"> </span>livecricketscore.sh
cp<span class="w"> </span>livecricketscore.sh<span class="w"> </span>/usr/bin/livecricketscore
sh<span class="w"> </span>/usr/bin/livcricketscore
</code></pre></div>
<p>You need to install xmllint if its not there already. To install xmllint
in ubuntu</p>
<div class="highlight"><pre><span></span><code>apt-get<span class="w"> </span>update
apt-get<span class="w"> </span>install<span class="w"> </span>libxml2-utils
</code></pre></div>
<h2 id="credits">Credits</h2>
<p>Thanks to ww.espncricinfo.com . I am using their RSS feed to list the
live matches and get the score.</p>]]></content:encoded><description>&lt;p&gt;&lt;strong&gt;Live Cricket Score From CricInfo on your Bash Terminal&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://1.bp.blogspot.com/-aJzVV1AyHS4/VU4v696M-HI/AAAAAAAAWPc/iWGrzuIGMMc/s1600/livecricketscore.png"&gt;&lt;img alt="score_terminal" src="http://1.bp.blogspot.com/-aJzVV1AyHS4/VU4v696M-HI/AAAAAAAAWPc/iWGrzuIGMMc/s640/livecricketscore.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You are a hardcore cricket fan, want to get updated the score while
working &#128516; &#128516; . But bored to open a browser ⇒ goto cricinfo ⇒ goto
particular cricket match. Welcome, this script for you only.&lt;/p&gt;
&lt;h2 id="why-this-script"&gt;Why this Script..?&lt;/h2&gt;
&lt;p&gt;I am not the fan of …&lt;/p&gt;</description></item><item><title>Docker container for TOR with Privoxy</title><link>https://www.arulraj.net/2015/05/docker-container-for-tor-with-privoxy/</link><category>Docker</category><category>docker</category><category>tor</category><category>proxy</category><category>privoxy</category><category>crawling</category><author>noemail@noemail.org (arul)</author><pubDate>Sat, 9 May 2015 16:11:12 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2015-05-09:/2015/05/docker-container-for-tor-with-privoxy/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>I released a docker container for TOR with Privoxy bundled together.
Earlier I wrote a script (<a href="https://github.com/arulrajnet/operationalscripts/blob/master/tools/tor_installer.py">Tor
Installer</a>)
to setup the TOR and Privoxy environment in a linux system. But docker
is the correct tool to setup these kind of environment.</p>
<p>Hope you know what is TOR and Privoxy.</p>
<p>Github Repo <a href="https://github.com/arulrajnet/torprivoxy">https://github.com/arulrajnet/torprivoxy</a></p>
<p>Docker Repo <a href="https://registry.hub.docker.com/u/arulrajnet/torprivoxy">https://registry.hub.docker.com/u/arulrajnet/torprivoxy</a></p>
<h2 id="how-to-use">How to Use</h2>
<p>You have to install docker first. To install in linux <a href="https://docs.docker.com/installation/ubuntulinux/#installing-docker-on-ubuntu">follow
this</a></p>
<div class="highlight"><pre><span></span><code>docker<span class="w"> </span>run<span class="w"> </span>-d<span class="w"> </span><span class="se">\</span>
-p<span class="w"> </span><span class="m">8118</span>:8118<span class="w"> </span>-p<span class="w"> </span><span class="m">9050</span>:9050<span class="w"> </span>-p<span class="w"> </span><span class="m">9051</span>:9051<span class="w"> </span><span class="se">\</span>
--name<span class="w"> </span>tor<span class="w"> </span>-i<span class="w"> </span>arulrajnet/torprivoxy:latest
</code></pre></div>
<p>Binding port 9050 and 9051 are optional. 9051 is the controlport of TOR
Network. Using that you can forcefully regenerate the TOR ip. Read more
about
<a href="https://gist.github.com/arulrajnet/9df385cdb70d8a945686">tor_ip_renew.py</a></p>
<h2 id="docker-tags">Docker Tags</h2>
<p>There are two flavor of container</p>
<hr/>
<p>Tag      Base Image      Size</p>
<hr/>
<p>latest   debian:wheezy   180 MB</p>
<p>wheezy   debian:wheezy   180 MB</p>
<p>jessie   debian:jessie   228.1 MB</p>
<hr/>
<p>This is the very lean image for TOR with Privoxy currently available in
<a href="https://registry.hub.docker.com/u/arulrajnet/torprivoxy">docker hub</a>.</p>
<h2 id="verify">Verify</h2>
<p>How to cross check are you getting ip from Tor or not.</p>
<p><strong>Check your IP without TOR</strong></p>
<div class="highlight"><pre><span></span><code>curl<span class="w"> </span>http://curlmyip.com
</code></pre></div>
<p><strong>Check with TOR</strong></p>
<div class="highlight"><pre><span></span><code>curl<span class="w"> </span>-v<span class="w"> </span>--socks5-hostname<span class="w"> </span>localhost:9050<span class="w"> </span>http://curlmyip.com
</code></pre></div>
<p><strong>Check with privoxy</strong></p>
<div class="highlight"><pre><span></span><code><span class="nb">export</span><span class="w"> </span><span class="nv">http_proxy</span><span class="o">=</span>http://localhost:8118/
curl<span class="w"> </span>http://curlmyip.com
<span class="nb">unset</span><span class="w"> </span>http_proxy

or

curl<span class="w"> </span>-x<span class="w"> </span>http://localhost:8118<span class="w"> </span>-L<span class="w"> </span>http://curlmyip.com
</code></pre></div>
<h2 id="debug">Debug</h2>
<p>If the above step is not success you have to verify the log files.</p>
<div class="highlight"><pre><span></span><code>docker<span class="w"> </span><span class="nb">exec</span><span class="w"> </span>-it<span class="w"> </span>tor<span class="w"> </span>/bin/bash
</code></pre></div>
<p>All the log files in the <code>/tmp</code> folder of container.</p>
<p><strong>To restart TOR and Provoxy</strong></p>
<div class="highlight"><pre><span></span><code>supervisionctl
supervisor&gt;<span class="w"> </span>status
supervisor&gt;<span class="w"> </span>restart<span class="w"> </span>tor
supervisor&gt;<span class="w"> </span>restart<span class="w"> </span>privoxy
</code></pre></div>
<h2 id="global-proxy">Global Proxy</h2>
<p>You can set privoxy as a global proxy so that all your traffic goes via
TOR</p>
<h3 id="in-ubuntu">In Ubuntu</h3>
<p>Open <code>/etc/environment</code></p>
<div class="highlight"><pre><span></span><code><span class="nv">http_proxy</span><span class="o">=</span><span class="s2">"http://127.0.0.1:8118"</span>
<span class="nv">https_proxy</span><span class="o">=</span><span class="s2">"http://127.0.0.1:8118"</span>
<span class="nv">ftp_proxy</span><span class="o">=</span><span class="s2">"http://127.0.0.1:8118"</span>
<span class="nv">HTTP_PROXY</span><span class="o">=</span><span class="s2">"http://127.0.0.1:8118"</span>
<span class="nv">HTTPS_PROXY</span><span class="o">=</span><span class="s2">"http://127.0.0.1:8118"</span>
<span class="nv">FTP_PROXY</span><span class="o">=</span><span class="s2">"http://127.0.0.1:8118"</span>
<span class="nv">_JAVA_OPTIONS</span><span class="o">=</span><span class="s2">"-Dhttp.proxyHost=localhost -Dhttp.proxyPort=8118"</span>
</code></pre></div>
<p>Add this at the EOF.</p>
<p>Then <code>source /etc/environment</code></p>
<h3 id="in-centos">In CentOS</h3>
<p>Create file <code>/etc/profile.d/proxy.sh</code> Then put the below content and
save.</p>
<div class="highlight"><pre><span></span><code><span class="nv">http_proxy</span><span class="o">=</span><span class="s2">"http://127.0.0.1:8118"</span>
<span class="nv">https_proxy</span><span class="o">=</span><span class="s2">"http://127.0.0.1:8118"</span>
<span class="nv">ftp_proxy</span><span class="o">=</span><span class="s2">"http://127.0.0.1:8118"</span>
<span class="nv">HTTP_PROXY</span><span class="o">=</span><span class="s2">"http://127.0.0.1:8118"</span>
<span class="nv">HTTPS_PROXY</span><span class="o">=</span><span class="s2">"http://127.0.0.1:8118"</span>
<span class="nv">FTP_PROXY</span><span class="o">=</span><span class="s2">"http://127.0.0.1:8118"</span>
<span class="nv">_JAVA_OPTIONS</span><span class="o">=</span><span class="nv">$_JAVA_OPTIONS</span><span class="s2">" -Dhttp.proxyHost=localhost -Dhttp.proxyPort=8118"</span>

<span class="nb">export</span><span class="w"> </span>http_proxy<span class="w"> </span>https_proxy<span class="w"> </span>ftp_proxy<span class="w"> </span>HTTP_PROXY<span class="w"> </span>HTTPS_PROXY<span class="w"> </span>FTP_PROXY<span class="w"> </span>_JAVA_OPTIONS
</code></pre></div>
<p>Then <code>source /etc/profile.d/proxy.sh</code> OR you can set the same in
<code>.bashrc</code> or <code>.bash_profile</code></p>]]></content:encoded><description>&lt;p&gt;I released a docker container for TOR with Privoxy bundled together.
Earlier I wrote a script (&lt;a href="https://github.com/arulrajnet/operationalscripts/blob/master/tools/tor_installer.py"&gt;Tor
Installer&lt;/a&gt;)
to setup the TOR and Privoxy environment in a linux system. But docker
is the correct tool to setup these kind of environment.&lt;/p&gt;
&lt;p&gt;Hope you know what is TOR and Privoxy.&lt;/p&gt;
&lt;p&gt;Github …&lt;/p&gt;</description></item><item><title>Fix - Pycharm Failed to create JVM</title><link>https://www.arulraj.net/2014/10/fix-pycharm-failed-to-create-jvm/</link><category>Tools</category><category>IDE</category><category>java</category><category>python</category><category>programming</category><author>noemail@noemail.org (arul)</author><pubDate>Fri, 3 Oct 2014 12:12:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2014-10-03:/2014/10/fix-pycharm-failed-to-create-jvm/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>-
<strong>How to Run your Pycharm IDE under 64bit JVM..?</strong></p>
<p><a href="http://4.bp.blogspot.com/-llWB2o4A5Ww/VC7ZhgH-j5I/AAAAAAAAWC4/wbtlkiYONLc/s1600/pycharm-error-code.PNG"><img alt="Pycharm Error Code -4" class="align-middle" src="http://4.bp.blogspot.com/-llWB2o4A5Ww/VC7ZhgH-j5I/AAAAAAAAWC4/wbtlkiYONLc/s320/pycharm-error-code.PNG"/></a></p>
<p><strong>What is the real issue..?</strong></p>
<p>First you should to know all jetbrains IDE's are written in Java. The
issue because of your pycharm needs more memory to process your projects
and files at the backend Java requires memory. But its not able to
acquire that much of memory. So its closed obtrubtly.</p>
<p>Everyone will say increase the JVM/Java max heap size in
<code>pycharm.properties</code> file. Then restart the pycharm. But thats not a
permanent solution.</p>
<p>The real problem is pycharm internally uses 32bit jvm which comes with
the installer package. The 32 bit JVM can allocate maximum 2GB of space
only.</p>
<p><strong>What is the solution for it..?</strong></p>
<p>So the fix is you have to start your pycharm with 64bit JVM. Here we
will see how to start with 64bit JVM. Three steps to fix that</p>
<ul>
<li>Set the 64bit SDK as environmental variable</li>
<li>create properties for 64bit version</li>
<li>start the ide from .bat file</li>
</ul>
<p><strong>Set 64Bit SDK:</strong></p>
<p>Before setting environmental variable you have to find out which version
of java you are using. To find out Open Command Prompt → Then run the
below command</p>
<blockquote>
<p>java -version</p>
</blockquote>
<p>It should have the "Java Hotspot(TM) 64-Bit Server" line in the
output. If there is no Bit information then its 32bit java. Then proceed
furthur you have to download and install the 64bit JDK from
<a href="http://java.com/">http://java.com/</a></p>
<p><a href="http://4.bp.blogspot.com/-dQGv7xsG25s/VC7ZizVLThI/AAAAAAAAWDI/55dvR_UwtM0/s1600/pycharm-find-java-version.PNG"><img alt="Java Version" src="http://4.bp.blogspot.com/-dQGv7xsG25s/VC7ZizVLThI/AAAAAAAAWDI/55dvR_UwtM0/s320/pycharm-find-java-version.PNG"/></a></p>
<p>Then open Control Panel → Edit Environmental Variable for Your Account</p>
<p>In User variables set <code>PYCHARM_SDK</code> and path will be your 64 bit java
version</p>
<p><a href="http://2.bp.blogspot.com/-8K20N9lH9SQ/VC7ZhrcJ7II/AAAAAAAAWC8/Av1sErElf-c/s1600/pycharm-env.PNG"><img alt="PYCHARM_JDK" src="http://2.bp.blogspot.com/-8K20N9lH9SQ/VC7ZhrcJ7II/AAAAAAAAWC8/Av1sErElf-c/s320/pycharm-env.PNG"/></a></p>
<p><strong>Create properties file:</strong></p>
<p>For 64bit you have to create separate properties file for that.  Create
file named as <code>pycharm64.exe.vmoptions</code> in the root directory of IDE</p>
<div class="highlight"><pre><span></span><code>-server
-Xms256m
-Xmx2048m
-XX:MaxPermSize=512m
-XX:ReservedCodeCacheSize=128m
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-Djsse.enableSNIExtension=false
-XX:+UseCodeCacheFlushing
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=100
</code></pre></div>
<p><strong>To start:</strong></p>
<p>IDE should start with the pycharm.bat file.</p>
<p>This fix will work for other IDE such as WebStrom, PhpStrom, IntelliJ
and RubyMine from jetbrains also.</p>
<p>Basically you have to create <code><product>64.exe.vmoptions</product></code> file. Set the
64bit Java environmental variable for that IDE. Then start the
<code><product>.bat</product></code> file</p>
<p><strong>Environmental Variable for Different product:</strong></p>
<ul>
<li>IDEA_JDK for IntelliJ IDEA</li>
<li>WEBIDE_JDK for PhpStorm and WebStorm</li>
<li>PYCHARM_JDK for PyCharm</li>
<li>RUBYMINE_SDK for RubyMine</li>
</ul>
<p>To know about what environmental variable have to use, open
<code><product>.bat</product></code> file. Then you will get to know.</p>
<p><a href="http://2.bp.blogspot.com/-iTUeJ174ljc/VC7ZjyPDevI/AAAAAAAAWDQ/XhIp6aO88DY/s1600/pycharm-startup-script.PNG"><img alt="pycharm.bat" src="http://2.bp.blogspot.com/-iTUeJ174ljc/VC7ZjyPDevI/AAAAAAAAWDQ/XhIp6aO88DY/s320/pycharm-startup-script.PNG"/></a></p>
<p>Read More at <a href="https://intellij-support.jetbrains.com/entries/23393413-The-JVM-could-not-be-started-The-main-method-may-have-thrown-an-exception">intellij
Support</a></p>]]></content:encoded><description>&lt;p&gt;-
&lt;strong&gt;How to Run your Pycharm IDE under 64bit JVM..?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://4.bp.blogspot.com/-llWB2o4A5Ww/VC7ZhgH-j5I/AAAAAAAAWC4/wbtlkiYONLc/s1600/pycharm-error-code.PNG"&gt;&lt;img alt="Pycharm Error Code -4" class="align-middle" src="http://4.bp.blogspot.com/-llWB2o4A5Ww/VC7ZhgH-j5I/AAAAAAAAWC4/wbtlkiYONLc/s320/pycharm-error-code.PNG"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What is the real issue..?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;First you should to know all jetbrains IDE's are written in Java. The
issue because of your pycharm needs more memory to process your projects
and files at the backend Java requires memory. But its not …&lt;/p&gt;</description></item><item><title>How to access external java libraries with in pentaho</title><link>https://www.arulraj.net/2014/09/how-to-access-external-java-libraries-with-in-pentaho/</link><category>Business intelligence</category><category>BI Tools</category><category>java</category><category>pentaho</category><category>how-to</category><category>Tools</category><author>noemail@noemail.org (arul)</author><pubDate>Wed, 24 Sep 2014 12:38:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2014-09-24:/2014/09/how-to-access-external-java-libraries-with-in-pentaho/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><strong>How to access external libraries with in pentaho..?</strong></p>
<p><a href="http://1.bp.blogspot.com/-AuXLtbyvurk/VCMQTRArekI/AAAAAAAAWCk/_qNXoURYSVY/s1600/mongo-read-empty-java-write-csv.PNG"><img alt="Java Component in ETL
Flow" src="http://1.bp.blogspot.com/-AuXLtbyvurk/VCMQTRArekI/AAAAAAAAWCk/_qNXoURYSVY/s480/mongo-read-empty-java-write-csv.PNG"/></a></p>
<p>Pentaho Data Integration Tool (PDI) is mainly used for Extraction,
Transformation, Load (ETL). They have their own
<a href="http://wiki.pentaho.com/display/EAI/Pentaho+Data+Integration+Steps">components</a>
to do basic and advanced ETL operations.</p>
<h2 id="install"><strong>Install</strong></h2>
<ul>
<li>Download and Extract of <a href="http://community.pentaho.com/projects/data-integration/">Community
    edition</a> of
    PDI.</li>
<li>Extract the downloaded zip file as data-integration.</li>
<li>You need Java in your machine for PDI Tool to run.</li>
<li>To run PDI open spoon.bat in windows.</li>
</ul>
<p>Here PDI / Pentaho Data Integration Tool / Spoon / Kettle all are mean
same.</p>
<p>You can run your own java code as a component in the ETL flow. For that
have the component called <a href="http://wiki.pentaho.com/display/EAI/User+Defined+Java+Class">User Defined Java
Class</a>.
Absolutely you will use external classes or jar's in your java
component. In this post will guide you to load those external jar's
while pentaho loads.</p>
<h2 id="configure">Configure</h2>
<ul>
<li>Create <code>libext</code> folder with in data-integration.</li>
<li>Backup your <code>launcher.properties</code> file with in
    <code>data-integration/launcher</code> folder.</li>
<li>Then save below as launcher.properties in that folder</li>
</ul>
<div class="highlight"><pre><span></span><code>main=org.pentaho.di.ui.spoon.Spoon
libraries=../test:../lib:../libswt:../libext
classpath=../:../ui:../ui/images:../lib:../libext

system-property.pentaho.installed.licenses.file=${PENTAHO_INSTALLED_LICENSE_PATH}
</code></pre></div>
<ul>
<li>Now copy your external / third party jars into libext folder</li>
<li>Now start the spoon.bat</li>
</ul>
<h3 id="my-setup">My setup</h3>
<p>OS - Windows 7 64 bit</p>
<p>Java - Java 1.7.0_45 64 bit</p>
<p>PDI - pdi-ce-5.1.0.0-752.zip</p>
<h3 id="note">Note</h3>
<p>Before adding any jar into libext have a look into
<code>data-integration/lib</code>. If the jar is already there you can directly use
that.</p>
<p>Using user defined class in your flow leads to increase your process
time. So use that if you really need it. Refer
<a href="https://twitter.com/arulrajnet/status/514792905127370752">https://twitter.com/arulrajnet/status/514792905127370752</a></p>]]></content:encoded><description>&lt;p&gt;&lt;strong&gt;How to access external libraries with in pentaho..?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://1.bp.blogspot.com/-AuXLtbyvurk/VCMQTRArekI/AAAAAAAAWCk/_qNXoURYSVY/s1600/mongo-read-empty-java-write-csv.PNG"&gt;&lt;img alt="Java Component in ETL
Flow" src="http://1.bp.blogspot.com/-AuXLtbyvurk/VCMQTRArekI/AAAAAAAAWCk/_qNXoURYSVY/s480/mongo-read-empty-java-write-csv.PNG"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Pentaho Data Integration Tool (PDI) is mainly used for Extraction,
Transformation, Load (ETL). They have their own
&lt;a href="http://wiki.pentaho.com/display/EAI/Pentaho+Data+Integration+Steps"&gt;components&lt;/a&gt;
to do basic and advanced ETL operations.&lt;/p&gt;
&lt;h2 id="install"&gt;&lt;strong&gt;Install&lt;/strong&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Download and Extract of &lt;a href="http://community.pentaho.com/projects/data-integration/"&gt;Community
    edition&lt;/a&gt; of
    PDI.&lt;/li&gt;
&lt;li&gt;Extract the downloaded zip file as data-integration.&lt;/li&gt;
&lt;li&gt;You …&lt;/li&gt;&lt;/ul&gt;</description></item><item><title>Installing Oracle JDK / JRE in CentOS Ubuntu</title><link>https://www.arulraj.net/2014/06/installing-oracle-jdk-jre-in-centos-ubuntu/</link><category>Linux</category><category>centos</category><category>java</category><category>Linux</category><category>ubuntu</category><category>how-to</category><author>noemail@noemail.org (arul)</author><pubDate>Fri, 6 Jun 2014 13:18:12 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2014-06-06:/2014/06/installing-oracle-jdk-jre-in-centos-ubuntu/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><a href="http://2.bp.blogspot.com/-7e9P9JpkCKg/U5ITbc1zw3I/AAAAAAAAVz8/-NrvH8mXWyU/s1600/download.jpg"><img alt="image0" src="http://2.bp.blogspot.com/-7e9P9JpkCKg/U5ITbc1zw3I/AAAAAAAAVz8/-NrvH8mXWyU/s320/download.jpg"/></a></p>
<p>In earlier days (while SUN), Installing JRE / JDK in a VM is very easy
process just like extracting a file and use it. Now wget-ing the source
file itself a bit long process. After that you have use few commands to
set this newly installed Java as default Java. So I have came up with
list of steps to make installing java easier in CentOS and Ubuntu.</p>
<h2 id="downloading-jdk">Downloading JDK...?</h2>
<p>In VM's usually you get terminal not GUI. So I followed command way in
this tutorial. You have to add cookies to download java via wget
command.</p>
<h3 id="for-centos">For CentOS</h3>
<div class="highlight"><pre><span></span><code>wget<span class="w"> </span>--no-cookies<span class="w"> </span>--no-check-certificate<span class="w"> </span><span class="se">\</span>
--header<span class="w"> </span><span class="s2">"Cookie:gpw_e24=http%3A%2F%2Fwww.oracle.com%2F;oraclelicense=accept-securebackup-cookie"</span><span class="w"> </span><span class="se">\</span>
http://download.oracle.com/otn-pub/java/jdk/7u55-b13/jdk-7u55-linux-x64.rpm
</code></pre></div>
<h3 id="for-ubuntu">For Ubuntu</h3>
<div class="highlight"><pre><span></span><code>wget<span class="w"> </span>--no-cookies<span class="w"> </span>--no-check-certificate<span class="w"> </span><span class="se">\</span>
--header<span class="w"> </span><span class="s2">"Cookie:gpw_e24=http%3A%2F%2Fwww.oracle.com%2F;oraclelicense=accept-securebackup-cookie"</span><span class="w"> </span><span class="se">\</span>
http://download.oracle.com/otn-pub/java/jdk/7u55-b13/jdk-7u55-linux-x64.tar.gz
</code></pre></div>
<p>I wrote a python script to download the Oracle Java jdk / jre from
terminal.</p>
<p>That script in <a href="https://gist.github.com/arulrajnet/7b261203499375bd0759">https://gist.github.com/arulrajnet/7b261203499375bd0759</a></p>
<p><strong>How to Use</strong></p>
<div class="highlight"><pre><span></span><code>wget<span class="w"> </span>--no-check-certificate<span class="w"> </span>https://gist.github.com/arulrajnet/7b261203499375bd0759/raw/download_java.py
chmod<span class="w"> </span>+x<span class="w"> </span>download_java.py
python<span class="w"> </span>download_java.py
</code></pre></div>
<p>It will ask for the type of package you want to download and version of
package want to download. Finally the selected file will be downloaded
in the current directory</p>
<p><a href="http://1.bp.blogspot.com/-eo7_9M3j3A8/VU4kPpVeykI/AAAAAAAAWPM/ohiVIUXjUHo/s1600/download_java.png"><img alt="download_java.py" src="http://1.bp.blogspot.com/-eo7_9M3j3A8/VU4kPpVeykI/AAAAAAAAWPM/ohiVIUXjUHo/s640/download_java.png"/></a></p>
<h2 id="installing-and-setting">Installing and Setting...?</h2>
<p>In the installation to make this java as default one in the system wide.</p>
<h3 id="for-centos_1">For CentOS</h3>
<div class="highlight"><pre><span></span><code>rpm<span class="w"> </span>-Uvh<span class="w"> </span>jdk-7u55-linux-x64.rpm
alternatives<span class="w"> </span>--install<span class="w"> </span>/usr/bin/javaws<span class="w"> </span>javaws<span class="w"> </span>/usr/java/latest/bin/javaws<span class="w"> </span><span class="m">2</span>
alternatives<span class="w"> </span>--install<span class="w"> </span>/usr/bin/java<span class="w"> </span>java<span class="w"> </span>/usr/java/latest/bin/java<span class="w"> </span><span class="m">2</span>
alternatives<span class="w"> </span>--install<span class="w"> </span>/usr/bin/javac<span class="w"> </span>javac<span class="w"> </span>/usr/java/latest/bin/javac<span class="w"> </span><span class="m">2</span>
</code></pre></div>
<h3 id="for-ubuntu_1">For Ubuntu</h3>
<div class="highlight"><pre><span></span><code>sudo<span class="w"> </span>mkdir<span class="w"> </span>-p<span class="w"> </span>/usr/java/jdk1.7.0_55
sudo<span class="w"> </span>tar<span class="w"> </span>-xzvf<span class="w"> </span>jdk-7u55-linux-x64.tar.gz<span class="w"> </span>-C<span class="w"> </span>/usr/java/
sudo<span class="w"> </span>ln<span class="w"> </span>-s<span class="w"> </span>/usr/java/jdk1.7.0_55/usr/java/latest
sudo<span class="w"> </span>ln<span class="w"> </span>-s<span class="w"> </span>/usr/java/latest<span class="w"> </span>/usr/java/default
sudo<span class="w"> </span>update-alternatives<span class="w"> </span>--install<span class="w"> </span>/usr/bin/javaws<span class="w"> </span>javaws<span class="w"> </span>/usr/java/latest/bin/javaws<span class="w"> </span><span class="m">2</span>
sudo<span class="w"> </span>update-alternatives<span class="w"> </span>--install<span class="w"> </span>/usr/bin/java<span class="w"> </span>java<span class="w"> </span>/usr/java/latest/bin/java<span class="w"> </span><span class="m">2</span>
sudo<span class="w"> </span>update-alternatives<span class="w"> </span>--install<span class="w"> </span>/usr/bin/javac<span class="w"> </span>javac<span class="w"> </span>/usr/java/latest/bin/javac<span class="w"> </span><span class="m">2</span>
</code></pre></div>
<p>For ubuntu there is a PPA released by webupd8team.</p>
<p><strong>PPA way</strong></p>
<div class="highlight"><pre><span></span><code>sudo<span class="w"> </span>add-apt-repository<span class="w"> </span>ppa:webupd8team/java
sudo<span class="w"> </span>apt-get<span class="w"> </span>update
sudo<span class="w"> </span>apt-get<span class="w"> </span>install<span class="w"> </span>oracle-java7-installer
</code></pre></div>
<p>Note: But that is not working since 16th March. Hope they fixed now.</p>
<h2 id="installing-jre">Installing JRE...?</h2>
<p>To install JRE the downloading links only different. The other commands
are same. Here I had some direct links for different versions of JDK and
JRE</p>
<p><strong>JRE 1.7 ( 64 Bit )</strong></p>
<p><a href="http://download.oracle.com/otn-pub/java/jdk/7u55-b13/server-jre-7u55-linux-x64.tar.gz">http://download.oracle.com/otn-pub/java/jdk/7u55-b13/server-jre-7u55-linux-x64.tar.gz</a></p>
<p><a href="http://download.oracle.com/otn-pub/java/jdk/7u51-b13/server-jre-7u51-linux-x64.tar.gz">http://download.oracle.com/otn-pub/java/jdk/7u51-b13/server-jre-7u51-linux-x64.tar.gz</a></p>
<p><a href="http://download.oracle.com/otn-pub/java/jdk/7u51-b13/jre-7u51-linux-x64.rpm">http://download.oracle.com/otn-pub/java/jdk/7u51-b13/jre-7u51-linux-x64.rpm</a></p>
<p><a href="http://download.oracle.com/otn-pub/java/jdk/7u55-b13/jre-7u55-linux-x64.tar.gz">http://download.oracle.com/otn-pub/java/jdk/7u55-b13/jre-7u55-linux-x64.tar.gz</a></p>
<p><a href="http://download.oracle.com/otn-pub/java/jdk/7u55-b13/jre-7u55-linux-x64.rpm">http://download.oracle.com/otn-pub/java/jdk/7u55-b13/jre-7u55-linux-x64.rpm</a></p>
<p><strong>JDK 1.7 ( 64 Bit )</strong></p>
<p><a href="http://download.oracle.com/otn-pub/java/jdk/7u51-b13/jdk-7u51-linux-x64.rpm">http://download.oracle.com/otn-pub/java/jdk/7u51-b13/jdk-7u51-linux-x64.rpm</a></p>
<p><a href="http://download.oracle.com/otn-pub/java/jdk/7u55-b13/jdk-7u55-linux-x64.rpm">http://download.oracle.com/otn-pub/java/jdk/7u55-b13/jdk-7u55-linux-x64.rpm</a></p>
<p><a href="http://download.oracle.com/otn-pub/java/jdk/7u51-b13/jdk-7u51-linux-x64.tar.gz">http://download.oracle.com/otn-pub/java/jdk/7u51-b13/jdk-7u51-linux-x64.tar.gz</a></p>
<p><a href="http://download.oracle.com/otn-pub/java/jdk/7u55-b13/jdk-7u55-linux-x64.tar.gz">http://download.oracle.com/otn-pub/java/jdk/7u55-b13/jdk-7u55-linux-x64.tar.gz</a></p>]]></content:encoded><description>&lt;p&gt;&lt;a href="http://2.bp.blogspot.com/-7e9P9JpkCKg/U5ITbc1zw3I/AAAAAAAAVz8/-NrvH8mXWyU/s1600/download.jpg"&gt;&lt;img alt="image0" src="http://2.bp.blogspot.com/-7e9P9JpkCKg/U5ITbc1zw3I/AAAAAAAAVz8/-NrvH8mXWyU/s320/download.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In earlier days (while SUN), Installing JRE / JDK in a VM is very easy
process just like extracting a file and use it. Now wget-ing the source
file itself a bit long process. After that you have use few commands to
set this newly installed Java as default Java. So …&lt;/p&gt;</description></item><item><title>Upgrade openssl in Ubuntu and CentOS</title><link>https://www.arulraj.net/2014/04/upgrade-openssl-in-ubuntu-and-centos/</link><category>Linux</category><category>commands</category><category>fix</category><category>ubuntu</category><category>how-to</category><category>centos</category><author>noemail@noemail.org (arul)</author><pubDate>Wed, 9 Apr 2014 20:08:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2014-04-09:/2014/04/upgrade-openssl-in-ubuntu-and-centos/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><strong>Upgrade OpenSSL in Ubuntu and CentOS</strong></p>
<p><a href="http://4.bp.blogspot.com/-E5NogEilRNs/U0X3gzGooiI/AAAAAAAAVpo/ZZUTzTD_tuk/s1600/openssl-logo-bug.png"><img alt="OpenSSL
Heartbleed" src="http://4.bp.blogspot.com/-E5NogEilRNs/U0X3gzGooiI/AAAAAAAAVpo/ZZUTzTD_tuk/s640/openssl-logo-bug.png"/></a></p>
<p>Hope you know about openssl heartbleed bug. Don't know about, no
problem go through it <a href="http://heartbleed.com">http://heartbleed.com/</a> .
The point here is you should upgrade your openssl. Because of this bug
all linux variants release the patch for openssl. Here the steps for
upgrade openssl both ubuntu and centos.</p>
<h2 id="how-to-find-i-am-using-affected-version">How to find I am using affected version...?</h2>
<p><strong>In ubuntu:</strong></p>
<p>Run this command</p>
<div class="highlight"><pre><span></span><code>openssl<span class="w"> </span>version<span class="w"> </span>-a
</code></pre></div>
<p>There you can find "built on" date. If that date is older than Apr 7.
Then you are using older version. You should upgrade your version.</p>
<div class="highlight"><pre><span></span><code>OpenSSL 1.0.1 14 Mar 2012
built on: Wed Jan 8 20:45:51 UTC 2014
</code></pre></div>
<p><strong>In CentOS:</strong></p>
<p>Same as above.</p>
<p><a href="http://2.bp.blogspot.com/-ee9O8qZXTUA/U0X5haUOlfI/AAAAAAAAVp4/GoiBS0CgO38/s1600/openssl-old-1.png"><img alt="Open SSL Old
Version" src="http://2.bp.blogspot.com/-ee9O8qZXTUA/U0X5haUOlfI/AAAAAAAAVp4/GoiBS0CgO38/s640/openssl-old-1.png"/></a></p>
<h2 id="how-to-upgrade-openssl">How to upgrade openssl..?</h2>
<p><strong>In Ubuntu:</strong></p>
<div class="highlight"><pre><span></span><code>sudo<span class="w"> </span>apt-get<span class="w"> </span>update
sudo<span class="w"> </span>apt-get<span class="w"> </span>install<span class="w"> </span>libssl1.0.0<span class="w"> </span>openssl<span class="w"> </span>-y
</code></pre></div>
<p><strong>In CentOS:</strong></p>
<div class="highlight"><pre><span></span><code>sudo<span class="w"> </span>yum<span class="w"> </span>update
sudo<span class="w"> </span>yum<span class="w"> </span>update<span class="w"> </span>openssl<span class="w"> </span>-y
</code></pre></div>
<h2 id="how-to-check-am-i-upgarded">How to check am I upgarded..?</h2>
<div class="highlight"><pre><span></span><code>openssl<span class="w"> </span>version<span class="w"> </span>-a<span class="w"> </span><span class="p">|</span><span class="w"> </span>grep<span class="w"> </span>built
</code></pre></div>
<p><a href="http://3.bp.blogspot.com/-3hnS33ve4JM/U0X5hKOlqGI/AAAAAAAAVp0/ExBE5VMd-a8/s1600/openssl-new-1.png"><img alt="OpenSSL New
Version" src="http://3.bp.blogspot.com/-3hnS33ve4JM/U0X5hKOlqGI/AAAAAAAAVp0/ExBE5VMd-a8/s640/openssl-new-1.png"/></a></p>
<p>The date should greater than or equal to Apr 7.</p>
<p>Hey..!!! you are done. Happy secure linuxing... 😄</p>]]></content:encoded><description>&lt;p&gt;&lt;strong&gt;Upgrade OpenSSL in Ubuntu and CentOS&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://4.bp.blogspot.com/-E5NogEilRNs/U0X3gzGooiI/AAAAAAAAVpo/ZZUTzTD_tuk/s1600/openssl-logo-bug.png"&gt;&lt;img alt="OpenSSL
Heartbleed" src="http://4.bp.blogspot.com/-E5NogEilRNs/U0X3gzGooiI/AAAAAAAAVpo/ZZUTzTD_tuk/s640/openssl-logo-bug.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Hope you know about openssl heartbleed bug. Don't know about, no
problem go through it &lt;a href="http://heartbleed.com"&gt;http://heartbleed.com/&lt;/a&gt; .
The point here is you should upgrade your openssl. Because of this bug
all linux variants release the patch for openssl. Here the steps for
upgrade …&lt;/p&gt;</description></item><item><title>Video On Demand (VOD) for red5 0.8.0 server</title><link>https://www.arulraj.net/2013/11/video-on-demand-vod-for-red5-0-8-0-server/</link><category>Red5</category><category>red5</category><category>video streaming</category><category>Flash</category><category>Programming</category><author>noemail@noemail.org (arul)</author><pubDate>Thu, 21 Nov 2013 11:09:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2013-11-21:/2013/11/video-on-demand-vod-for-red5-0-8-0-server/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<h2 id="vod-for-old-red5-servers">VOD for old red5 servers</h2>
<p><a href="http://1.bp.blogspot.com/-wD-fNduMIIM/Uo4vprkeTvI/AAAAAAAAVdE/5-49LcM-0Vk/s1600/red5-vod.png"><img alt="VOD
app" src="http://1.bp.blogspot.com/-wD-fNduMIIM/Uo4vprkeTvI/AAAAAAAAVdE/5-49LcM-0Vk/s320/red5-vod.png"/></a></p>
<p>Nowadays video on demand application available in latest red5 servers.
The vod webapp is not available in  old version less than red5-1.0.0.
Here I will give you the link to download for vod app for older red5.</p>
<p>Download vod webapp
<a href="http://files.arulraj.net/code/java/red5/vod.zip">vod.zip</a></p>
<ul>
<li>Download the above zip file</li>
<li>Extract the zip file</li>
<li>Copy the vod folder into webapps folder of your red5</li>
<li>Start the server</li>
</ul>
<p>Note: This app only works with 0.8.0, 0.9.0 and 0.9.1 versions of red5.</p>]]></content:encoded><description>&lt;h2 id="vod-for-old-red5-servers"&gt;VOD for old red5 servers&lt;/h2&gt;
&lt;p&gt;&lt;a href="http://1.bp.blogspot.com/-wD-fNduMIIM/Uo4vprkeTvI/AAAAAAAAVdE/5-49LcM-0Vk/s1600/red5-vod.png"&gt;&lt;img alt="VOD
app" src="http://1.bp.blogspot.com/-wD-fNduMIIM/Uo4vprkeTvI/AAAAAAAAVdE/5-49LcM-0Vk/s320/red5-vod.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Nowadays video on demand application available in latest red5 servers.
The vod webapp is not available in  old version less than red5-1.0.0.
Here I will give you the link to download for vod app for older red5.&lt;/p&gt;
&lt;p&gt;Download vod webapp
&lt;a href="http://files.arulraj.net/code/java/red5/vod.zip"&gt;vod.zip&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Download …&lt;/li&gt;&lt;/ul&gt;</description></item><item><title>XML to Actionscript class Turbosqel / ASML example</title><link>https://www.arulraj.net/2013/11/xml-to-actionscript-class-turbosqel-asml-example/</link><category>Programming</category><category>Actionscript</category><category>Flash</category><category>xml</category><author>noemail@noemail.org (arul)</author><pubDate>Thu, 21 Nov 2013 09:43:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2013-11-21:/2013/11/xml-to-actionscript-class-turbosqel-asml-example/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><strong>Turbosqel / ASML example</strong></p>
<p>I found a useful third party actionscript libraris from
githup https://github.com/turbosqel. I mostly used these as3SupportLib
and ASML lib all of my flex projects. But initially I were struggle to
find out the example over the internet. So I am writing here one of the
feature of that libraries. </p>
<p>I am going to explain how to assign value to some variables from remote
xml.</p>
<p><embed height="250" src="http://files.arulraj.net/code/flash/example/ASMLExample/ASMLExample.html" width="270"/>
</p>
<p>[<a href="http://files.arulraj.net/code/flash/example/ASMLExample/srcview/index.html">View
Source</a>
Enabled]</p>
<p>Below code snippet for loading xml from server using as3SupportLib</p>
<div class="highlight"><pre><span></span><code><span class="kd">protected</span><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="n">configResource</span><span class="p">:</span><span class="kt">Resource</span><span class="o">;</span>

<span class="kd">protected</span><span class="w"> </span><span class="kd">function </span><span class="nf">onLoadAgain</span><span class="o">(</span><span class="n">event</span><span class="o">:</span><span class="kt">MouseEvent</span><span class="o">):</span><span class="kt">void</span>
<span class="o">{</span>
<span class="w">    </span><span class="n">configResource</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ResourceManage</span><span class="o">.</span><span class="na">setExternal</span><span class="o">(</span><span class="s2">"config.xml"</span><span class="o">);</span>
<span class="w">    </span><span class="n">DownloadManager</span><span class="o">.</span><span class="na">addEventListener</span><span class="o">(</span><span class="n">DownloadManagerEvent</span><span class="o">.</span><span class="na">COMPLETE</span><span class="o">,</span><span class="w"> </span><span class="n">onDownloadComplete</span><span class="o">);</span>
<span class="o">}</span>
</code></pre></div>
<p>The below code snippet for XML to Object</p>
<div class="highlight"><pre><span></span><code><span class="kd">private</span><span class="w"> </span><span class="kd">function </span><span class="nf">onDownloadComplete</span><span class="o">(</span><span class="n">event</span><span class="o">:</span><span class="kt">DownloadManagerEvent</span><span class="o">):</span><span class="kt">void</span>
<span class="o">{</span>
<span class="w">    </span><span class="kd">var</span><span class="w"> </span><span class="n">configXml</span><span class="p">:</span><span class="kt">XML</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="kt">XML</span><span class="o">(</span><span class="n">configResource</span><span class="o">.</span><span class="na">loaderInfo</span><span class="o">.</span><span class="na">source</span><span class="o">);</span>
<span class="w">    </span><span class="kd">var</span><span class="w"> </span><span class="n">xmlResult</span><span class="p">:</span><span class="kt">Array</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ASMLManager</span><span class="o">.</span><span class="na">parseXML</span><span class="o">(</span><span class="n">configXml</span><span class="o">,</span><span class="k">this</span><span class="o">);</span>
<span class="o">}</span>
</code></pre></div>
<p>For that works that config.xml should be written in certain way. Here is
the doc for how to write xml
<a href="https://github.com/turbosqel/ASML/blob/master/README.textile">https://github.com/turbosqel/ASML/blob/master/README.textile</a></p>
<p>My XML is here
<a href="http://files.arulraj.net/code/flash/example/ASMLExample/config.xml">http://files.arulraj.net/code/flash/example/ASMLExample/config.xml</a></p>]]></content:encoded><description>&lt;p&gt;&lt;strong&gt;Turbosqel / ASML example&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I found a useful third party actionscript libraris from
githup https://github.com/turbosqel. I mostly used these as3SupportLib
and ASML lib all of my flex projects. But initially I were struggle to
find out the example over the internet. So I am writing here one of …&lt;/p&gt;</description></item><item><title>Unlock huawei datacard e303s</title><link>https://www.arulraj.net/2013/10/unlock-huawei-datacard-e303s/</link><category>Mobile</category><category>datacard</category><category>hacking</category><category>Mobile</category><category>Tips-and-Tricks</category><category>how-to</category><author>noemail@noemail.org (arul)</author><pubDate>Tue, 22 Oct 2013 14:02:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2013-10-22:/2013/10/unlock-huawei-datacard-e303s/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><strong>How to unlock huawei datacard / dongle e303s</strong></p>
<p><a href="http://3.bp.blogspot.com/-Sl9ORn26sG8/Uma9nJ56iAI/AAAAAAAAVa0/snTjKBMsj74/s1600/2013-06-24+13.04.15.png"><img alt="Aircel
datacard" src="http://3.bp.blogspot.com/-Sl9ORn26sG8/Uma9nJ56iAI/AAAAAAAAVa0/snTjKBMsj74/s320/2013-06-24+13.04.15.png"/></a></p>
<p>Now we are going to learn about how to unlock huawei datacard / dongle /
modem. This is totally free. You are going to unlock by yourself without
paying any single penny of yours. Some websites claiming money for this.
Do not follow them. You can do by yourself without anyone help. Believe
in yours. 😄</p>
<p><strong>Why we need to unlock..? what is the use of that..?</strong></p>
<p>If you are bought this device from any internet service provider they
locked that device with particular network SIM. So you can't use any
other network with this device. If you unlocked that device you can
enjoy 3g with any SIM.</p>
<p>I bought this device e303s from Aircel in chennai for Rs.1600 - 3
month - 6GB - prepaid</p>
<p><strong>What is needed to unlock..? Its hard to get one..?</strong></p>
<p>Basically you need an <strong>unlock code</strong> for that. Earlier huawei modems
are using different algorithm. That is easy to hack. Even some software
tools available to find out the code. Now all modems follow new
algorithm.</p>
<p><strong>How can I found my device follows new algorithm or old algorithm..?</strong></p>
<p>If you modem IMEI starts with <strong>86** .</strong>Then that is the new
algorithm. This tutorial for new algorithm modems only.</p>
<p><strong>How to get the unlock code of modem..?</strong></p>
<p>There are two ways to get your unlock code. Be prepared with your IMEI
no of device.</p>
<h2 id="first-one">First one:</h2>
<p>Post your IMEI no in this forum thread
<a href="http://bit.ly/1fTA4iX">http://forum.gsmhosting.com/vbb/f88/huawei-unlock-codes-request-only-here-v3-1707247/index100.html</a> .
You can get your unlock code instantly. Below is mine.</p>
<p><a href="http://2.bp.blogspot.com/-TKQ_xeu0J6Q/UmbIarxO0UI/AAAAAAAAVbE/_L6ECj3LdiE/s1600/gsm-forumn.PNG"><img alt="Huawei unlock code forum
thread" src="http://2.bp.blogspot.com/-TKQ_xeu0J6Q/UmbIarxO0UI/AAAAAAAAVbE/_L6ECj3LdiE/s320/gsm-forumn.PNG"/></a></p>
<h2 id="second-one">Second one:</h2>
<p>Follow this link
<a href="http://bit.ly/1fTA0zM">http://huaweicodecalculator.com/new-algo/</a></p>
<ul>
<li>Login with your Google account</li>
<li>Give your IMEI no and model then press calculate button</li>
<li>Then G+1 that (similar to like in FB)</li>
<li>Then it will show your unlock code. Below is mine</li>
<li>Use <strong>NEW ALGO CODE</strong> if your IMEI start with 86* (For e303s use
    New Algo code)</li>
</ul>
<p><a href="http://1.bp.blogspot.com/-bO3-vgqD3DU/UmbKXkegz3I/AAAAAAAAVbM/GM7tToiqSfE/s1600/unlock-code.PNG"><img alt="Unlock code using new
algorithm" src="http://1.bp.blogspot.com/-bO3-vgqD3DU/UmbKXkegz3I/AAAAAAAAVbM/GM7tToiqSfE/s320/unlock-code.PNG"/></a></p>
<p><strong>So I got the unlock code what next..?</strong></p>
<p>Download Below files</p>
<ul>
<li>Mobile Partner - <a href="http://bit.ly/1crfGWT">Mobile Partner.zip</a></li>
<li>Dashboard Update -
    <a href="http://bit.ly/1crfYNu">UTPS23.001.07.04.910_mobile_partner_dashboard_update.zip</a></li>
</ul>
<h2 id="steps">Steps:</h2>
<ul>
<li>Extract Mobile Partner and run setup.exe</li>
<li>Open Mobile partner Once installation done.</li>
<li>Plug the unsupported SIM in your datacard</li>
<li>Plug your datacard into PC</li>
<li>Now you can see the popup for enter unlock code.</li>
</ul>
<p><a href="http://1.bp.blogspot.com/-ZyN4J1ONsdM/UmbTJ2cMQqI/AAAAAAAAVbc/u_8icceEWXw/s1600/asking+code.PNG"><img alt="Unlock code
popup" src="http://1.bp.blogspot.com/-ZyN4J1ONsdM/UmbTJ2cMQqI/AAAAAAAAVbc/u_8icceEWXw/s320/asking+code.PNG"/></a></p>
<p>Then enter your code and press Ok. wait for sometime. Now it will detect
your new network. If not try again.</p>
<p>Note: You can attempt only 10 times.</p>
<p>Now you can enjoy with any network. I tested with Tata DoCoMo, BSNL,
AirTel and Vodafone</p>
<p><a href="http://3.bp.blogspot.com/-K8evpQS6Ric/UmbUlAKwwGI/AAAAAAAAVbk/pcHRU3uyqx0/s1600/aircel-docomo.PNG"><img alt="Tata DoCoMo in Aircel
e303s" src="http://3.bp.blogspot.com/-K8evpQS6Ric/UmbUlAKwwGI/AAAAAAAAVbk/pcHRU3uyqx0/s320/aircel-docomo.PNG"/></a></p>
<p>Yeah you are done...!!!! Congrats Mate...!!!</p>
<p><strong>Now what next..? (OPTIONAL)</strong></p>
<p>Yes. If you want to remove the aircel default dashboard with in your
data card follow this.</p>
<p>You are unlocked your device but still aircel dashboard within your
device. So aircel dashboard will be installed while you freshly
connected with any machine. Now we are going to change that to Huawei
Mobile partner dashboard. This is purely optional.</p>
<ul>
<li>Extract
    that UTPS23.001.07.04.910_mobile_partner_dashboard_update.zip</li>
<li>Run the extracted exe file.</li>
<li>Plug your device.</li>
<li>Press start button.</li>
</ul>
<p><a href="http://2.bp.blogspot.com/-1i9t1MOkVg0/UmbW7iUCv8I/AAAAAAAAVb0/K0RA6TiFJDk/s1600/1.PNG"><img alt="image5" src="http://2.bp.blogspot.com/-1i9t1MOkVg0/UmbW7iUCv8I/AAAAAAAAVb0/K0RA6TiFJDk/s320/1.PNG"/></a></p>
<p><a href="http://1.bp.blogspot.com/-o0mv0slVsdw/UmbW7OVxDOI/AAAAAAAAVbs/K5CfuvqYWs0/s1600/2.png"><img alt="image6" src="http://1.bp.blogspot.com/-o0mv0slVsdw/UmbW7OVxDOI/AAAAAAAAVbs/K5CfuvqYWs0/s320/2.png"/></a></p>
<p><a href="http://3.bp.blogspot.com/-OG3F56vddjM/UmbW7ajY2HI/AAAAAAAAVbw/5HTfSk4WIik/s1600/3.PNG"><img alt="image7" src="http://3.bp.blogspot.com/-OG3F56vddjM/UmbW7ajY2HI/AAAAAAAAVbw/5HTfSk4WIik/s320/3.PNG"/></a></p>
<p><a href="http://1.bp.blogspot.com/-owLRi1fXQZA/UmbW9t_Mw_I/AAAAAAAAVcI/jZsYwSWsEWk/s1600/4.PNG"><img alt="image8" src="http://1.bp.blogspot.com/-owLRi1fXQZA/UmbW9t_Mw_I/AAAAAAAAVcI/jZsYwSWsEWk/s320/4.PNG"/></a></p>
<p><a href="http://2.bp.blogspot.com/-2AcfQ6ErEfk/UmbW9gRl-8I/AAAAAAAAVcE/_N71VZZ7cNQ/s1600/5.PNG"><img alt="Successfully
updated" src="http://2.bp.blogspot.com/-2AcfQ6ErEfk/UmbW9gRl-8I/AAAAAAAAVcE/_N71VZZ7cNQ/s320/5.PNG"/></a></p>
<p><a href="http://3.bp.blogspot.com/-fTXTyp-37mw/UmbW-itsyKI/AAAAAAAAVcc/qh0VGmj0k7c/s1600/dvd-mobilepartner.PNG"><img alt="image10" src="http://3.bp.blogspot.com/-fTXTyp-37mw/UmbW-itsyKI/AAAAAAAAVcc/qh0VGmj0k7c/s320/dvd-mobilepartner.PNG"/></a></p>
<p><a href="http://4.bp.blogspot.com/-pBF4gnJoUFw/UmbW9pMGk_I/AAAAAAAAVcM/sLat6IO2Luw/s1600/cd-explorere.PNG"><img alt="image11" src="http://4.bp.blogspot.com/-pBF4gnJoUFw/UmbW9pMGk_I/AAAAAAAAVcM/sLat6IO2Luw/s320/cd-explorere.PNG"/></a></p>
<p>Now default dashboard of your device changed to Mobile partner.</p>]]></content:encoded><description>&lt;p&gt;&lt;strong&gt;How to unlock huawei datacard / dongle e303s&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://3.bp.blogspot.com/-Sl9ORn26sG8/Uma9nJ56iAI/AAAAAAAAVa0/snTjKBMsj74/s1600/2013-06-24+13.04.15.png"&gt;&lt;img alt="Aircel
datacard" src="http://3.bp.blogspot.com/-Sl9ORn26sG8/Uma9nJ56iAI/AAAAAAAAVa0/snTjKBMsj74/s320/2013-06-24+13.04.15.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Now we are going to learn about how to unlock huawei datacard / dongle /
modem. This is totally free. You are going to unlock by yourself without
paying any single penny of yours. Some websites claiming money for this.
Do not follow them. You …&lt;/p&gt;</description></item><item><title>Samsung India eStore Discount offer for MNC\'s</title><link>https://www.arulraj.net/2013/10/samsung-india-estore-discount-offer-for-mncs/</link><category>Mobile</category><category>android</category><category>offer</category><category>samsung</category><author>noemail@noemail.org (arul)</author><pubDate>Wed, 2 Oct 2013 04:05:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2013-10-02:/2013/10/samsung-india-estore-discount-offer-for-mncs/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>This time I am going to tell my shopping experience of samsung
smartphone. Since last two days I was searching for where I can get best
price. I checked with online stores and local stores like universel,
poorvika, samsung plaza etc., in chennai. Finally I came to know samsung
india eStore giving their product for discounted price. Samsung official
store giving around 10% of discount for selected smart phones. But this
for selected employee of selected MNC's companies. You can check the
discount below.</p>
<iframe height="360" marginheight="10" marginwidth="10" scrolling="no" src="https://samsungindiaestore.com/EnhancedEnterpriseCoupon/redington/SpecialPrices" width="650">
</iframe>
<p><strong>How to avail this corporate discount offer..?</strong></p>
<p>Here is the private links for different MNC's. Just signup with your
official mail id using below link then you can get the promo code. Then
apply this coupon code while payment.</p>
<p>TCS - https://samsungindiaestore.com/EnhancedEnterpriseCoupon/TCS/TCS</p>
<p>Tata Communication
- https://www.samsungindiaestore.com/enhancedenterprisecoupon/tatacommunications/tatacommunications</p>
<p>IBM - https://samsungindiaestore.com/EnhancedEnterpriseCoupon/IBM/IBM</p>
<p>ABB - https://samsungindiaestore.com/EnhancedEnterpriseCoupon/abb/abb</p>
<p>Tyco - https://samsungindiaestore.com/EnhancedEnterpriseCoupon/tyco/tyco</p>
<p>Infosys
- https://samsungindiaestore.com/EnhancedEnterpriseCoupon/infosys/infosys</p>
<p>ICICI bank -
<a href="https://samsungindiaestore.com/EnhancedEnterpriseCoupon/icicibank/icicibank">https://samsungindiaestore.com/EnhancedEnterpriseCoupon/icicibank/icicibank</a></p>
<p>Redington -
<a href="https://samsungindiaestore.com/EnhancedEnterpriseCoupon/redington/redington">https://samsungindiaestore.com/EnhancedEnterpriseCoupon/redington/redington</a></p>
<p>Default Link - http://byod.samsungindiaestore.com/</p>
<p>This offer only for their employee's. If you know anyone of your friend
working there just ask them and get the promo code.  I bought Samsung
Galaxy Grand Quattro from eStore. Thanks to that unknown friends of
friend.</p>
<p><a href="http://3.bp.blogspot.com/-pdpdIsVloNM/UkvuFtsYDSI/AAAAAAAAVZc/LdT9M-FanVw/s1600/coupon-code.PNG"><img alt="Coupon
code" src="http://3.bp.blogspot.com/-pdpdIsVloNM/UkvuFtsYDSI/AAAAAAAAVZc/LdT9M-FanVw/s320/coupon-code.PNG"/></a>
Coupon code screen</p>
<p><a href="http://2.bp.blogspot.com/-gCg4vTZ7HPQ/UkvuF5jcxmI/AAAAAAAAVZg/1MSCoW3kUJY/s1600/myorder.PNG"><img alt="My final order
screen" src="http://2.bp.blogspot.com/-gCg4vTZ7HPQ/UkvuF5jcxmI/AAAAAAAAVZg/1MSCoW3kUJY/s320/myorder.PNG"/></a>
My final order screen</p>
<p>Terms and Conditions:</p>
<ul>
<li>User needs to enter their official email id to go to the landing
    page of corporate .</li>
<li>They can check the prices and then register themselves using the
    official email id and mobile number.</li>
<li>Once registered, they will get Two E- coupon’s on their official
    email id valid till 31st Dec ‘13’ for buying Samsung products</li>
<li>After selecting the model user needs to enter coupon code and only
    after entering coupon code user can view discounted price . The
    purchase can be done using any of the purchase modes - Credit Card /
    Net banking / Cash on Delivery.</li>
<li>Post purchase the individual will get an acknowledgement of the
    purchase details along with courier AWB details.</li>
<li>The purchased material will reach the address as mentioned during
    the purchase process.</li>
<li>Individuals can avail online help to complete the transaction. They
    can call on 18001038384. This is an enterprise call centre number
    and they can be used for any pre sales or post sales related
    concerns / issues at <a href="mailto:support.estore@samsung.com">support.estore@samsung.com</a></li>
</ul>
<p><strong>Customer FAQ</strong></p>
<p>PDF format <a href="http://files.arulraj.net/docs/Samsung-eStore-FAQ.pdf">http://files.arulraj.net/docs/Samsung-eStore-FAQ.pdf</a></p>]]></content:encoded><description>&lt;p&gt;This time I am going to tell my shopping experience of samsung
smartphone. Since last two days I was searching for where I can get best
price. I checked with online stores and local stores like universel,
poorvika, samsung plaza etc., in chennai. Finally I came to know samsung
india …&lt;/p&gt;</description></item><item><title>Automount vmware shared folder in ubuntu</title><link>https://www.arulraj.net/2013/09/automount-vmware-shared-folder-in-ubuntu/</link><category>Virtualization</category><category>fix</category><category>ubuntu</category><category>vmware</category><category>linux</category><category>how-to</category><author>noemail@noemail.org (arul)</author><pubDate>Mon, 16 Sep 2013 13:19:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2013-09-16:/2013/09/automount-vmware-shared-folder-in-ubuntu/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><strong>How to fix shared folder automount problem in vmware ..?</strong></p>
<p>I am using vmware player for last several years. But I am not tested
their shared folder features. To share your host os folder with vm you
have to install "vmware tools" on guest os. Installing vmware tools is
very simple.</p>
<p><strong>Checking vmware module :</strong></p>
<div class="highlight"><pre><span></span><code>sudo<span class="w"> </span>lsmod<span class="w"> </span><span class="p">|</span><span class="w"> </span>grep<span class="w"> </span>vmhgfs
</code></pre></div>
<p>It should return some values something like shown on image.</p>
<p><a href="http://1.bp.blogspot.com/-scGjIUU5lA4/UjdQ4ODFgPI/AAAAAAAAVYA/M6Dqv5mdewQ/s1600/lsmode.PNG"><img alt="lsmode" src="http://1.bp.blogspot.com/-scGjIUU5lA4/UjdQ4ODFgPI/AAAAAAAAVYA/M6Dqv5mdewQ/s320/lsmode.PNG"/></a>
List modules</p>
<p>If not you have to install vmware tools.</p>
<p><strong>Installing vmware tools :</strong></p>
<ul>
<li>Goto Player → Manage → Install vmware Tools . Now Vmware Tools is
    mounted as CDROM with in VM</li>
</ul>
<p><a href="http://1.bp.blogspot.com/-ThUF8cYzXf8/UjdSbEfZR8I/AAAAAAAAVYM/FP45AmtYzFk/s1600/install-vmware.png"><img alt="vmware tools
install" src="http://1.bp.blogspot.com/-ThUF8cYzXf8/UjdSbEfZR8I/AAAAAAAAVYM/FP45AmtYzFk/s320/install-vmware.png"/></a>
Install VMware Tools</p>
<ul>
<li>Extract Your VmwareTools-9.2.0-799703.tar.gz file to somewhere.</li>
<li>Goto "vmware-tools-distrib" folder path in terminal</li>
<li>Then run this command "./vmware-install.pl"</li>
<li>Just press enter for all the questions asked while installing</li>
</ul>
<p><a href="http://4.bp.blogspot.com/-3LuB2o5GXbw/UjdUj2GiMoI/AAAAAAAAVYY/8cVWCD4isVc/s1600/vmware-install.PNG"><img alt="Install
vmware" src="http://4.bp.blogspot.com/-3LuB2o5GXbw/UjdUj2GiMoI/AAAAAAAAVYY/8cVWCD4isVc/s320/vmware-install.PNG"/></a>
Vmware Install</p>
<p><strong>Add shared folder for VM:</strong></p>
<ul>
<li>Goto Player → Manage → Virtual Machine Settings</li>
<li>In Options tab you can find the Shared Folders</li>
</ul>
<p><a href="http://2.bp.blogspot.com/-y4FssiiprlQ/UjdWjo36pyI/AAAAAAAAVYk/7k6y22KWeb4/s1600/vmware-settings.PNG"><img alt="image3" src="http://2.bp.blogspot.com/-y4FssiiprlQ/UjdWjo36pyI/AAAAAAAAVYk/7k6y22KWeb4/s320/vmware-settings.PNG"/></a>
Shared Folder</p>
<ul>
<li>Then reboot your machine</li>
</ul>
<p><strong>Auto mount shared folder on startup:</strong></p>
<p>Finally I came back to point. After restarted the shared folder are not
shown with in "/mnt/hgfs/" folder. So here is the fix for that.</p>
<p>There is a startup script called "open-vm-tools" with in /etc/init.d/
folder. Just add the below line in the start function.</p>
<div class="highlight"><pre><span></span><code>mount<span class="w"> </span>-t<span class="w"> </span>vmhgfs<span class="w"> </span>.host:/<span class="w"> </span>/mnt/hgfs
</code></pre></div>
<p>Then restart the service "sudo service open-vm-tools restart".</p>
<p><a href="http://2.bp.blogspot.com/-pDdUDIjTvY0/UjdYEkE7QwI/AAAAAAAAVYw/oFb1zARhXrA/s1600/vmware-initd.PNG"><img alt="image4" src="http://2.bp.blogspot.com/-pDdUDIjTvY0/UjdYEkE7QwI/AAAAAAAAVYw/oFb1zARhXrA/s320/vmware-initd.PNG"/></a>
open-vm-tools startup</p>
<p><strong>My Environmental :</strong></p>
<p>| Product : Vmware Player version 5.0.0 build-812388
| Vmware Tools: VmwareTools-9.2.0-799703
| Guest OS : Ubuntu 12.04 LTS 32 bit
| Host OS : Windows 7 64 bit</p>]]></content:encoded><description>&lt;p&gt;&lt;strong&gt;How to fix shared folder automount problem in vmware ..?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I am using vmware player for last several years. But I am not tested
their shared folder features. To share your host os folder with vm you
have to install "vmware tools" on guest os. Installing vmware tools is
very simple …&lt;/p&gt;</description></item><item><title>Flex videodisplay fullscreen like youtube</title><link>https://www.arulraj.net/2013/04/flex-videodisplay-fullscreen-like-youtube/</link><category>Flash</category><category>Actionscript</category><category>Flash</category><author>noemail@noemail.org (arul)</author><pubDate>Thu, 11 Apr 2013 11:29:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2013-04-11:/2013/04/flex-videodisplay-fullscreen-like-youtube/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><strong>Videodisplay in whole screen / Full screen particular component</strong></p>
<p>After a long time I came with a new post in flex. Yes fullscreen in
flex..!!! Fullscreening a whole app is very simple. You can
full screening by simply changing the display state of your application.
But it will be tricky if you are try to fullscreen a particular
component in an application. In this post I am taking videodisplay
component in a video chat application.</p>
<p>Still you can fullscreen a component using <code>fullScreenSourceRect</code>
property of stage.</p>
<div class="highlight"><pre><span></span><code><span class="n">stage</span><span class="o">.</span><span class="na">fullScreenSourceRect</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="kt">Rectangle</span><span class="w"> </span><span class="o">(</span><span class="mi">0</span><span class="o">,</span><span class="mi">0</span><span class="o">,</span><span class="mi">320</span><span class="o">,</span><span class="mi">240</span><span class="o">);</span>
</code></pre></div>
<p>But It is like zooming a component. Its not good such as videodisplay
component. So I came up with an idea. Here its</p>
<ul>
<li>Get that object of element which you are going to make fullscreen.</li>
<li>Remove it from parent object.</li>
<li>Add that element into stage.</li>
<li>Then resize that element to stage width and height.</li>
<li>While existing from fullscreen remove from stage and add back to
    parent component.</li>
</ul>
<div class="highlight"><pre><span></span><code><span class="kd">protected</span><span class="w"> </span><span class="kd">function </span><span class="nf">fullScreenButton_clickHandler</span><span class="o">(</span><span class="n">event</span><span class="o">:</span><span class="w"> </span><span class="kt">MouseEvent</span><span class="o">):</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="o">{</span>
<span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="n">liveVideo</span><span class="p">:</span><span class="w"> </span><span class="kt">Object</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">liveVideoDisplay</span><span class="o">.</span><span class="na">getChildByName</span><span class="o">(</span><span class="s2">"liveVideo"</span><span class="o">);</span>
<span class="w"> </span><span class="n">videoBox</span><span class="o">.</span><span class="na">removeElement</span><span class="o">(</span><span class="n">liveVideoDisplay</span><span class="o">);</span>
<span class="w"> </span><span class="n">stage</span><span class="o">.</span><span class="na">addChild</span><span class="o">(</span><span class="n">liveVideoDisplay</span><span class="o">);</span>
<span class="w"> </span><span class="n">stage</span><span class="o">.</span><span class="na">displayState</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">StageDisplayState</span><span class="o">.</span><span class="na">FULL_SCREEN</span><span class="o">;</span>
<span class="w"> </span><span class="n">liveVideo</span><span class="o">.</span><span class="na">width</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">stage</span><span class="o">.</span><span class="na">width</span><span class="o">;</span>
<span class="w"> </span><span class="n">liveVideo</span><span class="o">.</span><span class="na">height</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">stage</span><span class="o">.</span><span class="na">height</span><span class="o">;</span>
<span class="w"> </span><span class="n">stage</span><span class="o">.</span><span class="na">addEventListener</span><span class="o">(</span><span class="n">FullScreenEvent</span><span class="o">.</span><span class="na">FULL_SCREEN</span><span class="o">,</span><span class="w"> </span><span class="n">fullScreenHandler</span><span class="o">);</span>
<span class="o">}</span>
</code></pre></div>
<p><a href="http://files.arulraj.net/code/flash/example/fullscreen/srcview/">View
source</a>
is enabled.</p>
<iframe height="300" src="http://files.arulraj.net/code/flash/example/fullscreen/fullscreen.html" width="610">
</iframe>]]></content:encoded><description>&lt;p&gt;&lt;strong&gt;Videodisplay in whole screen / Full screen particular component&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;After a long time I came with a new post in flex. Yes fullscreen in
flex..!!! Fullscreening a whole app is very simple. You can
full screening by simply changing the display state of your application.
But it will be tricky if …&lt;/p&gt;</description></item><item><title>Upgrade Samsung Galaxy 5 to Ice Cream Sandwich</title><link>https://www.arulraj.net/2012/07/upgrade-samsung-galaxy-5-to-ice-cream-sandwich/</link><category>Android</category><category>android</category><category>hacking</category><category>how-to</category><category>Mobile</category><author>noemail@noemail.org (arul)</author><pubDate>Thu, 26 Jul 2012 14:54:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2012-07-26:/2012/07/upgrade-samsung-galaxy-5-to-ice-cream-sandwich/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><strong>How to upgrade to Android 4.0.4</strong></p>
<p><a href="http://4.bp.blogspot.com/-ubNe_i_2S3Q/UBGDTVHDS_I/AAAAAAAAS60/WjUA-mBXfbI/s1600/overview.jpg"><img alt="image0" src="http://4.bp.blogspot.com/-ubNe_i_2S3Q/UBGDTVHDS_I/AAAAAAAAS60/WjUA-mBXfbI/s400/overview.jpg"/></a></p>
<p>This time I come with Android 4.0.4 (Ice Cream Sandwich). Hope you are
all already upgraded your galaxy to Froyo by following
my earlier <a href="http://www.arulraj.net/2011/08/upgrade-samsung-galaxy-5-and-3-to-froyo.html">post</a>.
Others no worries its the time for 4.0.4. The upgradation of 4.0.4 is
much easier than earlier and no more complicated steps.</p>
<p><strong>Important:</strong></p>
<p>This is not a official firmware from samsung like 2.2. Its created by
<a href="http://en.wikipedia.org/wiki/CyanogenMod">CyanogenMod</a>. I personally
tested myself in my mobile most of the things works fine so feel free to
use.</p>
<p><strong>Requirements:</strong></p>
<ul>
<li>A windows PC</li>
<li>USB cable</li>
<li>Samsung Galaxy 5 (GT-I5503) mobile 😄</li>
</ul>
<p>Download the below files.</p>
<ul>
<li>ODIN
    – <a href="http://bit.ly/1dTykIG">S5570_Odin_Multi_Downloader_v4.38.exe</a></li>
<li>OPS file – <a href="http://bit.ly/1HRLlcZ">EUROPA_v1.0.ops</a></li>
<li>ClockworkMod Recovery
    – <a href="http://bit.ly/1KLcKR0">recovery-clockwork-5.5.0.4-galaxy5.tar</a></li>
<li>Firmware 4.0.4
    – <a href="http://bit.ly/1F0MLQi">update-cm-9-20120608-MADTEAM-galaxy5-signed.zip</a></li>
<li>Google apps – <a href="http://bit.ly/1dTyNuC">gapps-ics-small-20120429.zip</a></li>
</ul>
<p>Before start Backup your contacts and everything. Because Upgrade will
delete everything from your mobile not from sd card. </p>
<p>There are two phase</p>
<ol>
<li>Boot your mobile in recovery mode</li>
<li>Install firmware and Google Apps</li>
</ol>
<p><strong>Clockworkmod Recovery:</strong></p>
<p>For this you need ODIN and recovery-clockwork-5.5.0.4-galaxy5.tar.</p>
<p><a href="http://1.bp.blogspot.com/-c_aKPHUAY3M/UBGcZRa8UVI/AAAAAAAAS8k/erOgo5_QBqo/s1600/how-to-downloading-mode_new.png"><img alt="image1" src="http://1.bp.blogspot.com/-c_aKPHUAY3M/UBGcZRa8UVI/AAAAAAAAS8k/erOgo5_QBqo/s400/how-to-downloading-mode_new.png"/></a></p>
<h2 id="steps">Steps:</h2>
<ul>
<li>Copy Firmware and Google Apps files to your sd card. We will use
    that in next phase.</li>
<li>Power off your mobile and Start your mobile in downloading
    mode.  For that Press Volume Down + Home Button [Center Button] +
    Power Button.</li>
<li>Run that ODIN exe.</li>
<li>Connect to USB. Now ODIN detected your mobile in COM port.</li>
<li>Check the “One Package” Check box and Check all boxes in Options.</li>
<li>Select your OPS File.</li>
<li>Select <code>recovery-clockwork-5.5.0.4-galaxy5.tar</code></li>
<li>Press Start button</li>
</ul>
<p><a href="http://3.bp.blogspot.com/-caKtsKjPWQc/UBGPQpLF7WI/AAAAAAAAS74/IFyshkeV2Lw/s1600/odin.jpg"><img alt="image2" src="http://3.bp.blogspot.com/-caKtsKjPWQc/UBGPQpLF7WI/AAAAAAAAS74/IFyshkeV2Lw/s600/odin.jpg"/></a></p>
<p>Now your mobile is automatically restart. It will show you a recovery
screen.</p>
<p>Phase 2 starts</p>
<p><strong>Install Firmware and Google Apps:</strong></p>
<p><a href="http://4.bp.blogspot.com/-7bqJGC7any0/UBGfl0ztpLI/AAAAAAAAS80/KUe4L8Y53vg/s1600/recovery_screen.jpg"><img alt="image3" src="http://4.bp.blogspot.com/-7bqJGC7any0/UBGfl0ztpLI/AAAAAAAAS80/KUe4L8Y53vg/s400/recovery_screen.jpg"/></a></p>
<p><strong>Steps:</strong></p>
<ul>
<li>Cleanup<ul>
<li>Center button to select an option. Arrow keys for move up and
    down</li>
<li>Select wipe data/factory reset</li>
<li>A new screen will come. Press / Select yes.</li>
<li>Back to main menu [press back button]</li>
<li>Select Advanced</li>
<li>Select Wipe Dalvik Cache</li>
<li>Press Yes</li>
<li>Select Wipe Battery Stats</li>
<li>Press Yes</li>
<li>Back to main menu</li>
</ul>
</li>
<li>Install Firmware<ul>
<li>Select Install zip from sd card</li>
<li>Select Choose a zip file</li>
<li>Select <code>update-cm-9-20120608-MADTEAM-galaxy5-signed.zip</code> from
    your sd card.</li>
<li>Press yes</li>
</ul>
</li>
<li>Install Google Apps<ul>
<li>Again Select Install zip from sd card</li>
<li>Select Choose a zip file</li>
<li>Select <code>gapps-ics-small-20120429.zip</code> from your sd card</li>
<li>Press yes</li>
</ul>
</li>
<li>Final<ul>
<li>Important. Select Wipe cache partition</li>
<li>Press yes</li>
<li>Back to main menu</li>
<li>Select reboot system now.</li>
</ul>
</li>
<li>You are done... First time boot takes more time. So Don't Panic</li>
</ul>
<p>Images:</p>
<p>Image of Cleanup - Advanced - Wipe Dalvik and Battery stats</p>
<p><a href="http://2.bp.blogspot.com/-6onAhKek8Wg/UBGmADWKzUI/AAAAAAAAS9E/UBRhDZeM9Kw/s1600/advanced_wipe.png"><img alt="image4" src="http://2.bp.blogspot.com/-6onAhKek8Wg/UBGmADWKzUI/AAAAAAAAS9E/UBRhDZeM9Kw/s400/advanced_wipe.png"/></a></p>
<p>Install Firmware from zip</p>
<p><a href="http://3.bp.blogspot.com/-2-CX0shKmk0/UBGrVCcnefI/AAAAAAAAS9c/guF7BFQYX5Q/s1600/install_firmware.png"><img alt="image5" src="http://3.bp.blogspot.com/-2-CX0shKmk0/UBGrVCcnefI/AAAAAAAAS9c/guF7BFQYX5Q/s400/install_firmware.png"/></a></p>
<p>Install Google apps from zip</p>
<p><a href="http://1.bp.blogspot.com/-qFo9ciN0FY4/UBGt-geXKPI/AAAAAAAAS9w/ANGwNbeOIVo/s1600/install_gapps.png"><img alt="image6" src="http://1.bp.blogspot.com/-qFo9ciN0FY4/UBGt-geXKPI/AAAAAAAAS9w/ANGwNbeOIVo/s400/install_gapps.png"/></a></p>
<p>Ice Cream Sandwich in Galaxy 5</p>
<p><a href="http://2.bp.blogspot.com/-LtZJwFaNgQQ/UBGUoKLCc_I/AAAAAAAAS8Q/2pcPHdYuSK0/s1600/android4.png"><img alt="image7" src="http://2.bp.blogspot.com/-LtZJwFaNgQQ/UBGUoKLCc_I/AAAAAAAAS8Q/2pcPHdYuSK0/s400/android4.png"/></a></p>
<h3 id="faq">FAQ:</h3>
<p><strong>Most of the default applications are not available..?</strong></p>
<p>Yes. Most common application like Gmail, Maps, youtube are not there.
You need to download and install from market.</p>
<p><strong>I want to root my phone..?</strong></p>
<p>No need. By default its rooted :)</p>
<p><strong>After upgraded FM is not working..?</strong></p>
<p>This is a bug in this firmware.</p>
<p><strong>How to revert back to Original..?</strong></p>
<p>Simple. Follow this post
<a href="http://www.arulraj.net/2011/08/upgrade-samsung-galaxy-5-and-3-to-froyo.html">http://www.arulraj.net/2011/08/upgrade-samsung-galaxy-5-and-3-to-froyo.html</a></p>
<p>Reference: <a href="http://goo.gl/dZQtg">http://madteam.co/news/2012/05/guide-cyanogenmod-installation-guide-for-galaxy-5/</a></p>
<p>update 11th Sep 2012:</p>
<ul>
<li>Firmware download links updated</li>
<li>For latest Google apps <a href="http://goo.im/gapps/">http://goo.im/gapps/</a></li>
</ul>]]></content:encoded><description>&lt;p&gt;&lt;strong&gt;How to upgrade to Android 4.0.4&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://4.bp.blogspot.com/-ubNe_i_2S3Q/UBGDTVHDS_I/AAAAAAAAS60/WjUA-mBXfbI/s1600/overview.jpg"&gt;&lt;img alt="image0" src="http://4.bp.blogspot.com/-ubNe_i_2S3Q/UBGDTVHDS_I/AAAAAAAAS60/WjUA-mBXfbI/s400/overview.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This time I come with Android 4.0.4 (Ice Cream Sandwich). Hope you are
all already upgraded your galaxy to Froyo by following
my earlier &lt;a href="http://www.arulraj.net/2011/08/upgrade-samsung-galaxy-5-and-3-to-froyo.html"&gt;post&lt;/a&gt;.
Others no worries its the time for 4.0.4. The upgradation of 4.0 …&lt;/p&gt;</description></item><item><title>Multiple mysql instances in windows</title><link>https://www.arulraj.net/2012/05/multiple-mysql-instances-in-windows/</link><category>Database</category><category>mysql</category><category>Tips-and-Tricks</category><category>windows</category><author>noemail@noemail.org (arul)</author><pubDate>Wed, 2 May 2012 13:39:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2012-05-02:/2012/05/multiple-mysql-instances-in-windows/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Now again windows stuff... I am using windows OS in office 😌... This
post is about a simple tweaks about running multiple mysql instance in
one windows machine. Each instance runs in a different port and behaves
as a dedicated standalone server.</p>
<p><a href="http://1.bp.blogspot.com/-AJSmo9CM1fk/T6Fyl-FmAQI/AAAAAAAAPWg/EnHRjYBPCK0/s1600/Multipleinstances.png"><img alt="mysql multiple
instances" src="http://1.bp.blogspot.com/-AJSmo9CM1fk/T6Fyl-FmAQI/AAAAAAAAPWg/EnHRjYBPCK0/s400/Multipleinstances.png"/></a></p>
<p><strong>Why multiple instances..?</strong></p>
<blockquote>
<p>If you are a developer its for you. Sometimes you need to test your
application with different type of data (like QA, Production) to
replicate some error and etc., At that time no need to drop your old
database and put the new one. Just use this and change the db port in
your application configuration. This will be helpful for system
administrators also to provide database service to his users.</p>
</blockquote>
<p><strong>Requirement:</strong></p>
<ul>
<li>mysql installed windows machine</li>
<li>Administrative privileges for that machine</li>
</ul>
<p>For me mysql installed location is e:\softs\mysql\</p>
<p><strong>Steps:</strong></p>
<p>Create [instances\production] with in mysql installed directory (you
can create anywhere). Better do everything in command prompt. </p>
<div class="highlight"><pre><span></span><code>e:
cd \softs\mysql\
md instances\production
</code></pre></div>
<p>Copy your data and share folder to production folder</p>
<div class="highlight"><pre><span></span><code>copy data instances\production\
copy share instances\production\
</code></pre></div>
<p>To create your custom ini file copy my.ini file and edit</p>
<div class="highlight"><pre><span></span><code>copy my.ini instances\production.ini
</code></pre></div>
<h2 id="edit-productionini">Edit Production.ini</h2>
<ul>
<li>change port as 3307 under [client] and [mysqld] section</li>
<li>Change basedir and datadir in that ini file</li>
</ul>
<p><a href="http://files.arulraj.net/code/database/production.ini">Click Here</a> for
my production.ini file</p>
<p>Now add your custom ini in system starup</p>
<div class="highlight"><pre><span></span><code>mysqld --install mysqldproduction --defaults-file="E:\softs\mysql\instances\production.ini"
</code></pre></div>
<p>Now goto Control Panel → Administrative tools → Services. Then search
for 'mysqldproduction' and start service.</p>
<p>OR</p>
<div class="highlight"><pre><span></span><code>net start mysqldproduction
</code></pre></div>
<p>You may think all is done. But after this only I faced problems.</p>
<p><strong>Cannot find the file specified:</strong></p>
<p>When I try to start that service "System error has occurred. The system
cannot find the file specified."</p>
<p>There is registry changes needed to fix that issue</p>
<ul>
<li>To open registry editor Start → Run</li>
<li>Type 'regedit' and enter.</li>
<li>Next, browse to the registry key
    named: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\mysqldproduction\ImagePath</li>
<li>Now you can see there is <em>no double quotes</em> in that --defaults-file
    so change ImagePath to</li>
</ul>
<div class="highlight"><pre><span></span><code><span class="s2">"E:\softs\mysql\bin\mysqld"</span><span class="w"> </span>--defaults-file<span class="o">=</span><span class="s2">"E:\softs\mysql\instances\production.ini"</span><span class="w"> </span>mysqldproduction
</code></pre></div>
<p>Now start that service.</p>
<p>Keep watching Event Viewer. That is the best place to get debug
information. Again I am getting error while starting server</p>
<p><a href="http://3.bp.blogspot.com/-khW4T_J1vso/T6GMNPk7tPI/AAAAAAAAPW4/q29gl6NoL3g/s1600/event-viewer.PNG"><img alt="Event viewer for
mysql" src="http://3.bp.blogspot.com/-khW4T_J1vso/T6GMNPk7tPI/AAAAAAAAPW4/q29gl6NoL3g/s400/event-viewer.PNG"/></a></p>
<p><strong>Can't find messagefile:</strong></p>
<p>The error is</p>
<div class="highlight"><pre><span></span><code>System error 1067 has occurred.
The process terminated unexpectedly.
Can't find messagefile 'E:\softs\mysql\instances\production\share\errmsg.sys'
</code></pre></div>
<p><strong>Fix:</strong></p>
<blockquote>
<p>Just copy errmsg.sys file from [MYSQL_BASE]shareenglishto that
instancesproductionshare folder</p>
</blockquote>
<p>Now everything is fine. Service will start successfully.</p>]]></content:encoded><description>&lt;p&gt;Now again windows stuff... I am using windows OS in office &#128524;... This
post is about a simple tweaks about running multiple mysql instance in
one windows machine. Each instance runs in a different port and behaves
as a dedicated standalone server.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://1.bp.blogspot.com/-AJSmo9CM1fk/T6Fyl-FmAQI/AAAAAAAAPWg/EnHRjYBPCK0/s1600/Multipleinstances.png"&gt;&lt;img alt="mysql multiple
instances" src="http://1.bp.blogspot.com/-AJSmo9CM1fk/T6Fyl-FmAQI/AAAAAAAAPWg/EnHRjYBPCK0/s400/Multipleinstances.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Why multiple instances..?&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;If you are a developer its …&lt;/p&gt;&lt;/blockquote&gt;</description></item><item><title>Red5 with Spring MVC</title><link>https://www.arulraj.net/2012/04/red5-with-spring-mvc/</link><category>Red5</category><category>java</category><category>red5</category><category>spring</category><category>Flash</category><category>Programming</category><author>noemail@noemail.org (arul)</author><pubDate>Fri, 13 Apr 2012 15:55:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2012-04-13:/2012/04/red5-with-spring-mvc/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><strong>Access Red5 context in spring MVC DispatcherServlet</strong></p>
<p><a href="http://2.bp.blogspot.com/--6PGozKYyQY/T4ieL7Dv2KI/AAAAAAAAOjw/rUknwLPrOlY/s1600/Untitled.png"><img alt="image0" src="http://2.bp.blogspot.com/--6PGozKYyQY/T4ieL7Dv2KI/AAAAAAAAOjw/rUknwLPrOlY/s320/Untitled.png"/></a></p>
<p>Before we start, some prerequisites for reader.</p>
<ul>
<li>How Spring MVC works.
    <a href="http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/mvc.html">tutorial</a></li>
<li>Basic knowledge about red5.</li>
</ul>
<p>Then only you can understand clearly 😄 . If you don't have, no
worries. Having knowledge in core java and servlet is enough</p>
<p>Day by day I experienced in Red5. I will explain a useful enhancement
about red5. Let's start...</p>
<p>Red5 is an open source flash media server. If your webapplication is in
the same server you can build some interesting streaming apps by binding
your webapp and red5app. But you can not use red5 as a web application
server, because by default RTMPServlet support macromedia-fcs
(application/x-fcs) content type not http. But Internally Red5 uses
Tomcat and Spring. By simple tweaks you can add http support for your
red5 application.</p>
<p>So I add my own Red5DispatcherServlet in red5app web.xml to handle http
request.</p>
<p>add this in your web.xml</p>
<div class="highlight"><pre><span></span><code><span class="nt"><servlet></servlet></span>
<span class="w">  </span><span class="nt"><servlet-name></servlet-name></span>red5Demo-web<span class="nt"></span>
<span class="w">  </span><span class="nt"><servlet-class></servlet-class></span>com.demo.web.servlet.Red5DispatcherServlet<span class="nt"></span>
<span class="w">  </span><span class="nt"><init-param></init-param></span>
<span class="w">    </span><span class="nt"><param-name></param-name></span>contextConfigLocation<span class="nt"></span>
<span class="w">    </span><span class="nt"><param-value></param-value></span>/WEB-INF/red5Demo-dispatcher-servlet.xml<span class="nt"></span>
<span class="w">  </span><span class="nt"></span>
<span class="nt"></span>
</code></pre></div>
<p>All configurations files
in https://github.com/arulrajnet/red5Demo/tree/master/java/webapp/WEB-INF</p>
<p>You can use the default spring mvc DispatcherServlet. But problem is you
can't access the red5 context from your controller. It means all
objects loaded by red5 ContextLoggingListener can't be accessble from
your web context. Did you understand...?</p>
<p>ok. Usually spring DispatcherServlet creates one web context and sets
parents as ApplicationContext loaded by spring mvc
ContextLoaderListener. Did you notice in red5app web.xml file we are
using red5 own context loader listener. So if you use Spring mvc
DispatcherServlet there is no parent context.</p>
<p>To override this we have to set red5 ApplicationContext as
DispatcherServlet parent context. For that only I have some
customization</p>
<p><strong>Red5DispatcherServlet.java</strong></p>
<div class="highlight"><pre><span></span><code><span class="kn">package</span><span class="w"> </span><span class="nn">com.demo.web.servlet</span><span class="p">;</span>

<span class="kn">import</span><span class="w"> </span><span class="nn">org.red5.logging.Red5LoggerFactory</span><span class="p">;</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">org.slf4j.Logger</span><span class="p">;</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">org.springframework.web.context.WebApplicationContext</span><span class="p">;</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">org.springframework.web.context.support.WebApplicationContextUtils</span><span class="p">;</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">org.springframework.web.servlet.DispatcherServlet</span><span class="p">;</span>

<span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">Red5DispatcherServlet</span><span class="w"> </span><span class="kd">extends</span><span class="w"> </span><span class="n">DispatcherServlet</span><span class="w"> </span><span class="p">{</span>

<span class="w">  </span><span class="kd">private</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kd">final</span><span class="w"> </span><span class="kt">long</span><span class="w"> </span><span class="n">serialVersionUID</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1L</span><span class="p">;</span>

<span class="w">  </span><span class="kd">private</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kd">final</span><span class="w"> </span><span class="n">Logger</span><span class="w"> </span><span class="n">LOG</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">Red5LoggerFactory</span><span class="p">.</span><span class="na">getLogger</span><span class="p">(</span><span class="n">Red5DispatcherServlet</span><span class="p">.</span><span class="na">class</span><span class="p">,</span><span class="w"> </span><span class="s">"red5Demo"</span><span class="p">);</span>

<span class="w">  </span><span class="kd">private</span><span class="w"> </span><span class="n">WebApplicationContext</span><span class="w"> </span><span class="n">parentContext</span><span class="p">;</span>

<span class="w">  </span><span class="nd">@Override</span>
<span class="w">  </span><span class="kd">protected</span><span class="w"> </span><span class="n">WebApplicationContext</span><span class="w"> </span><span class="nf">initWebApplicationContext</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
<span class="w">    </span><span class="n">WebApplicationContext</span><span class="w"> </span><span class="n">wac</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">null</span><span class="p">;</span>
<span class="w">    </span><span class="n">parentContext</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">WebApplicationContextUtils</span><span class="p">.</span><span class="na">getWebApplicationContext</span><span class="p">(</span><span class="n">getServletContext</span><span class="p">());</span>
<span class="w">    </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">parentContext</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="kc">null</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<span class="w">      </span><span class="n">parentContext</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="n">WebApplicationContext</span><span class="p">)</span>
<span class="w">      </span><span class="n">getServletContext</span><span class="p">().</span><span class="na">getAttribute</span><span class="p">(</span>
<span class="w">      </span><span class="n">WebApplicationContext</span><span class="p">.</span><span class="na">ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE</span><span class="p">);</span>
<span class="w">    </span><span class="p">}</span>
<span class="w">    </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">parentContext</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="kc">null</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<span class="w">      </span><span class="n">LOG</span><span class="p">.</span><span class="na">error</span><span class="p">(</span><span class="s">"No web application context found."</span><span class="p">);</span>
<span class="w">    </span><span class="p">}</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="p">{</span>
<span class="w">      </span><span class="n">wac</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">createWebApplicationContext</span><span class="p">(</span><span class="n">parentContext</span><span class="p">);</span>
<span class="w">    </span><span class="p">}</span>

<span class="w">    </span><span class="n">setDetectAllHandlerAdapters</span><span class="p">(</span><span class="n">Boolean</span><span class="p">.</span><span class="na">TRUE</span><span class="p">);</span>
<span class="w">    </span><span class="n">setDetectAllHandlerMappings</span><span class="p">(</span><span class="n">Boolean</span><span class="p">.</span><span class="na">TRUE</span><span class="p">);</span>
<span class="w">    </span><span class="n">setDetectAllHandlerExceptionResolvers</span><span class="p">(</span><span class="n">Boolean</span><span class="p">.</span><span class="na">TRUE</span><span class="p">);</span>
<span class="w">    </span><span class="n">setDetectAllViewResolvers</span><span class="p">(</span><span class="n">Boolean</span><span class="p">.</span><span class="na">TRUE</span><span class="p">);</span>

<span class="w">    </span><span class="n">onRefresh</span><span class="p">(</span><span class="n">wac</span><span class="p">);</span>

<span class="w">    </span><span class="n">String</span><span class="w"> </span><span class="n">attrName</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">getServletContextAttributeName</span><span class="p">();</span>
<span class="w">    </span><span class="n">getServletContext</span><span class="p">().</span><span class="na">setAttribute</span><span class="p">(</span><span class="n">attrName</span><span class="p">,</span><span class="w"> </span><span class="n">wac</span><span class="p">);</span>
<span class="w">    </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="na">logger</span><span class="p">.</span><span class="na">isDebugEnabled</span><span class="p">())</span><span class="w"> </span><span class="p">{</span>
<span class="w">      </span><span class="k">this</span><span class="p">.</span><span class="na">logger</span><span class="p">.</span><span class="na">debug</span><span class="p">(</span><span class="s">"Published WebApplicationContext of servlet '"</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">getServletName</span><span class="p">()</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="s">"' as ServletContext attribute with name ["</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">attrName</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="s">"]"</span><span class="p">);</span>
<span class="w">    </span><span class="p">}</span>

<span class="w">    </span><span class="k">return</span><span class="w"> </span><span class="n">wac</span><span class="p">;</span>
<span class="w">  </span><span class="p">}</span>

<span class="w">  </span><span class="kd">public</span><span class="w"> </span><span class="n">WebApplicationContext</span><span class="w"> </span><span class="nf">getParentContext</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
<span class="w">    </span><span class="k">return</span><span class="w"> </span><span class="n">parentContext</span><span class="p">;</span>
<span class="w">  </span><span class="p">}</span>

<span class="w">  </span><span class="kd">public</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">setParentContext</span><span class="p">(</span><span class="n">WebApplicationContext</span><span class="w"> </span><span class="n">parentContext</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<span class="w">    </span><span class="k">this</span><span class="p">.</span><span class="na">parentContext</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">parentContext</span><span class="p">;</span>
<span class="w">  </span><span class="p">}</span>
<span class="p">}</span>
</code></pre></div>
<p>Then define your handlers and view resolvers in
red5Demo-dispatcher-servlet.xml</p>
<p>I have created one demo application for red5 with spring mvc. please
refer github red5Demo <a href="https://github.com/arulrajnet/red5Demo">https://github.com/arulrajnet/red5Demo</a></p>
<p>To Download this code</p>
<p>Install Git then run the below command.</p>
<div class="highlight"><pre><span></span><code>git<span class="w"> </span>clone<span class="w"> </span>git@github.com:arulrajnet/red5Demo.git
</code></pre></div>
<p>I will write a separate post for setup red5 development environment and
how to build that app.</p>]]></content:encoded><description>&lt;p&gt;&lt;strong&gt;Access Red5 context in spring MVC DispatcherServlet&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://2.bp.blogspot.com/--6PGozKYyQY/T4ieL7Dv2KI/AAAAAAAAOjw/rUknwLPrOlY/s1600/Untitled.png"&gt;&lt;img alt="image0" src="http://2.bp.blogspot.com/--6PGozKYyQY/T4ieL7Dv2KI/AAAAAAAAOjw/rUknwLPrOlY/s320/Untitled.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Before we start, some prerequisites for reader.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;How Spring MVC works.
    &lt;a href="http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/mvc.html"&gt;tutorial&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Basic knowledge about red5.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Then only you can understand clearly &#128516; . If you don't have, no
worries. Having knowledge in core java and servlet is enough&lt;/p&gt;
&lt;p&gt;Day by day I experienced in …&lt;/p&gt;</description></item><item><title>Uninstall linuxmint from ubuntu</title><link>https://www.arulraj.net/2012/04/uninstall-linuxmint-from-ubuntu/</link><category>Linux</category><category>gnome</category><category>Linux</category><category>ubuntu</category><category>how-to</category><author>noemail@noemail.org (arul)</author><pubDate>Sun, 1 Apr 2012 02:31:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2012-04-01:/2012/04/uninstall-linuxmint-from-ubuntu/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><strong>How to uninstall linuxmint from ubuntu 11.10</strong></p>
<p><a href="http://4.bp.blogspot.com/-4YPJxBzfGQY/T3gG3SAYouI/AAAAAAAAOPI/5liEnTA3mfc/s1600/linuxmint.jpg"><img alt="image0" src="http://4.bp.blogspot.com/-4YPJxBzfGQY/T3gG3SAYouI/AAAAAAAAOPI/5liEnTA3mfc/s400/linuxmint.jpg"/></a>
Gnome2 Linux mint desktop</p>
<p>First I explain the whole story.. 😄</p>
<p><strong>Why linuxmint in ubuntu...?</strong></p>
<p>In the latest Ubuntu 11.10 release canonical team upgraded from Gnome2
to Gnome3 and ubuntu unity as a default login shell. But I am not
comfortable with unity and gnome3. Here its a good article about why I
don't like this <a href="http://t.co/gukVNjKC">read it</a>. So I need Gome2 back
thats why I installed linuxmint shell a.k.a mate shell.</p>
<p><strong>How I installed linuxmint in my ubuntu..?</strong></p>
<p>Its simple. I followed this
<a href="http://www.noobslab.com/2011/11/install-linux-mint-mate-desktop-on.html">tutorial</a>.</p>
<p><strong>Now why you want to uninstall..?</strong></p>
<p>Now again, after installed mate shell facing some problems.</p>
<ul>
<li>ubuntu software center is not working.</li>
<li>every gnome settings showing in two times.</li>
<li>ubuntu gnome2 and mate have lot of difference.</li>
</ul>
<p><strong>Ok. How to unistall mate shell..?</strong></p>
<p>For everything you need sudo permission. Login in unity shell and open
your terminal. Then run this command</p>
<div class="highlight"><pre><span></span><code>sudo<span class="w"> </span>apt-get<span class="w"> </span>autoremove<span class="w"> </span>mint-meta-mate
</code></pre></div>
<p>It will uninstall every thing related to linux mint. But still linux
mint already changed many things in software repo. So you have to move
back to old repo (ubuntu 11.10). For that run these commands</p>
<ol>
<li>Remove linuxmint repo link from software list.</li>
</ol>
<div class="highlight"><pre><span></span><code>sudo<span class="w"> </span>gedit<span class="w"> </span>/etc/apt/sources.list
</code></pre></div>
<ol>
<li>Remove the old software list. Then move the software list to new
    directory and create a software list directory. For that follow the
    below commands.</li>
</ol>
<div class="highlight"><pre><span></span><code><span class="nb">cd</span><span class="w"> </span>/var/lib/apt
sudo<span class="w"> </span>mv<span class="w"> </span>lists<span class="w"> </span>lists.mate
sudo<span class="w"> </span>mkdir<span class="w"> </span>-p<span class="w"> </span>lists/partial
</code></pre></div>
<ol>
<li>Getting the ubuntu 11.10 repo</li>
</ol>
<div class="highlight"><pre><span></span><code>sudo<span class="w"> </span>apt-get<span class="w"> </span>update
sudo<span class="w"> </span>apt-get<span class="w"> </span>check
sudo<span class="w"> </span>apt-get<span class="w"> </span>clean
sudo<span class="w"> </span>apt-get<span class="w"> </span>autoclean
sudo<span class="w"> </span>apt-get<span class="w"> </span>autoremove
</code></pre></div>
<p>After that also the ubuntu software center is not working 😞 . The
problem is "no module named linuxmint". The reason for this error is
every where the distribution id is linuxmint.</p>
<div class="highlight"><pre><span></span><code>lsb_release<span class="w"> </span>-a
</code></pre></div>
<p>it prints</p>
<div class="highlight"><pre><span></span><code>Distributor ID: LinuxMint
Description: Linux Mint 12 Fluxbox
Release: 12
Codename: lisa
</code></pre></div>
<ol>
<li>Remove linuxmint distribution id from everywhere</li>
</ol>
<div class="highlight"><pre><span></span><code>sudo<span class="w"> </span>gedit<span class="w"> </span>/etc/*release
</code></pre></div>
<p>and change everything in the file to:</p>
<div class="highlight"><pre><span></span><code>DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=11.10
DISTRIB_CODENAME=oneiric
DISTRIB_DESCRIPTION="Ubuntu oneiric"
</code></pre></div>
<p>Then run</p>
<div class="highlight"><pre><span></span><code>sudo<span class="w"> </span>gedit<span class="w"> </span>/etc/*issue
</code></pre></div>
<p>and change to:</p>
<div class="highlight"><pre><span></span><code>Ubuntu<span class="w"> </span><span class="m">11</span>.10<span class="w"> </span><span class="se">\n</span><span class="w"> </span><span class="se">\l</span>
</code></pre></div>
<ol>
<li>Restart your machine. Then restart your machine. Now in the login
    screen you don't see the mate shell option.</li>
</ol>
<p>Cheers.…!!! 😃 😃 you are done...</p>]]></content:encoded><description>&lt;p&gt;&lt;strong&gt;How to uninstall linuxmint from ubuntu 11.10&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://4.bp.blogspot.com/-4YPJxBzfGQY/T3gG3SAYouI/AAAAAAAAOPI/5liEnTA3mfc/s1600/linuxmint.jpg"&gt;&lt;img alt="image0" src="http://4.bp.blogspot.com/-4YPJxBzfGQY/T3gG3SAYouI/AAAAAAAAOPI/5liEnTA3mfc/s400/linuxmint.jpg"&gt;&lt;/a&gt;
Gnome2 Linux mint desktop&lt;/p&gt;
&lt;p&gt;First I explain the whole story.. &#128516;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Why linuxmint in ubuntu...?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In the latest Ubuntu 11.10 release canonical team upgraded from Gnome2
to Gnome3 and ubuntu unity as a default login shell. But I am not
comfortable with …&lt;/p&gt;</description></item><item><title>How to access irctc mobile site from your computer</title><link>https://www.arulraj.net/2012/01/how-to-access-irctc-mobile-site-from-your-computer/</link><category>Browser</category><category>Browser</category><category>hacking</category><category>how-to</category><category>mobile</category><author>noemail@noemail.org (arul)</author><pubDate>Tue, 31 Jan 2012 02:50:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2012-01-31:/2012/01/how-to-access-irctc-mobile-site-from-your-computer/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><strong>How to access irctc mobile site from your computer</strong></p>
<p><a href="http://1.bp.blogspot.com/-7TGwu0R8Woc/TyecsHLfDiI/AAAAAAAAJIk/k_B8DnwHEew/s1600/irctc_in_android_browser.png"><img alt="image0" src="http://1.bp.blogspot.com/-7TGwu0R8Woc/TyecsHLfDiI/AAAAAAAAJIk/k_B8DnwHEew/s400/irctc_in_android_browser.png"/></a>
Taken from android browser</p>
<p>Two weeks before irctc launched mobile site for train booking. But when
I try to go <a href="https://www.irctc.co.in/mobile">https://www.irctc.co.in/mobile</a> from my pc its redirect to
usual site. The problem is they are checking the request coming from
mobile or computer in server side using user agent and if its from
mobile allowed otherwise its redirected to ordinary site.</p>
<p>So here is the fix 😄</p>
<p><strong>Requirement:</strong></p>
<ul>
<li>absolutely a pc</li>
<li>Mozilla Firefox</li>
<li>User Agent switcher add-on</li>
</ul>
<p><strong>How to:</strong></p>
<ul>
<li>Open Firefox</li>
<li>Download and Install the User Agent switcher add-on from
    <a href="https://addons.mozilla.org/en-US/firefox/addon/user-agent-switcher/">here </a></li>
<li>Change the User agent to iPhone 3.0 by Go to Tools</li>
<li>Now open the <a href="https://www.irctc.co.in/mobile">https://www.irctc.co.in/mobile</a> in Firefox</li>
<li>Yeah you are done. cheers...!!!</li>
</ul>
<p><strong>User Agent switcher:</strong></p>
<p><a href="http://3.bp.blogspot.com/-Q3dWVraB26g/Tyeo4jLneqI/AAAAAAAAJI0/gIPfMDGJ-y8/s1600/User_agent_firefox.png"><img alt="image1" src="http://3.bp.blogspot.com/-Q3dWVraB26g/Tyeo4jLneqI/AAAAAAAAJI0/gIPfMDGJ-y8/s400/User_agent_firefox.png"/></a>
Change to iPhone 3.0</p>
<p><strong>How irctc looks in firefox:</strong></p>
<p><a href="http://2.bp.blogspot.com/-X3MnnhCcEbU/TyepsS3HEeI/AAAAAAAAJJA/72pM_nkgmKs/s400/irctc_firefox_mobile_login.PNG"><img alt="image2" src="http://2.bp.blogspot.com/-X3MnnhCcEbU/TyepsS3HEeI/AAAAAAAAJJA/72pM_nkgmKs/s400/irctc_firefox_mobile_login.PNG"/></a>
Mobile Login page</p>
<p><a href="http://3.bp.blogspot.com/-n75ZOpg1b98/TyeqTnGPxNI/AAAAAAAAJJM/pub05DdyFpI/s1600/irctc_firefox_mobile_home.PNG"><img alt="image3" src="http://3.bp.blogspot.com/-n75ZOpg1b98/TyeqTnGPxNI/AAAAAAAAJJM/pub05DdyFpI/s400/irctc_firefox_mobile_home.PNG"/></a>
Mobile Home page</p>
<p><a href="http://3.bp.blogspot.com/-wHuu4TgXKWw/TyeqxQhckVI/AAAAAAAAJJY/kJOQLrX-0N4/s1600/irctc_firefox_mobile_plan_my_travel.PNG"><img alt="image4" src="http://3.bp.blogspot.com/-wHuu4TgXKWw/TyeqxQhckVI/AAAAAAAAJJY/kJOQLrX-0N4/s400/irctc_firefox_mobile_plan_my_travel.PNG"/></a>
Mobile plan my travel</p>
<p><strong>Advantages of mobile agent:</strong></p>
<ul>
<li>Firstly its very fast.</li>
<li>Easy to book. Just three clicks.</li>
<li>No more asking password again and again</li>
<li>No more session expired / timeout page :D</li>
<li>Do remember you can only book <strong>5 transactions per month</strong> through
    mobile irctc site.</li>
</ul>
<p><strong>FAQ:</strong></p>
<p><strong>I tried in mobile still redirect to ordinary site..?</strong></p>
<p>Use https instead of http and make sure www in that url
<a href="https://www.irctc.co.in/mobile">https://www.irctc.co.in/mobile</a></p>
<p><strong>How can I change the user agent in google chrome..?</strong></p>
<p>To change user agent in google chrome check this video tutorial
<a href="http://www.youtube.com/watch?v=IiT7z8zAbn0">http://www.youtube.com/watch?v=IiT7z8zAbn0</a> But for that you need
chrome 17 version. To find out which chrome you are using type
"<about:version>" in address bar then enter. If you have chrome
version 16, wait for 17 to be stable otherwise try beta version.</about:version></p>
<p><em>Update:</em> Now a extension is available for chrome
<a href="https://chrome.google.com/webstore/detail/djflhoibgkdhkhhcedjiklpkjnoahfmg">https://chrome.google.com/webstore/detail/djflhoibgkdhkhhcedjiklpkjnoahfmg</a>
use this.</p>
<p><strong>Is this irctc hack..?</strong></p>
<p>No. Its just a browser hack..!!! you can see any mobile website using
this.</p>
<p><strong>How to use this mobile site..?</strong></p>
<p>Please find the manual from here. <a href="https://www.irctc.co.in/beta_htmls/index.htm">View
Manual</a></p>
<p><strong>Its shows me a blank page..?</strong></p>
<p>Last few days I am also getting blank pages. That website is seems to be
down. Even its shows error page when I tried from mobile device. No fix
for this 😄 check this
<a href="http://www.downforeveryoneorjustme.com/www.irctc.co.in/mobile">link</a> for
its down or not</p>
<p><strong>My Firefox is does not support for this add-on..?</strong></p>
<p>I think you are using old one. Try to update your firefox browser. OR
from here http://releases.mozilla.org/pub/mozilla.org/addons/59/ you can
find the different version of that add-on. Download which one is
suitable for your firefox.</p>]]></content:encoded><description>&lt;p&gt;&lt;strong&gt;How to access irctc mobile site from your computer&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://1.bp.blogspot.com/-7TGwu0R8Woc/TyecsHLfDiI/AAAAAAAAJIk/k_B8DnwHEew/s1600/irctc_in_android_browser.png"&gt;&lt;img alt="image0" src="http://1.bp.blogspot.com/-7TGwu0R8Woc/TyecsHLfDiI/AAAAAAAAJIk/k_B8DnwHEew/s400/irctc_in_android_browser.png"&gt;&lt;/a&gt;
Taken from android browser&lt;/p&gt;
&lt;p&gt;Two weeks before irctc launched mobile site for train booking. But when
I try to go &lt;a href="https://www.irctc.co.in/mobile"&gt;https://www.irctc.co.in/mobile&lt;/a&gt; from my pc its redirect to
usual site. The problem is they are checking the …&lt;/p&gt;</description></item><item><title>How to copy commits from one branch to another in GIT</title><link>https://www.arulraj.net/2012/01/how-to-copy-commits-from-one-branch-to-another-in-git/</link><category>Programming</category><category>GIT</category><category>Linux</category><author>noemail@noemail.org (arul)</author><pubDate>Fri, 13 Jan 2012 02:16:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2012-01-13:/2012/01/how-to-copy-commits-from-one-branch-to-another-in-git/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>I have GIT version management tool for versioning and using gitolite for
user and project management within git. Will tell about this gitolite
story in a seperate post.</p>
<p>Here we are going to learn how to copy commits from your master to
branch.</p>
<p>Basically I am a linux enthusiast so I will explain everthing here in
commends. Feel free to use git commends 😄</p>
<ul>
<li>First you have to check where you are now.</li>
</ul>
<div class="highlight"><pre><span></span><code>git<span class="w"> </span>branch<span class="w"> </span>-a
</code></pre></div>
<p>That <strong>*</strong> will where you are. Now I am in Master branch.</p>
<p><a href="http://4.bp.blogspot.com/-cOUKcHXwslk/Tw_aT7ePh7I/AAAAAAAAIy8/8XFZMPUOZhg/s1600/git-branch.PNG"><img alt="image0" src="http://4.bp.blogspot.com/-cOUKcHXwslk/Tw_aT7ePh7I/AAAAAAAAIy8/8XFZMPUOZhg/s400/git-branch.PNG"/></a>
GIT Branch</p>
<ul>
<li>Create a new branch and move to that created branch</li>
</ul>
<div class="highlight"><pre><span></span><code>git<span class="w"> </span>branch<span class="w"> </span><branch_name>
git<span class="w"> </span>checkout<span class="w"> </span><branch_name>
</branch_name></branch_name></code></pre></div>
<p>If you are already created branch. No need create branch just git
checkout</p>
<ul>
<li>Once again confirm Are you in correct branch.</li>
</ul>
<div class="highlight"><pre><span></span><code>git<span class="w"> </span>branch<span class="w"> </span>-a
</code></pre></div>
<ul>
<li>Pick up the commits to this branch</li>
</ul>
<div class="highlight"><pre><span></span><code>git<span class="w"> </span>cherry-pick<span class="w"> </span><first_some_character_of_commit_hash>
Ex:<span class="w"> </span>git<span class="w"> </span>cherry-pick<span class="w"> </span>d1c4b9a5a21e3d09cae
</first_some_character_of_commit_hash></code></pre></div>
<ul>
<li>How to get the hash tag of commits</li>
</ul>
<p>git log</p>
<p><a href="http://1.bp.blogspot.com/-2vSzYrj_sfk/Tw_nLsAJSGI/AAAAAAAAIzU/k_60_quiZbE/s1600/git-log.PNG"><img alt="image1" src="http://1.bp.blogspot.com/-2vSzYrj_sfk/Tw_nLsAJSGI/AAAAAAAAIzU/k_60_quiZbE/s400/git-log.PNG"/></a>
GIT Log</p>
<p>You can get the has tag from here.</p>
<ul>
<li>Then Switch back to master</li>
</ul>
<div class="highlight"><pre><span></span><code>git<span class="w"> </span>checkout<span class="w"> </span>master
</code></pre></div>
<ul>
<li>For push this branch to remote server</li>
</ul>
<div class="highlight"><pre><span></span><code>git<span class="w"> </span>push<span class="w"> </span>origin<span class="w"> </span><branch_name>
</branch_name></code></pre></div>
<ul>
<li>For delete the locally created branch</li>
</ul>
<div class="highlight"><pre><span></span><code>git<span class="w"> </span>branch<span class="w"> </span>-D<span class="w"> </span><branch_name>
</branch_name></code></pre></div>]]></content:encoded><description>&lt;p&gt;I have GIT version management tool for versioning and using gitolite for
user and project management within git. Will tell about this gitolite
story in a seperate post.&lt;/p&gt;
&lt;p&gt;Here we are going to learn how to copy commits from your master to
branch.&lt;/p&gt;
&lt;p&gt;Basically I am a linux enthusiast so …&lt;/p&gt;</description></item><item><title>Get last date of month using java</title><link>https://www.arulraj.net/2011/09/get-last-date-of-month-using-java/</link><category>Programming</category><category>java</category><author>noemail@noemail.org (arul)</author><pubDate>Thu, 8 Sep 2011 00:24:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2011-09-08:/2011/09/get-last-date-of-month-using-java/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Using Calendar class in java you get everything. We can get the last
date of the month using that. Please have a look of this code snippest
to get last date of the passing month. Here is the full code <a href="http://www.arulraj.net/labs/java/misc/DateExample.java">click
Here</a></p>
<div class="highlight"><pre><span></span><code><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="n">Date</span><span class="w"> </span><span class="nf">getLastDateOfMonth</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">year</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">month</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<span class="w">  </span><span class="n">Calendar</span><span class="w"> </span><span class="n">calendar</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">GregorianCalendar</span><span class="p">(</span><span class="n">year</span><span class="p">,</span><span class="w"> </span><span class="n">month</span><span class="p">,</span>
<span class="w">  </span><span class="n">Calendar</span><span class="p">.</span><span class="na">DAY_OF_MONTH</span><span class="p">);</span>
<span class="w">  </span><span class="n">calendar</span><span class="p">.</span><span class="na">set</span><span class="p">(</span><span class="n">Calendar</span><span class="p">.</span><span class="na">DAY_OF_MONTH</span><span class="p">,</span>
<span class="w">  </span><span class="n">calendar</span><span class="p">.</span><span class="na">getActualMaximum</span><span class="p">(</span><span class="n">Calendar</span><span class="p">.</span><span class="na">DAY_OF_MONTH</span><span class="p">));</span>
<span class="w">  </span><span class="k">return</span><span class="w"> </span><span class="n">calendar</span><span class="p">.</span><span class="na">getTime</span><span class="p">();</span>
<span class="p">}</span>
</code></pre></div>
<ol>
<li>In the first line we are creating calendar object with year, month
    and day. In these parameters we can pass any int to that day, I
    passed 5 here.</li>
<li>calendar.getActualMaximum(Calendar.DAY_OF_MONTH) its returns the
    maximum day of this month. For example it will return 31 for
    January.</li>
<li>calendar.set() set that maimum day to that current month day.
    Finally you got the last date of the month.</li>
</ol>
<p>Such as you can get the first date of this month using
getActualMinimum() fucntion. Anyway all month starts with 01 :)</p>
<p>Simple enum for month</p>
<div class="highlight"><pre><span></span><code><span class="kd">enum</span><span class="w"> </span><span class="n">Month</span><span class="w"> </span><span class="p">{</span>
<span class="w">  </span><span class="n">JANUARY</span><span class="p">,</span><span class="w"> </span><span class="n">FEBRUARY</span><span class="p">,</span><span class="w"> </span><span class="n">MARCH</span><span class="p">,</span><span class="w"> </span><span class="n">APRIL</span><span class="p">,</span><span class="w"> </span><span class="n">MAY</span><span class="p">,</span><span class="w"> </span><span class="n">JUNE</span><span class="p">,</span><span class="w"> </span><span class="n">JULY</span><span class="p">,</span><span class="w"> </span><span class="n">AUGUST</span><span class="p">,</span><span class="w"> </span><span class="n">SEPTEMBER</span><span class="p">,</span><span class="w"> </span><span class="n">OCTOBER</span><span class="p">,</span><span class="w"> </span><span class="n">NOVEMBER</span><span class="p">,</span><span class="w"> </span><span class="n">DECEMBER</span><span class="p">;</span>

<span class="w">  </span><span class="kd">public</span><span class="w"> </span><span class="n">String</span><span class="w"> </span><span class="nf">getDisplayName</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
<span class="w">    </span><span class="kt">char</span><span class="o">[]</span><span class="w"> </span><span class="n">charArray</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">name</span><span class="p">().</span><span class="na">toLowerCase</span><span class="p">().</span><span class="na">toCharArray</span><span class="p">();</span>
<span class="w">    </span><span class="n">charArray</span><span class="o">[</span><span class="mi">0</span><span class="o">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">Character</span><span class="p">.</span><span class="na">toUpperCase</span><span class="p">(</span><span class="n">charArray</span><span class="o">[</span><span class="mi">0</span><span class="o">]</span><span class="p">);</span>
<span class="w">    </span><span class="k">return</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">String</span><span class="p">(</span><span class="n">charArray</span><span class="p">);</span>
<span class="w">  </span><span class="p">}</span>

<span class="w">  </span><span class="kd">public</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">getId</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
<span class="w">    </span><span class="k">return</span><span class="w"> </span><span class="n">ordinal</span><span class="p">();</span>
<span class="w">  </span><span class="p">}</span>

<span class="w">  </span><span class="kd">public</span><span class="w"> </span><span class="n">String</span><span class="w"> </span><span class="nf">getValue</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
<span class="w">    </span><span class="k">return</span><span class="w"> </span><span class="n">String</span><span class="p">.</span><span class="na">format</span><span class="p">(</span><span class="s">"%02d"</span><span class="p">,</span><span class="w"> </span><span class="n">getId</span><span class="p">()</span><span class="o">+</span><span class="mi">1</span><span class="p">);</span>
<span class="w">  </span><span class="p">}</span>
<span class="p">}</span>
</code></pre></div>
<p>Sometimes you want to display month select box in jsp. At that time you
can use getDisplayName() and getValue() functions with in enum.</p>
<div class="highlight"><pre><span></span><code><span class="nt"><select< span=""><span class="w"> </span><span class="na">id=</span><span class="s">"monthBox"</span><span class="w"> </span><span class="na">name=</span><span class="s">"monthBox"</span><span class="w"> </span><span class="nt">&gt;</span>
<span class="nt"><c:foreach< span=""><span class="w"> </span><span class="na">var=</span><span class="s">"month"</span><span class="w"> </span><span class="na">items=</span><span class="s">"${monthList}"</span><span class="w"> </span><span class="nt">&gt;</span>
<span class="nt"><option< span=""><span class="w"> </span><span class="na">value=</span><span class="s">"<c:out err"="" value="&lt;/span&gt;&lt;span class=">${month.value}"</c:out></span><span class="w"> </span><span class="nt">/&gt;</span>"&gt;<span class="nt"><c:out< span="">
<span class="w">  </span><span class="na">value=</span><span class="s">"${month.displayName}"</span><span class="w"> </span><span class="nt">/&gt;</span>
<span class="nt"></span>
<span class="nt"></span>
</c:out<></span></option<></span></c:foreach<></span></select<></span></code></pre></div>
<p>Here the above code is in struts MVC. The monthList value is set from
ModelMap.</p>
<p>The console outputs for that java class</p>
<p><a href="http://1.bp.blogspot.com/-Zo6Oq2AU4B0/TmhcUceVZeI/AAAAAAAAAr0/Tk9I22jffIY/s1600/dateexample-console.PNG"><img alt="image0" src="http://1.bp.blogspot.com/-Zo6Oq2AU4B0/TmhcUceVZeI/AAAAAAAAAr0/Tk9I22jffIY/s1600/dateexample-console.PNG"/></a></p>]]></content:encoded><description>&lt;p&gt;Using Calendar class in java you get everything. We can get the last
date of the month using that. Please have a look of this code snippest
to get last date of the passing month. Here is the full code &lt;a href="http://www.arulraj.net/labs/java/misc/DateExample.java"&gt;click
Here&lt;/a&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kd"&gt;public&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kd"&gt;static&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Date&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;getLastDateOfMonth&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;year&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;month …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Problem viewing Tamil fonts in chromium on Ubuntu</title><link>https://www.arulraj.net/2011/08/problem-viewing-tamil-fonts-in-chromium-on-ubuntu/</link><category>Linux</category><category>Browser</category><category>tamil</category><category>ubuntu</category><category>how-to</category><category>linux</category><author>noemail@noemail.org (arul)</author><pubDate>Fri, 26 Aug 2011 12:41:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2011-08-26:/2011/08/problem-viewing-tamil-fonts-in-chromium-on-ubuntu/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>I am the big fan of tamil love poems.. 😊 Within Google reader all tamil
blogs fonts are displayed correctly in chromium which was downloaded
from Ubuntu software center. But when I goto that link directly, that
page is not rendered properly. It shows some junk character in between.</p>
<p>For example Initially this blog http://bit.ly/ndtgfq shown below</p>
<p><a href="http://3.bp.blogspot.com/-rRgxWW7Qfvs/TlfmYG-R55I/AAAAAAAAArc/-I3ojySvirc/s1600/Tamil%2Bfont%2Berror.png"><img alt="image0" src="http://3.bp.blogspot.com/-rRgxWW7Qfvs/TlfmYG-R55I/AAAAAAAAArc/-I3ojySvirc/s400/Tamil%2Bfont%2Berror.png"/></a>
Tamil font is not rendered properly</p>
<p>But in the firefox its rendered correctly. It shows the fonts correctly.
I solved this issue after little bit googling 😜</p>
<p>Here is the fix.</p>
<ul>
<li>Goto that directory /usr/share/fonts/truetype/freefont/</li>
<li>Delete both the FreeSerif.ttf and FreeSans.ttf file.</li>
</ul>
<div class="highlight"><pre><span></span><code>sudo<span class="w"> </span>rm<span class="w"> </span>-f<span class="w"> </span>/usr/share/fonts/truetype/freefont/FreeSerif.ttf<span class="w"> </span>
sudo<span class="w"> </span>rm<span class="w"> </span>-f<span class="w"> </span>/usr/share/fonts/truetype/freefont/FreeSans.ttf<span class="w"> </span>
</code></pre></div>
<p>Then restart your browser. Now its shown correctly for me.</p>
<p><a href="http://4.bp.blogspot.com/-b0-zDfWqj5w/Tlfn0iQY8nI/AAAAAAAAArk/CrtbQxkS3gE/s1600/Tamil%2Bfont%2Bsuccess.png"><img alt="image1" src="http://4.bp.blogspot.com/-b0-zDfWqj5w/Tlfn0iQY8nI/AAAAAAAAArk/CrtbQxkS3gE/s400/Tamil%2Bfont%2Bsuccess.png"/></a>
Tamil font displayed fine</p>]]></content:encoded><description>&lt;p&gt;I am the big fan of tamil love poems.. &#128522; Within Google reader all tamil
blogs fonts are displayed correctly in chromium which was downloaded
from Ubuntu software center. But when I goto that link directly, that
page is not rendered properly. It shows some junk character in between.&lt;/p&gt;
&lt;p&gt;For example …&lt;/p&gt;</description></item><item><title>Shared media files with other users in linux</title><link>https://www.arulraj.net/2011/08/shared-media-files-with-other-users-in-linux/</link><category>Linux</category><category>commands</category><category>ubuntu</category><category>how-to</category><author>noemail@noemail.org (arul)</author><pubDate>Thu, 18 Aug 2011 13:00:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2011-08-18:/2011/08/shared-media-files-with-other-users-in-linux/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>I think everyone might come across this problem. How to share your Music
and Videos with other users in linux machine..? For mine (username is
<em>arul</em> ) I have all music and videos in my home folder. I want to share
those with others ( username is <em>friends</em> ) in the same machine. You can
ask, by changing the permission of all files with in folder can solve
this issue.</p>
<p>Yes you are correct. But this is a partial solution. When you add /
create new files with in that folder it have the old permissions. To
solve this issue, create / add file with particular permission in that
folder. Here is it how to do that.</p>
<p><strong>First you have create new group.</strong> This is an optional one, you can
use anyone of your old group. For me I created a new group called
"media". Assign this group to user whom want you share.</p>
<div class="highlight"><pre><span></span><code>sudo<span class="w"> </span>groupadd<span class="w"> </span>media
sudo<span class="w"> </span>usermod<span class="w"> </span>-a<span class="w"> </span>-G<span class="w"> </span>media<span class="w"> </span>friends
groups<span class="w"> </span>friends
</code></pre></div>
<p>In second command option "-a" is important. Then only this group is
append to the existing group list otherwise all sub-groups are removed.
The final command will display the user is belong to which are the
groups. You can also do this using GUI. Goto System → Administration →
Users and Groups</p>
<p><a href="http://3.bp.blogspot.com/-pcMtYOBwgNw/Tk1IGvf9TFI/AAAAAAAAArM/aG_-IY2tIoI/s1600/added%2Bnew%2Bgroup.png"><img alt="image0" src="http://3.bp.blogspot.com/-pcMtYOBwgNw/Tk1IGvf9TFI/AAAAAAAAArM/aG_-IY2tIoI/s400/added%2Bnew%2Bgroup.png"/></a>
Add new group and assigned to users</p>
<p>Change group to "media" for existing files and folder with in which
directory you want to share.</p>
<div class="highlight"><pre><span></span><code>sudo<span class="w"> </span>chgrp<span class="w"> </span>-R<span class="w"> </span>media<span class="w"> </span>Music/
sudo<span class="w"> </span>chmod<span class="w"> </span>g+s<span class="w"> </span>-R<span class="w"> </span>Music/
sudo<span class="w"> </span>chmod<span class="w"> </span><span class="m">755</span><span class="w"> </span>-R<span class="w"> </span>Music/
</code></pre></div>
<p>In command "-R" for recursive operations. It will change all folders
and subfolders files. Second command for <strong>set group id for Music and
sub directory.</strong> Final command for RWX access for user and RX access for
group, others for existing files.</p>
<p>Now when you create a new directory with in Music. The "media" group
is assigned to that folder. it will look like</p>
<div class="highlight"><pre><span></span><code>arul@arul-laptop:~/Music$<span class="w"> </span>mkdir<span class="w"> </span>sample
arul@arul-laptop:~/Music$<span class="w"> </span>ll
drwxr-sr-x<span class="w"> </span><span class="m">2</span><span class="w"> </span>arul<span class="w"> </span>media<span class="w"> </span><span class="m">4096</span><span class="w"> </span><span class="m">2011</span>-08-19<span class="w"> </span><span class="m">00</span>:06<span class="w"> </span>sample
</code></pre></div>
<p><a href="http://4.bp.blogspot.com/-Kyx5kwFVL-c/Tk1eB3TFRKI/AAAAAAAAArU/4F3lIBkXnnc/s1600/media%2Bfolder.png"><img alt="image1" src="http://4.bp.blogspot.com/-Kyx5kwFVL-c/Tk1eB3TFRKI/AAAAAAAAArU/4F3lIBkXnnc/s400/media%2Bfolder.png"/></a>
Music folder list view</p>
<p>Now login as other user. create symbolic link for media folder for easy
access.</p>
<div class="highlight"><pre><span></span><code>friends@arul-laptop:~/Music$<span class="w"> </span>ln<span class="w"> </span>-s<span class="w"> </span>/home/arul/Music<span class="w"> </span>./<span class="s2">"music on arul"</span>
</code></pre></div>
<p>To know more about File permission view
<a href="https://help.ubuntu.com/community/FilePermissions">this</a> ubuntu help
page.</p>]]></content:encoded><description>&lt;p&gt;I think everyone might come across this problem. How to share your Music
and Videos with other users in linux machine..? For mine (username is
&lt;em&gt;arul&lt;/em&gt; ) I have all music and videos in my home folder. I want to share
those with others ( username is &lt;em&gt;friends&lt;/em&gt; ) in the same machine …&lt;/p&gt;</description></item><item><title>Dos2Unix / Unix2Dos in ubuntu</title><link>https://www.arulraj.net/2011/08/dos2unix-unix2dos-in-ubuntu/</link><category>Linux</category><category>commands</category><category>ubuntu</category><category>how-to</category><author>noemail@noemail.org (arul)</author><pubDate>Tue, 9 Aug 2011 11:56:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2011-08-09:/2011/08/dos2unix-unix2dos-in-ubuntu/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>By default ubuntu does not have dos2unix and unix2dos commands. But they
provide some alternative commands. Those are fromdos and todos.
sometimes its hard to switch to new commands. You can solve this issue
by creating soft / symbolic links. Here its how to do.</p>
<p><a href="http://2.bp.blogspot.com/-jElTSUvs3NU/TkFvZUAJY6I/AAAAAAAAArE/dPCEYt8KI04/s400/dos2unix.png"><img alt="image0" src="http://2.bp.blogspot.com/-jElTSUvs3NU/TkFvZUAJY6I/AAAAAAAAArE/dPCEYt8KI04/s400/dos2unix.png"/></a>
command creation</p>
<p>First you have to find the location for "fromdos". Below command will
return the location</p>
<div class="highlight"><pre><span></span><code>which<span class="w"> </span>fromdos
</code></pre></div>
<p>Then you have to create a soft/symbolic link for that location with the
name "dos2unix"</p>
<div class="highlight"><pre><span></span><code>sudo<span class="w"> </span>ln<span class="w"> </span>-s<span class="w"> </span>/usr/bin/fromdos<span class="w"> </span>/usr/bin/dos2unix
</code></pre></div>
<p>Follow the same steps for unix2dos.</p>
<p>To know more about symbolic/soft and hard links <a href="http://stackoverflow.com/questions/185899/what-is-the-difference-between-a-symbolic-link-and-a-hard-link">click
here</a></p>]]></content:encoded><description>&lt;p&gt;By default ubuntu does not have dos2unix and unix2dos commands. But they
provide some alternative commands. Those are fromdos and todos.
sometimes its hard to switch to new commands. You can solve this issue
by creating soft / symbolic links. Here its how to do.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://2.bp.blogspot.com/-jElTSUvs3NU/TkFvZUAJY6I/AAAAAAAAArE/dPCEYt8KI04/s400/dos2unix.png"&gt;&lt;img alt="image0" src="http://2.bp.blogspot.com/-jElTSUvs3NU/TkFvZUAJY6I/AAAAAAAAArE/dPCEYt8KI04/s400/dos2unix.png"&gt;&lt;/a&gt;
command creation&lt;/p&gt;
&lt;p&gt;First you have to …&lt;/p&gt;</description></item><item><title>Upgrade Samsung Galaxy 5 and 3 to Froyo</title><link>https://www.arulraj.net/2011/08/upgrade-samsung-galaxy-5-and-3-to-froyo/</link><category>Android</category><category>android</category><category>Mobile</category><category>Linux</category><category>how-to</category><author>noemail@noemail.org (arul)</author><pubDate>Fri, 5 Aug 2011 03:55:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2011-08-05:/2011/08/upgrade-samsung-galaxy-5-and-3-to-froyo/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><strong>How to Upgrade your android to 2.2</strong></p>
<p><a href="https://lh3.googleusercontent.com/-8yr0vIMYWGk/TjuxF4bMH5I/AAAAAAAAAqI/b_ar3tGzFeI/s800/Galaxy-5-and-3.jpg"><img alt="image0" src="https://lh3.googleusercontent.com/-8yr0vIMYWGk/TjuxF4bMH5I/AAAAAAAAAqI/b_ar3tGzFeI/s400/Galaxy-5-and-3.jpg"/></a></p>
<p>Galaxy 5 and 3 with 2.2</p>
<p>I am going to give steps for how to updagrade your Samsung Galaxy 3
(GT-I5800) and Samsung Galaxy 5 (GT-I5503) phone OS Android 2.1 (Eclair)
to Android 2.2 (Froyo). I tested these steps myself. So feel free to
use. It will surely work for Asia / India users.</p>
<p>The Hardware Requirement are:</p>
<ul>
<li>Windows PC.</li>
<li>Samsung Usb cable</li>
<li>Absolutely a Mobile either Galaxy 5 or 3</li>
</ul>
<p>The Software Requirement are:</p>
<ul>
<li>ODIN Multi Downloader.</li>
<li>OPS file</li>
<li>Firmware file</li>
</ul>
<p>The OPS file and Firmware are varies depends upon your Handset. First
download the required files.</p>
<p><strong>For Galaxy 5:</strong></p>
<ul>
<li>ODIN -
    <a href="http://bit.ly/1dTykIG">S5570_Odin_Multi_Downloader_v4.38.exe</a></li>
<li>OPS file - <a href="http://bit.ly/1HRLlcZ">EUROPA_v1.0.ops</a></li>
<li>Firmware -
    <a href="http://bit.ly/1AQYje3">I5503DXJP8_I5503DXJP7_I5503OLBJP7.tar.gz</a></li>
</ul>
<p><strong>For Galaxy 3:</strong></p>
<ul>
<li>ODIN -
    <a href="http://bit.ly/1dTykIG">S5570_Odin_Multi_Downloader_v4.38.exe</a></li>
<li>OPS File - <a href="http://bit.ly/1Jy3DnL">apollo_0531.zip</a></li>
<li>Firmware - <a href="http://bit.ly/1F0PVn7">I5801DDJP6_I5801ODDJP6_INU.zip</a></li>
</ul>
<p>Before start Backup your contacts and everything. Because Upgrade will
delete everything from your mobile not from sd card.</p>
<p><a href="http://4.bp.blogspot.com/-Xy--_q7QAfI/Tju1Fsh0G8I/AAAAAAAAAqQ/HOsRICq7kHk/s1600/how-to-downloading-mode.png"><img alt="image1" src="http://4.bp.blogspot.com/-Xy--_q7QAfI/Tju1Fsh0G8I/AAAAAAAAAqQ/HOsRICq7kHk/s400/how-to-downloading-mode.png"/></a></p>
<p>Image of How to start mobile in downloading mode.</p>
<p><strong>Steps:</strong></p>
<ul>
<li>Clean your existing data. Goto to Settings → Privacy → Factory data
    Reset</li>
<li>Remove your SIM and SD card</li>
<li>Run that ODIN exe. Some times it requires Admin privileges.</li>
<li>Power off your mobile.</li>
<li>Start your mobile as Downloading mode. For that Press Volume Down +
    Home Button [Center Button] + Power Button</li>
<li>Connect to USB. Now ODIN detected your mobile in COM port.</li>
<li>Check the "One Package" Check box and Check all boxes in Options.</li>
<li>Select your OPS File.</li>
<li>Select your firmware. Extract that rar file and select tar file with
    in that.</li>
<li>Click start button.</li>
</ul>
<p><a href="http://3.bp.blogspot.com/-ADPkjhCvSks/Tju2uyxStfI/AAAAAAAAAqg/qwvekNHtxc0/s1600/odin.png"><img alt="image2" src="http://3.bp.blogspot.com/-ADPkjhCvSks/Tju2uyxStfI/AAAAAAAAAqg/qwvekNHtxc0/s400/odin.png"/></a>
How to setup / Settings</p>
<p><a href="http://1.bp.blogspot.com/-r3VzrjvkG58/Tju2StFZiqI/AAAAAAAAAqY/gS93DB7BPd0/s600/Downloading-Mode.jpg"><img alt="image3" src="http://1.bp.blogspot.com/-r3VzrjvkG58/Tju2StFZiqI/AAAAAAAAAqY/gS93DB7BPd0/s400/Downloading-Mode.jpg"/></a>
Upgrading</p>
<p>It will automatically reboot after finish. Rebooting takes 5-10 min
don't panic, please be patient. Then unplug your mobile. Yeah you are
successfully upgraded to Froyo...!!</p>
<p><a href="http://1.bp.blogspot.com/-BI0r3a1z9Z8/Tju7vUZ60sI/AAAAAAAAAq4/GPg_gQtKwZ4/s600/Android-Rebooting.jpg"><img alt="image4" src="http://1.bp.blogspot.com/-BI0r3a1z9Z8/Tju7vUZ60sI/AAAAAAAAAq4/GPg_gQtKwZ4/s400/Android-Rebooting.jpg"/></a>
Rebooting</p>
<p><a href="http://3.bp.blogspot.com/-g_0juKi1KZU/Tju4M_1CRkI/AAAAAAAAAqw/RhZD479naBU/s600/galaxy-about-phone.png"><img alt="image5" src="http://3.bp.blogspot.com/-g_0juKi1KZU/Tju4M_1CRkI/AAAAAAAAAqw/RhZD479naBU/s400/galaxy-about-phone.png"/></a>
Success .. Upgraded</p>
<p>Note: Click on the images for large view.</p>
<p>My configuration:</p>
<blockquote>
<ul>
<li>Windows 7 PC</li>
<li>ODIN v4.38</li>
<li>Galaxy 5 and Galaxy 3</li>
<li>I am from India</li>
</ul>
</blockquote>
<p>To find firmware and OPS for your mobile:
<a href="http://www.samfirmware.com/fwandroid.htm">http://www.samfirmware.com/fwandroid.htm</a></p>
<h2 id="faq">FAQ:</h2>
<p><strong>After upgraded gprs is not working..?</strong></p>
<p>Setup manual APN settings or Delete your APN's and reset. It will 100%
work. But I am not facing any wifi problem.</p>
<p><strong>My Phone is not detected..?</strong></p>
<p>Before start upgrading install USB driver for samsung. You can download
from here http://goo.gl/223cK</p>
<p><strong>How to root my phone..?</strong></p>
<ul>
<li>Download SuperOneClick latest version from
    <a href="http://goo.gl/sD1KY">here</a></li>
<li>Select Exploit as "GingerBreak"</li>
<li>Make sure you phone is detected</li>
<li>Press Root button</li>
</ul>
<p><strong>Fix for samsung logo only showing..?</strong></p>
<p>Follow the same process before rebooting a recovery window displaying 3
options.</p>
<ul>
<li>In that 3 First select "Clear your cache"</li>
<li>Then "Clear data and reset"</li>
<li>Finally select the option to reboot.</li>
</ul>
<p>Now your phone not struct in samsung logo.</p>
<p><strong>How to upgraded to 2.3 ..?</strong></p>
<p>I have upgraded to 2.3.7 (CyanogenMod) by following this
link <a href="http://t.co/4wI6FSmk">http://t.co/4wI6FSmk</a></p>
<p><strong>How to upgraded to 4.0.4 ..?</strong></p>
<p>I have written a post to upgrade our Galaxy 5 to Android Ice Cream
Sandwich <a href="http://www.arulraj.net/2012/07/upgrade-samsung-galaxy-5-to-ice-cream-sandwich.html">http://www.arulraj.net/2012/07/upgrade-samsung-galaxy-5-to-ice-cream-sandwich.html</a></p>
<p><strong>How to go back to 2.1 ..?</strong></p>
<p>First you have to find your firmware version</p>
<p><a href="http://1.bp.blogspot.com/-I4YZL2v3Su8/T035soaNoqI/AAAAAAAANjY/QbvWlwCO5ik/s1600/android+version.PNG"><img alt="image6" src="http://1.bp.blogspot.com/-I4YZL2v3Su8/T035soaNoqI/AAAAAAAANjY/QbvWlwCO5ik/s320/android+version.PNG"/></a></p>
<p>Firmware version</p>
<ul>
<li>Go to Settings → About phone note down your baseband version</li>
<li>Try to get your firmware from internet. Or use this
    <a href="http://hotfile.com/dl/123203814/82f0724/I5503DDJG4.rar.html">I5503DDJG4</a> ,
    <a href="http://dl.dropbox.com/u/2710268/I5503DXJG5.rar">I5503DXJG5</a> 2.1
    firmware (Galaxy 5). Password for zip file is “samfirmware.com”</li>
<li>Use the same ODIN and OPS file and follow the same steps above.</li>
</ul>]]></content:encoded><description>&lt;p&gt;&lt;strong&gt;How to Upgrade your android to 2.2&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://lh3.googleusercontent.com/-8yr0vIMYWGk/TjuxF4bMH5I/AAAAAAAAAqI/b_ar3tGzFeI/s800/Galaxy-5-and-3.jpg"&gt;&lt;img alt="image0" src="https://lh3.googleusercontent.com/-8yr0vIMYWGk/TjuxF4bMH5I/AAAAAAAAAqI/b_ar3tGzFeI/s400/Galaxy-5-and-3.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Galaxy 5 and 3 with 2.2&lt;/p&gt;
&lt;p&gt;I am going to give steps for how to updagrade your Samsung Galaxy 3
(GT-I5800) and Samsung Galaxy 5 (GT-I5503) phone OS Android 2.1 (Eclair)
to Android 2.2 (Froyo). I tested these steps …&lt;/p&gt;</description></item><item><title>Android problems - Galaxy 5</title><link>https://www.arulraj.net/2011/06/android-problems-galaxy-5/</link><category>Mobile</category><category>android</category><author>noemail@noemail.org (arul)</author><pubDate>Fri, 3 Jun 2011 02:00:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2011-06-03:/2011/06/android-problems-galaxy-5/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Here some of the problems are hardware dependent and some are OS
dependent. But still those are not fixed in the latest version of
android. But still they have major share in smartphone
<a href="http://news.cnet.com/8301-13506_3-20051610-17.html">market</a> 😃</p>
<p>The problems in my mobile only. It may vary for your mobile. Some
problems are resolved and some could not.</p>
<p><strong>My Specification:</strong></p>
<div class="highlight"><pre><span></span><code>Model - Samsung GT-I5503 a.k.a Samsung Galaxy 5
Version - Android 2.1 Eclair
Firmware - 2.1-Update1
</code></pre></div>
<p>Can not delete multiple contacts:</p>
<p>There is no option to delete more than one contacts. If you want to
delete 10 contacts you should go with one by one.</p>
<p><a href="http://4.bp.blogspot.com/-KH60R4Err7w/Teh6HZO4LPI/AAAAAAAAAoE/NAHpDWfzUTA/s1600/contact-delete.png"><img alt="image0" src="http://4.bp.blogspot.com/-KH60R4Err7w/Teh6HZO4LPI/AAAAAAAAAoE/NAHpDWfzUTA/s400/contact-delete.png"/></a></p>
<p>Doesn't sync with google contacts groups:</p>
<p>I have contact groups in gmail contacts, but its not synced with my
mobile contacts. Now all gmail contacts in one group.</p>
<p><a href="http://4.bp.blogspot.com/-5s8lYPDeNqE/Teh8LORd-eI/AAAAAAAAAo4/BLu9_Pa0IRQ/s1600/contact-groups-notshow.png"><img alt="image1" src="http://4.bp.blogspot.com/-5s8lYPDeNqE/Teh8LORd-eI/AAAAAAAAAo4/BLu9_Pa0IRQ/s400/contact-groups-notshow.png"/></a></p>
<p>Contact image not shown when dialing:</p>
<p>The contact image is not shown when I calling to someone. The image came
once they attend the call. But not a problem in incoming call, always
image came.</p>
<p><a href="http://3.bp.blogspot.com/-AH6-Qg3VunA/Teh6H24FZOI/AAAAAAAAAoY/zy7NvAvtHDo/s1600/dialing-noimage.png"><img alt="image2" src="http://3.bp.blogspot.com/-AH6-Qg3VunA/Teh6H24FZOI/AAAAAAAAAoY/zy7NvAvtHDo/s400/dialing-noimage.png"/></a></p>
<p>The most of the contacts related problems seems to be solved in Froyo. I
need to update my OS version. But samsung does not provide update for
Galaxy 5 😔</p>
<p>Can not connect with ad-hoc network:</p>
<p>This is the most known android
<a href="http://code.google.com/p/android/issues/detail?id=82">issue</a>. If you
use <a href="https://market.android.com/details?id=com.farproc.wifi.analyzer">wifi
analyzer</a>
it will detect the ad-hoc network. but in the Settings → Wireless and
Networks not even detect the network.</p>
<p>Could not detect your location:</p>
<p>I solved this problem. When i try to to find "My Location"
in Latitude. It always says "Your current location is temporarily
unavailable."</p>
<p><a href="http://2.bp.blogspot.com/-OSbeWkLRma0/TeiAbCrjOAI/AAAAAAAAApA/S2VBY0HFGAU/s1600/location-unavailable.png"><img alt="image3" src="http://2.bp.blogspot.com/-OSbeWkLRma0/TeiAbCrjOAI/AAAAAAAAApA/S2VBY0HFGAU/s400/location-unavailable.png"/></a></p>
<p>Goto Settings → Location and Security → Check both Use wireless networks
and Use GPS satellites. Thats it</p>
<p><a href="http://2.bp.blogspot.com/-W1oDYw97SWY/Teh6IYfCMEI/AAAAAAAAAog/zR5-KvaXQV4/s1600/network-doesn%2527t-detect-location.png"><img alt="image4" src="http://2.bp.blogspot.com/-W1oDYw97SWY/Teh6IYfCMEI/AAAAAAAAAog/zR5-KvaXQV4/s400/network-doesn%2527t-detect-location.png"/></a></p>
<p>Sometimes showing wrong time:</p>
<p>Sometimes my mobile shows correct time and sometimes it shows current
time + 5:30 hours. Finally i solved this. The issue because of getting
the time from GSM network.</p>
<p>Goto Settings → Date and Time → uncheck the Automatic</p>
<p><a href="http://1.bp.blogspot.com/-uk3YT5CaQYI/TeiC3OgyXmI/AAAAAAAAApI/4LOvxT30zg8/s1600/network-automatic-wrongtime.png"><img alt="image5" src="http://1.bp.blogspot.com/-uk3YT5CaQYI/TeiC3OgyXmI/AAAAAAAAApI/4LOvxT30zg8/s400/network-automatic-wrongtime.png"/></a></p>
<p>Proxy only for browser not for applications:</p>
<p>Actually I set proxy for wifi network, But the proxy is works only for
browser not for application you installed.</p>
<p>To Set proxy Goto Settings → Wireless and networks → WiFi Settings →
Advanced</p>
<p><a href="http://2.bp.blogspot.com/-3Pac3sUFvs8/Teh6IvidBjI/AAAAAAAAAoo/XldaRO1H_wg/s1600/network-proxy.png"><img alt="image6" src="http://2.bp.blogspot.com/-3Pac3sUFvs8/Teh6IvidBjI/AAAAAAAAAoo/XldaRO1H_wg/s400/network-proxy.png"/></a></p>
<p>Sync Issue:</p>
<p>If any issue came in syncing. That application is not working any more.
I had a problem in syncing in calendar. After that calendar application
is not opening. Its works after successfully synced. For sync Goto
Setting → Accounts and Sync</p>
<p><a href="http://3.bp.blogspot.com/-DNJ1vX9sKlg/TeiGFSZPEXI/AAAAAAAAApQ/o3U4o2lEiKw/s1600/sync-calendar.png"><img alt="image7" src="http://3.bp.blogspot.com/-DNJ1vX9sKlg/TeiGFSZPEXI/AAAAAAAAApQ/o3U4o2lEiKw/s400/sync-calendar.png"/></a></p>
<p>Bluetooth headset is not supported:</p>
<p>There is no option to connect my bluetooth headset. Even my LG KG195
supports bluetooth headset. 😜</p>
<p>Auto Reboot:</p>
<p>This is a big headache. it will automatically reboot if more process run
at a same time :oops:</p>
<p>Finally I came to a conclusion I need to update my OS version and
samsung firmware. It will solve most of my problem.  Anyone successfully
update OS / firmware for Galaxy 5..?</p>
<p>Last 6 months this post draft today only got the time to finish and
post. 😄</p>
<p>Share your android experience in comments...</p>]]></content:encoded><description>&lt;p&gt;Here some of the problems are hardware dependent and some are OS
dependent. But still those are not fixed in the latest version of
android. But still they have major share in smartphone
&lt;a href="http://news.cnet.com/8301-13506_3-20051610-17.html"&gt;market&lt;/a&gt; &#128515;&lt;/p&gt;
&lt;p&gt;The problems in my mobile only. It may vary for your mobile. Some
problems are resolved …&lt;/p&gt;</description></item><item><title>Toggle copy email in jQuery</title><link>https://www.arulraj.net/2011/05/toggle-copy-email-in-jquery/</link><category>Browser</category><category>javascript</category><author>noemail@noemail.org (arul)</author><pubDate>Sun, 15 May 2011 11:30:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2011-05-15:/2011/05/toggle-copy-email-in-jquery/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>In my current project jquery plays a main role. I done some small fixes
on the jquery script. At that time i learned something on jquery. Here I
am going to explain one of my jquery experience.</p>
<p>To prevent copy and email address from a text box. This is used in most
of the sign-up form.</p>
<p>Requirment:</p>
<ul>
<li>Jquery 1.6</li>
<li>Jquery Validates plugin (optional)</li>
</ul>
<p>Here I have used jquery validate plugin for validating email in the
form.</p>
<p>How to prevent copy and paste in a text input..?</p>
<div class="highlight"><pre><span></span><code><span class="nx">$</span><span class="p">(</span><span class="s2">"#user.email"</span><span class="p">).</span><span class="nx">bind</span><span class="p">(</span><span class="s2">"cut copy paste"</span><span class="p">,</span><span class="w"> </span><span class="kd">function</span><span class="p">(</span><span class="nx">e</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<span class="w">    </span><span class="nx">e</span><span class="p">.</span><span class="nx">preventDefault</span><span class="p">();</span>
<span class="p">});</span>
</code></pre></div>
<p><code>e.preventDefault()</code> — means its return false.</p>
<p>if you want to toggle use return statement.</p>
<p>return true — means you are allowed to copy and paste content in the
text input</p>
<p>return false — means its prevent copy and paste in the text input.</p>
<p><strong>Demo Form:</strong></p>
<iframe height="150" src="http://files.arulraj.net/code/html/prevent_email_jquery.html" width="600">
</iframe>
<p>For Toggling copy email depends upon the check box status the following
javascript is used in the above demo</p>
<div class="highlight"><pre><span></span><code><span class="nx">$</span><span class="p">(</span><span class="s2">"#user.email"</span><span class="p">).</span><span class="nx">bind</span><span class="p">(</span><span class="s2">"cut copy paste"</span><span class="p">,</span><span class="w"> </span><span class="kd">function</span><span class="p">(</span><span class="nx">e</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<span class="w">    </span><span class="c1">//e.preventDefault();</span>
<span class="w">    </span><span class="k">return</span><span class="w"> </span><span class="nx">$</span><span class="p">(</span><span class="s2">"div input[name='allow.copy']:checkbox"</span><span class="p">).</span><span class="nx">is</span><span class="p">(</span><span class="s2">":checked"</span><span class="p">);</span>
<span class="w">    </span><span class="c1">// false means not allow to copy.</span>
<span class="p">});</span>
</code></pre></div>
<p>For html code <a href="http://files.arulraj.net/code/html/prevent_email_jquery.html">Click
here</a> and
view the source</p>]]></content:encoded><description>&lt;p&gt;In my current project jquery plays a main role. I done some small fixes
on the jquery script. At that time i learned something on jquery. Here I
am going to explain one of my jquery experience.&lt;/p&gt;
&lt;p&gt;To prevent copy and email address from a text box. This is used …&lt;/p&gt;</description></item><item><title>Flex runtime spacer</title><link>https://www.arulraj.net/2011/04/flex-runtime-spacer/</link><category>Programming</category><category>Actionscript</category><category>Flash</category><author>noemail@noemail.org (arul)</author><pubDate>Sun, 3 Apr 2011 06:39:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2011-04-03:/2011/04/flex-runtime-spacer/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>I am using Flex 4 for one of my Flex project. That project needs some
dynamic spacing between the components. Here is the example code for the
runtime spacer. I am using spark components here.</p>
<p>Code:</p>
<div class="highlight"><pre><span></span><code><span class="cp"><?xml version="1.0" encoding="utf-8"?></span>

<span class="nt"><s:application< span=""><span class="w"> </span><span class="na">name=</span><span class="s">"Spark_Spacer_Test"</span>
<span class="w">    </span><span class="na">xmlns:fx=</span><span class="s">"http://ns.adobe.com/mxml/2009"</span>
<span class="w">    </span><span class="na">xmlns:s=</span><span class="s">"library://ns.adobe.com/flex/spark"</span>
<span class="w">    </span><span class="na">xmlns:mx=</span><span class="s">"library://ns.adobe.com/flex/mx"</span><span class="w"> </span><span class="nt">&gt;</span>

<span class="nt"><s:controlbarcontent></s:controlbarcontent></span>
<span class="w">    </span><span class="nt"><s:label< span=""><span class="w"> </span><span class="na">text=</span><span class="s">"Space (px):"</span><span class="w"> </span><span class="nt">/&gt;</span>
<span class="w">    </span><span class="nt"><s:hslider< span=""><span class="w"> </span><span class="na">id=</span><span class="s">"sl"</span><span class="w"> </span><span class="na">minimum=</span><span class="s">"0"</span><span class="w"> </span><span class="na">maximum=</span><span class="s">"600"</span><span class="w"> </span><span class="na">value=</span><span class="s">"200"</span><span class="w"> </span><span class="nt">/&gt;</span>
<span class="nt"></span>

<span class="nt"><s:hgroup< span=""><span class="w"> </span><span class="na">top=</span><span class="s">"20"</span><span class="w"> </span><span class="na">horizontalCenter=</span><span class="s">"0"</span><span class="nt">&gt;</span>
<span class="w">    </span><span class="nt"><s:vgroup></s:vgroup></span>
<span class="w">        </span><span class="nt"><s:button< span=""><span class="w"> </span><span class="na">id=</span><span class="s">"button1"</span><span class="w"> </span><span class="na">label=</span><span class="s">"Me"</span><span class="w"> </span><span class="nt">/&gt;</span>
<span class="w">    </span><span class="nt"></span>
<span class="w">    </span><span class="nt"><s:vgroup< span=""><span class="w"> </span><span class="na">id=</span><span class="s">"vSpacer"</span><span class="w"> </span><span class="na">width=</span><span class="s">"{sl.value}"</span><span class="w"> </span><span class="nt">&gt;</span>
<span class="w">        </span><span class="nt"><s:rect< span=""><span class="w"> </span><span class="na">width=</span><span class="s">"{sl.value}"</span><span class="w"> </span><span class="na">height=</span><span class="s">"0"</span><span class="w"> </span><span class="nt">/&gt;</span>
<span class="w">    </span><span class="nt"></span>
<span class="w">    </span><span class="nt"><s:vgroup></s:vgroup></span>
<span class="w">        </span><span class="nt"><s:button< span=""><span class="w"> </span><span class="na">id=</span><span class="s">"button2"</span><span class="w"> </span><span class="na">label=</span><span class="s">"You"</span><span class="w"> </span><span class="nt">/&gt;</span>
<span class="w">    </span><span class="nt"></span>
<span class="nt"></span>

<span class="nt"></span>
</s:button<></span></s:rect<></span></s:vgroup<></span></s:button<></span></s:hgroup<></span></s:hslider<></span></s:label<></span></s:application<></span></code></pre></div>
<p>Running example:</p>
<p><embed height="300" src="https://files.arulraj.net/code/flash/example/RuntimeSpacer.swf" width="500"/></p>]]></content:encoded><description>&lt;p&gt;I am using Flex 4 for one of my Flex project. That project needs some
dynamic spacing between the components. Here is the example code for the
runtime spacer. I am using spark components here.&lt;/p&gt;
&lt;p&gt;Code:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;s:Application&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Spark_Spacer_Test&amp;quot;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="na"&gt;xmlns:fx=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;http://ns …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Google chrome Download video</title><link>https://www.arulraj.net/2011/03/google-chrome-download-video/</link><category>Browser</category><category>Browser</category><category>hacking</category><category>ubuntu</category><category>Flash</category><category>Linux</category><author>noemail@noemail.org (arul)</author><pubDate>Sat, 19 Mar 2011 14:06:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2011-03-19:/2011/03/google-chrome-download-video/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>The most video content web sites use flash player as them video
player. In Linux you can download streaming videos without any third
party tools. Previously the videos which you are watching by default its
stored in /tmp directory. You can copy the video from there. But in the
google chrome or Chromium browser by default its come with a flash
player. If you using that flash player the video is not downloaded in
/tmp directory. They are using there own intelligence to prevent this.
Here we are going to see a simple hack to download videos in google
chrome . Steps are</p>
<ul>
<li>Goto installed plugins <code>about:plugins</code> in chrome / mozilla</li>
<li>Click Details to view with more information. Disable the Flash
    Plugin. The Location of the plugin would be
    "/usr/lib/adobe-flashplugin/libflashplayer.so"</li>
<li>Download the tar.gz version of flash player from
    here http://get.adobe.com/flashplayer/</li>
<li>Extract that file and copy the libflashplayer.so
    to /usr/lib/chromium-browser/plugins .  Then Enable this in plugin
    page.</li>
<li>If you view any video it will download in
    /home/\<user_name>/.cache/chromium/Default/Cache this folder.</user_name></li>
<li>For Google chrome user cache location will be
    /home/\<user_name>/.cache/google-chrome/Default/Cache</user_name></li>
</ul>
<p>Make a link for easy access</p>
<div class="highlight"><pre><span></span><code>ln<span class="w"> </span>-s<span class="w"> </span>/home/arul/.cache/chromium/Default/Cache/<span class="w"> </span>/tmp/chrome-cache
</code></pre></div>
<p>Screenshots:</p>
<h2 id="details-view-of-the-plugin-page">Details View of the Plugin page</h2>
<div class="separator" style="clear: both; text-align: center;">

[![image0](http://1.bp.blogspot.com/-cLF0pmaL9ws/TYULYUaA1oI/AAAAAAAAAns/BrRbE1fbemo/s400/chrome%2Bplugin%2B-%2BDetails%2Bview.png)](http://1.bp.blogspot.com/-cLF0pmaL9ws/TYULYUaA1oI/AAAAAAAAAns/BrRbE1fbemo/s1600/chrome%2Bplugin%2B-%2BDetails%2Bview.png)

</div>
<h2 id="chromium-plugin-folder">Chromium Plugin folder</h2>
<div class="separator" style="clear: both; text-align: center;">

[![image1](http://1.bp.blogspot.com/-k8fb-V-sEks/TYUL-qW_N2I/AAAAAAAAAn0/t-R6vmr_-ow/s400/chrome%2Bplugin%2Bdirectory.png)](http://1.bp.blogspot.com/-k8fb-V-sEks/TYUL-qW_N2I/AAAAAAAAAn0/t-R6vmr_-ow/s1600/chrome%2Bplugin%2Bdirectory.png)

</div>
<h2 id="chromium-cache-folder">Chromium Cache folder</h2>
<div class="separator" style="clear: both; text-align: center;">

[![image2](http://4.bp.blogspot.com/-RHXSFHAJpCA/TYUMIGQU6_I/AAAAAAAAAn8/M_eTTLo3IKM/s400/chrome%2Bcache%2Blocation.png)](http://4.bp.blogspot.com/-RHXSFHAJpCA/TYUMIGQU6_I/AAAAAAAAAn8/M_eTTLo3IKM/s1600/chrome%2Bcache%2Blocation.png)

</div>
<p>My Configuration:</p>
<blockquote>
<ul>
<li>OS : Ubuntu 10.04</li>
<li>Browser : Chromium 10.0.648.133 (Developer Build 77742) Ubuntu
    10.04</li>
<li>Flash : Shockwave Flash 10.2 r152</li>
</ul>
</blockquote>
<p>Update on 21th March 2011:</p>
<p>After a deep testing the video downloaded is disappear after sometime. I
tested against youtube.</p>
<p>Otherwise use older version:</p>
<p>Download the older version of Flashplayer 10. Then copy that to chromium
plugin directory. Enable this plugin now you can get the file in the
/tmp directory. I am using Version: 10.0 r45. I get this version from
with flex sdk runtime folder.</p>]]></content:encoded><description>&lt;p&gt;The most video content web sites use flash player as them video
player. In Linux you can download streaming videos without any third
party tools. Previously the videos which you are watching by default its
stored in /tmp directory. You can copy the video from there. But in the
google …&lt;/p&gt;</description></item><item><title>Small FB hack</title><link>https://www.arulraj.net/2011/02/small-fb-hack/</link><category>Programming</category><category>Browser</category><category>hacking</category><category>java</category><author>noemail@noemail.org (arul)</author><pubDate>Fri, 25 Feb 2011 14:25:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2011-02-25:/2011/02/small-fb-hack/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Don't think I had broke the security system of facebook and got others
personal information. I am not a such a knowledge person 😄 .. Just see
the below picture</p>
<div class="separator" style="clear: both; text-align: center;">

[![image0](http://3.bp.blogspot.com/-QCzv73ZG5ZQ/TWgJLMnwG8I/AAAAAAAAAnY/WfoKhXl7jig/s400/fb_hack.png)](http://www.facebook.com/permalink.php?story_fbid=191226034231536&amp;id=100000324222880)

</div>
<div class="separator" style="clear: both; text-align: left;">

Is this possible a human can click 2000 mouse click per second. No
way\... We broke a facebook application Click! Click! Click!\... The
application for calculate mouse clicking capacity with in 10 seconds and
you can share it in your wall.. simple\... You can crack this using java
robot class\...

</div>
<div class="separator" style="clear: both; text-align: left;">

A two line of code can do this..

</div>
<div class="highlight"><pre><span></span><code>rb.mousePress(InputEvent.BUTTON1_MASK);
rb.mouseRelease(InputEvent.BUTTON1_MASK);
</code></pre></div>
<p>Using this i can made upto 15,000 clicks. I am using openjdk in ubuntu.
I could not break my friend (Ponraj) record. May be bad thread handing
mechanism in openjvm.. Or OS dependency i am not go deep with in
that... He using some better code than me. I think he used
<a href="http://seleniumhq.org/download/">Selenium</a> with this. Need to discuss
with him and will update here... And i forget to mention your browser
also have some limitation... 😌</p>
<p>Here is the code I used...</p>
<div class="highlight"><pre><span></span><code><span class="kn">import</span><span class="w"> </span><span class="nn">java.awt.AWTException</span><span class="p">;</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">java.awt.Robot</span><span class="p">;</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">java.awt.event.InputEvent</span><span class="p">;</span>

<span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">FBClick</span><span class="w"> </span><span class="kd">implements</span><span class="w"> </span><span class="n">Runnable</span><span class="w"> </span><span class="p">{</span>

<span class="w"> </span><span class="kd">private</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="n">Boolean</span><span class="w"> </span><span class="n">timeout</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">false</span><span class="p">;</span>

<span class="w"> </span><span class="nd">@SuppressWarnings</span><span class="p">(</span><span class="s">"deprecation"</span><span class="p">)</span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="n">String</span><span class="w"> </span><span class="n">d</span><span class="o">[]</span><span class="p">)</span><span class="w"> </span><span class="kd">throws</span><span class="w"> </span><span class="n">InterruptedException</span><span class="p">,</span>
<span class="w"> </span><span class="n">AWTException</span><span class="w"> </span><span class="p">{</span>
<span class="w">   </span><span class="n">Runnable</span><span class="w"> </span><span class="n">fb</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">FBClick</span><span class="p">();</span>
<span class="w">   </span><span class="n">Thread</span><span class="w"> </span><span class="n">th</span><span class="o">[]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Thread</span><span class="o">[</span><span class="mi">2</span><span class="o">]</span><span class="p">;</span>
<span class="w">   </span><span class="n">Thread</span><span class="p">.</span><span class="na">sleep</span><span class="p">(</span><span class="mi">6000</span><span class="p">);</span>
<span class="w">   </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">th</span><span class="p">.</span><span class="na">length</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<span class="w">     </span><span class="n">th</span><span class="o">[</span><span class="n">i</span><span class="o">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Thread</span><span class="p">(</span><span class="n">fb</span><span class="p">);</span>
<span class="w">     </span><span class="n">th</span><span class="o">[</span><span class="n">i</span><span class="o">]</span><span class="p">.</span><span class="na">start</span><span class="p">();</span>
<span class="w">   </span><span class="p">}</span>

<span class="w">   </span><span class="n">Long</span><span class="w"> </span><span class="n">startTime</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">currentTimeMillis</span><span class="p">();</span>
<span class="w">   </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="kc">true</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<span class="w">     </span><span class="n">Long</span><span class="w"> </span><span class="n">endTime</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">currentTimeMillis</span><span class="p">();</span>
<span class="w">     </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">endTime</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">startTime</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="mi">11000</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<span class="w">       </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">th</span><span class="p">.</span><span class="na">length</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<span class="w">         </span><span class="n">th</span><span class="o">[</span><span class="n">i</span><span class="o">]</span><span class="p">.</span><span class="na">stop</span><span class="p">();</span>
<span class="w">       </span><span class="p">}</span>
<span class="w">       </span><span class="n">timeout</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">true</span><span class="p">;</span>
<span class="w">       </span><span class="k">break</span><span class="p">;</span>
<span class="w">     </span><span class="p">}</span>
<span class="w">     </span><span class="n">Thread</span><span class="p">.</span><span class="na">sleep</span><span class="p">(</span><span class="mi">3000</span><span class="p">);</span>
<span class="w">   </span><span class="p">}</span>
<span class="w">   </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">"The end"</span><span class="p">);</span>
<span class="w"> </span><span class="p">}</span>

<span class="w"> </span><span class="nd">@Override</span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">run</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
<span class="w">   </span><span class="k">try</span><span class="w"> </span><span class="p">{</span>
<span class="w">     </span><span class="n">Robot</span><span class="w"> </span><span class="n">rb</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Robot</span><span class="p">();</span>
<span class="w">     </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">timeout</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<span class="w">       </span><span class="n">rb</span><span class="p">.</span><span class="na">mousePress</span><span class="p">(</span><span class="n">InputEvent</span><span class="p">.</span><span class="na">BUTTON1_MASK</span><span class="p">);</span>
<span class="w">       </span><span class="n">rb</span><span class="p">.</span><span class="na">mouseRelease</span><span class="p">(</span><span class="n">InputEvent</span><span class="p">.</span><span class="na">BUTTON1_MASK</span><span class="p">);</span>
<span class="w">     </span><span class="p">}</span>
<span class="w">   </span><span class="p">}</span><span class="w"> </span><span class="k">catch</span><span class="w"> </span><span class="p">(</span><span class="n">AWTException</span><span class="w"> </span><span class="n">e</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<span class="w">     </span><span class="n">e</span><span class="p">.</span><span class="na">printStackTrace</span><span class="p">();</span>
<span class="w">   </span><span class="p">}</span>
<span class="w"> </span><span class="p">}</span>
<span class="p">}</span>
</code></pre></div>
<p>How to use this code..?</p>
<p>Compile and Run this java Code and place your mouse on START Button...</p>
<div class="separator" style="clear: both; text-align: center;">

[![image1](http://1.bp.blogspot.com/-H8OtXSjTogY/TWgPnMDeg0I/AAAAAAAAAng/24lE9fshwhg/s400/fb_click_apps.png)](http://apps.facebook.com/swtsubqaslfoptcmo/)

</div>
<p><em>Think like a programmer..</em> i copied this quote from him... 😄</p>]]></content:encoded><description>&lt;p&gt;Don't think I had broke the security system of facebook and got others
personal information. I am not a such a knowledge person &#128516; .. Just see
the below picture&lt;/p&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;

[![image0](http://3.bp.blogspot.com/-QCzv73ZG5ZQ/TWgJLMnwG8I/AAAAAAAAAnY/WfoKhXl7jig/s400/fb_hack.png)](http://www.facebook.com/permalink.php?story_fbid=191226034231536&amp;id=100000324222880 …&lt;/div&gt;</description></item><item><title>Get Ubuntu Version</title><link>https://www.arulraj.net/2011/02/get-ubuntu-version/</link><category>Linux</category><category>ubuntu</category><category>how-to</category><author>noemail@noemail.org (arul)</author><pubDate>Fri, 25 Feb 2011 11:02:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2011-02-25:/2011/02/get-ubuntu-version/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><strong>How to get the ubuntu Version..?</strong></p>
<p>There are different ways to get the version of ubuntu you are using...
Here we are going to discuss the all ways...</p>
<div class="separator" style="clear: both; text-align: center;">

[![image0](http://4.bp.blogspot.com/-VueKP61Jfhs/TWe5k1oPS4I/AAAAAAAAAmw/cQ-BQQeRHz4/s400/ubuntu-sticker_logo.jpg)](http://4.bp.blogspot.com/-VueKP61Jfhs/TWe5k1oPS4I/AAAAAAAAAmw/cQ-BQQeRHz4/s1600/ubuntu-sticker_logo.jpg)

</div>
<p>This option is common to all linux flavors . it will display the kernal
and other information too.</p>
<blockquote>
<p>uname -a</p>
</blockquote>
<div class="separator" style="clear: both; text-align: center;">

[![image1](http://4.bp.blogspot.com/--bK3K2EVF70/TWe7iBJO-TI/AAAAAAAAAm4/6e_9TanQElo/s400/uname-a.png)](http://4.bp.blogspot.com/--bK3K2EVF70/TWe7iBJO-TI/AAAAAAAAAm4/6e_9TanQElo/s1600/uname-a.png)

</div>
<p>cat /etc/issue</p>
<div class="separator" style="clear: both; text-align: center;">

[![image2](http://4.bp.blogspot.com/-2yir31hijuw/TWe8hFxuASI/AAAAAAAAAnA/YDLxKKShmS0/s400/cat%2Bissue.png)](http://4.bp.blogspot.com/-2yir31hijuw/TWe8hFxuASI/AAAAAAAAAnA/YDLxKKShmS0/s1600/cat%2Bissue.png)

</div>
<p>lsb_release -a</p>
<div class="separator" style="clear: both; text-align: center;">

[![image3](http://4.bp.blogspot.com/-f1_2r394gak/TWe9Qmt4QGI/AAAAAAAAAnI/6L8B9Leib9E/s400/lsb_release.png)](http://4.bp.blogspot.com/-f1_2r394gak/TWe9Qmt4QGI/AAAAAAAAAnI/6L8B9Leib9E/s1600/lsb_release.png)

</div>
<p>Press CTRL+ALT+F1</p>
<p>Then switch back to X11 using CTRL+ALT+F7</p>
<blockquote>
<p>Goto System → About Ubuntu</p>
</blockquote>
<div class="separator" style="clear: both; text-align: center;">

[![image4](http://2.bp.blogspot.com/-UoGMFz3OwWc/TWfgQuKW72I/AAAAAAAAAnQ/TUVyDByv7tY/s400/about_ubuntu.png)](http://2.bp.blogspot.com/-UoGMFz3OwWc/TWfgQuKW72I/AAAAAAAAAnQ/TUVyDByv7tY/s1600/about_ubuntu.png)

</div>]]></content:encoded><description>&lt;p&gt;&lt;strong&gt;How to get the ubuntu Version..?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;There are different ways to get the version of ubuntu you are using...
Here we are going to discuss the all ways...&lt;/p&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;

[![image0](http://4.bp.blogspot.com/-VueKP61Jfhs/TWe5k1oPS4I/AAAAAAAAAmw/cQ-BQQeRHz4/s400/ubuntu-sticker_logo.jpg)](http://4.bp.blogspot.com/-VueKP61Jfhs/TWe5k1oPS4I/AAAAAAAAAmw/cQ-BQQeRHz4 …&lt;/div&gt;</description></item><item><title>Type tamil in ubuntu</title><link>https://www.arulraj.net/2011/01/type-tamil-in-ubuntu/</link><category>Linux</category><category>tamil</category><category>ubuntu</category><category>how-to</category><author>noemail@noemail.org (arul)</author><pubDate>Fri, 14 Jan 2011 12:44:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2011-01-14:/2011/01/type-tamil-in-ubuntu/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>I Just want to ﻿post a comment in my friend facebook wall... I feel if
that comment is in Tamil it will be more expressive.. There are more
services available for online like
<a href="http://www.google.com/transliterate/indic/Tamil">http://www.google.com/transliterate/indic/Tamil</a> . But in the future if
i want to type in word or excel offline will be useful.. i just google
it.. Here the steps for Tamil keyboard for ubuntu..</p>
<p>How to type tamil in ubuntu ..?</p>
<p>Goto System → Preferences → Keyboard .</p>
<div class="separator" style="clear: both; text-align: center;">

[![image0](http://1.bp.blogspot.com/_X5tq9y9xv2s/TTCYSZRV3zI/AAAAAAAAAmM/JkbvDM0WT7k/s400/keyboard.png)](http://1.bp.blogspot.com/_X5tq9y9xv2s/TTCYSZRV3zI/AAAAAAAAAmM/JkbvDM0WT7k/s1600/keyboard.png)

</div>
<p>Then choose the Layouts tab. Click the "Add" button. Then Change the
country to India and choose your tamil layouts. For myself i choose
"India Tamil Unicode"</p>
<div class="separator" style="clear: both; text-align: center;">

[![image1](http://3.bp.blogspot.com/_X5tq9y9xv2s/TTCYnQfjWaI/AAAAAAAAAmU/_cTT9U7j1sQ/s400/keyboard-Choose%2Ba%2BLayout.png)](http://3.bp.blogspot.com/_X5tq9y9xv2s/TTCYnQfjWaI/AAAAAAAAAmU/_cTT9U7j1sQ/s1600/keyboard-Choose%2Ba%2BLayout.png)

</div>
<p>Now you can see your layouts in the window.</p>
<div class="separator" style="clear: both; text-align: center;">

[![image2](http://3.bp.blogspot.com/_X5tq9y9xv2s/TTCY5i_a8zI/AAAAAAAAAmc/dLpqBbV17EE/s400/Keyboard%2BPreferences.png)](http://3.bp.blogspot.com/_X5tq9y9xv2s/TTCY5i_a8zI/AAAAAAAAAmc/dLpqBbV17EE/s1600/Keyboard%2BPreferences.png)

</div>
<p>You can change your typing language using the keyboard layout on the top
panel. By clicking on this applet you can change the language layout
what ever you want.</p>
<div class="separator" style="clear: both; text-align: center;">

[![image3](http://4.bp.blogspot.com/_X5tq9y9xv2s/TTCZN-A-HUI/AAAAAAAAAmk/P5fRGTP1fQQ/s400/keyboard%2Bapplet.png)](http://4.bp.blogspot.com/_X5tq9y9xv2s/TTCZN-A-HUI/AAAAAAAAAmk/P5fRGTP1fQQ/s1600/keyboard%2Bapplet.png)

</div>
<p>Now i can type in tamil any where in ubuntu.</p>
<p>நன்றி ... அருள்.. :)</p>]]></content:encoded><description>&lt;p&gt;I Just want to ﻿post a comment in my friend facebook wall... I feel if
that comment is in Tamil it will be more expressive.. There are more
services available for online like
&lt;a href="http://www.google.com/transliterate/indic/Tamil"&gt;http://www.google.com/transliterate/indic/Tamil&lt;/a&gt; . But in the future if
i want to type in …&lt;/p&gt;</description></item><item><title>Hectic problem in ubuntu - resolved</title><link>https://www.arulraj.net/2010/12/hectic-problem-in-ubuntu-resolved/</link><category>Linux</category><category>Linux</category><category>ubuntu</category><category>how-to</category><author>noemail@noemail.org (arul)</author><pubDate>Thu, 23 Dec 2010 14:07:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2010-12-23:/2010/12/hectic-problem-in-ubuntu-resolved/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><strong>My Hectic problem in Ubuntu</strong></p>
<p><a href="http://3.bp.blogspot.com/_X5tq9y9xv2s/TKjoyGZNheI/AAAAAAAAAi8/5gH6PxD0DtY/s1600/thinking+ubuntu.jpg"><img alt="image0" src="http://3.bp.blogspot.com/_X5tq9y9xv2s/TKjoyGZNheI/AAAAAAAAAi8/5gH6PxD0DtY/s320/thinking+ubuntu.jpg"/></a></p>
<p>Here I will explain how to resolve hectic problems in ubuntu (that I
felt were tough). Here is the list of my problems.</p>
<ol>
<li>Number Lock not enabled when booting</li>
<li>Brightness adjustment</li>
<li>Tata photon+ data card problem</li>
<li>Unauthorized resource when update﻿</li>
<li>VLC problem</li>
<li>GPG error: <a href="http://ppa.launchpad.net">http://ppa.launchpad.net</a> lucid Release: The following
    signatures couldn't be verified because the public key is not
    available: NO_PUBKEY D225991A72B194E5Failed</li>
<li>Screen lock for root user</li>
<li>"P"- Button in Acer 5740﻿﻿</li>
</ol>
<p>Enable Numlock when boot..?</p>
<p>By default the Number lock is disabled. To enable Numlock when booting.</p>
<ul>
<li>Install numlockx from your ubuntu software center</li>
<li>add the line shown below, at the End of File (before exit0)</li>
</ul>
<p>| if [ -x /usr/bin/numlockx ]; then
|  /usr/bin/numlockx on
|  fi</p>
<p>OR</p>
<p>You can add numlockx in startup ( System → Preferences → Startup
Applications).</p>
<div class="separator" style="clear: both; text-align: center;">

[![image1](http://3.bp.blogspot.com/_X5tq9y9xv2s/TROcpK9B-OI/AAAAAAAAAlI/HsZmcQpuYlM/s400/numlockx%2Bstartup.png)](http://3.bp.blogspot.com/_X5tq9y9xv2s/TROcpK9B-OI/AAAAAAAAAlI/HsZmcQpuYlM/s1600/numlockx%2Bstartup.png)

</div>
<p>But in this solution the num lock will turn on only after logged in.</p>
<p>| Brightness Adjustment ..?
|  In ubuntu there is a option to adjust the brightness. But no luck for
  me</p>
<p>Go to → Preferences → There is a option available for brightness
adjustment.</p>
<div class="separator" style="clear: both; text-align: center;">

[![image2](http://1.bp.blogspot.com/_X5tq9y9xv2s/TROgOZn2wsI/AAAAAAAAAlQ/ObB8Azl-53E/s400/brightness%2Bpreference.png)](http://1.bp.blogspot.com/_X5tq9y9xv2s/TROgOZn2wsI/AAAAAAAAAlQ/ObB8Azl-53E/s1600/brightness%2Bpreference.png)

</div>
<p>Tata Photon problem ..?</p>
<p>Tata Photon plus came with my laptop as a vendor compliment. When I
plugged the data card in my system, it was not detected, it was just
detected as memory card (as pen drive ). Here are the steps to fix for
this issue.</p>
<ul>
<li>Download usbmodeswith from this
    <a href="https://launchpad.net/ubuntu/+archive/primary/+files/usb-modeswitch_1.1.0-2_i386.deb">link</a>
    or you can download from ubuntu software center.</li>
<li>Run this "lsusb" and find Product and Vendor id respective to the
    "Huawei Technologies Co., Ltd." for mine its like 12d1:1446 in
    that vendor id is 12d1 and product id is 1446</li>
<li>Goto this folder /etc/usb.modswitch.d/ then find the file with name
    "12d1:1446"</li>
<li>Add this 140b in TargetProductList in that file</li>
<li>Now run this command. " usb_modeswitch -v VENDOR_ID -p PRODUCT_ID
    -M MESSAGE_CONTENT ". For mine " usb_modeswitch -v 12d1 -p 1446 -M
    55534243123456780000000000000011060000000000000000000000000000 "</li>
<li>Now the data card detected as modem.</li>
<li>To Check whether its detected as a modem run the lsusb command its
    changed to 12d1:140b</li>
</ul>
<p>Ubuntu Software Center:</p>
<div class="separator" style="clear: both; text-align: center;">

[![image3](http://4.bp.blogspot.com/_X5tq9y9xv2s/TROTxIvOYgI/AAAAAAAAAkg/pJs-ZiTCl5k/s400/usb%2Bmodeswitch-Ubuntu%2BSoftware%2BCenter.png)](http://4.bp.blogspot.com/_X5tq9y9xv2s/TROTxIvOYgI/AAAAAAAAAkg/pJs-ZiTCl5k/s1600/usb%2Bmodeswitch-Ubuntu%2BSoftware%2BCenter.png)

</div>
<p>lsusb:</p>
<div class="separator" style="clear: both; text-align: center;">

[![image4](http://4.bp.blogspot.com/_X5tq9y9xv2s/TROUuPlivVI/AAAAAAAAAko/7-msl5lSre8/s400/lsusb-terminal.png)](http://4.bp.blogspot.com/_X5tq9y9xv2s/TROUuPlivVI/AAAAAAAAAko/7-msl5lSre8/s1600/lsusb-terminal.png)

</div>
<p>cat 12d1:1446:</p>
<div class="separator" style="clear: both; text-align: center;">

[![image5](http://4.bp.blogspot.com/_X5tq9y9xv2s/TROW_nPIlKI/AAAAAAAAAkw/oE0PtAA5fTg/s400/cat%2B12d1%253A1446.png)](http://4.bp.blogspot.com/_X5tq9y9xv2s/TROW_nPIlKI/AAAAAAAAAkw/oE0PtAA5fTg/s1600/cat%2B12d1%253A1446.png)﻿

</div>
<p>usb_modeswitch command:</p>
<div class="separator" style="clear: both; text-align: center;">

[![image6](http://1.bp.blogspot.com/_X5tq9y9xv2s/TROZRYE6aKI/AAAAAAAAAk4/mQvDFEjblc0/s400/usb_modeswitch.png)](http://1.bp.blogspot.com/_X5tq9y9xv2s/TROZRYE6aKI/AAAAAAAAAk4/mQvDFEjblc0/s1600/usb_modeswitch.png)

</div>
<p>To check:</p>
<div class="separator" style="clear: both; text-align: center;">

[![image7](http://1.bp.blogspot.com/_X5tq9y9xv2s/TROaRxmEdkI/AAAAAAAAAlA/EuwPi7sXNZ8/s400/lsusb-to%2Bcheck.png)](http://1.bp.blogspot.com/_X5tq9y9xv2s/TROaRxmEdkI/AAAAAAAAAlA/EuwPi7sXNZ8/s1600/lsusb-to%2Bcheck.png)

</div>
<p>The disadvantage is that,  you need to run this command every time you
plug in the card. Guys if you know a better solution comment here.</p>
<p>Unauthorized resource when update ...?</p>
<p>This error came when i was update my system using "Update Manager"
(System → Administration → Update Manager). Here are the steps to
resolve this issue</p>
<ul>
<li>Goto System → Administration → Software Sources</li>
<li>Change that Download From Select Box to Main Server instead of Local
    Server (For mine Server From India)</li>
</ul>
<div class="separator" style="clear: both; text-align: center;">

[![image8](http://2.bp.blogspot.com/_X5tq9y9xv2s/TROQKMA4AnI/AAAAAAAAAkY/yF7J5SgkNok/s400/Screenshot-Software%2BSources.png)](http://2.bp.blogspot.com/_X5tq9y9xv2s/TROQKMA4AnI/AAAAAAAAAkY/yF7J5SgkNok/s1600/Screenshot-Software%2BSources.png)

</div>
<div class="separator" style="clear: both; text-align: left;">

VLC root user problem ..?

</div>
<div class="separator" style="clear: both; text-align: left;">

VLC is running fine for my other user. The only problem is that it could
not support for root user. Various forums say by default that VLC is
disabled for root user. If you want enable this you need to download the
source code and make a small change then rebuild and install. Too bad
\... :(

</div>
<div class="separator" style="clear: both; text-align: left;">

GPG Error ..?

</div>
<div class="separator" style="clear: both; text-align: left;">

I got this error when running my update manager. I don\'t know how this
error came and why my system is looking for the public key. Here are the
steps to fix the problem.

</div>
<div class="separator" style="clear: both; text-align: left;">

-   Run these commands in terminal

</div>
<div class="highlight"><pre><span></span><code><span class="n">gpg</span><span class="w"> </span><span class="o">--</span><span class="n">keyserver</span><span class="w"> </span><span class="n">keyserver</span><span class="o">.</span><span class="n">ubuntu</span><span class="o">.</span><span class="n">com</span><span class="w"> </span><span class="o">--</span><span class="n">recv</span><span class="w"> </span><span class="mi">72</span><span class="n">B194E5</span>

<span class="n">gpg</span><span class="w"> </span><span class="o">--</span><span class="k">export</span><span class="w"> </span><span class="o">--</span><span class="n">armor</span><span class="w"> </span><span class="mi">72</span><span class="n">B194E5</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">sudo</span><span class="w"> </span><span class="n">apt</span><span class="o">-</span><span class="n">key</span><span class="w"> </span><span class="n">add</span><span class="w"> </span><span class="o">-</span>
</code></pre></div>
<p>| Use these last 8 digits for any other keys . I referred from
  <a href="http://ubuntuforums.org/showthread.php?t=1046158">here</a>
|  Screen lock for root user ..?</p>
<p>From my understanding from various forums, the screen lock for root user
is disabled in the linux kernal itself. But I found a message in the
screen saver itself. Here it is</p>
<div style="clear: both; text-align: center;">

[![image9](http://4.bp.blogspot.com/_X5tq9y9xv2s/TROi8zrTKWI/AAAAAAAAAlY/Hrh7D2VwvbU/s400/root%2Bscreen%2Block.png)](http://4.bp.blogspot.com/_X5tq9y9xv2s/TROi8zrTKWI/AAAAAAAAAlY/Hrh7D2VwvbU/s1600/root%2Bscreen%2Block.png)

</div>
<div>

Warning: The screen will not be locked for the root user.

</div>
<div>

\"P\"- Button in Acer 5740﻿﻿ \...?

</div>
<div>

The \"P\" button in the top right corner of the keyboard. You may think
that this is the Power button or something else (Initially I  thought
the same .. :(  ) But there is no default task assigned for this button.
You can customize this button as you need. I am using this button as
Mute Button :) Here is the how to\...

</div>
<div class="separator" style="clear: both; text-align: center;">

[![image10](http://4.bp.blogspot.com/_X5tq9y9xv2s/TROlZQBhmvI/AAAAAAAAAlg/wCAcxLSVdIo/s400/acer%2B5740%2Bp%2Bbutton.jpg)](http://4.bp.blogspot.com/_X5tq9y9xv2s/TROlZQBhmvI/AAAAAAAAAlg/wCAcxLSVdIo/s1600/acer%2B5740%2Bp%2Bbutton.jpg)

</div>
<div>

-   Goto System → Preferences → Keyboard shortcuts
-   In the Sound tap you can set the New shortcut for Volume mute

</div>
<div>
<div class="separator" style="clear: both; text-align: center;">

[![image11](http://4.bp.blogspot.com/_X5tq9y9xv2s/TROnINJaJ3I/AAAAAAAAAlo/jYaYYMt3Xa0/s400/mute%2B-%2BKeyboard%2BShortcuts.png)](http://4.bp.blogspot.com/_X5tq9y9xv2s/TROnINJaJ3I/AAAAAAAAAlo/jYaYYMt3Xa0/s1600/mute%2B-%2BKeyboard%2BShortcuts.png)

</div>

Most of these problems are because of accessing as a **root user**. If 
I change the user it will be fixed. But most of my docs and software are
pre-configured with this user. I just want to disable my root account
and migrate from root to some other user.

My Configuration :

</div>
<p>OS - Ubuntu 10.04</p>
<p>Login user - root</p>
<p>Machine - <a href="http://www.arulraj.net/2010/06/install-ubuntu-10-04-in-acer-5740.html">Acer
5740</a></p>]]></content:encoded><description>&lt;p&gt;&lt;strong&gt;My Hectic problem in Ubuntu&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://3.bp.blogspot.com/_X5tq9y9xv2s/TKjoyGZNheI/AAAAAAAAAi8/5gH6PxD0DtY/s1600/thinking+ubuntu.jpg"&gt;&lt;img alt="image0" src="http://3.bp.blogspot.com/_X5tq9y9xv2s/TKjoyGZNheI/AAAAAAAAAi8/5gH6PxD0DtY/s320/thinking+ubuntu.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Here I will explain how to resolve hectic problems in ubuntu (that I
felt were tough). Here is the list of my problems.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Number Lock not enabled when booting&lt;/li&gt;
&lt;li&gt;Brightness adjustment&lt;/li&gt;
&lt;li&gt;Tata photon+ data card problem&lt;/li&gt;
&lt;li&gt;Unauthorized resource when update﻿&lt;/li&gt;
&lt;li&gt;VLC problem&lt;/li&gt;
&lt;li&gt;GPG error: &lt;a href="http://ppa.launchpad.net"&gt;http …&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;</description><enclosure length="33430" type="application/x-debian-package" url="https://launchpad.net/ubuntu/+archive/primary/+files/usb-modeswitch_1.1.0-2_i386.deb"/><itunes:explicit>no</itunes:explicit><itunes:subtitle>My Hectic problem in Ubuntu Here I will explain how to resolve hectic problems in ubuntu (that I felt were tough). Here is the list of my problems. Number Lock not enabled when booting Brightness adjustment Tata photon+ data card problem Unauthorized resource when update﻿ VLC problem GPG error: http …</itunes:subtitle><itunes:author>noemail@noemail.org (arul)</itunes:author><itunes:summary>My Hectic problem in Ubuntu Here I will explain how to resolve hectic problems in ubuntu (that I felt were tough). Here is the list of my problems. Number Lock not enabled when booting Brightness adjustment Tata photon+ data card problem Unauthorized resource when update﻿ VLC problem GPG error: http …</itunes:summary><itunes:keywords>Linux, Linux, ubuntu, how-to</itunes:keywords></item><item><title>Flash Log with date and time</title><link>https://www.arulraj.net/2010/11/flash-log-with-date-and-time/</link><category>Flash</category><category>Browser</category><category>Flash</category><category>Programming</category><author>noemail@noemail.org (arul)</author><pubDate>Tue, 16 Nov 2010 15:50:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2010-11-16:/2010/11/flash-log-with-date-and-time/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><strong>Flash trace with Date and Time</strong></p>
<p><a href="http://3.bp.blogspot.com/_X5tq9y9xv2s/TOLw1JAze1I/AAAAAAAAAjY/ht0kfAZ_v5A/s1600/Flex+with+Log.png"><img alt="image0" src="http://3.bp.blogspot.com/_X5tq9y9xv2s/TOLw1JAze1I/AAAAAAAAAjY/ht0kfAZ_v5A/s320/Flex+with+Log.png"/></a></p>
<p>When i am work with a Difficult Flex application its hard to find which
log is come first and which one come second in the flashlog trace. I
searching for any log4j api like in flex. Yes i got.. Flex have that
inbuit. Here i share that how to i use in my project... The Class is
"**TraceTarget**"... Using that class you can trace your log in
different way like Debug, Info, Warn and Error.. Here is My example</p>
<!--  TODO : pelican better_figures_and_images is failed because of object data is null -->
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" height="150" width="300">
<embed height="150" src="http://files.arulraj.net/code/flash/example/LogExample/logexample.swf" type="application/x-shockwave-flash" width="300"/>
</object>
<p><strong>sharedaaExample.mxml</strong></p>
<div class="highlight"><pre><span></span><code><span class="cp"><?xml version="1.0" encoding="UTF-8"?></span>
<span class="nt"><mx:application< span=""><span class="w"> </span><span class="na">xmlns:mx=</span><span class="s">"http://www.adobe.com/2006/mxml"</span><span class="w"> </span><span class="na">xmlns:sharedaa=</span><span class="s">"com.sharedaa.\*"</span><span class="w"> </span><span class="na">creationComplete=</span><span class="s">"creationComplete()"</span><span class="w"> </span><span class="na">preinitialize=</span><span class="s">"initLogging()"</span><span class="nt">&gt;</span>
  <span class="nt"><mx:script></mx:script></span>
  <span class="s"><![CDATA[</span>
<span class="w">   </span><span class="k">import</span><span class="w"> </span><span class="nn">mx.logging.Log</span><span class="o">;</span>
<span class="w">   </span><span class="k">import</span><span class="w"> </span><span class="nn">mx.logging.ILogger</span><span class="o">;</span>
<span class="w">   </span><span class="k">import</span><span class="w"> </span><span class="nn">mx.logging.LogEventLevel</span><span class="o">;</span>
<span class="w">   </span><span class="k">import</span><span class="w"> </span><span class="nn">mx.logging.targets.TraceTarget</span><span class="o">;</span>
<span class="w">   </span><span class="k">import</span><span class="w"> </span><span class="nn">flash.ui.ContextMenu</span><span class="o">;</span>
<span class="w">   </span><span class="k">import</span><span class="w"> </span><span class="nn">flash.ui.ContextMenuItem</span><span class="o">;</span>
<span class="w">   </span><span class="k">import</span><span class="w"> </span><span class="nn">flash.net.navigateToURL</span><span class="o">;</span>
<span class="w">   </span><span class="k">import</span><span class="w"> </span><span class="nn">flash.net.URLRequest</span><span class="o">;</span>

<span class="w">   </span><span class="k">import</span><span class="w"> </span><span class="nn">flash.events.ContextMenuEvent</span><span class="o">;</span>

<span class="w">   </span><span class="k">import</span><span class="w"> </span><span class="nn">flash.display.StageDisplayState</span><span class="o">;</span>

<span class="w">   </span><span class="kd">private</span><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="n">chatContextMenu</span><span class="p">:</span><span class="w"> </span><span class="kt">ContextMenu</span><span class="o">;</span>

<span class="w">   </span><span class="kd">private</span><span class="w"> </span><span class="kd">function </span><span class="nf">initLogging</span><span class="o">():</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="o">{</span>
<span class="w">     </span><span class="c1">// Create a target.</span>
<span class="w">     </span><span class="kd">var</span><span class="w"> </span><span class="n">logTarget</span><span class="p">:</span><span class="w"> </span><span class="kt">TraceTarget</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="kt">TraceTarget</span><span class="o">();</span>

<span class="w">     </span><span class="c1">// Log only messages for the following packages</span>
<span class="w">     </span><span class="n">logTarget</span><span class="o">.</span><span class="na">filters</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">[</span><span class="s2">"com.sharedaa.\*"</span><span class="o">];</span>

<span class="w">     </span><span class="c1">// Log all log levels.</span>
<span class="w">     </span><span class="n">logTarget</span><span class="o">.</span><span class="na">level</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">LogEventLevel</span><span class="o">.</span><span class="na">ALL</span><span class="o">;</span>

<span class="w">     </span><span class="c1">// Add date, time, category, and log level to the output.</span>
<span class="w">     </span><span class="n">logTarget</span><span class="o">.</span><span class="na">includeDate</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">true</span><span class="o">;</span>
<span class="w">     </span><span class="n">logTarget</span><span class="o">.</span><span class="na">includeTime</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">true</span><span class="o">;</span>
<span class="w">     </span><span class="n">logTarget</span><span class="o">.</span><span class="na">includeCategory</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">true</span><span class="o">;</span>
<span class="w">     </span><span class="n">logTarget</span><span class="o">.</span><span class="na">includeLevel</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">true</span><span class="o">;</span>

<span class="w">     </span><span class="c1">// Begin logging.</span>
<span class="w">     </span><span class="n">Log</span><span class="o">.</span><span class="na">addTarget</span><span class="o">(</span><span class="n">logTarget</span><span class="o">);</span>
<span class="w">   </span><span class="o">}</span>

<span class="w">   </span><span class="kd">private</span><span class="w"> </span><span class="kd">function </span><span class="nf">addContextMenu</span><span class="o">():</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="o">{</span>
<span class="w">     </span><span class="n">chatContextMenu</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="kt">ContextMenu</span><span class="o">();</span>
<span class="w">     </span><span class="n">chatContextMenu</span><span class="o">.</span><span class="na">hideBuiltInItems</span><span class="o">();</span>
<span class="w">     </span><span class="kd">var</span><span class="w"> </span><span class="n">item</span><span class="p">:</span><span class="w"> </span><span class="kt">ContextMenuItem</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="kt">ContextMenuItem</span><span class="o">(</span><span class="s2">"www.arulraj.net"</span><span class="o">);</span>
<span class="w">     </span><span class="n">item</span><span class="o">.</span><span class="na">addEventListener</span><span class="o">(</span><span class="s2">"menuItemSelect"</span><span class="o">,</span><span class="w"> </span><span class="n">openNewWindow</span><span class="o">);</span>
<span class="w">     </span><span class="n">chatContextMenu</span><span class="o">.</span><span class="na">customItems</span><span class="o">.</span><span class="na">push</span><span class="o">(</span><span class="n">item</span><span class="o">);</span>
<span class="w">     </span><span class="k">this</span><span class="o">.</span><span class="na">contextMenu</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">chatContextMenu</span><span class="o">;</span>
<span class="w">   </span><span class="o">}</span>

<span class="w">   </span><span class="kd">private</span><span class="w"> </span><span class="kd">function </span><span class="nf">openNewWindow</span><span class="o">(</span><span class="n">event</span><span class="o">:</span><span class="w"> </span><span class="kt">ContextMenuEvent</span><span class="o">):</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="o">{</span>
<span class="w">     </span><span class="n">navigateToURL</span><span class="o">(</span><span class="k">new</span><span class="w"> </span><span class="kt">URLRequest</span><span class="o">(</span><span class="s2">"http://www.arulraj.net"</span><span class="o">),</span><span class="w"> </span><span class="s2">"\_blank"</span><span class="o">);</span>
<span class="w">   </span><span class="o">}</span>

<span class="w">   </span><span class="kd">private</span><span class="w"> </span><span class="kd">function </span><span class="nf">creationComplete</span><span class="o">():</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="o">{</span>
<span class="w">     </span><span class="n">addContextMenu</span><span class="o">();</span>
<span class="w">     </span><span class="n">main</span><span class="o">.</span><span class="na">initMain</span><span class="o">();</span>
<span class="w">     </span><span class="n">main</span><span class="o">.</span><span class="na">printLog</span><span class="o">();</span>
<span class="w">   </span><span class="o">}</span>
<span class="w">   </span><span class="s">]]]]><![CDATA[></span>
  <span class="nt"></span>
  <span class="nt"><mx:canvas< span=""><span class="w"> </span><span class="na">id=</span><span class="s">"sharedaa"</span><span class="nt">&gt;</span>
    <span class="nt"><mx:canvas< span=""><span class="w"> </span><span class="na">id=</span><span class="s">"mainCanvas"</span><span class="w"> </span><span class="na">x=</span><span class="s">"0"</span><span class="w"> </span><span class="na">y=</span><span class="s">"0"</span><span class="nt">&gt;</span>
      <span class="nt"><sharedaa:main< span=""><span class="w"> </span><span class="na">x=</span><span class="s">"0"</span><span class="w"> </span><span class="na">y=</span><span class="s">"0"</span><span class="w"> </span><span class="na">id=</span><span class="s">"main"</span><span class="w"> </span><span class="nt">/&gt;</span>
      <span class="nt"><mx:label< span=""><span class="w"> </span><span class="na">text=</span><span class="s">"Example for Trace with Time"</span><span class="w"> </span><span class="nt">/&gt;</span>
    <span class="nt"></span>
  <span class="nt"></span>
<span class="nt"></span>
</mx:label<></span></sharedaa:main<></span></mx:canvas<></span></mx:canvas<></span></mx:application<></span></code></pre></div>
<p>And the Actionscript file is</p>
<p><strong>Main.as</strong></p>
<div class="highlight"><pre><span></span><code><span class="k">package</span><span class="w"> </span><span class="nn">com.sharedaa</span><span class="w"> </span><span class="o">{</span>

<span class="w">  </span><span class="k">import</span><span class="w"> </span><span class="nn">mx.containers.VBox</span><span class="o">;</span>
<span class="w">  </span><span class="k">import</span><span class="w"> </span><span class="nn">mx.logging.Log</span><span class="o">;</span>
<span class="w">  </span><span class="k">import</span><span class="w"> </span><span class="nn">mx.logging.ILogger</span><span class="o">;</span>

<span class="w">  </span><span class="kd">public</span><span class="w"> </span><span class="kd">class</span><span class="w"> </span><span class="n">Main</span><span class="w"> </span><span class="kd">extends</span><span class="w"> </span><span class="n">VBox</span><span class="w"> </span><span class="o">{</span>

<span class="w">    </span><span class="kd">private</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="n">LOG</span><span class="p">:</span><span class="w"> </span><span class="kt">ILogger</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">Log</span><span class="o">.</span><span class="na">getLogger</span><span class="o">(</span><span class="s1">'com.sharedaa.Main'</span><span class="o">);</span>

<span class="w">    </span><span class="kd">public</span><span class="w"> </span><span class="kd">function </span><span class="nf">initMain</span><span class="o">():</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="o">{</span>
<span class="w">      </span><span class="n">LOG</span><span class="o">.</span><span class="na">debug</span><span class="o">(</span><span class="s2">"intialize main"</span><span class="o">);</span>
<span class="w">    </span><span class="o">}</span>

<span class="w">    </span><span class="kd">public</span><span class="w"> </span><span class="kd">function </span><span class="nf">printLog</span><span class="o">():</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="o">{</span>
<span class="w">      </span><span class="n">LOG</span><span class="o">.</span><span class="na">info</span><span class="o">(</span><span class="s2">"This is a info log"</span><span class="o">);</span>
<span class="w">      </span><span class="n">LOG</span><span class="o">.</span><span class="na">debug</span><span class="o">(</span><span class="s2">"here is a debug log"</span><span class="o">);</span>
<span class="w">      </span><span class="n">LOG</span><span class="o">.</span><span class="na">warn</span><span class="o">(</span><span class="s2">"display your warnings here"</span><span class="o">);</span>
<span class="w">      </span><span class="n">LOG</span><span class="o">.</span><span class="na">error</span><span class="o">(</span><span class="s2">"This is a error"</span><span class="o">);</span>
<span class="w">    </span><span class="o">}</span>
<span class="w">  </span><span class="o">}</span>
<span class="o">}</span>
</code></pre></div>
<p><a href="http://4.bp.blogspot.com/_X5tq9y9xv2s/TOL8Ey1125I/AAAAAAAAAjc/BzeYVgfdvfI/s1600/flash+log+with+time.png"><img alt="image1" src="http://4.bp.blogspot.com/_X5tq9y9xv2s/TOL8Ey1125I/AAAAAAAAAjc/BzeYVgfdvfI/s320/flash+log+with+time.png"/></a></p>
<p>If you know better than this reply your ideas in comments...</p>]]></content:encoded><description>&lt;p&gt;&lt;strong&gt;Flash trace with Date and Time&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://3.bp.blogspot.com/_X5tq9y9xv2s/TOLw1JAze1I/AAAAAAAAAjY/ht0kfAZ_v5A/s1600/Flex+with+Log.png"&gt;&lt;img alt="image0" src="http://3.bp.blogspot.com/_X5tq9y9xv2s/TOLw1JAze1I/AAAAAAAAAjY/ht0kfAZ_v5A/s320/Flex+with+Log.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;When i am work with a Difficult Flex application its hard to find which
log is come first and which one come second in the flashlog trace. I
searching for any log4j api like in flex. Yes i got.. Flex have that
inbuit. Here …&lt;/p&gt;</description></item><item><title>Image to binary data in java</title><link>https://www.arulraj.net/2010/10/image-to-binary-data-in-java/</link><category>Browser</category><category>java</category><category>xml</category><author>noemail@noemail.org (arul)</author><pubDate>Wed, 27 Oct 2010 14:50:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2010-10-27:/2010/10/image-to-binary-data-in-java/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><strong>Image to binary data in java</strong></p>
<div class="separator" style="clear: both; text-align: center;">

[![image0](http://3.bp.blogspot.com/_X5tq9y9xv2s/TMiAHb-LmaI/AAAAAAAAAjM/sfMeXSo95hY/s320/logo.png)](http://3.bp.blogspot.com/_X5tq9y9xv2s/TMiAHb-LmaI/AAAAAAAAAjM/sfMeXSo95hY/s1600/logo.png)

</div>
<div class="separator" style="clear: both; text-align: left;">

Today i learn a new thing. That is come across like this way.. I tried
to install \"Bing\" search provider to  my Mozilla Firefox. But that
Bing favicon is not shown on the search provider.

<div class="separator" style="clear: both; text-align: center;">

[![image1](http://4.bp.blogspot.com/_X5tq9y9xv2s/TMiSnHN2BZI/AAAAAAAAAjQ/2nhvag3eIO0/s320/Bing+search+provider.png)](http://4.bp.blogspot.com/_X5tq9y9xv2s/TMiSnHN2BZI/AAAAAAAAAjQ/2nhvag3eIO0/s1600/Bing+search+provider.png)

</div>
<p>

Download the mozilla firefox addon from here
<https: 10434="" addon="" addons.mozilla.org="" en-us="" firefox=""> . It gave an xml
file for me.

</https:></p></div>
<div class="separator" style="clear: both; text-align: left;">

My internet connection is not available at that time. so the favicon
\[<http: favicon.ico="" www.bing.com=""> not downloaded\] for Bing is not
shown for me. But the favicon for other search provider like google and
amazon are shown. So i thought this is some thing different. Find the
path for searchplugin in mozilla. In ubuntu the search provider location
is

</http:></div>
<p>.. raw:: html</p>
<div class="highlight"><pre><span></span><code><span class="o">&lt;</span><span class="nt">div</span><span class="w"> </span><span class="nt">class</span><span class="o">=</span><span class="s2">"separator"</span><span class="w"> </span><span class="nt">style</span><span class="o">=</span><span class="s2">"clear: both; text-align: left;"</span><span class="o">&gt;</span>
</code></pre></div>
<p>/usr/lib/firefox-addons/searchplugins/en-US</p>
<p>.. raw:: html</p>
<div class="highlight"><pre><span></span><code></code></pre></div>

<div class="separator" style="clear: both; text-align: left;">

For google and others the image tag is look like the below

</div>
<div class="separator" style="clear: both; text-align: left;">
<div class="highlight"><pre><span></span><code><img alt="" height="16" width="16"/>data:image/png;base64,AAABAAEAEBAAAAEAGABoAw.........
</code></pre></div>
</div>
<div class="separator" style="clear: both; text-align: left;">

Now i realized we can use the binary data of the image as a src instead
of image url. Here the wiki page for that
<http: data_uri_scheme="" en.wikipedia.org="" wiki="">
</http:></div>
<div class="separator" style="clear: both; text-align: left;">

You can use the binary data in \"img\" tag in html

</div>
<div class="separator" style="clear: both; text-align: left;">
<div class="highlight"><pre><span></span><code><img alt="Embedded Image" highlight"="" src="data:image/png;base64,iVBORw0KGgoAAAAN................ /&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



So i write java program for to convert image to data. Here is the code
for your reference

&lt;/div&gt;

&lt;div class="/><pre><span></span><code><span class="kn">import</span><span class="w"> </span><span class="nn">java.awt.image.BufferedImage</span><span class="p">;</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">java.io.ByteArrayOutputStream</span><span class="p">;</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">java.io.File</span><span class="p">;</span>

<span class="kn">import</span><span class="w"> </span><span class="nn">javax.imageio.ImageIO</span><span class="p">;</span>

<span class="kn">import</span><span class="w"> </span><span class="nn">com.sun.org.apache.xerces.internal.impl.dv.util.Base64</span><span class="p">;</span>

<span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">Image2Base64</span><span class="w"> </span><span class="p">{</span>

<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="n">String</span><span class="w"> </span><span class="n">args</span><span class="o">[]</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<span class="w">   </span><span class="k">try</span><span class="w"> </span><span class="p">{</span>
<span class="w">     </span><span class="n">BufferedImage</span><span class="w"> </span><span class="n">image</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ImageIO</span><span class="p">.</span><span class="na">read</span><span class="p">(</span><span class="k">new</span><span class="w"> </span><span class="n">File</span><span class="p">(</span><span class="s">"favicon.png"</span><span class="p">));</span>
<span class="w">     </span><span class="n">ByteArrayOutputStream</span><span class="w"> </span><span class="n">baos</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">ByteArrayOutputStream</span><span class="p">();</span>
<span class="w">     </span><span class="n">ImageIO</span><span class="p">.</span><span class="na">write</span><span class="p">(</span><span class="n">image</span><span class="p">,</span><span class="w"> </span><span class="s">"png"</span><span class="p">,</span><span class="w"> </span><span class="n">baos</span><span class="p">);</span>
<span class="w">     </span><span class="n">String</span><span class="w"> </span><span class="n">encodedImage</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">Base64</span><span class="p">.</span><span class="na">encode</span><span class="p">(</span><span class="n">baos</span><span class="p">.</span><span class="na">toByteArray</span><span class="p">());</span>
<span class="w">     </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">encodedImage</span><span class="p">);</span>
<span class="w">   </span><span class="p">}</span><span class="w"> </span><span class="k">catch</span><span class="w"> </span><span class="p">(</span><span class="n">Exception</span><span class="w"> </span><span class="n">e</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<span class="w">     </span><span class="n">e</span><span class="p">.</span><span class="na">printStackTrace</span><span class="p">();</span>
<span class="w">   </span><span class="p">}</span>
<span class="w"> </span><span class="p">}</span>
<span class="p">}</span>
</code></pre></code></pre></div>
<div class="separator" style="clear: both; text-align: left;">

Here is the Bing img in data format

</div>
<p><img alt="Embedded
Image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAxklEQVR42mP4v0z0PyWYgToGbHf8/39PAIQmy4CXR/+DAYimmgFrVCCuIuAyVAPeXf7//8bM//+/PPqPFTzeBjEQpwEwADLgchfCBcdzUdXcW47HAJAkyPnYnAwyCAZALsVqAC7NMAyyAAR+fkAyAOQ3mNMJhTzIazAAN+BsNUIQLZBQMMh1sACGWoZIiaAYgDkNZCC6ZpDByGqgUcuAYjooYGAApAgUNiCMHK0gQ5DSBWZe2GgEcQEoXGAGgDAsWmmTmSjAADs5Dn62z9V4AAAAAElFTkSuQmCC"/></p>
<p>Finally i Fix the Bing favicon problem in my Firefox search plugin</p>
<p>Steps:</p>
<ul>
<li>Remove the Bing search plugin first.</li>
<li>Goto Manage Search Engine → Select Bing → Remove</li>
<li>Copy the below xml and save as bing.xml in
    "/usr/lib/firefox-addons/searchplugins/en-US" for ubuntu OR
    "C:\Program Files\Mozilla\Firefox\searchplugins" for windows</li>
<li>Restart your Firefox</li>
</ul>
<div class="highlight"><pre><span></span><code><span class="cp"><?xml version="1.0" encoding="UTF-8"?></span>
<span class="nt"><opensearchdescription< span=""><span class="w"> </span><span class="na">xmlns=</span><span class="s">"http://a9.com/-/spec/opensearch/1.1/"</span><span class="nt">&gt;</span>
<span class="nt"><shortname></shortname></span>Bing<span class="nt"></span>
<span class="nt"><tags></tags></span>Bing<span class="nt"></span>
<span class="nt"><description></description></span>Bing.<span class="w"> </span>Search<span class="w"> </span>by<span class="w"> </span>Microsoft.<span class="nt"></span>
<span class="nt"><contact></contact></span>msosa@microsoft.com<span class="nt"></span>
<span class="nt"><inputencoding></inputencoding></span>UTF-8<span class="nt"></span>
<span class="nt"><syndicationright></syndicationright></span>limited<span class="nt"></span>
<span class="nt"><image< span=""><span class="w"> </span><span class="na">width=</span><span class="s">"16"</span>
<span class="w">  </span><span class="na">height=</span><span class="s">"16"</span><span class="nt">&gt;</span>data:image/x-icon;base64,AAABAAEAEBAAAAEAGABoAwAAFgAAACgAAAAQAAAAIAAAAAEAGAAAAAAAAAAAABMLAAATCwAAAAAAAAAAAAAVpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8ysf97zf+24%2F%2FF6f%2FF6f%2FF6f+K0%2F9QvP8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8krP+Z2P%2F%2F%2F%2F%2F%2F%2F%2F%2Fw+f%2FF6f%2FF6f%2Fi9P%2F%2F%2F%2F%2F%2F%2F%2F%2FT7v9Bt%2F8Vpv8Vpv8Vpv8Vpv%2FT7v%2F%2F%2F%2F%2Fw+f97zf8Vpv8Vpv8Vpv8Vpv9QvP%2FT7v%2F%2F%2F%2F%2Fw+f9Bt%2F8Vpv8Vpv97zf%2F%2F%2F%2F%2F%2F%2F%2F9QvP8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8krP%2Fi9P%2F%2F%2F%2F%2Fi9P8Vpv8Vpv+24%2F%2F%2F%2F%2F%2Fi9P8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv+K0%2F%2F%2F%2F%2F%2F%2F%2F%2F8Vpv8Vpv%2FF6f%2F%2F%2F%2F%2F%2F%2F%2F8krP8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv+n3v%2F%2F%2F%2F%2Fw+f8Vpv8Vpv%2FF6f%2F%2F%2F%2F%2F%2F%2F%2F+n3v8krP8Vpv8Vpv8Vpv8Vpv8Vpv9tx%2F%2F%2F%2F%2F%2F%2F%2F%2F+Z2P8Vpv8Vpv%2FF6f%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2Fi9P+K0%2F9QvP9QvP9tx%2F%2FF6f%2F%2F%2F%2F%2F%2F%2F%2F+n3v8Vpv8Vpv8Vpv%2FF6f%2F%2F%2F%2F%2FT7v+Z2P%2Fi9P%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F+24%2F9QvP8Vpv8Vpv8Vpv8Vpv%2FF6f%2F%2F%2F%2F%2FF6f8Vpv8Vpv8krP9QvP9QvP9Bt%2F8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv%2FF6f%2F%2F%2F%2F%2FF6f8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv9Bt%2F9QvP9Bt%2F8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8Vpv8AAHBsAABhdAAAbiAAAHJ0AABsaQAAdGkAACBDAABlbgAAUEEAAEVYAAAuQwAAOy4AAEU7AABBVAAAQ00AAC5W<span class="nt"></span>
<span class="nt"><url< span=""><span class="w"> </span><span class="na">type=</span><span class="s">"text/html"</span>
<span class="w">  </span><span class="na">template=</span><span class="s">"http://www.bing.com/search?q={searchTerms}&amp;form=OSDSRC"</span><span class="nt">/&gt;</span>
<span class="nt"><url< span=""><span class="w"> </span><span class="na">type=</span><span class="s">"application/x-suggestions+json"</span>
<span class="w">  </span><span class="na">template=</span><span class="s">"http://api.bing.com/osjson.aspx?query={searchTerms}&amp;language={language}&amp;form=OSDJAS"</span><span class="nt">/&gt;</span>
<span class="nt"></span>
</url<></span></url<></span></image<></span></opensearchdescription<></span></code></pre></div>
<div class="separator" style="clear: both; text-align: center;">

[![image3](http://1.bp.blogspot.com/_X5tq9y9xv2s/TOIpP67w5dI/AAAAAAAAAjU/QUdkLjf9X2Q/s1600/bing+favicon+for+seach+plugin.png)](http://1.bp.blogspot.com/_X5tq9y9xv2s/TOIpP67w5dI/AAAAAAAAAjU/QUdkLjf9X2Q/s1600/bing+favicon+for+seach+plugin.png)

</div>
<p>Update: Right now this code only supports png and sometimes ico. i
don't know why it behave like this...</p></div>]]></content:encoded><description>&lt;p&gt;&lt;strong&gt;Image to binary data in java&lt;/strong&gt;&lt;/p&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;

[![image0](http://3.bp.blogspot.com/_X5tq9y9xv2s/TMiAHb-LmaI/AAAAAAAAAjM/sfMeXSo95hY/s320/logo.png)](http://3.bp.blogspot.com/_X5tq9y9xv2s/TMiAHb-LmaI/AAAAAAAAAjM/sfMeXSo95hY/s1600/logo.png)

&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;

Today i learn a new thing. That is come across like this way.. I tried
to install \"Bing\" search …&lt;/div&gt;</description></item><item><title>Flash player debugger in ubuntu</title><link>https://www.arulraj.net/2010/08/flash-player-debugger-in-ubuntu/</link><category>Flash</category><category>Flash</category><category>Linux</category><author>noemail@noemail.org (arul)</author><pubDate>Mon, 2 Aug 2010 15:34:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2010-08-02:/2010/08/flash-player-debugger-in-ubuntu/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><strong>How to flash debug player in Linux</strong></p>
<p><a href="http://4.bp.blogspot.com/_X5tq9y9xv2s/TFc1w8gf4JI/AAAAAAAAAfE/-ysWrI7BnTE/s1600/Flashlog.png"><img alt="image0" src="http://4.bp.blogspot.com/_X5tq9y9xv2s/TFc1w8gf4JI/AAAAAAAAAfE/-ysWrI7BnTE/s320/Flashlog.png"/></a></p>
<p>After a long time i am working on Flex for one of client for his one to
one chat application. At this time i need flash debugger for debugging
my program. The debug player need for to print trace() output to
flashlog.txt.</p>
<p>Here the steps for how to install debug flashplayer in ubuntu 10.04
firefox 3.6.</p>
<p>Steps:</p>
<ul>
<li>Download the debugger version from
    <a href="http://www.adobe.com/support/flashplayer/downloads.html">here</a> . Or
    Download this Zip file for Linux
    <a href="http://download.macromedia.com/pub/flashplayer/updaters/10/flashplayer_10_plugin_debug.tar.gz">http://download.macromedia.com/pub/flashplayer/updaters/10/flashplayer_10_plugin_debug.tar.gz</a></li>
<li>Extract that zip file and get that "libflashplayer.so"</li>
<li>Goto this folder "/usr/lib/mozilla/plugins" then copy and  paste
    that libflashplayer.so here. Then Delete the shortcut named
    "flashplugin-alternative.so"</li>
<li>Create a mm.cfg file in your home directory. For example
    /home/\<username>/mm.cfg</username></li>
<li>The mm.cfg file is look like the below</li>
</ul>
<div class="highlight"><pre><span></span><code>ErrorReportingEnable=0
TraceOutputFileEnable=1
MaxWarnings=0
</code></pre></div>
<p>Then restart your firefox now you can found flashlog.txt file in</p>
<p>cd \$HOME/.macromedia/Flash_Player/Logs/ folder.</p>
<p><a href="http://2.bp.blogspot.com/_X5tq9y9xv2s/TFc5mvVuXeI/AAAAAAAAAfM/K1ZLN2ivtdE/s1600/Mozilla+plugin+folder.png"><img alt="image1" src="http://2.bp.blogspot.com/_X5tq9y9xv2s/TFc5mvVuXeI/AAAAAAAAAfM/K1ZLN2ivtdE/s320/Mozilla+plugin+folder.png"/></a></p>
<p>Update on 19th October 2011:</p>
<ul>
<li>Download the debugger version from
    <a href="http://www.adobe.com/support/flashplayer/downloads.html">here</a>.
    Then extract that libflashplayer.so</li>
<li>Copy that so file to /usr/lib/mozilla/plugins/ dir</li>
<li>Then replace the soft link by the following command</li>
</ul>
<div class="highlight"><pre><span></span><code>sudo ln -fs /usr/lib/mozilla/plugins/libflashplayer.so /usr/lib/mozilla/plugins/flashplugin-alternative.so
</code></pre></div>
<p>Its works with my Firefox 7.0.1 in ubuntu 11.04</p>]]></content:encoded><description>&lt;p&gt;&lt;strong&gt;How to flash debug player in Linux&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://4.bp.blogspot.com/_X5tq9y9xv2s/TFc1w8gf4JI/AAAAAAAAAfE/-ysWrI7BnTE/s1600/Flashlog.png"&gt;&lt;img alt="image0" src="http://4.bp.blogspot.com/_X5tq9y9xv2s/TFc1w8gf4JI/AAAAAAAAAfE/-ysWrI7BnTE/s320/Flashlog.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;After a long time i am working on Flex for one of client for his one to
one chat application. At this time i need flash debugger for debugging
my program. The debug player need for to print trace() output to
flashlog.txt …&lt;/p&gt;</description></item><item><title>Java i18n properties file converter</title><link>https://www.arulraj.net/2010/07/java-i18n-properties-file-converter/</link><category>Programming</category><category>java</category><author>noemail@noemail.org (arul)</author><pubDate>Fri, 30 Jul 2010 15:00:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2010-07-30:/2010/07/java-i18n-properties-file-converter/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><strong>Properties File converter</strong></p>
<div class="separator" style="clear: both; text-align: center;">

[![image0](http://2.bp.blogspot.com/_X5tq9y9xv2s/TFMxF5Sh_sI/AAAAAAAAAe8/tiTfkCTchFI/s320/translate+to+properties+file.jpg)](http://2.bp.blogspot.com/_X5tq9y9xv2s/TFMxF5Sh_sI/AAAAAAAAAe8/tiTfkCTchFI/s1600/translate+to+properties+file.jpg)

</div>
<p>Google Translator can convert any word/sentence from one language to
other language. Now a days all web application have i18n support. The
developers just create a properties file for English in key value format
and then using google translator they create other language properties
for his/her testing purpose.  But in this method they need to go google
translator webpage and convert line by line to make the other language
properties file. But this process takes more time than writing a code :)
[really...!]. I too pass this situation, at that time i just search
google is there any Java api for google translator.</p>
<p>Then i found a opensource software for this, that is called <a href="http://code.google.com/p/google-api-translate-java/downloads/detail?name=google-api-translate-java-0.92.jar">Google api
translate</a>
. Now come to the topic, here a java class for converting your English
properties file to Chinese .</p>
<p>Example code:</p>
<div class="highlight"><pre><span></span><code><span class="kn">package</span><span class="w"> </span><span class="nn">com.sharedaa.translate</span><span class="p">;</span>

<span class="kn">import</span><span class="w"> </span><span class="nn">java.io.BufferedReader</span><span class="p">;</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">java.io.File</span><span class="p">;</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">java.io.FileInputStream</span><span class="p">;</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">java.io.FileOutputStream</span><span class="p">;</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">java.io.InputStreamReader</span><span class="p">;</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">java.util.Iterator</span><span class="p">;</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">java.util.LinkedHashMap</span><span class="p">;</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">java.util.Set</span><span class="p">;</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">java.util.StringTokenizer</span><span class="p">;</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">com.google.api.translate.Language</span><span class="p">;</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">com.google.api.translate.Translate</span><span class="p">;</span>

<span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">TranslatorMain</span><span class="w"> </span><span class="p">{</span>
<span class="w">  </span><span class="kd">static</span><span class="w"> </span><span class="n">TranslatorMain</span><span class="w"> </span><span class="n">main</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">null</span><span class="p">;</span>
<span class="w">  </span><span class="kd">static</span><span class="w"> </span><span class="p">{</span>
<span class="w">    </span><span class="n">main</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">TranslatorMain</span><span class="p">();</span>
<span class="w">  </span><span class="p">}</span>

<span class="w">  </span><span class="cm">/**</span>
<span class="cm">   * Singleton Constructor</span>
<span class="cm">   */</span>
<span class="w">  </span><span class="kd">private</span><span class="w"> </span><span class="nf">TranslatorMain</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>

<span class="w">  </span><span class="p">}</span>

<span class="w">  </span><span class="cm">/**</span>
<span class="cm">   * To Get the singleton object</span>
<span class="cm">   * @return</span>
<span class="cm">   */</span>
<span class="w">  </span><span class="kd">public</span><span class="w"> </span><span class="n">TranslatorMain</span><span class="w"> </span><span class="nf">getInstance</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
<span class="w">    </span><span class="k">return</span><span class="w"> </span><span class="n">main</span><span class="p">;</span>
<span class="w">  </span><span class="p">}</span>

<span class="w">  </span><span class="cm">/**</span>
<span class="cm">   * Main method</span>
<span class="cm">   * @param args</span>
<span class="cm">   * @throws Exception</span>
<span class="cm">   */</span>
<span class="w">  </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span><span class="w"> </span><span class="n">args</span><span class="p">)</span><span class="w"> </span><span class="kd">throws</span><span class="w"> </span><span class="n">Exception</span><span class="w"> </span><span class="p">{</span>
<span class="w">    </span><span class="c1">//        System.setProperty("http.proxyHost", "3.246.36.25");</span>
<span class="w">    </span><span class="c1">//        System.setProperty("http.proxyPort", "80");</span>
<span class="w">    </span><span class="c1">//        System.setProperty("http.proxyUser", "admin");</span>
<span class="w">    </span><span class="c1">//        System.setProperty("http.proxyPassword", "admin");</span>
<span class="w">    </span><span class="n">File</span><span class="w"> </span><span class="n">inFile</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">File</span><span class="p">(</span><span class="s">"input.properties"</span><span class="p">);</span>
<span class="w">    </span><span class="n">File</span><span class="w"> </span><span class="n">outFile</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">File</span><span class="p">(</span><span class="s">"output.properties"</span><span class="p">);</span>
<span class="w">    </span><span class="n">LinkedHashMap</span><span class="o">&lt;</span><span class="n">String</span><span class="p">,</span><span class="w"> </span><span class="n">String</span><span class="o">&gt;</span><span class="w"> </span><span class="n">inFileHash</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">null</span><span class="p">;</span>
<span class="w">    </span><span class="n">LinkedHashMap</span><span class="o">&lt;</span><span class="n">String</span><span class="p">,</span><span class="w"> </span><span class="kt">byte</span><span class="o">[]&gt;</span><span class="w"> </span><span class="n">outFileHash</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">null</span><span class="p">;</span>
<span class="w">    </span><span class="n">FileOutputStream</span><span class="w"> </span><span class="n">foutStream</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">null</span><span class="p">;</span>
<span class="w">    </span><span class="k">try</span><span class="p">{</span>
<span class="w">      </span><span class="n">Translate</span><span class="p">.</span><span class="na">setHttpReferrer</span><span class="p">(</span><span class="s">"localhost"</span><span class="p">);</span>
<span class="w">      </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">"The proxy is connected.."</span><span class="p">);</span>
<span class="w">      </span><span class="n">inFileHash</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">main</span><span class="p">.</span><span class="na">getInputProperties</span><span class="p">(</span><span class="n">inFile</span><span class="p">);</span>
<span class="w">      </span><span class="n">outFileHash</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">LinkedHashMap</span><span class="o">&lt;</span><span class="n">String</span><span class="p">,</span><span class="w"> </span><span class="kt">byte</span><span class="o">[]&gt;</span><span class="p">();</span>
<span class="w">      </span><span class="n">foutStream</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">FileOutputStream</span><span class="p">(</span><span class="n">outFile</span><span class="p">);</span>
<span class="w">      </span><span class="n">Set</span><span class="o">&lt;</span><span class="n">String</span><span class="o">&gt;</span><span class="w"> </span><span class="n">infilekeySet</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">inFileHash</span><span class="p">.</span><span class="na">keySet</span><span class="p">();</span>
<span class="w">      </span><span class="n">Iterator</span><span class="o">&lt;</span><span class="n">String</span><span class="o">&gt;</span><span class="w"> </span><span class="n">infilekeyItr</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">infilekeySet</span><span class="p">.</span><span class="na">iterator</span><span class="p">();</span>
<span class="w">      </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="n">infilekeyItr</span><span class="p">.</span><span class="na">hasNext</span><span class="p">())</span><span class="w"> </span><span class="p">{</span>
<span class="w">        </span><span class="n">String</span><span class="w"> </span><span class="n">key</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">infilekeyItr</span><span class="p">.</span><span class="na">next</span><span class="p">();</span>
<span class="w">        </span><span class="n">String</span><span class="w"> </span><span class="n">value</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">inFileHash</span><span class="p">.</span><span class="na">get</span><span class="p">(</span><span class="n">key</span><span class="p">);</span>
<span class="w">        </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">"Translating : "</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">value</span><span class="p">);</span>
<span class="w">        </span><span class="kt">byte</span><span class="o">[]</span><span class="w"> </span><span class="n">transByte</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">Translate</span><span class="p">.</span><span class="na">execute</span><span class="p">(</span><span class="n">value</span><span class="p">,</span><span class="w"> </span><span class="n">Language</span><span class="p">.</span><span class="na">ENGLISH</span><span class="p">,</span>
<span class="w">        </span><span class="n">Language</span><span class="p">.</span><span class="na">CHINESE</span><span class="p">).</span><span class="na">getBytes</span><span class="p">(</span><span class="s">"UTF8"</span><span class="p">);</span>
<span class="w">        </span><span class="n">outFileHash</span><span class="p">.</span><span class="na">put</span><span class="p">(</span><span class="n">key</span><span class="p">,</span><span class="w"> </span><span class="n">transByte</span><span class="p">);</span>
<span class="w">        </span><span class="n">foutStream</span><span class="p">.</span><span class="na">write</span><span class="p">(</span><span class="n">key</span><span class="p">.</span><span class="na">getBytes</span><span class="p">());</span>
<span class="w">        </span><span class="n">foutStream</span><span class="p">.</span><span class="na">write</span><span class="p">(</span><span class="s">"="</span><span class="p">.</span><span class="na">getBytes</span><span class="p">());</span>
<span class="w">        </span><span class="n">foutStream</span><span class="p">.</span><span class="na">write</span><span class="p">(</span><span class="n">transByte</span><span class="p">);</span>
<span class="w">        </span><span class="n">foutStream</span><span class="p">.</span><span class="na">write</span><span class="p">(</span><span class="s">"\\n"</span><span class="p">.</span><span class="na">getBytes</span><span class="p">());</span>
<span class="w">      </span><span class="p">}</span>
<span class="w">      </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">"End : Writing new Properties File...."</span><span class="p">);</span>
<span class="w">    </span><span class="p">}</span><span class="w"> </span><span class="k">catch</span><span class="w"> </span><span class="p">(</span><span class="n">Exception</span><span class="w"> </span><span class="n">e</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<span class="w">      </span><span class="n">e</span><span class="p">.</span><span class="na">printStackTrace</span><span class="p">();</span>
<span class="w">    </span><span class="p">}</span><span class="w"> </span><span class="k">finally</span><span class="w"> </span><span class="p">{</span>
<span class="w">      </span><span class="n">foutStream</span><span class="p">.</span><span class="na">close</span><span class="p">();</span>
<span class="w">    </span><span class="p">}</span>
<span class="p">}</span>

<span class="cm">/**</span>
<span class="cm"> * This for read a properties file and returns as a Hashmap</span>
<span class="cm"> * @param inputProperties</span>
<span class="cm"> * @return</span>
<span class="cm"> * @throws Exception</span>
<span class="cm"> */</span>
<span class="kd">public</span><span class="w"> </span><span class="n">LinkedHashMap</span><span class="o">&lt;</span><span class="n">String</span><span class="p">,</span><span class="w"> </span><span class="n">String</span><span class="o">&gt;</span><span class="w"> </span><span class="nf">getInputProperties</span><span class="p">(</span><span class="n">File</span><span class="w"> </span><span class="n">inputProperties</span><span class="p">)</span><span class="w"> </span><span class="kd">throws</span><span class="w"> </span><span class="n">Exception</span><span class="w"> </span><span class="p">{</span>
<span class="w">  </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">"Start : Reading properties file.."</span><span class="p">);</span>
<span class="w">  </span><span class="n">LinkedHashMap</span><span class="o">&lt;</span><span class="n">String</span><span class="p">,</span><span class="w"> </span><span class="n">String</span><span class="o">&gt;</span><span class="w"> </span><span class="n">inputHash</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">null</span><span class="p">;</span>
<span class="w">  </span><span class="n">FileInputStream</span><span class="w"> </span><span class="n">finStream</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">null</span><span class="p">;</span>
<span class="w">  </span><span class="n">BufferedReader</span><span class="w"> </span><span class="n">bReader</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">null</span><span class="p">;</span>
<span class="w">  </span><span class="k">try</span><span class="w"> </span><span class="p">{</span>
<span class="w">    </span><span class="n">inputHash</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">LinkedHashMap</span><span class="o">&lt;</span><span class="n">String</span><span class="p">,</span><span class="w"> </span><span class="n">String</span><span class="o">&gt;</span><span class="p">();</span>
<span class="w">    </span><span class="n">finStream</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">FileInputStream</span><span class="p">(</span><span class="n">inputProperties</span><span class="p">);</span>
<span class="w">    </span><span class="n">bReader</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">BufferedReader</span><span class="p">(</span><span class="k">new</span><span class="w"> </span><span class="n">InputStreamReader</span><span class="p">(</span><span class="n">finStream</span><span class="p">));</span>
<span class="w">    </span><span class="n">String</span><span class="w"> </span><span class="n">line</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">bReader</span><span class="p">.</span><span class="na">readLine</span><span class="p">();</span>
<span class="w">    </span><span class="n">String</span><span class="w"> </span><span class="n">key</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">null</span><span class="p">;</span>
<span class="w">    </span><span class="n">String</span><span class="w"> </span><span class="n">value</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">null</span><span class="p">;</span>
<span class="w">    </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="n">line</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="kc">null</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<span class="w">      </span><span class="n">StringTokenizer</span><span class="w"> </span><span class="n">token</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">StringTokenizer</span><span class="p">(</span><span class="n">line</span><span class="p">,</span><span class="w"> </span><span class="s">"="</span><span class="p">);</span>
<span class="w">      </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">token</span><span class="p">.</span><span class="na">countTokens</span><span class="p">()</span><span class="w"> </span><span class="o">&gt;=</span><span class="w"> </span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<span class="w">        </span><span class="n">key</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">token</span><span class="p">.</span><span class="na">nextElement</span><span class="p">().</span><span class="na">toString</span><span class="p">();</span>
<span class="w">        </span><span class="n">value</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">token</span><span class="p">.</span><span class="na">nextElement</span><span class="p">().</span><span class="na">toString</span><span class="p">();</span>
<span class="w">        </span><span class="n">inputHash</span><span class="p">.</span><span class="na">put</span><span class="p">(</span><span class="n">key</span><span class="p">,</span><span class="w"> </span><span class="n">value</span><span class="p">);</span>
<span class="w">        </span><span class="c1">//System.out.println("Key : " + key + " Value : " + value);</span>
<span class="w">      </span><span class="p">}</span>
<span class="w">      </span><span class="n">line</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">bReader</span><span class="p">.</span><span class="na">readLine</span><span class="p">();</span>
<span class="w">    </span><span class="p">}</span>
<span class="w">  </span><span class="p">}</span><span class="w"> </span><span class="k">catch</span><span class="w"> </span><span class="p">(</span><span class="n">Exception</span><span class="w"> </span><span class="n">e</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<span class="w">    </span><span class="n">e</span><span class="p">.</span><span class="na">printStackTrace</span><span class="p">();</span>
<span class="w">  </span><span class="p">}</span><span class="w"> </span><span class="k">finally</span><span class="w"> </span><span class="p">{</span>
<span class="w">    </span><span class="n">bReader</span><span class="p">.</span><span class="na">close</span><span class="p">();</span>
<span class="w">    </span><span class="n">finStream</span><span class="p">.</span><span class="na">close</span><span class="p">();</span>
<span class="w">  </span><span class="p">}</span>
<span class="w">  </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">"End : Reading properties file.."</span><span class="p">);</span>
<span class="w">  </span><span class="k">return</span><span class="w"> </span><span class="n">inputHash</span><span class="p">;</span>
<span class="w">  </span><span class="p">}</span>
<span class="p">}</span>
</code></pre></div>
<p>When you run this code most probably you got the below error. I Got this
error</p>
<div class="highlight"><pre><span></span><code><span class="nv">java</span>.<span class="nv">lang</span>.<span class="nv">Exception</span>:<span class="w"> </span>[<span class="nv">google</span><span class="o">-</span><span class="nv">api</span><span class="o">-</span><span class="nv">translate</span><span class="o">-</span><span class="nv">java</span>]<span class="w"> </span><span class="nv">Error</span><span class="w"> </span><span class="nv">retrieving</span>
<span class="w">  </span><span class="nv">translation</span>.
<span class="nv">at</span><span class="w"> </span><span class="nv">com</span>.<span class="nv">google</span>.<span class="nv">api</span>.<span class="nv">GoogleAPI</span>.<span class="nv">retrieveJSON</span><span class="ss">(</span><span class="nv">GoogleAPI</span>.<span class="nv">java</span>:<span class="mi">123</span><span class="ss">)</span>
<span class="nv">at</span><span class="w"> </span><span class="nv">com</span>.<span class="nv">google</span>.<span class="nv">api</span>.<span class="nv">translate</span>.<span class="nv">Translate</span>.<span class="nv">execute</span><span class="ss">(</span><span class="nv">Translate</span>.<span class="nv">java</span>:<span class="mi">69</span><span class="ss">)</span>
<span class="nv">at</span><span class="w"> </span><span class="nv">lang</span>.<span class="nv">main</span><span class="ss">(</span><span class="nv">lang</span>.<span class="nv">java</span>:<span class="mi">14</span><span class="ss">)</span>
<span class="nv">Caused</span><span class="w"> </span><span class="nv">by</span>:<span class="w"> </span><span class="nv">java</span>.<span class="nv">net</span>.<span class="nv">UnknownHostException</span>:<span class="w"> </span><span class="nv">ajax</span>.<span class="nv">googleapis</span>.<span class="nv">com</span>
<span class="nv">at</span><span class="w"> </span><span class="nv">java</span>.<span class="nv">net</span>.<span class="nv">PlainSocketImpl</span>.<span class="k">connect</span><span class="ss">(</span><span class="nv">PlainSocketImpl</span>.<span class="nv">java</span>:<span class="mi">177</span><span class="ss">)</span>
<span class="nv">at</span><span class="w"> </span><span class="nv">java</span>.<span class="nv">net</span>.<span class="nv">SocksSocketImpl</span>.<span class="k">connect</span><span class="ss">(</span><span class="nv">SocksSocketImpl</span>.<span class="nv">java</span>:<span class="mi">366</span><span class="ss">)</span>
<span class="nv">at</span><span class="w"> </span><span class="nv">java</span>.<span class="nv">net</span>.<span class="nv">Socket</span>.<span class="k">connect</span><span class="ss">(</span><span class="nv">Socket</span>.<span class="nv">java</span>:<span class="mi">519</span><span class="ss">)</span>
<span class="nv">at</span><span class="w"> </span><span class="nv">java</span>.<span class="nv">net</span>.<span class="nv">Socket</span>.<span class="k">connect</span><span class="ss">(</span><span class="nv">Socket</span>.<span class="nv">java</span>:<span class="mi">469</span><span class="ss">)</span>
<span class="nv">at</span><span class="w"> </span><span class="nv">sun</span>.<span class="nv">net</span>.<span class="nv">NetworkClient</span>.<span class="nv">doConnect</span><span class="ss">(</span><span class="nv">NetworkClient</span>.<span class="nv">java</span>:<span class="mi">163</span><span class="ss">)</span>
<span class="nv">at</span><span class="w"> </span><span class="nv">sun</span>.<span class="nv">net</span>.<span class="nv">www</span>.<span class="nv">http</span>.<span class="nv">HttpClient</span>.<span class="nv">openServer</span><span class="ss">(</span><span class="nv">HttpClient</span>.<span class="nv">java</span>:<span class="mi">394</span><span class="ss">)</span>
<span class="nv">at</span><span class="w"> </span><span class="nv">sun</span>.<span class="nv">net</span>.<span class="nv">www</span>.<span class="nv">http</span>.<span class="nv">HttpClient</span>.<span class="nv">openServer</span><span class="ss">(</span><span class="nv">HttpClient</span>.<span class="nv">java</span>:<span class="mi">529</span><span class="ss">)</span>
<span class="nv">at</span><span class="w"> </span><span class="nv">sun</span>.<span class="nv">net</span>.<span class="nv">www</span>.<span class="nv">http</span>.<span class="nv">HttpClient</span>.<span class="o">&lt;</span><span class="nv">init</span><span class="o">&gt;</span><span class="ss">(</span><span class="nv">HttpClient</span>.<span class="nv">java</span>:<span class="mi">233</span><span class="ss">)</span>
<span class="nv">at</span><span class="w"> </span><span class="nv">sun</span>.<span class="nv">net</span>.<span class="nv">www</span>.<span class="nv">http</span>.<span class="nv">HttpClient</span>.<span class="nv">New</span><span class="ss">(</span><span class="nv">HttpClient</span>.<span class="nv">java</span>:<span class="mi">306</span><span class="ss">)</span>
<span class="nv">at</span><span class="w"> </span><span class="nv">sun</span>.<span class="nv">net</span>.<span class="nv">www</span>.<span class="nv">http</span>.<span class="nv">HttpClient</span>.<span class="nv">New</span><span class="ss">(</span><span class="nv">HttpClient</span>.<span class="nv">java</span>:<span class="mi">323</span><span class="ss">)</span>
<span class="nv">at</span>
<span class="w">  </span><span class="nv">sun</span>.<span class="nv">net</span>.<span class="nv">www</span>.<span class="nv">protocol</span>.<span class="nv">http</span>.<span class="nv">HttpURLConnection</span>.<span class="nv">getNewHttpClient</span><span class="ss">(</span><span class="nv">HttpURLConnection</span>.<span class="nv">java</span>:<span class="mi">837</span><span class="ss">)</span>
<span class="nv">at</span>
<span class="w">  </span><span class="nv">sun</span>.<span class="nv">net</span>.<span class="nv">www</span>.<span class="nv">protocol</span>.<span class="nv">http</span>.<span class="nv">HttpURLConnection</span>.<span class="nv">plainConnect</span><span class="ss">(</span><span class="nv">HttpURLConnection</span>.<span class="nv">java</span>:<span class="mi">778</span><span class="ss">)</span>
<span class="nv">at</span>
<span class="w">  </span><span class="nv">sun</span>.<span class="nv">net</span>.<span class="nv">www</span>.<span class="nv">protocol</span>.<span class="nv">http</span>.<span class="nv">HttpURLConnection</span>.<span class="k">connect</span><span class="ss">(</span><span class="nv">HttpURLConnection</span>.<span class="nv">java</span>:<span class="mi">703</span><span class="ss">)</span>
<span class="nv">at</span>
<span class="w">  </span><span class="nv">sun</span>.<span class="nv">net</span>.<span class="nv">www</span>.<span class="nv">protocol</span>.<span class="nv">http</span>.<span class="nv">HttpURLConnection</span>.<span class="nv">getOutputStream</span><span class="ss">(</span><span class="nv">HttpURLConnection</span>.<span class="nv">java</span>:<span class="mi">881</span><span class="ss">)</span>
<span class="nv">at</span><span class="w"> </span><span class="nv">com</span>.<span class="nv">google</span>.<span class="nv">api</span>.<span class="nv">GoogleAPI</span>.<span class="nv">retrieveJSON</span><span class="ss">(</span><span class="nv">GoogleAPI</span>.<span class="nv">java</span>:<span class="mi">107</span><span class="ss">)</span>
...<span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="nv">more</span>
<span class="nv">BUILD</span><span class="w"> </span><span class="nv">SUCCESSFUL</span><span class="w"> </span><span class="ss">(</span><span class="nv">total</span><span class="w"> </span><span class="nv">time</span>:<span class="w"> </span><span class="mi">6</span><span class="w"> </span><span class="nv">seconds</span><span class="ss">)</span>
</code></pre></div>
<p>This error for your firewall / your company proxy server blocks [my
company block some sites... :( ]
<a href="http://ajax.googleapis.com/ajax/services/language/translate">http://ajax.googleapis.com/ajax/services/language/translate</a> . The api
could not reach the google translate server. At this time just use proxy
address to run [ ... :D ...]</p>
<div class="highlight"><pre><span></span><code><span class="n">System</span><span class="p">.</span><span class="na">setProperty</span><span class="p">(</span><span class="s">"http.proxyHost"</span><span class="p">,</span><span class="w"> </span><span class="s">"10.20.1.20"</span><span class="p">);</span>
<span class="n">System</span><span class="p">.</span><span class="na">setProperty</span><span class="p">(</span><span class="s">"http.proxyPort"</span><span class="p">,</span><span class="w"> </span><span class="s">"80"</span><span class="p">);</span>
<span class="n">System</span><span class="p">.</span><span class="na">setProperty</span><span class="p">(</span><span class="s">"http.proxyUser"</span><span class="p">,</span><span class="w"> </span><span class="s">"admin"</span><span class="p">);</span>
<span class="n">System</span><span class="p">.</span><span class="na">setProperty</span><span class="p">(</span><span class="s">"http.proxyPassword"</span><span class="p">,</span><span class="w"> </span><span class="s">"admin"</span><span class="p">);</span>
</code></pre></div>
<p>Code Explanation :</p>
<ul>
<li>The above class is a Singleton class. That is achieved by class
    initiated with in the static block and a private constructor</li>
<li>The getInputProperties() method reads input properties file and
    stored in a Hashmap in a key value format.  LinkedHashMap for
    getting the ordered output from the Map how you are inserted.</li>
<li>Then each key value is send to the Translate.execute() method in
    google api with the From and To Language String.</li>
<li>Then the results are written in another file. Thats all...</li>
</ul>
<p>You can Expand this code what ever you want. If you want to download
this eclipse java Project <a href="http://sites.google.com/site/arulraj1985/list-of-files/Translator.zip?attredirects=0&amp;d=1">click
here</a>.</p>
<p>The only thing is this is an online application. you need a net
connection for this.</p>]]></content:encoded><description>&lt;p&gt;&lt;strong&gt;Properties File converter&lt;/strong&gt;&lt;/p&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;

[![image0](http://2.bp.blogspot.com/_X5tq9y9xv2s/TFMxF5Sh_sI/AAAAAAAAAe8/tiTfkCTchFI/s320/translate+to+properties+file.jpg)](http://2.bp.blogspot.com/_X5tq9y9xv2s/TFMxF5Sh_sI/AAAAAAAAAe8/tiTfkCTchFI/s1600/translate+to+properties+file.jpg)

&lt;/div&gt;

&lt;p&gt;Google Translator can convert any word/sentence from one language to
other language. Now a days …&lt;/p&gt;</description></item><item><title>Ubuntu file comparison tool - Bcompare</title><link>https://www.arulraj.net/2010/07/ubuntu-file-comparison-tool-bcompare/</link><category>Linux</category><category>Linux</category><category>ubuntu</category><category>how-to</category><author>noemail@noemail.org (arul)</author><pubDate>Thu, 29 Jul 2010 11:39:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2010-07-29:/2010/07/ubuntu-file-comparison-tool-bcompare/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><strong>Beyond Compare for ubuntu</strong></p>
<div class="separator" style="clear: both; text-align: center;">

[![image0](http://2.bp.blogspot.com/_X5tq9y9xv2s/TFGzRmR8VQI/AAAAAAAAAd8/eDuMSfQbXw4/s320/File+compare.png)](http://2.bp.blogspot.com/_X5tq9y9xv2s/TFGzRmR8VQI/AAAAAAAAAd8/eDuMSfQbXw4/s1600/File+compare.png)

</div>
<div class="separator" style="clear: both; text-align: left;">

There are some command line tool for compare two files. But i need a
gnome application. The command line tools are.

</div>
<ul>
<li><a href="http://linux.die.net/man/1/diff">diff</a></li>
<li><a href="http://www.ifi.uio.no/in219/verktoy/doc/html/doc/sag/sag/adminut6.html">fcomp</a></li>
</ul>
<p>For fcomp you need to install fhist.</p>
<blockquote>
<p>apt-get install fhist</p>
</blockquote>
<p>Then i tried <a href="http://meld.sourceforge.net/">meld</a> . This is a Gnome
based file comparison tool for ubuntu. you can install this using ubuntu
software center. This is an opensource one. But its not working as
expected [ May be i am not know the power of meld  ]. I just tried
some files.</p>
<div class="separator" style="clear: both; text-align: center;">

[![image1](http://4.bp.blogspot.com/_X5tq9y9xv2s/TFG3hufyJ_I/AAAAAAAAAeE/6-wa1EVwrqw/s320/Meld-compare.png)](http://4.bp.blogspot.com/_X5tq9y9xv2s/TFG3hufyJ_I/AAAAAAAAAeE/6-wa1EVwrqw/s1600/Meld-compare.png)

</div>
<p>When i was a windows user :) [till using windows in my office] i used
beyond compare. That is too good for file compare and merge. Now i
searched that software for ubuntu. Yes they provide software for Linux
too..</p>
<div class="separator" style="clear: both; text-align: center;">

[![image2](http://2.bp.blogspot.com/_X5tq9y9xv2s/TFG4g9fjV4I/AAAAAAAAAeM/2u7-70rPa8c/s320/Download+bcompare+for+ubuntu.png)](http://www.scootersoftware.com/download.php)

</div>
<p>I installed beyond compare in ubuntu 10.04.</p>
<p>steps:</p>
<ul>
<li>Download deb file from here
    <a href="http://www.scootersoftware.com/bcompare-3.1.11.12238_i386.deb">http://www.scootersoftware.com/bcompare-3.1.11.12238_i386.deb</a></li>
<li>Just open the file "with Debi package installer"</li>
<li>Click the button "Install package"</li>
</ul>
<p>Here some screen shots:</p>
<div class="separator" style="clear: both; text-align: center;">

[![image3](http://1.bp.blogspot.com/_X5tq9y9xv2s/TFG6Ld-AbcI/AAAAAAAAAeU/L4y7uS4Qu6Q/s320/Bcompare+Install.png)](http://1.bp.blogspot.com/_X5tq9y9xv2s/TFG6Ld-AbcI/AAAAAAAAAeU/L4y7uS4Qu6Q/s1600/Bcompare+Install.png)

</div>
<div class="separator" style="clear: both; text-align: center;">

[![image4](http://3.bp.blogspot.com/_X5tq9y9xv2s/TFG6OgfNi1I/AAAAAAAAAec/ifdzPDuXXHs/s320/Installing+bcompare.png)](http://3.bp.blogspot.com/_X5tq9y9xv2s/TFG6OgfNi1I/AAAAAAAAAec/ifdzPDuXXHs/s1600/Installing+bcompare.png)

</div>
<p>After installing you can open bcompare from Application --&gt;
Programming --&gt; Beyond Compare</p>
<div class="separator" style="clear: both; text-align: center;">

[![image5](http://1.bp.blogspot.com/_X5tq9y9xv2s/TFG67_2mfDI/AAAAAAAAAek/iBb1TkvlM2Q/s320/Bcompare+in+Application.png)](http://1.bp.blogspot.com/_X5tq9y9xv2s/TFG67_2mfDI/AAAAAAAAAek/iBb1TkvlM2Q/s1600/Bcompare+in+Application.png)

</div>
<p>For file comparison you can Right click in a file and choose scripts
--&gt; Select for compare</p>
<div class="separator" style="clear: both; text-align: center;">

[![image6](http://4.bp.blogspot.com/_X5tq9y9xv2s/TFG7BdY_hMI/AAAAAAAAAes/lRsskGPzl88/s320/Bcompare+select+for+compare.png)](http://4.bp.blogspot.com/_X5tq9y9xv2s/TFG7BdY_hMI/AAAAAAAAAes/lRsskGPzl88/s1600/Bcompare+select+for+compare.png)

</div>
<p>Now the File difference</p>
<div class="separator" style="clear: both; text-align: center;">

[![image7](http://4.bp.blogspot.com/_X5tq9y9xv2s/TFG7_Aq85oI/AAAAAAAAAe0/6oscenx4hYo/s320/Beyond+compare+on+ubuntu.png)](http://4.bp.blogspot.com/_X5tq9y9xv2s/TFG7_Aq85oI/AAAAAAAAAe0/6oscenx4hYo/s1600/Beyond+compare+on+ubuntu.png)

</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: left;">

Update:

</div>
<div class="separator" style="clear: both; text-align: left; padding-left: 30px;">

The winmerge is the best windows Bcompare alternative. For more info
<http: winmerge.org=""></http:> . This is a freeware and opensource. But its only
available for windows not for linux :(

</div>]]></content:encoded><description>&lt;p&gt;&lt;strong&gt;Beyond Compare for ubuntu&lt;/strong&gt;&lt;/p&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;

[![image0](http://2.bp.blogspot.com/_X5tq9y9xv2s/TFGzRmR8VQI/AAAAAAAAAd8/eDuMSfQbXw4/s320/File+compare.png)](http://2.bp.blogspot.com/_X5tq9y9xv2s/TFGzRmR8VQI/AAAAAAAAAd8/eDuMSfQbXw4/s1600/File+compare.png)

&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;

There are some command line tool for compare two files. But i need a
gnome application. The command line …&lt;/div&gt;</description></item><item><title>How to add Red5 service</title><link>https://www.arulraj.net/2010/07/how-to-add-red5-service/</link><category>Red5</category><category>commands</category><category>Linux</category><category>red5</category><category>scripting</category><category>how-to</category><author>noemail@noemail.org (arul)</author><pubDate>Tue, 27 Jul 2010 13:20:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2010-07-27:/2010/07/how-to-add-red5-service/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><strong>How to add Red5 service</strong></p>
<p><img alt="image0" src="http://red5.googlecode.com/svn/doc/trunk/FinalLogo.png"/></p>
<p>In this article you are going to add red5 service in your Linux box.</p>
<p>Please use the Below script.</p>
<div class="highlight"><pre><span></span><code><span class="ch">#!/bin/bash</span>
<span class="c1"># Author www.arulraj.net</span>
<span class="c1"># red5    This is used to start, stop, restart and status of red5</span>
<span class="c1">#</span>

<span class="nb">export</span><span class="w"> </span><span class="nv">RED5_HOME</span><span class="o">=</span>/opt/red5

<span class="nv">PID</span><span class="o">=</span><span class="m">0</span>
<span class="nv">RTMPPORT</span><span class="o">=</span><span class="m">1935</span>
<span class="nv">prog</span><span class="o">=</span><span class="s2">"red5"</span>

start<span class="o">(){</span>
<span class="w">  </span>status
<span class="w">  </span><span class="k">if</span><span class="w"> </span><span class="o">[</span><span class="w"> </span><span class="nv">$PID</span><span class="w"> </span>-eq<span class="w"> </span><span class="m">0</span><span class="w"> </span><span class="o">]</span><span class="w"> </span><span class="p">;</span><span class="w"> </span><span class="k">then</span>
<span class="w">    </span><span class="nb">echo</span><span class="w"> </span>$<span class="s2">"Starting </span><span class="nv">$prog</span><span class="s2">..."</span>
<span class="w">    </span>nohup<span class="w"> </span><span class="nv">$RED5_HOME</span>/red5.sh<span class="w"> </span><span class="m">1</span>&gt;<span class="w"> </span><span class="nv">$RED5_HOME</span>/log/stdout.log<span class="w"> </span><span class="m">2</span>&gt;<span class="nv">$RED5_HOME</span>/log/stderr.log<span class="w"> </span>&lt;<span class="w"> </span>/dev/null<span class="w"> </span><span class="p">&amp;</span>
<span class="w">    </span><span class="nv">PID</span><span class="o">=</span><span class="nv">$!</span>
<span class="w">    </span><span class="nb">echo</span><span class="w"> </span>$<span class="s2">"</span><span class="nv">$prog</span><span class="s2"> started at port </span><span class="nv">$RTMPPORT</span><span class="s2"> and PID[</span><span class="nv">$PID</span><span class="s2">]."</span>
<span class="w">  </span><span class="k">else</span>
<span class="w">    </span><span class="nb">echo</span>
<span class="w">  </span><span class="k">fi</span>
<span class="w">  </span><span class="k">return</span><span class="w"> </span><span class="nv">$PID</span>
<span class="o">}</span>

stop<span class="o">(){</span>
<span class="w">  </span>status
<span class="w">  </span><span class="k">if</span><span class="w"> </span><span class="o">[</span><span class="w"> </span><span class="nv">$PID</span><span class="w"> </span>-eq<span class="w"> </span><span class="m">0</span><span class="w"> </span><span class="o">]</span><span class="w"> </span><span class="p">;</span><span class="w"> </span><span class="k">then</span>
<span class="w">    </span><span class="nb">echo</span>
<span class="w">  </span><span class="k">else</span>
<span class="w">    </span><span class="nb">echo</span><span class="w"> </span>$<span class="s2">"Stopping </span><span class="nv">$prog</span><span class="s2">..."</span>
<span class="w">    </span><span class="nv">$RED5_HOME</span>/red5-shutdown.sh
<span class="w">    </span><span class="nb">echo</span><span class="w"> </span>$<span class="s2">"PID[</span><span class="nv">$PID</span><span class="s2">] is killed."</span>
<span class="w">  </span><span class="k">fi</span>
<span class="w">  </span><span class="k">return</span><span class="w"> </span><span class="nv">$PID</span>
<span class="o">}</span>

restart<span class="o">(){</span>
<span class="w">  </span>stop
<span class="w">  </span>sleep<span class="w"> </span><span class="m">2</span>
<span class="w">  </span>start
<span class="o">}</span>

status<span class="o">()</span><span class="w"> </span><span class="o">{</span>
<span class="w">  </span><span class="nv">RTMPPORT</span><span class="o">=</span><span class="sb">`</span>cat<span class="w"> </span><span class="nv">$RED5_HOME</span>/conf/red5.properties<span class="w"> </span><span class="p">|</span><span class="w"> </span>grep<span class="w"> </span>-w<span class="w"> </span><span class="s2">"rtmp.port"</span><span class="w"> </span><span class="p">|</span><span class="w"> </span>awk<span class="w"> </span>-F<span class="o">=</span><span class="w"> </span><span class="s1">'{print $2}'</span><span class="sb">`</span>
<span class="w">  </span><span class="c1">#PID=`lsof -i | grep java | grep *:$RTMPPORT | awk '{print $2}'`</span>
<span class="w">  </span><span class="nv">PID</span><span class="o">=</span><span class="sb">`</span>ps<span class="w"> </span>-ef<span class="w"> </span><span class="p">|</span><span class="w"> </span>grep<span class="w"> </span>red5<span class="w"> </span><span class="p">|</span><span class="w"> </span>grep<span class="w"> </span>java<span class="w"> </span><span class="p">|</span><span class="w"> </span>awk<span class="w"> </span><span class="s1">'{print $2}'</span><span class="sb">`</span>
<span class="w">  </span><span class="k">if</span><span class="w"> </span><span class="o">[</span><span class="w"> </span>x<span class="s2">"</span><span class="nv">$PID</span><span class="s2">"</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="s2">"x"</span><span class="w"> </span><span class="o">]</span><span class="w"> </span><span class="p">;</span><span class="w"> </span><span class="k">then</span>
<span class="w">    </span><span class="nv">PID</span><span class="o">=</span><span class="m">0</span>
<span class="w">    </span><span class="nb">echo</span><span class="w"> </span>$<span class="s2">"</span><span class="nv">$prog</span><span class="s2"> is not running."</span>
<span class="w">  </span><span class="k">else</span>
<span class="w">    </span><span class="nb">echo</span><span class="w"> </span>$<span class="s2">"</span><span class="nv">$prog</span><span class="s2"> running on port </span><span class="nv">$RTMPPORT</span><span class="s2"> and PID[</span><span class="nv">$PID</span><span class="s2">]."</span>
<span class="w">  </span><span class="k">fi</span>
<span class="w">  </span><span class="k">return</span><span class="w"> </span><span class="nv">$PID</span>
<span class="o">}</span>

<span class="c1"># How its called.</span>
<span class="k">case</span><span class="w"> </span><span class="s2">"</span><span class="nv">$1</span><span class="s2">"</span><span class="w"> </span><span class="k">in</span>
<span class="w">  </span>start<span class="o">)</span>
<span class="w">    </span>start
<span class="w">  </span><span class="p">;;</span>
<span class="w">  </span>stop<span class="o">)</span>
<span class="w">    </span>stop
<span class="w">  </span><span class="p">;;</span>
<span class="w">  </span>status<span class="o">)</span>
<span class="w">    </span>status
<span class="w">  </span><span class="p">;;</span>
<span class="w">  </span>restart<span class="o">)</span>
<span class="w">    </span>restart
<span class="w">  </span><span class="p">;;</span>
<span class="w">  </span>*<span class="o">)</span>
<span class="w">    </span><span class="nb">echo</span><span class="w"> </span>$<span class="s2">"Usage: </span><span class="nv">$0</span><span class="s2"> {start|stop|status|restart}"</span>
<span class="w">    </span><span class="nv">PID</span><span class="o">=</span><span class="m">1</span>
<span class="k">esac</span>

<span class="nb">exit</span><span class="w"> </span><span class="nv">$PID</span>
</code></pre></div>
<p>Steps:</p>
<ul>
<li>Save these shell script lines as a file. For mine i saved as file
    "red5". OR You can download this file from
    <a href="http://arulraj.net/labs/script/red5">Here</a></li>
<li>Copy this file to /etc/init.d/</li>
<li>Then execute the below commands to start red5 when your system
    starts</li>
</ul>
<p><a href="http://3.bp.blogspot.com/_X5tq9y9xv2s/TFB9KfBDYDI/AAAAAAAAAd0/V698BY0k9jA/s1600/red5+chkconfig+not+working.png"><img alt="image1" src="http://3.bp.blogspot.com/_X5tq9y9xv2s/TFB9KfBDYDI/AAAAAAAAAd0/V698BY0k9jA/s640/red5+chkconfig+not+working.png"/></a></p>
<p>I checked with ubuntu 10.04. For chkconfig work on ubuntu you need to
install chkconfig</p>
<p>This above script Not working in Ubuntu</p>
<div class="highlight"><pre><span></span><code>apt-get<span class="w"> </span>install<span class="w"> </span>chkconfig
</code></pre></div>
<p><a href="http://3.bp.blogspot.com/_X5tq9y9xv2s/TE8s5WDkvGI/AAAAAAAAAds/kPzFBTdJOeo/s1600/Red5+service+script.png"><img alt="image2" src="http://3.bp.blogspot.com/_X5tq9y9xv2s/TE8s5WDkvGI/AAAAAAAAAds/kPzFBTdJOeo/s320/Red5+service+script.png"/></a></p>
<p><strong>Add red5 in startup - ubuntu:</strong></p>
<p>Use this command</p>
<div class="highlight"><pre><span></span><code>sudo<span class="w"> </span>update-rc.d<span class="w"> </span>red5<span class="w"> </span>defaults
</code></pre></div>
<p>Thanks to anonymous for this info.</p>
<p><strong>Usage:</strong></p>
<div class="highlight"><pre><span></span><code>Start : /etc/init.d/red5 start
Stop : /etc/init.d/red5 stop
Status : /etc/init.d/red5 status
Restart : /etc/init.d/red5 restart
</code></pre></div>
<p>Please Let me know if you have any issues or better ideas...</p>]]></content:encoded><description>&lt;p&gt;&lt;strong&gt;How to add Red5 service&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image0" src="http://red5.googlecode.com/svn/doc/trunk/FinalLogo.png"&gt;&lt;/p&gt;
&lt;p&gt;In this article you are going to add red5 service in your Linux box.&lt;/p&gt;
&lt;p&gt;Please use the Below script.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/bin/bash&lt;/span&gt;
&lt;span class="c1"&gt;# Author www.arulraj.net&lt;/span&gt;
&lt;span class="c1"&gt;# red5    This is used to start, stop, restart and status of red5&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;

&lt;span class="nb"&gt;export&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;RED5_HOME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/opt/red5

&lt;span class="nv"&gt;PID&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;0&lt;/span&gt;
&lt;span class="nv"&gt;RTMPPORT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;1935 …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Tamil FM radio for ubuntu</title><link>https://www.arulraj.net/2010/07/tamil-fm-radio-for-ubuntu/</link><category>Linux</category><category>Linux</category><category>tamil</category><category>ubuntu</category><category>how-to</category><author>noemail@noemail.org (arul)</author><pubDate>Tue, 6 Jul 2010 13:13:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2010-07-06:/2010/07/tamil-fm-radio-for-ubuntu/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><strong>How to add Tamil FM radio for ubuntu</strong></p>
<p><a href="http://3.bp.blogspot.com/_X5tq9y9xv2s/TDN7EfdMqvI/AAAAAAAAAcs/TdQaG50q98w/s1600/radio+icon.jpg"><img alt="image0" src="http://3.bp.blogspot.com/_X5tq9y9xv2s/TDN7EfdMqvI/AAAAAAAAAcs/TdQaG50q98w/s320/radio+icon.jpg"/></a></p>
<p>Ubuntu having a superb software for playing media files, podcast, online
radio and playlist etc., The software is Rhythmbox / VLC. Using that
software you can add any online radio. This post for add tamil FM radios
to ubuntu Rhythmbox. How to add Tamil FM to ubuntu 10.04 ..? Goto
Application ↣ Sound &amp; Video ↣ Rhythmbox Music Player</p>
<p><a href="http://2.bp.blogspot.com/_X5tq9y9xv2s/TDN-oEeYQvI/AAAAAAAAAdE/aNhBJu8GkiI/s1600/Path+for+ubuntu+Rhythmbox.png"><img alt="image1" src="http://2.bp.blogspot.com/_X5tq9y9xv2s/TDN-oEeYQvI/AAAAAAAAAdE/aNhBJu8GkiI/s320/Path+for+ubuntu+Rhythmbox.png"/></a></p>
<p>Then Click the Add Radio button. That button is in Top Right Last
button.</p>
<p><a href="http://3.bp.blogspot.com/_X5tq9y9xv2s/TDN9ohWrWNI/AAAAAAAAAc8/2HMvXvvXGVI/s1600/Add+FM+radio+in+ubuntu.png"><img alt="image2" src="http://3.bp.blogspot.com/_X5tq9y9xv2s/TDN9ohWrWNI/AAAAAAAAAc8/2HMvXvvXGVI/s320/Add+FM+radio+in+ubuntu.png"/></a></p>
<p>Then Enter this URL for Hello FM [Tamil language]</p>
<div class="highlight"><pre><span></span><code>mmsh://bdcast-ind-hellon-enusew3aswepuku.wm.llnwd.net/bdcast\_ind\_hellon\_enusew3aswepuku?MSWMExt=.asf
</code></pre></div>
<p>Then press Add button. Now you can hear Hello FM at any Time. I will
update the AAhaa FM and Radio City FM soon...</p>
<p><a href="http://4.bp.blogspot.com/_X5tq9y9xv2s/TDN7LVUFtJI/AAAAAAAAAc0/JJvL_CEgAa4/s1600/Ubuntu+rhythmbox+Radio+Hello+FM.png"><img alt="image3" src="http://4.bp.blogspot.com/_X5tq9y9xv2s/TDN7LVUFtJI/AAAAAAAAAc0/JJvL_CEgAa4/s320/Ubuntu+rhythmbox+Radio+Hello+FM.png"/></a></p>
<p><em>Update:</em></p>
<p>Here the some of Tamil FM List. You can add this FM's to your ubuntu
rhythmbox using above steps.</p>
<p>Download this Tamil FM Playlist and Open in Rhythmbox or VLC - <a href="https://dl.dropboxusercontent.com/u/33817562/download/tamil_online_fm.m3u">Download
Tamil FM
Playlist</a></p>
<p>Image of Tamil FM List</p>
<p><a href="http://2.bp.blogspot.com/-eIPFFH6F-AU/VXLI51l91TI/AAAAAAAAWRM/-l_vNh0MePI/s1600/Selection_002.png"><img alt="image4" src="http://2.bp.blogspot.com/-eIPFFH6F-AU/VXLI51l91TI/AAAAAAAAWRM/-l_vNh0MePI/s320/Selection_002.png"/></a></p>
<p>There is a online version of same playlist also available...</p>
<iframe src="http://tamilfm.arulraj.net" style="width: 100%; height: 400px;"></iframe>
<p>Online Tamil Radio's playlist from
<a href="http://tamilfm.arulraj.net">tamilfm.arulraj.net</a>. It's works with
mobile and all browsers.</p>
<h2 id="list-of-tamil-fms-for-ubuntu">List of Tamil FM's for ubuntu:</h2>
<div class="highlight"><pre><span></span><code>A.R.Rahman - http://listen.radionomy.com/arrahman-radio
Ilayaraja - http://listen.radionomy.com/ilayaraja-radio
Hello FM - mmsh://bdcast-indhellon-enusew3aswepuku.wm.llnwd.net/bdcast\_ind\_hellon\_enusew3aswepuku?MSWMExt=.asf
Chennai Rainbow - http://www.euroshoutcast.com:8000
TamilStar FM - http://media2.tamilstar.fm:8052/
Shyam Radio - mms://st.malargal.com/shyamradio
Cheers FM - mms://st.malargal.com/cheersfm
City FM - mmsh://203.94.64.10/cityfm\_tamil?MSWMExt=.asf
Elayaraja FM - mmsh://wm.chennaistream.net/cheersfm.newrelease/ilayaraja.wma?MSWMExt=.asf
Thalam FM - mms://live.wtrfm.com/thaalamfm
Canada Tamil FM - mms://ctbc.no-ip.com:8080/
Geetham FM - http://www.geethamradio.com:8020/lofi.mp3
STR FM - mms://live.strfm24.com/strfm
TamilThunder FM - http://cdn.tamilmp3thunder.com/radio/radio.asx
Australia Tamil - http://s7.viastreaming.net/7920/listen.asx
Ungal radio - http://www.ungalradio.com/TuneIn/WindowsMedia128.asx
Tamil Flash FM - http://www.tamilsflashfm.com/wmp.asx
</code></pre></div>
<p>Check out the comments sections also for more FM radio links...</p>]]></content:encoded><description>&lt;p&gt;&lt;strong&gt;How to add Tamil FM radio for ubuntu&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://3.bp.blogspot.com/_X5tq9y9xv2s/TDN7EfdMqvI/AAAAAAAAAcs/TdQaG50q98w/s1600/radio+icon.jpg"&gt;&lt;img alt="image0" src="http://3.bp.blogspot.com/_X5tq9y9xv2s/TDN7EfdMqvI/AAAAAAAAAcs/TdQaG50q98w/s320/radio+icon.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Ubuntu having a superb software for playing media files, podcast, online
radio and playlist etc., The software is Rhythmbox / VLC. Using that
software you can add any online radio. This post for add tamil FM radios
to ubuntu Rhythmbox. How to add …&lt;/p&gt;</description></item><item><title>Mic problem in ubuntu 10.04</title><link>https://www.arulraj.net/2010/07/mic-problem-in-ubuntu-10-04/</link><category>Linux</category><category>Linux</category><category>ubuntu</category><category>how-to</category><author>noemail@noemail.org (arul)</author><pubDate>Mon, 5 Jul 2010 13:35:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2010-07-05:/2010/07/mic-problem-in-ubuntu-10-04/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><strong>Mic Problem in ubuntu 10.04 for Root user</strong></p>
<div class="separator" style="clear: both; text-align: center;">

[![image0](http://1.bp.blogspot.com/_X5tq9y9xv2s/TDIvaC1A0YI/AAAAAAAAAb8/fg2JNqwg6uE/s320/Volume+in+ubuntu+10.04.png)](http://1.bp.blogspot.com/_X5tq9y9xv2s/TDIvaC1A0YI/AAAAAAAAAb8/fg2JNqwg6uE/s1600/Volume+in+ubuntu+10.04.png)

</div>
<p>I am using ubuntu 10.04 in my laptop. I created a user when installing
ubuntu . The sound and Mic are working fine for that user. I enabled the
root by using the following command</p>
<p>To enable root user. Login with existing user then goto Terminal.</p>
<blockquote>
<p>sudo passwd root</p>
</blockquote>
<p>Now the root user is enabled. I logged in with root user. I seen the
sound is not working for me. The volume icon is always in "mute" state</p>
<p>| What is the Error shown ...?
|  When i click the "Sound Preference" in volume button or System
  --&gt; Preference --&gt; Sound it always shows a Warning message
  "Waiting for Sound system to respond"</p>
<div class="separator" style="clear: both; text-align: center;">

[![image1](http://3.bp.blogspot.com/_X5tq9y9xv2s/TEc_0dAcuYI/AAAAAAAAAdc/uRcnI1a_fG0/s320/waiting+for+response.png)](http://3.bp.blogspot.com/_X5tq9y9xv2s/TEc_0dAcuYI/AAAAAAAAAdc/uRcnI1a_fG0/s1600/waiting+for+response.png)

</div>
<p>| How to fix mic problem for root user ..?
|  Goto System --&gt; Preference --&gt; Startup Applications .</p>
<div class="separator" style="clear: both; text-align: center;">

[![image2](http://1.bp.blogspot.com/_X5tq9y9xv2s/TDIxqUrbzsI/AAAAAAAAAcE/jVA2AakzRC4/s320/startup+application+-+ubuntu.png)](http://1.bp.blogspot.com/_X5tq9y9xv2s/TDIxqUrbzsI/AAAAAAAAAcE/jVA2AakzRC4/s1600/startup+application+-+ubuntu.png)

</div>
<p>Now you need add a new startup application. Add "pulseaudio" as a
startup application</p>
<p>| Name: pulseaudio
|  Command : /usr/bin/pulseaudio
|  Comment: To start pulseaudio deamon</p>
<div class="separator" style="clear: both; text-align: center;">

[![image3](http://3.bp.blogspot.com/_X5tq9y9xv2s/TDIyC_EXQrI/AAAAAAAAAcM/JC7uXRAJqvk/s320/Add+start+up+application+ubuntu.png)](http://3.bp.blogspot.com/_X5tq9y9xv2s/TDIyC_EXQrI/AAAAAAAAAcM/JC7uXRAJqvk/s1600/Add+start+up+application+ubuntu.png)

</div>
<p>Then logout and login again. For min i restarted my system. Now you can
see the Volume control icon in unmute state and you can edit your sound
preference now.</p>
<div class="separator" style="clear: both; text-align: center;">

[![image4](http://2.bp.blogspot.com/_X5tq9y9xv2s/TDIywdsgklI/AAAAAAAAAcU/htWK_E-B4o4/s320/working+mic+for+ubuntu.png)](http://2.bp.blogspot.com/_X5tq9y9xv2s/TDIywdsgklI/AAAAAAAAAcU/htWK_E-B4o4/s1600/working+mic+for+ubuntu.png)

</div>
<p>Editing sound preference:</p>
<div class="separator" style="clear: both; text-align: center;">

[![image5](http://1.bp.blogspot.com/_X5tq9y9xv2s/TDIz1bMbXWI/AAAAAAAAAck/o55AK7XlmX4/s320/Sound+Preferences+-+ubuntu+10.04.png)](http://1.bp.blogspot.com/_X5tq9y9xv2s/TDIz1bMbXWI/AAAAAAAAAck/o55AK7XlmX4/s1600/Sound+Preferences+-+ubuntu+10.04.png)

</div>]]></content:encoded><description>&lt;p&gt;&lt;strong&gt;Mic Problem in ubuntu 10.04 for Root user&lt;/strong&gt;&lt;/p&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;

[![image0](http://1.bp.blogspot.com/_X5tq9y9xv2s/TDIvaC1A0YI/AAAAAAAAAb8/fg2JNqwg6uE/s320/Volume+in+ubuntu+10.04.png)](http://1.bp.blogspot.com/_X5tq9y9xv2s/TDIvaC1A0YI/AAAAAAAAAb8/fg2JNqwg6uE/s1600/Volume+in+ubuntu+10.04.png)

&lt;/div&gt;

&lt;p&gt;I am using ubuntu 10.04 in my …&lt;/p&gt;</description></item><item><title>Offline dictionary for ubuntu 10.04</title><link>https://www.arulraj.net/2010/06/offline-dictionary-for-ubuntu-10-04/</link><category>Linux</category><category>ubuntu</category><category>how-to</category><author>noemail@noemail.org (arul)</author><pubDate>Mon, 28 Jun 2010 13:53:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2010-06-28:/2010/06/offline-dictionary-for-ubuntu-10-04/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<div class="separator" style="clear: both; text-align: center;">

[![image0](http://4.bp.blogspot.com/_X5tq9y9xv2s/TCj1u9sK79I/AAAAAAAAAbE/6-RRuRSCn6w/s320/ubuntu_icon.png)](http://4.bp.blogspot.com/_X5tq9y9xv2s/TCj1u9sK79I/AAAAAAAAAbE/6-RRuRSCn6w/s1600/ubuntu_icon.png)

</div>
<div class="separator" style="clear: both; text-align: left;">

Why offline dictionary ..?

</div>
<div class="separator" style="clear: both; text-align: left;">

Anyway ubuntu 10.04 have dictionary by default. You can find the
dictionary from Application → office → Dictionary. You can find the
meaning of a english word using this. When you search for meaning of a
word its communicate with online dictionary server for ex. dict.org then
get the result. If you not having the Net connection / poor connection
its useless. In this situation offline dictionary will helpful to you.
For this you need to install dictionary server in your local ubuntu
machine. here is how to do this.

</div>
<div class="separator" style="clear: both; text-align: center;">

[![image1](http://1.bp.blogspot.com/_X5tq9y9xv2s/TCj6wHIa52I/AAAAAAAAAbM/r_06GVCYYNc/s320/How+to+offline+Dictionery+ubuntu.png)](http://1.bp.blogspot.com/_X5tq9y9xv2s/TCj6wHIa52I/AAAAAAAAAbM/r_06GVCYYNc/s1600/How+to+offline+Dictionery+ubuntu.png)

</div>
<div class="separator" style="clear: both; text-align: left;">

How to install dictionary server in local ..?

</div>
<div class="separator" style="clear: both; text-align: left;">

Goto terminal and run the following commands

</div>
<p>| [bash]
|  sudo apt-get install dictd
|  sudo apt-get install dict-gcide
|  sudo apt-get install dict-moby-thesaurus
|  [/bash]</p>
<p>| dictd - This is the Dictionary server which supports DICT protocol.
|  dict-gcide - English Dictionary
|  dict-moby-thesaurus - thesaurus data source in English. This is an
  optional one</p>
<p>Yes now you are successfully installed a dictionary server. Now you need
to add this server with your dictionary client.</p>
<p>| How to add local dictionary to dictionary client ..?
|  Goto Dictionary then Edit → Preference</p>
<div class="separator" style="clear: both; text-align: center;">

[![image2](http://1.bp.blogspot.com/_X5tq9y9xv2s/TCj7I1bnJXI/AAAAAAAAAbU/9Xf59VIKGzM/s320/How+to+offline+Dictionery+ubuntu+-+preference.png)](http://1.bp.blogspot.com/_X5tq9y9xv2s/TCj7I1bnJXI/AAAAAAAAAbU/9Xf59VIKGzM/s1600/How+to+offline+Dictionery+ubuntu+-+preference.png)

</div>
<p>Click the "Add" button to add a new dictionary</p>
<div class="separator" style="clear: both; text-align: center;">

[![image3](http://4.bp.blogspot.com/_X5tq9y9xv2s/TCj7lwcawGI/AAAAAAAAAbc/kn0Tb2pGQ6M/s320/How+to+offline+Dictionery+ubuntu-add+dictionary.png)](http://4.bp.blogspot.com/_X5tq9y9xv2s/TCj7lwcawGI/AAAAAAAAAbc/kn0Tb2pGQ6M/s1600/How+to+offline+Dictionery+ubuntu-add+dictionary.png)

</div>
<p>| Enter your local dictionary details.
|  Dictionary name : Default
|  Transport : Dictionary Server
|  Hostname : 127.0.0.1
|  Port : 2628</p>
<div class="separator" style="clear: both; text-align: center;">

[![image4](http://3.bp.blogspot.com/_X5tq9y9xv2s/TCj8O4iRQpI/AAAAAAAAAbk/wsIQHjRkmc0/s320/How+to+offline+Dictionery+ubuntu-Edit+Dictionary+Source.png)](http://3.bp.blogspot.com/_X5tq9y9xv2s/TCj8O4iRQpI/AAAAAAAAAbk/wsIQHjRkmc0/s1600/How+to+offline+Dictionery+ubuntu-Edit+Dictionary+Source.png)

</div>
<p>Thats all. Now you can search locally.</p>
<div class="separator" style="clear: both; text-align: center;">

[![image5](http://1.bp.blogspot.com/_X5tq9y9xv2s/TCj80W9JaTI/AAAAAAAAAbs/RH9BORx27fs/s320/java+-+ubuntu+Dictionary+search.png)](http://1.bp.blogspot.com/_X5tq9y9xv2s/TCj80W9JaTI/AAAAAAAAAbs/RH9BORx27fs/s1600/java+-+ubuntu+Dictionary+search.png)

</div>
<div class="separator" style="clear: both; text-align: left;">

Update on 6th June 2011:

</div>
<div class="separator" style="clear: both; text-align: left; padding-left: 30px;">

Now I found an application for offline Dictionary from ubuntu software
center you can install it from here. Name is
[Artha](http://artha.sourceforge.net/wiki/index.php/Home) .

</div>
<div class="separator" style="clear: both; text-align: center;">

[![image6](http://1.bp.blogspot.com/-UvmfYZPfF-0/TevXeMyrFdI/AAAAAAAAAps/oUuZWdM5oXY/s400/artha-offlince-dictionary.png)](http://1.bp.blogspot.com/-UvmfYZPfF-0/TevXeMyrFdI/AAAAAAAAAps/oUuZWdM5oXY/s1600/artha-offlince-dictionary.png)

</div>
<p>Update on 20th November 2011:</p>
<p>| Here I have given steps for installing dictionary server for a
  dictionary client such as "Gnome Dictionary". Before Installing
  dictionary server make sure do have any dictionary client.
|  [bash]sudo apt-get install gnome-dictionary[/bash]
|  this is the command for installing Gnome Dictionary.</p>]]></content:encoded><description>&lt;div class="separator" style="clear: both; text-align: center;"&gt;

[![image0](http://4.bp.blogspot.com/_X5tq9y9xv2s/TCj1u9sK79I/AAAAAAAAAbE/6-RRuRSCn6w/s320/ubuntu_icon.png)](http://4.bp.blogspot.com/_X5tq9y9xv2s/TCj1u9sK79I/AAAAAAAAAbE/6-RRuRSCn6w/s1600/ubuntu_icon.png)

&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;

Why offline dictionary ..?

&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;

Anyway ubuntu 10.04 have dictionary by default. You can find the
dictionary from Application → office → Dictionary. You can find the
meaning …&lt;/div&gt;</description></item><item><title>Print screen using java</title><link>https://www.arulraj.net/2010/06/print-screen-using-java/</link><category>Programming</category><category>java</category><author>noemail@noemail.org (arul)</author><pubDate>Wed, 23 Jun 2010 13:20:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2010-06-23:/2010/06/print-screen-using-java/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<!-- -->
<dl>
<dt>Is there any api for capure my screen ..?</dt>
<dd>
<p>You don't need any api. Java have the inbuild functionalities for
this. Using the Robot class you can print your screen. Here is the
code sample and explanation.</p>
</dd>
</dl>
<p><em>Example code:</em></p>
<div class="highlight"><pre><span></span><code><span class="kn">import</span><span class="w"> </span><span class="nn">java.awt.image.BufferedImage</span><span class="p">;</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">java.awt.Rectangle</span><span class="p">;</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">java.awt.Dimension</span><span class="p">;</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">java.awt.Toolkit</span><span class="p">;</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">java.awt.Robot</span><span class="p">;</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">java.io.File</span><span class="p">;</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">javax.imageio.ImageIO</span><span class="p">;</span>

<span class="kd">class</span> <span class="nc">ScreenRecorder</span><span class="w"> </span><span class="p">{</span>
<span class="w">  </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="n">String</span><span class="w"> </span><span class="n">args</span><span class="o">[]</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<span class="w">    </span><span class="k">try</span><span class="w"> </span><span class="p">{</span>
<span class="w">      </span><span class="n">Toolkit</span><span class="w"> </span><span class="n">tool</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">Toolkit</span><span class="p">.</span><span class="na">getDefaultToolkit</span><span class="p">();</span>
<span class="w">      </span><span class="n">Dimension</span><span class="w"> </span><span class="n">d</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">tool</span><span class="p">.</span><span class="na">getScreenSize</span><span class="p">();</span>
<span class="w">      </span><span class="n">Rectangle</span><span class="w"> </span><span class="n">rect</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Rectangle</span><span class="p">(</span><span class="n">d</span><span class="p">);</span>
<span class="w">      </span><span class="n">Robot</span><span class="w"> </span><span class="n">robot</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Robot</span><span class="p">();</span>
<span class="w">      </span><span class="n">Thread</span><span class="p">.</span><span class="na">sleep</span><span class="p">(</span><span class="mi">2000</span><span class="p">);</span>
<span class="w">      </span><span class="n">File</span><span class="w"> </span><span class="n">f</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">File</span><span class="p">(</span><span class="s">"screenshot.jpg"</span><span class="p">);</span>
<span class="w">      </span><span class="n">BufferedImage</span><span class="w"> </span><span class="n">img</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">robot</span><span class="p">.</span><span class="na">createScreenCapture</span><span class="p">(</span><span class="n">rect</span><span class="p">);</span>
<span class="w">      </span><span class="n">ImageIO</span><span class="p">.</span><span class="na">write</span><span class="p">(</span><span class="n">img</span><span class="p">,</span><span class="s">"jpeg"</span><span class="p">,</span><span class="n">f</span><span class="p">);</span>
<span class="w">      </span><span class="n">tool</span><span class="p">.</span><span class="na">beep</span><span class="p">();</span>
<span class="w">    </span><span class="p">}</span><span class="w"> </span><span class="k">catch</span><span class="p">(</span><span class="n">Exception</span><span class="w"> </span><span class="n">e</span><span class="p">){</span>
<span class="w">      </span><span class="n">e</span><span class="p">.</span><span class="na">printStackTrace</span><span class="p">();</span>
<span class="w">    </span><span class="p">}</span>
<span class="w">  </span><span class="p">}</span>
<span class="p">}</span>
</code></pre></div>
<ul>
<li>
<p>Import the classes you need.</p>
</li>
<li>
<p>Using the ToolKit you can get your screensize.</p>
</li>
<li>
<p>Form a Rectangle object with this width and height</p>
</li>
<li>
<p>capture the screen for this full width and height.</p>
</li>
<li>
<p>There is a Thread.sleep for 2 sec for my convenience</p>
</li>
<li>
<p>You can specify your own width and height by</p>
<blockquote>
<p>rect = new Rectangle(640,480);</p>
</blockquote>
</li>
</ul>
<p>I think this is help you more. Now am working on record the desktop
using java. Soon i will come up with good product.</p>
<p><em>Captured Image:</em></p>
<div class="separator" style="clear: both; text-align: center;">

[![image0](http://3.bp.blogspot.com/_X5tq9y9xv2s/TCJeHxGfD1I/AAAAAAAAAag/ERj3EzaMTIA/s320/screenshot.jpg)](http://3.bp.blogspot.com/_X5tq9y9xv2s/TCJeHxGfD1I/AAAAAAAAAag/ERj3EzaMTIA/s1600/screenshot.jpg)

</div>]]></content:encoded><description>&lt;!-- --&gt;

&lt;dl&gt;
&lt;dt&gt;Is there any api for capure my screen ..?&lt;/dt&gt;
&lt;dd&gt;
&lt;p&gt;You don't need any api. Java have the inbuild functionalities for
this. Using the Robot class you can print your screen. Here is the
code sample and explanation.&lt;/p&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;&lt;em&gt;Example code:&lt;/em&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;java.awt.image.BufferedImage&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;java.awt.Rectangle&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nn"&gt;java.awt …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Ubuntu FAQ</title><link>https://www.arulraj.net/2010/06/ubuntu-faq/</link><category>Linux</category><category>commands</category><category>Linux</category><category>ubuntu</category><category>how-to</category><author>noemail@noemail.org (arul)</author><pubDate>Sun, 13 Jun 2010 13:44:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2010-06-13:/2010/06/ubuntu-faq/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><a href="http://picasaweb.google.com/lh/photo/H_Aajl3cxrd_q5qtDv82yRRU7417pzdLFPTzvmy2uw8?feat=blogger"><img alt="image0" src="http://lh6.ggpht.com/_X5tq9y9xv2s/TBE3MO5AjmI/AAAAAAAAAZI/_QfbEoEor1Q/s512/ubuntu-logo.gif"/></a></p>
<p>Hi i am using ubuntu in <a href="http://www.arulraj.net/2010/06/install-ubuntu-10-04-in-acer-5740.html">my
laptop</a>
. Previously i am using windows os. i face some problems like how to
open my computer in shorcut, show desktop, Run etc., i search in google
and resolve here i explain how to do those things. This is not for
ubuntu/linux guru's only for newbies like me :)</p>
<p>How to open My computer (filesystem) in ubuntu ..?</p>
<p>There is a command called "nautilus" . This will help you. Open
Terminal then type "nautilus /" this will open your filesystem. Then
create Launcher (shortcut) for this.</p>
<p>How to Create a shortcut ..?</p>
<p>Go to your Desktop. Then Right Click --&gt; Select "Create Launcher".
It shows a window Fill up the like the below</p>
<p><a href="http://1.bp.blogspot.com/_X5tq9y9xv2s/TBUfGYQA4oI/AAAAAAAAAZQ/iJRZnOfdDws/s1600/ubuntu+create+shorcut.png"><img alt="image1" src="http://1.bp.blogspot.com/_X5tq9y9xv2s/TBUfGYQA4oI/AAAAAAAAAZQ/iJRZnOfdDws/s320/ubuntu+create+shorcut.png"/></a></p>
<p>In the Create Launcher window Type this Command "nautilus /". Select
your own name and own comment. Then click OK. Now the your "My Computer
" icon is created in the Desktop like the below</p>
<div class="separator" style="clear: both; text-align: center;">

[![image2](http://3.bp.blogspot.com/_X5tq9y9xv2s/TBUfItPVR2I/AAAAAAAAAZY/rB8CIUT-cNQ/s320/ubuntu+my+computer.png)](http://3.bp.blogspot.com/_X5tq9y9xv2s/TBUfItPVR2I/AAAAAAAAAZY/rB8CIUT-cNQ/s1600/ubuntu+my+computer.png)

</div>
<p>Using the nautilus command you can create the shortcut for any folder.
For Home folder change the command "nautilus /root" .</p>
<p>| There is a another method to do all the things.
|  Goto terminal then type "gconf-editor" it opens a Configuration
  Editor. Its like a Registry Editor in windows operating system.</p>
<p>Its like the below</p>
<div class="separator" style="clear: both; text-align: center;">

[![image3](http://2.bp.blogspot.com/_X5tq9y9xv2s/TBUm5ktozNI/AAAAAAAAAZg/2pdoXC_fiGU/s320/ubuntu+Configuration+Editor+-+desktop.png)](http://2.bp.blogspot.com/_X5tq9y9xv2s/TBUm5ktozNI/AAAAAAAAAZg/2pdoXC_fiGU/s1600/ubuntu+Configuration+Editor+-+desktop.png)

</div>
<p>| Goto Configuration Editor --&gt; apps --&gt; nautilus --&gt; Desktop
|  Then Check the checkbox "computer_icon_visible" and
  "home_icon_visible" . Now the your computer and Home icons are shown
  in your desktop.</p>
<p><a href="http://2.bp.blogspot.com/_X5tq9y9xv2s/TBUo0o1QdoI/AAAAAAAAAZo/NTOAbc70qKA/s1600/ubuntu+desktop+icon.png"><img alt="image4" src="http://2.bp.blogspot.com/_X5tq9y9xv2s/TBUo0o1QdoI/AAAAAAAAAZo/NTOAbc70qKA/s320/ubuntu+desktop+icon.png"/></a></p>
<p>How to create custom keyboard shortcut ..?</p>
<p>In ubuntu you can create your own custom keyboard shortcut. Goto System
--&gt; Preference --&gt; keyboard shortcuts.</p>
<div class="separator" style="clear: both; text-align: center;">

[![image5](http://4.bp.blogspot.com/_X5tq9y9xv2s/TBZqxPcrfUI/AAAAAAAAAaA/ZnNuu2pn8m8/s320/ubuntu+keyboard+shorcut.png)](http://4.bp.blogspot.com/_X5tq9y9xv2s/TBZqxPcrfUI/AAAAAAAAAaA/ZnNuu2pn8m8/s1600/ubuntu+keyboard+shorcut.png)

</div>
<p>It opens a new window. Click the Add button then Enter your own name and
type the command for that. For example if you want to open "System
Monitor" its like Task manager in windows type this command
"gnome-system-monitor". Then press Apply. Now its time to select your
shortcut keys. Select which one you added then choose your combination
of keys.</p>
<div class="separator" style="clear: both; text-align: center;">

[![image6](http://4.bp.blogspot.com/_X5tq9y9xv2s/TBUxbc0bnCI/AAAAAAAAAZw/uyh9gjH6vWE/s320/Keyboard+shorcut.png)](http://4.bp.blogspot.com/_X5tq9y9xv2s/TBUxbc0bnCI/AAAAAAAAAZw/uyh9gjH6vWE/s1600/Keyboard+shorcut.png)

</div>
<p>| How to set environmental variables ..?
|  Lot of ways available to set the environmental variable. But this is
  the most simple one. You can add your variable in "/etc/environment"
  file
|  open this file then add your bin folder in the PATH. You can add HOME
  variable like "JAVA_HOME" in the next line.</p>
<p><a href="http://3.bp.blogspot.com/_X5tq9y9xv2s/TBU0yyPQyRI/AAAAAAAAAZ4/RiE8Aiw85dg/s1600/ubuntu+environment+variable.png"><img alt="image7" src="http://3.bp.blogspot.com/_X5tq9y9xv2s/TBU0yyPQyRI/AAAAAAAAAZ4/RiE8Aiw85dg/s320/ubuntu+environment+variable.png"/></a></p>
<p>Some Ubuntu shortcuts :</p>
<p>| To open Terminal window CTRL+ALT+T
|  To open Run window ALT+F2
|  To Choose the Desktop Windows key + E
|  Show Desktop CTRL+ALT+D</p>]]></content:encoded><description>&lt;p&gt;&lt;a href="http://picasaweb.google.com/lh/photo/H_Aajl3cxrd_q5qtDv82yRRU7417pzdLFPTzvmy2uw8?feat=blogger"&gt;&lt;img alt="image0" src="http://lh6.ggpht.com/_X5tq9y9xv2s/TBE3MO5AjmI/AAAAAAAAAZI/_QfbEoEor1Q/s512/ubuntu-logo.gif"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Hi i am using ubuntu in &lt;a href="http://www.arulraj.net/2010/06/install-ubuntu-10-04-in-acer-5740.html"&gt;my
laptop&lt;/a&gt;
. Previously i am using windows os. i face some problems like how to
open my computer in shorcut, show desktop, Run etc., i search in google
and resolve here i explain how to do those things. This is not for
ubuntu/linux …&lt;/p&gt;</description></item><item><title>Install Ubuntu 10.04 in Acer 5740</title><link>https://www.arulraj.net/2010/06/install-ubuntu-10-04-in-acer-5740/</link><category>Linux</category><category>Linux</category><category>ubuntu</category><category>how-to</category><author>noemail@noemail.org (arul)</author><pubDate>Thu, 10 Jun 2010 14:24:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2010-06-10:/2010/06/install-ubuntu-10-04-in-acer-5740/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><a href="http://picasaweb.google.com/lh/photo/H_Aajl3cxrd_q5qtDv82yRRU7417pzdLFPTzvmy2uw8?feat=blogger"><img alt="image0" src="http://lh6.ggpht.com/_X5tq9y9xv2s/TBE3MO5AjmI/AAAAAAAAAZI/_QfbEoEor1Q/s512/ubuntu-logo.gif"/></a></p>
<p>In this blog post i am going to explain how to install ubuntu 10.04 in
Acer 5740 laptop. Recently i bought a new Acer 5740 laptop with DOS
Operating System. The total price is Rs.30,000 in chennai. Before buying
this laptop i fixed in my mind use only Linux Operating system in my new
laptop. I have tried many other distros like Linux mint, Fedora and
opensuse in vmware. Apart from that i like ubuntu, because user
friendly. ok now let into the topic.</p>
<p>Here is my system Configuration:</p>
<p><a href="http://picasaweb.google.com/lh/photo/ZOz4KGlVExEFWymsd2pqvBRU7417pzdLFPTzvmy2uw8?feat=blogger"><img alt="image1" src="http://lh4.ggpht.com/_X5tq9y9xv2s/TBE14Tfh8zI/AAAAAAAAAY8/K-ABTQwXT-k/s512/Ubuntu-Sysinfo.png"/></a></p>
<p>How to install ubuntu ..?</p>
<p>Steps:</p>
<ul>
<li>Download the DVD from <a href="http://cdimage.ubuntu.com/dvd/current/">http://cdimage.ubuntu.com/dvd/current/</a></li>
<li>Just Plug the dvd in your 5740 laptop.</li>
<li>Select your Language</li>
<li>Then select "Install ubuntu"</li>
<li>Select your Time Zone</li>
<li>Select your Keyboard layout</li>
<li>Select your Partition option- i choose the default one</li>
<li>Enter the Login user details</li>
<li>Now copying files progress bar. This process only take too much off
    times for me, approximately it takes more than 45 min.</li>
<li>Yes. you done it. you are successfully installed.</li>
</ul>
<p>How to enable root user in ubuntu ..?</p>
<p>Go to Terminal. keyboard Shortcut for terminal is press CTRL + ALT + T.
Then type the below command</p>
<div id="_mcePaste">
<root@arul-laptop>:\~# sudo passwd root

</root@arul-laptop></div>
<div>

Enter the new password and confirm the password. You can restrict the
user privilege by Goto System -\&gt; Administration -\&gt; User and Groups and
click the advanced option.

</div>
<div>

Photo Slide show:

</div>
<div id="__ss_4468080" style="width: 425px; text-align: center;">
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" height="355" id="__sse4468080" width="425">
<embed allowfullscreen="true" allowscriptaccess="always" height="355" id="__sse4468080" name="__sse4468080" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=installing-acerodp4691&amp;stripped_title=installing-acerodp" type="application/x-shockwave-flash" width="425"/>
</object>
</div>
<div>

Thanks to my friend Mr.Ponraj natarajan for helping me installing
ubuntu. Without him it does not happen.

</div>]]></content:encoded><description>&lt;p&gt;&lt;a href="http://picasaweb.google.com/lh/photo/H_Aajl3cxrd_q5qtDv82yRRU7417pzdLFPTzvmy2uw8?feat=blogger"&gt;&lt;img alt="image0" src="http://lh6.ggpht.com/_X5tq9y9xv2s/TBE3MO5AjmI/AAAAAAAAAZI/_QfbEoEor1Q/s512/ubuntu-logo.gif"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In this blog post i am going to explain how to install ubuntu 10.04 in
Acer 5740 laptop. Recently i bought a new Acer 5740 laptop with DOS
Operating System. The total price is Rs.30,000 in chennai. Before buying
this laptop i fixed in my mind use …&lt;/p&gt;</description><enclosure length="3332" type="application/x-shockwave-flash" url="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=installing-acerodp4691&amp;amp;stripped_title=installing-acerodp"/><itunes:explicit>no</itunes:explicit><itunes:subtitle>In this blog post i am going to explain how to install ubuntu 10.04 in Acer 5740 laptop. Recently i bought a new Acer 5740 laptop with DOS Operating System. The total price is Rs.30,000 in chennai. Before buying this laptop i fixed in my mind use …</itunes:subtitle><itunes:author>noemail@noemail.org (arul)</itunes:author><itunes:summary>In this blog post i am going to explain how to install ubuntu 10.04 in Acer 5740 laptop. Recently i bought a new Acer 5740 laptop with DOS Operating System. The total price is Rs.30,000 in chennai. Before buying this laptop i fixed in my mind use …</itunes:summary><itunes:keywords>Linux, Linux, ubuntu, how-to</itunes:keywords></item><item><title>Jsp to Servlet converter</title><link>https://www.arulraj.net/2010/04/jsp-to-servlet-converter/</link><category>Programming</category><category>java</category><author>noemail@noemail.org (arul)</author><pubDate>Thu, 22 Apr 2010 09:45:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2010-04-22:/2010/04/jsp-to-servlet-converter/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><strong>Jsp to Servlet converter</strong></p>
<p><img alt="image0" src="http://www.socialbc.com/files/active/1/JSP_LOGO_RGB.jpg"/></p>
<p>Here is the Ant build file to convert jsp file to servlet file.</p>
<p>jspc (JavaServerPages Compiler) tool is helping to convert the jsp.
The requirements are you need</p>
<ul>
<li>java sdk</li>
<li>apache tomcat</li>
<li>ant</li>
</ul>
<div class="highlight"><pre><span></span><code><span class="nt"><project< span=""><span class="w"> </span><span class="na">name=</span><span class="s">"Test"</span><span class="w"> </span><span class="na">default=</span><span class="s">"compile"</span><span class="w"> </span><span class="na">basedir=</span><span class="s">"."</span><span class="nt">&gt;</span>

<span class="nt"><description></description></span>

JSP<span class="w"> </span>to<span class="w"> </span>Servlet<span class="w"> </span>Converter

<span class="nt"></span>

<span class="nt"><property< span=""><span class="w"> </span><span class="na">name=</span><span class="s">"name"</span><span class="w"> </span><span class="na">value=</span><span class="s">"JSP to Servlet"</span><span class="w"> </span><span class="nt">/&gt;</span>

<span class="nt"><property< span=""><span class="w"> </span><span class="na">environment=</span><span class="s">"env"</span><span class="w"> </span><span class="nt">/&gt;</span>

<span class="nt"><property< span=""><span class="w"> </span><span class="na">name=</span><span class="s">"ANT_HOME"</span><span class="w"> </span><span class="na">value=</span><span class="s">"${env.ANT_HOME}"</span><span class="w"> </span><span class="nt">/&gt;</span>

<span class="nt"><property< span=""><span class="w"> </span><span class="na">name=</span><span class="s">"TOMCAT_HOME"</span><span class="w"> </span><span class="na">value=</span><span class="s">"D:\server\Tomcat 5.5"</span><span class="w"> </span><span class="nt">/&gt;</span>

<span class="nt"><target< span=""><span class="w"> </span><span class="na">name=</span><span class="s">"init"</span><span class="w"> </span><span class="na">description=</span><span class="s">"Initialization"</span><span class="w"> </span><span class="nt">&gt;</span>

<span class="nt"><path< span=""><span class="w"> </span><span class="na">id=</span><span class="s">"tomcat.classpath"</span><span class="nt">&gt;</span>

<span class="nt"><fileset< span=""><span class="w"> </span><span class="na">dir=</span><span class="s">"${TOMCAT_HOME}\common\lib"</span><span class="nt">&gt;</span>

<span class="nt"><include< span=""><span class="w"> </span><span class="na">name=</span><span class="s">"*.jar"</span><span class="w"> </span><span class="nt">/&gt;</span>

<span class="nt"></span>

<span class="nt"></span>

<span class="nt"><path< span=""><span class="w"> </span><span class="na">id=</span><span class="s">"ant.classpath"</span><span class="nt">&gt;</span>

<span class="nt"><fileset< span=""><span class="w"> </span><span class="na">dir=</span><span class="s">"${ANT_HOME}\lib"</span><span class="nt">&gt;</span>

<span class="nt"><include< span=""><span class="w"> </span><span class="na">name=</span><span class="s">"*.jar"</span><span class="nt">/&gt;</span>

<span class="nt"></span>

<span class="nt"></span>

<span class="nt"><path< span=""><span class="w"> </span><span class="na">id=</span><span class="s">"webapp.classpath"</span><span class="nt">&gt;</span>

<span class="nt"><fileset< span=""><span class="w"> </span><span class="na">dir=</span><span class="s">".\WEB-INF\lib"</span><span class="nt">&gt;</span>

<span class="nt"><include< span=""><span class="w"> </span><span class="na">name=</span><span class="s">"*.jar"</span><span class="w"> </span><span class="nt">/&gt;</span>

<span class="nt"></span>

<span class="nt"></span>

<span class="nt"></span>

<span class="nt"><target< span=""><span class="w"> </span><span class="na">name=</span><span class="s">"compile"</span><span class="w"> </span><span class="na">depends=</span><span class="s">"init"</span><span class="w"> </span><span class="na">description=</span><span class="s">"compile the source"</span><span class="w"> </span><span class="nt">&gt;</span>

<span class="nt"><mkdir< span=""><span class="w"> </span><span class="na">dir=</span><span class="s">"./out"</span><span class="w"> </span><span class="nt">/&gt;</span>

<span class="nt"><jspc< span=""><span class="w"> </span><span class="na">srcdir=</span><span class="s">"."</span>

<span class="na">destdir=</span><span class="s">"out"</span>

<span class="na">verbose=</span><span class="s">"9"</span><span class="nt">&gt;</span>

<span class="nt"><classpath></classpath></span>

<span class="nt"><path< span=""><span class="w"> </span><span class="na">refid=</span><span class="s">"tomcat.classpath"</span><span class="w"> </span><span class="nt">/&gt;</span>

<span class="nt"><path< span=""><span class="w"> </span><span class="na">refid=</span><span class="s">"ant.classpath"</span><span class="w"> </span><span class="nt">/&gt;</span>

<span class="nt"><path< span=""><span class="w"> </span><span class="na">refid=</span><span class="s">"webapp.classpath"</span><span class="w"> </span><span class="nt">/&gt;</span>

<span class="nt"></span>

<span class="nt"><include< span=""><span class="w"> </span><span class="na">name=</span><span class="s">"*.jsp"</span><span class="w"> </span><span class="nt">/&gt;</span>

<span class="nt"></span>

<span class="nt"></span>

<span class="nt"><target< span=""><span class="w"> </span><span class="na">name=</span><span class="s">"build"</span><span class="w"> </span><span class="na">depends=</span><span class="s">"compile"</span><span class="nt">/&gt;</span>

<span class="nt"><target< span=""><span class="w"> </span><span class="na">name=</span><span class="s">"clean"</span><span class="w"> </span><span class="na">description=</span><span class="s">"clean the directories"</span><span class="nt">&gt;</span>

<span class="nt"><delete< span=""><span class="w"> </span><span class="na">dir=</span><span class="s">"./out"</span><span class="w"> </span><span class="nt">/&gt;</span>

<span class="nt"></span>

<span class="nt"></span>
</delete<></span></target<></span></target<></span></include<></span></path<></span></path<></span></path<></span></jspc<></span></mkdir<></span></target<></span></include<></span></fileset<></span></path<></span></include<></span></fileset<></span></path<></span></include<></span></fileset<></span></path<></span></target<></span></property<></span></property<></span></property<></span></property<></span></project<></span></code></pre></div>]]></content:encoded><description>&lt;p&gt;&lt;strong&gt;Jsp to Servlet converter&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image0" src="http://www.socialbc.com/files/active/1/JSP_LOGO_RGB.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Here is the Ant build file to convert jsp file to servlet file.&lt;/p&gt;
&lt;p&gt;jspc (JavaServerPages Compiler) tool is helping to convert the jsp.
The requirements are you need&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;java sdk&lt;/li&gt;
&lt;li&gt;apache tomcat&lt;/li&gt;
&lt;li&gt;ant&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;project&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Test&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="na"&gt;default=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;compile&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="na"&gt;basedir=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;.&amp;quot;&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;description&amp;gt;&lt;/span&gt;

JSP&lt;span class="w"&gt; &lt;/span&gt;to&lt;span class="w"&gt; &lt;/span&gt;Servlet&lt;span class="w"&gt; &lt;/span&gt;Converter

&lt;span class="nt"&gt;&amp;lt;/description&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;property …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Java offline Documentation</title><link>https://www.arulraj.net/2010/04/java-offline-documentation/</link><category>Programming</category><category>java</category><author>noemail@noemail.org (arul)</author><pubDate>Wed, 21 Apr 2010 04:56:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2010-04-21:/2010/04/java-offline-documentation/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><img alt="image0" src="http://www.lsdoc.org/webcm/lsdoc_org.nsf/lsdoc_javadoc1.gif"/></p>
<p><strong>why it is need ..?</strong></p>
<blockquote>
<p>If you not have or limited bandwidth internet connecion in your
machine at that time it is very helpfull to solve your java
programming problems. The java documentation of your project is help
to easily understand the classes and functions used in that project.</p>
</blockquote>
<p><strong>How to create a java documentation ..?</strong></p>
<blockquote>
<p>It is very easy using the javadoc tool you can create a documentation
for any java program. First create a documentation for java</p>
</blockquote>
<p><em>In windows</em></p>
<p>Extract that <code>C:\Program Files\Java\jdk1.6.0_10\src.zip</code> to <code>src</code> folder
then</p>
<div class="highlight"><pre><span></span><code><span class="k">cd</span> src
<span class="k">dir</span> /s /b *.java <span class="p">&gt;</span> files.txt
javadoc -J-Xmx756m @files.txt
</code></pre></div>
<p><em>In Linux</em></p>
<div class="highlight"><pre><span></span><code><span class="nb">cd</span><span class="w"> </span>/usr/local/java/jdk1.6.10
find<span class="w"> </span>-r<span class="w"> </span>*.java<span class="w"> </span>&gt;<span class="w"> </span>files.txt
javadoc<span class="w"> </span>-J-Xmx756m<span class="w"> </span>@files.txt
</code></pre></div>]]></content:encoded><description>&lt;p&gt;&lt;img alt="image0" src="http://www.lsdoc.org/webcm/lsdoc_org.nsf/lsdoc_javadoc1.gif"&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;why it is need ..?&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;If you not have or limited bandwidth internet connecion in your
machine at that time it is very helpfull to solve your java
programming problems. The java documentation of your project is help
to easily understand the classes and functions used in that project.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;How to …&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Soundcard in xen vm</title><link>https://www.arulraj.net/2010/03/soundcard-in-xen-vm/</link><category>Virtualization</category><category>cloud-computing</category><category>xen</category><category>Linux</category><author>noemail@noemail.org (arul)</author><pubDate>Thu, 25 Mar 2010 11:08:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2010-03-25:/2010/03/soundcard-in-xen-vm/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><strong>Enable sound card in xen vm</strong></p>
<p><a href="http://2.bp.blogspot.com/_X5tq9y9xv2s/S6t1j7HhaTI/AAAAAAAAANI/Tc7vempGBMo/s1600/soundcard.jpg"><img alt="image0" src="http://2.bp.blogspot.com/_X5tq9y9xv2s/S6t1j7HhaTI/AAAAAAAAANI/Tc7vempGBMo/s400/soundcard.jpg"/></a></p>
<p>How to enable sound card in the xen based vm..?</p>
<p>The vmware vm have the functionalists for adding sound card to their
vm's. Then what about xen vm</p>
<p><a href="http://3.bp.blogspot.com/_X5tq9y9xv2s/S6t7MxH-nPI/AAAAAAAAANQ/5-HRevzq_tE/s1600/vmware+sound+card.jpg"><img alt="image1" src="http://3.bp.blogspot.com/_X5tq9y9xv2s/S6t7MxH-nPI/AAAAAAAAANQ/5-HRevzq_tE/s400/vmware+sound+card.jpg"/></a></p>
<p>By adding the below line to your HVM (Hardware Virtual Machine) file,
You can add the sound card for the virtual machine.</p>
<div class="highlight"><pre><span></span><code>audio=1
soundhw='sb16,es1370'
</code></pre></div>
<p>If you play a sound file it you can hear the sound from VMM sound out.
Then your hvm file is look like</p>
<div class="highlight"><pre><span></span><code>name="sound-card"
builder = "hvm"
memory = "1024"
vif = [ 'type=ioemu, mac=00:16:3e:a0:0:8, bridge=xenbr0' ]
device_model = "/usr/lib/xen/bin/qemu-dm-sync"
kernel = "/usr/lib/xen/boot/hvmloader"
vnc=1
vncunused=0
vnclisten="0.0.0.0"
apic=1
acpi=0
pae=1
vcpus=2
boot='c'
audio=1
soundhw='sb16,es1370'
usb=1
usbdevice='tablet'
disk = ['file:/vm/sound-card/disk,ioemu:hda,w','phy:/dev/zero,hdd:cdrom,r']
</code></pre></div>
<p>Now Goto the controlpanel now the sound devices is enabled...</p>
<p><a href="http://2.bp.blogspot.com/_X5tq9y9xv2s/S6uXmdFTDbI/AAAAAAAAANY/t5aud9XDQt0/s1600/xen%2Bsound%2Bcard.jpg"><img alt="image2" src="http://2.bp.blogspot.com/_X5tq9y9xv2s/S6uXmdFTDbI/AAAAAAAAANY/t5aud9XDQt0/s400/xen%2Bsound%2Bcard.jpg"/></a></p>]]></content:encoded><description>&lt;p&gt;&lt;strong&gt;Enable sound card in xen vm&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://2.bp.blogspot.com/_X5tq9y9xv2s/S6t1j7HhaTI/AAAAAAAAANI/Tc7vempGBMo/s1600/soundcard.jpg"&gt;&lt;img alt="image0" src="http://2.bp.blogspot.com/_X5tq9y9xv2s/S6t1j7HhaTI/AAAAAAAAANI/Tc7vempGBMo/s400/soundcard.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;How to enable sound card in the xen based vm..?&lt;/p&gt;
&lt;p&gt;The vmware vm have the functionalists for adding sound card to their
vm's. Then what about xen vm&lt;/p&gt;
&lt;p&gt;&lt;a href="http://3.bp.blogspot.com/_X5tq9y9xv2s/S6t7MxH-nPI/AAAAAAAAANQ/5-HRevzq_tE/s1600/vmware+sound+card.jpg"&gt;&lt;img alt="image1" src="http://3.bp.blogspot.com/_X5tq9y9xv2s/S6t7MxH-nPI/AAAAAAAAANQ/5-HRevzq_tE/s400/vmware+sound+card.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;By adding the below line to your HVM (Hardware Virtual Machine) file,
You can add the …&lt;/p&gt;</description></item><item><title>Read properties file using Batch</title><link>https://www.arulraj.net/2010/03/read-properties-file-using-batch/</link><category>Programming</category><category>scripting</category><category>windows</category><author>noemail@noemail.org (arul)</author><pubDate>Wed, 24 Mar 2010 04:32:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2010-03-24:/2010/03/read-properties-file-using-batch/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><strong>Read a properties file using bat file</strong></p>
<p><a href="http://2.bp.blogspot.com/_X5tq9y9xv2s/Srs4KNLAw0I/AAAAAAAAAFw/YgXxL4EMQe0/s1600-h/MS-DOS-Batch-File.png"><img alt="image0" src="http://2.bp.blogspot.com/_X5tq9y9xv2s/Srs4KNLAw0I/AAAAAAAAAFw/YgXxL4EMQe0/s400/MS-DOS-Batch-File.png"/></a></p>
<p>i want to read a below property file and get the particular key value</p>
<p>My properties file look like</p>
<div class="highlight"><pre><span></span><code><span class="na">name</span><span class="o">=</span><span class="s">arulraj.net</span>
<span class="na">version</span><span class="o">=</span><span class="s">1.0.2</span>
<span class="na">date</span><span class="o">=</span><span class="s">24/March/2010</span>
</code></pre></div>
<p>I want get the version from the properties file. you can do this by
various method.</p>
<p><strong>Using Type function:</strong></p>
<div class="highlight"><pre><span></span><code>C:\Users\Arul\Desktop&gt;type test.properties | find "version"
</code></pre></div>
<p>There is disadvantage with this method you could not store that value in
a variable.</p>
<p><strong>Using For Loop:</strong></p>
<div class="highlight"><pre><span></span><code>C:\Users\Arul\Desktop&gt;FOR /F %i IN (test.properties) DO echo %i
</code></pre></div>
<p>using this command you can read that file by line by line.</p>
<div class="highlight"><pre><span></span><code>FOR /F "eol=; tokens=2,2 delims==" %i IN (test.properties) DO echo %i
</code></pre></div>
<p>Using this commend you can get the values only.</p>
<p>eol is End of Line</p>
<p>tokens is specify the which tokens are displayed - 2,2 means only the
second token will be displayed</p>
<p>delims is the deliminator . this is the separator</p>
<div class="highlight"><pre><span></span><code>FOR /F "eol=; tokens=2,2 delims==" %i IN ('findstr /i "version" test.properties') DO set version=%i
</code></pre></div>
<p>Using <em>findstr</em> get the correct string from the properties file and give
as a input to the for loop. That for loop process the result and set
that value to the variable version.</p>
<p>findstr /i means is not a case sensitive one</p>
<p>using echo you can get the value.</p>
<p><code>echo %version%</code></p>
<p>When you using in a bat add a % befor %i. That is Look like</p>
<div class="highlight"><pre><span></span><code>FOR /F "eol=; tokens=2,2 delims==" %%i IN ('findstr /i "version" test.properties') DO
  set version=%%i
  echo %version%
</code></pre></div>]]></content:encoded><description>&lt;p&gt;&lt;strong&gt;Read a properties file using bat file&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://2.bp.blogspot.com/_X5tq9y9xv2s/Srs4KNLAw0I/AAAAAAAAAFw/YgXxL4EMQe0/s1600-h/MS-DOS-Batch-File.png"&gt;&lt;img alt="image0" src="http://2.bp.blogspot.com/_X5tq9y9xv2s/Srs4KNLAw0I/AAAAAAAAAFw/YgXxL4EMQe0/s400/MS-DOS-Batch-File.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;i want to read a below property file and get the particular key value&lt;/p&gt;
&lt;p&gt;My properties file look like&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;arulraj.net&lt;/span&gt;
&lt;span class="na"&gt;version&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;1.0.2&lt;/span&gt;
&lt;span class="na"&gt;date&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;24/March/2010&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;I want get the version from the properties file. you can do this …&lt;/p&gt;</description></item><item><title>How Singleton pattern in Java</title><link>https://www.arulraj.net/2010/03/how-singleton-pattern-in-java/</link><category>Programming</category><category>Design</category><category>pattern</category><category>java</category><author>noemail@noemail.org (arul)</author><pubDate>Tue, 23 Mar 2010 01:00:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2010-03-23:/2010/03/how-singleton-pattern-in-java/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><a href="http://3.bp.blogspot.com/_X5tq9y9xv2s/S6hhueEzyWI/AAAAAAAAANA/MAXSbAXOX1Q/s1600-h/design-is-a-behaviour.jpg"><img alt="image0" src="http://3.bp.blogspot.com/_X5tq9y9xv2s/S6hhueEzyWI/AAAAAAAAANA/MAXSbAXOX1Q/s400/design-is-a-behaviour.jpg"/></a></p>
<p><strong>What is singleton ..?</strong></p>
<blockquote>
<p>It is a Design pattern. At this time what is Design pattern ..? To
find out the best way to do a thing apart from the various method.
Documenting a solution for the common problems.</p>
</blockquote>
<p><strong>The Rule for the Singleton are:</strong></p>
<blockquote>
<ul>
<li>restrict the creating the object of the class</li>
<li>only one object is created over the application</li>
<li>If multiple thread accessed then thread safe</li>
</ul>
</blockquote>
<p><strong>How to restrict the creating object..?</strong></p>
<blockquote>
<p>Define the access modifier of the constructor be <em>Private</em> and add the
<em>final</em> keyword to the class then only the class can't be extended.</p>
</blockquote>
<p><strong>Then How to create a one instance and access ..?</strong></p>
<blockquote>
<p>Create a instance with in the same class and accessed using the static
method.</p>
</blockquote>
<p><em>Here is the Example code:</em></p>
<div class="highlight"><pre><span></span><code><span class="kd">public</span><span class="w"> </span><span class="kd">final</span><span class="w"> </span><span class="kd">class</span> <span class="nc">SingletonExample</span><span class="w"> </span><span class="p">{</span>

<span class="w">  </span><span class="kd">private</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="n">SingletonExample</span><span class="w"> </span><span class="n">singleton</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">SingletonExample</span><span class="p">();</span>

<span class="w">  </span><span class="kd">private</span><span class="w"> </span><span class="nf">SingletonExample</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
<span class="w">    </span><span class="c1">// Write your Functionality Here</span>
<span class="w">  </span><span class="p">}</span>

<span class="w">  </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="n">SingletonExample</span><span class="w"> </span><span class="nf">getInstance</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
<span class="w">    </span><span class="k">return</span><span class="w"> </span><span class="n">singleton</span><span class="p">;</span>
<span class="w">  </span><span class="p">}</span>
<span class="p">}</span>
</code></pre></div>
<p>Usage: save the below as Arul.java</p>
<div class="highlight"><pre><span></span><code><span class="kd">class</span> <span class="nc">Foo</span><span class="w"> </span><span class="p">{</span>
<span class="w">  </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="n">SingletonExample</span><span class="w"> </span><span class="n">obj</span><span class="p">;</span>
<span class="w">  </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">method</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
<span class="w">    </span><span class="n">obj</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">SingletonExample</span><span class="p">.</span><span class="na">getInstance</span><span class="p">();</span>
<span class="w">  </span><span class="p">}</span>
<span class="p">}</span>

<span class="kd">class</span> <span class="nc">Arul</span><span class="p">{</span>
<span class="w">  </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="n">String</span><span class="w"> </span><span class="n">arg</span><span class="o">[]</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<span class="w">    </span><span class="n">SingletonExample</span><span class="w"> </span><span class="n">obj</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">SingletonExample</span><span class="p">.</span><span class="na">getInstance</span><span class="p">();</span>
<span class="w">    </span><span class="n">Foo</span><span class="p">.</span><span class="na">method</span><span class="p">();</span>
<span class="w">    </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">Foo</span><span class="p">.</span><span class="na">obj</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="n">obj</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<span class="w">      </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">"Both the objects are same "</span><span class="p">);</span>
<span class="w">    </span><span class="p">}</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="p">{</span>
<span class="w">      </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">"Not the same "</span><span class="p">);</span>
<span class="w">    </span><span class="p">}</span>
<span class="w">  </span><span class="p">}</span>
<span class="p">}</span>
</code></pre></div>
<p>In the Both Foo and Arul class access the same instance.</p>
<div class="separator" style="clear: both; text-align: center;">

[![image1](http://3.bp.blogspot.com/_X5tq9y9xv2s/TAUe3R-Ca0I/AAAAAAAAAWM/-9WSRFEh-bk/s320/java+compile.jpg)](http://3.bp.blogspot.com/_X5tq9y9xv2s/TAUe3R-Ca0I/AAAAAAAAAWM/-9WSRFEh-bk/s1600/java+compile.jpg)

</div>
<p>For more :
<a href="http://en.wikipedia.org/wiki/Design_pattern_%28computer_science%29">http://en.wikipedia.org/wiki/Design_pattern_%28computer_science%29</a></p>]]></content:encoded><description>&lt;p&gt;&lt;a href="http://3.bp.blogspot.com/_X5tq9y9xv2s/S6hhueEzyWI/AAAAAAAAANA/MAXSbAXOX1Q/s1600-h/design-is-a-behaviour.jpg"&gt;&lt;img alt="image0" src="http://3.bp.blogspot.com/_X5tq9y9xv2s/S6hhueEzyWI/AAAAAAAAANA/MAXSbAXOX1Q/s400/design-is-a-behaviour.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What is singleton ..?&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;It is a Design pattern. At this time what is Design pattern ..? To
find out the best way to do a thing apart from the various method.
Documenting a solution for the common problems.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;The Rule for the Singleton are:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;restrict the creating the object of the …&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;</description></item><item><title>How to add www to your domain name</title><link>https://www.arulraj.net/2010/03/how-to-add-www-to-your-domain-name/</link><category>Programming</category><category>Browser</category><category>php</category><category>how-to</category><category>hosting</category><author>noemail@noemail.org (arul)</author><pubDate>Mon, 8 Mar 2010 04:36:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2010-03-08:/2010/03/how-to-add-www-to-your-domain-name/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><strong>How to add www to your domain name</strong></p>
<p><a href="http://3.bp.blogspot.com/_X5tq9y9xv2s/S5TOlrA6HBI/AAAAAAAAAMo/46plgLZv_mw/s1600-h/htaccess.gif"><img alt="image0" src="http://3.bp.blogspot.com/_X5tq9y9xv2s/S5TOlrA6HBI/AAAAAAAAAMo/46plgLZv_mw/s400/htaccess.gif"/></a></p>
<p>Before going to the htaccess . You need to answer my question, The
question is</p>
<p><strong>Do you think arulraj.net and www.arulraj.net both are different domain
name or same ..?</strong></p>
<p>ya. we (humans) know both are points the same web page. But the search
engine robots assume this both are different one. As a result duplicate
results in the search results. To avoid this problem you need to develop
search engine friendly web pages.</p>
<p>Now the topic,</p>
<p><strong>How to add www in front of your domain name ..?</strong></p>
<p>For this you are aware of
<a href="http://en.wikipedia.org/wiki/Htaccess">htaccess</a> file and where it is
located.</p>
<p>htaccess - Hypertext Access</p>
<p>The file located in root directory of your domain name .</p>
<p>For example : <em>/home/\<username>/public_html/\<domain dir="" name="">/.htaccess</domain></username></em></p>
<p>That above structure in Bluehost.Now add this line to your .htaccess
file</p>
<div class="highlight"><pre><span></span><code>RewriteEngine On
RewriteBase /
RewriteCond %{HTTP\_HOST} ^sharedaa\\.com$ [NC]
RewriteRule ^(.*)$ http://www.sharedaa.com/$1 [R=301,L]
</code></pre></div>
<p>Now anyone type sharedaa.com in browser it is automatically redirect to
www.sharedaa.com</p>
<p>How to redirect to index page if the page is not available ..?</p>
<p>One of your page is indexed in search engine. You remove the page, at
this time you want to redirect to home page. how to do this.Add the
below line to your htaccess file.</p>
<div class="highlight"><pre><span></span><code>RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</code></pre></div>
<p>The final .htaccess file will be</p>
<div class="highlight"><pre><span></span><code># Use PHP5CGI as default
AddHandler application/x-httpd-php5 .php

# BEGIN
<ifmodule mod_rewrite.c="">
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^sharedaa\.com$ [NC]
RewriteRule ^(.\*)$ http://www.sharedaa.com/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</ifmodule>

# END
</code></pre></div>
<p><strong>How to add www to your wordpress blog ..?</strong></p>
<p>Go to Setting --&gt; General setting page and in the Blog Address text
box enter your domain name with www . for example
<a href="http://www.sharedaa.com">http://www.sharedaa.com</a></p>
<p><a href="http://1.bp.blogspot.com/_X5tq9y9xv2s/S5TVR_LfRuI/AAAAAAAAAMw/sOJ7-_iVg1Q/s1600-h/wordpress-www.jpg"><img alt="image1" src="http://1.bp.blogspot.com/_X5tq9y9xv2s/S5TVR_LfRuI/AAAAAAAAAMw/sOJ7-_iVg1Q/s400/wordpress-www.jpg"/></a></p>
<p>Reference : <a href="http://www.thesitewizard.com/apache/index.shtml">http://www.thesitewizard.com/apache/index.shtml</a></p>]]></content:encoded><description>&lt;p&gt;&lt;strong&gt;How to add www to your domain name&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://3.bp.blogspot.com/_X5tq9y9xv2s/S5TOlrA6HBI/AAAAAAAAAMo/46plgLZv_mw/s1600-h/htaccess.gif"&gt;&lt;img alt="image0" src="http://3.bp.blogspot.com/_X5tq9y9xv2s/S5TOlrA6HBI/AAAAAAAAAMo/46plgLZv_mw/s400/htaccess.gif"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Before going to the htaccess . You need to answer my question, The
question is&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Do you think arulraj.net and www.arulraj.net both are different domain
name or same ..?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;ya. we (humans) know both are points the same web page. But …&lt;/p&gt;</description></item><item><title>Flash Player Debugger</title><link>https://www.arulraj.net/2010/03/flash-player-debugger/</link><category>Flash</category><category>Browser</category><category>Flash</category><category>Widget</category><category>windows</category><author>noemail@noemail.org (arul)</author><pubDate>Sun, 7 Mar 2010 23:27:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2010-03-07:/2010/03/flash-player-debugger/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><strong>Flash Player Debugger</strong></p>
<p><a href="http://1.bp.blogspot.com/_X5tq9y9xv2s/S5SG-gaYi8I/AAAAAAAAAMg/SXqWMtnCTEk/s1600-h/adobeflashplayer.jpg"><img alt="image0" src="http://1.bp.blogspot.com/_X5tq9y9xv2s/S5SG-gaYi8I/AAAAAAAAAMg/SXqWMtnCTEk/s400/adobeflashplayer.jpg"/></a></p>
<p><strong>How to get the flash player debugger version ...?</strong></p>
<p>You can download the flashplayer debugger version from here
<a href="http://www.adobe.com/support/flashplayer/downloads.html">http://www.adobe.com/support/flashplayer/downloads.html</a> .</p>
<p>The direct download link for windows is For
<a href="http://download.macromedia.com/pub/flashplayer/updaters/10/flashplayer_10_ax_debug.exe">IE</a>
and for
<a href="http://download.macromedia.com/pub/flashplayer/updaters/10/flashplayer_10_plugin_debug.exe">mozilla</a>.
Using the debugger version the trace output will be printed in
flashlog.txt .</p>
<p>The <code>flashlog.txt</code> path</p>
<p>For windows xp is</p>
<div class="highlight"><pre><span></span><code>C:\Documents and Settings\<username>\Application Data\Macromedia\Flash Player\Logs\flashlog.txt
</username></code></pre></div>
<p>For Windows Vista and windows 7 is</p>
<div class="highlight"><pre><span></span><code>C:\Users\<username>\AppData\Roaming\Macromedia\Flash Player\Logs\flashlog.txt
</username></code></pre></div>
<p><strong>Debugging ..?</strong></p>
<p>If the trace not shown on the log create <code>mm.cfg</code> file .</p>
<p>Create a file for Windows XP
<code>c:\Documents and Settings\<username>\mm.cfg</username></code> for Vista and Windows 7
<code>C:\Users\<username>\mm.cfg</username></code> with the following</p>
<div class="highlight"><pre><span></span><code>ErrorReportingEnable=0
TraceOutputFileEnable=1
MaxWarnings=0
</code></pre></div>]]></content:encoded><description>&lt;p&gt;&lt;strong&gt;Flash Player Debugger&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://1.bp.blogspot.com/_X5tq9y9xv2s/S5SG-gaYi8I/AAAAAAAAAMg/SXqWMtnCTEk/s1600-h/adobeflashplayer.jpg"&gt;&lt;img alt="image0" src="http://1.bp.blogspot.com/_X5tq9y9xv2s/S5SG-gaYi8I/AAAAAAAAAMg/SXqWMtnCTEk/s400/adobeflashplayer.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How to get the flash player debugger version ...?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;You can download the flashplayer debugger version from here
&lt;a href="http://www.adobe.com/support/flashplayer/downloads.html"&gt;http://www.adobe.com/support/flashplayer/downloads.html&lt;/a&gt; .&lt;/p&gt;
&lt;p&gt;The direct download link for windows is For
&lt;a href="http://download.macromedia.com/pub/flashplayer/updaters/10/flashplayer_10_ax_debug.exe"&gt;IE&lt;/a&gt;
and for
&lt;a href="http://download.macromedia.com/pub/flashplayer/updaters/10/flashplayer_10_plugin_debug.exe"&gt;mozilla&lt;/a&gt;.
Using the debugger version the trace output will be printed …&lt;/p&gt;</description></item><item><title>How rotation camera3d and viewer3d worked in Away3d</title><link>https://www.arulraj.net/2010/02/how-rotation-camera3d-and-viewer3d-worked-in-away3d/</link><category>Flash</category><category>Animation</category><category>Flash</category><category>Programming</category><category>how-to</category><author>noemail@noemail.org (arul)</author><pubDate>Sun, 7 Feb 2010 06:54:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2010-02-07:/2010/02/how-rotation-camera3d-and-viewer3d-worked-in-away3d/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><strong>Rotation in Away3D Flash engine</strong></p>
<p><a href="http://4.bp.blogspot.com/_X5tq9y9xv2s/S26cXkz167I/AAAAAAAAALs/45u4Luu4aRE/s1600-h/away3d+rotation+example.jpg"><img alt="image0" src="http://4.bp.blogspot.com/_X5tq9y9xv2s/S26cXkz167I/AAAAAAAAALs/45u4Luu4aRE/s400/away3d+rotation+example.jpg"/></a></p>
<p>In this blog entry we are going to learn about How the Rotation and
camera3d and viewer3d in away3d flash engine.</p>
<p>Red line = x-axis</p>
<p>Blue line = y-axis</p>
<p>Green Line = z-axis</p>
<p><strong>How Rotation works ..?</strong></p>
<p>Rotation in away3d based on the three axis . Those are x.y and z.  the
component is rotated take any one of this axis as a center then rotated.
In my <a href="http://arulraj.net/2010/02/my-first-3d-flash-animation.html">last
post</a> the
sphere is rotated along with x axis. In that example the axis is like
that (see below )</p>
<p><embed height="400" src="http://files.arulraj.net/code/flash/away3d/singlerotate.swf" width="600"/>
</p>
<div class="highlight"><pre><span></span><code>sphere.rotationX = sphere.x + 1;
</code></pre></div>
<p>The sphere takes x axis as a center and rotate like above...</p>
<p>In this example we add two or more components in the ObjectContainer3D
then rotate this objects. In this example we are going to learn about
how camera3D and Viewer3D works.</p>
<p><embed height="400" src="http://files.arulraj.net/code/flash/away3d/away3drotate.swf" width="600"/>
</p>
<p><strong>How Camera3D works ..?</strong></p>
<p><a href="http://1.bp.blogspot.com/_X5tq9y9xv2s/S260xnBaV8I/AAAAAAAAAL0/sdpPCbRPy28/s1600-h/camera3d.jpg"><img alt="image1" src="http://1.bp.blogspot.com/_X5tq9y9xv2s/S260xnBaV8I/AAAAAAAAAL0/sdpPCbRPy28/s400/camera3d.jpg"/></a></p>
<blockquote>
<p>Camera3d = real camera</p>
<p>view3d = lens the viewr of the camara</p>
<p>renderer = recording in real cam</p>
<p>scen3d = what we seen</p>
</blockquote>
<p>This diagram explained in <a href="http://books.sharedaa.com/2010/02/papervision3d-essentials.html">Papervision3d
Essential</a>
book.. In this diagram your clearly understood about camera3d.</p>
<p>If we assume Camera 3d is like a real camera . we assume it is with in
our application in invisible mode.</p>
<p>The viewerport (view3d) is an lens or what you are view using the
camera.</p>
<p>The render engine is recording engine in the real camera. In the real
camera If  we start the record then only we can see the changes
otherwise not. Like same as in camera3d we called</p>
<div class="highlight"><pre><span></span><code>viewer.render()
</code></pre></div>
<p>method each time if anything changed in the components. In the real
camara If any person is not inside the seen they are not come in the
flim. Same as in the scene3d if we not add add any components in the
scene 3d objects  it is not visible.</p>
<p><strong>How Viewer3D Works ..?</strong></p>
<p>Download the source code <a href="http://sites.google.com/site/arulraj1985/list-of-files/Away3drotate.zip?attredirects=0&amp;d=1">click
here</a>
(compatible for Flashdevelop IDE)</p>]]></content:encoded><description>&lt;p&gt;&lt;strong&gt;Rotation in Away3D Flash engine&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://4.bp.blogspot.com/_X5tq9y9xv2s/S26cXkz167I/AAAAAAAAALs/45u4Luu4aRE/s1600-h/away3d+rotation+example.jpg"&gt;&lt;img alt="image0" src="http://4.bp.blogspot.com/_X5tq9y9xv2s/S26cXkz167I/AAAAAAAAALs/45u4Luu4aRE/s400/away3d+rotation+example.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In this blog entry we are going to learn about How the Rotation and
camera3d and viewer3d in away3d flash engine.&lt;/p&gt;
&lt;p&gt;Red line = x-axis&lt;/p&gt;
&lt;p&gt;Blue line = y-axis&lt;/p&gt;
&lt;p&gt;Green Line = z-axis&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How Rotation works ..?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Rotation in away3d based on the three axis . Those are x.y …&lt;/p&gt;</description></item><item><title>My first 3D flash animation</title><link>https://www.arulraj.net/2010/02/my-first-3d-flash-animation/</link><category>Flash</category><category>Animation</category><category>Flash</category><category>red5</category><category>Programming</category><author>noemail@noemail.org (arul)</author><pubDate>Thu, 4 Feb 2010 03:58:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2010-02-04:/2010/02/my-first-3d-flash-animation/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><strong>3D Animathion</strong></p>
<p><a href="http://1.bp.blogspot.com/_X5tq9y9xv2s/S2sZE9RI5AI/AAAAAAAAALA/sKwq2ehHqto/s1600-h/away3d+example.jpg"><img alt="image0" src="http://1.bp.blogspot.com/_X5tq9y9xv2s/S2sZE9RI5AI/AAAAAAAAALA/sKwq2ehHqto/s400/away3d+example.jpg"/></a></p>
<p>Adobe support for native 3D only in cs4. There are lot of opensource
flash <a href="http://flashenabledblog.com/2008/04/17/flash-3d-list-update/">3d
engines</a>
are there. I tried papervision3d and away3d. Both are quite well. There
are lot more tutorials for both online for away3d tutorials  <a href="http://away3d.com/tutorials">click
here</a> , for papervision3d download this
<a href="http://www.packtpub.com/article/3d-vector-drawing-and-text-papervision3d-part1">book</a>.
I got the source code of away3d from the google code
<a href="http://code.google.com/p/away3d/">http://code.google.com/p/away3d/</a> and for papervison3d svn
<a href="http://code.google.com/p/papervision3d/">http://code.google.com/p/papervision3d/</a>. I generate swc using the
command. The red5 says about <a href="http://osflash.org/away3d">away3d.</a></p>
<div class="highlight"><pre><span></span><code>D:\sdk\Away3D&gt; compc -include-sources ./src -source-path ./src -target-player 10 -output Away3d.swc
</code></pre></div>
<p>Initially i got this error when compile away3d "Error: Type was not
found or was not a compile-time constant: Vector. in away3d"</p>
<p>Then i added the -target-player 10 in command line is fix that error. I
think away3d is better than papervision3d. Here is my first animation
here</p>
<p>I'm using away3d here...</p>
<p><embed height="400" src="http://files.arulraj.net/code/flash/away3d/away3d.swf" width="600"/>
</p>
<p>Source Code:</p>
<div class="highlight"><pre><span></span><code><span class="kd">package</span><span class="w"> </span><span class="o">{</span>
<span class="w">   </span><span class="k">import</span><span class="w"> </span><span class="nn">away3d.cameras.Camera3D</span><span class="o">;</span>
<span class="w">   </span><span class="k">import</span><span class="w"> </span><span class="nn">away3d.cameras.HoverCamera3D</span><span class="o">;</span>
<span class="w">   </span><span class="k">import</span><span class="w"> </span><span class="nn">away3d.cameras.TargetCamera3D</span><span class="o">;</span>
<span class="w">   </span><span class="k">import</span><span class="w"> </span><span class="nn">away3d.containers.ObjectContainer3D</span><span class="o">;</span>
<span class="w">   </span><span class="k">import</span><span class="w"> </span><span class="nn">away3d.containers.Scene3D</span><span class="o">;</span>
<span class="w">   </span><span class="k">import</span><span class="w"> </span><span class="nn">away3d.containers.View3D</span><span class="o">;</span>
<span class="w">   </span><span class="k">import</span><span class="w"> </span><span class="nn">away3d.core.math.Number3D</span><span class="o">;</span>
<span class="w">   </span><span class="k">import</span><span class="w"> </span><span class="nn">away3d.materials.BitmapMaterial</span><span class="o">;</span>
<span class="w">   </span><span class="k">import</span><span class="w"> </span><span class="nn">away3d.materials.WireColorMaterial</span><span class="o">;</span>
<span class="w">   </span><span class="k">import</span><span class="w"> </span><span class="nn">away3d.primitives.Cube</span><span class="o">;</span>
<span class="w">   </span><span class="k">import</span><span class="w"> </span><span class="nn">away3d.core.render.Renderer</span><span class="o">;</span>
<span class="w">   </span><span class="k">import</span><span class="w"> </span><span class="nn">away3d.primitives.Sphere</span><span class="o">;</span>
<span class="w">   </span><span class="k">import</span><span class="w"> </span><span class="nn">away3d.primitives.WireSphere</span><span class="o">;</span>
<span class="w">   </span><span class="k">import</span><span class="w"> </span><span class="nn">away3d.core.utils.Cast</span><span class="o">;</span>
<span class="w">   </span><span class="k">import</span><span class="w"> </span><span class="nn">away3d.core.utils.CastError</span><span class="o">;</span>
<span class="w">   </span><span class="k">import</span><span class="w"> </span><span class="nn">flash.display.Bitmap</span><span class="o">;</span>
<span class="w">   </span><span class="k">import</span><span class="w"> </span><span class="nn">flash.display.Sprite</span><span class="o">;</span>
<span class="w">   </span><span class="k">import</span><span class="w"> </span><span class="nn">flash.events.Event</span><span class="o">;</span>
<span class="w">   </span><span class="k">import</span><span class="w"> </span><span class="nn">flash.events.MouseEvent</span><span class="o">;</span>
<span class="w">   </span><span class="k">import</span><span class="w"> </span><span class="nn">flash.geom.Point</span><span class="o">;</span>
<span class="w">   </span><span class="cm">/**</span>
<span class="cm">    *</span>
<span class="cm">    * @author Arul</span>
<span class="cm">    */</span>
<span class="w">   </span><span class="kd">public</span><span class="w"> </span><span class="kd">class</span><span class="w"> </span><span class="n">FirstApplication</span><span class="w"> </span><span class="kd">extends</span><span class="w"> </span><span class="n">Sprite</span><span class="w"> </span><span class="o">{</span>
<span class="w">      </span><span class="kd">public</span><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="n">viewer</span><span class="p">:</span><span class="w"> </span><span class="kt">View3D</span><span class="o">;</span>
<span class="w">      </span><span class="kd">public</span><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="n">scene</span><span class="p">:</span><span class="w"> </span><span class="kt">Scene3D</span><span class="o">;</span>
<span class="w">      </span><span class="kd">public</span><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="n">camera</span><span class="p">:</span><span class="w"> </span><span class="kt">Camera3D</span><span class="o">;</span>
<span class="w">      </span><span class="kd">public</span><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="n">cube</span><span class="p">:</span><span class="w"> </span><span class="kt">Cube</span><span class="o">;</span>
<span class="w">      </span><span class="kd">public</span><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="n">sphere</span><span class="p">:</span><span class="w"> </span><span class="kt">Sphere</span><span class="o">;</span>
<span class="w">      </span><span class="kd">public</span><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="n">wiresphere</span><span class="p">:</span><span class="w"> </span><span class="kt">WireSphere</span><span class="o">;</span>
<span class="w">      </span><span class="kd">public</span><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="n">group</span><span class="p">:</span><span class="w"> </span><span class="kt">ObjectContainer3D</span><span class="o">;</span>
<span class="w">      </span><span class="kd">public</span><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="n">material</span><span class="p">:</span><span class="w"> </span><span class="kt">WireColorMaterial</span><span class="o">;</span>
<span class="w">      </span><span class="kd">public</span><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="n">bitmapMaterial</span><span class="p">:</span><span class="w"> </span><span class="kt">BitmapMaterial</span><span class="o">;</span>

<span class="w">      </span><span class="o">[</span><span class="n">Embed</span><span class="o">(</span><span class="n">source</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"assets/favicon.jpg"</span><span class="o">)]</span>
<span class="w">      </span><span class="kd">private</span><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="n">favicon</span><span class="p">:</span><span class="w"> </span><span class="kt">Class</span><span class="o">;</span>
<span class="w">      </span><span class="kd">public</span><span class="w"> </span><span class="kd">var</span><span class="w"> </span><span class="n">image</span><span class="p">:</span><span class="w"> </span><span class="kt">Bitmap</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="kt">favicon</span><span class="o">();</span>

<span class="w">      </span><span class="o">[</span><span class="n">SWF</span><span class="o">(</span><span class="n">backgroundColor</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"#EEE8DA"</span><span class="o">)]</span>

<span class="w">      </span><span class="kd">public</span><span class="w"> </span><span class="kd">function </span><span class="nf">FirstApplication</span><span class="o">()</span> <span class="o">{</span>
<span class="w">         </span><span class="n">init3D</span><span class="o">();</span>
<span class="w">      </span><span class="o">}</span>

<span class="w">      </span><span class="kd">public</span><span class="w"> </span><span class="kd">function </span><span class="nf">init3D</span><span class="o">():</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="o">{</span>
<span class="w">         </span><span class="n">stage</span><span class="o">.</span><span class="na">frameRate</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">30</span><span class="o">;</span>
<span class="w">         </span><span class="n">camera</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="kt">Camera3D</span><span class="o">({</span>
<span class="w">            </span><span class="n">y</span><span class="o">:</span><span class="w"> </span><span class="mi">400</span><span class="o">,</span>
<span class="w">            </span><span class="n">z</span><span class="o">:</span><span class="w"> </span><span class="o">-</span><span class="mi">1000</span>
<span class="w">         </span><span class="o">});</span>
<span class="w">         </span><span class="n">viewer</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="kt">View3D</span><span class="o">({</span>
<span class="w">            </span><span class="n">camera</span><span class="o">:</span><span class="w"> </span><span class="n">camera</span><span class="o">,</span>
<span class="w">            </span><span class="n">x</span><span class="o">:</span><span class="w"> </span><span class="mi">250</span><span class="o">,</span>
<span class="w">            </span><span class="n">y</span><span class="o">:</span><span class="w"> </span><span class="mi">100</span><span class="o">,</span>
<span class="w">            </span><span class="n">z</span><span class="o">:</span><span class="w"> </span><span class="mi">100</span>
<span class="w">         </span><span class="o">});</span>
<span class="w">         </span><span class="n">scene</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="kt">Scene3D</span><span class="o">();</span>
<span class="w">         </span><span class="n">cube</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="kt">Cube</span><span class="o">();</span>
<span class="w">         </span><span class="n">sphere</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="kt">Sphere</span><span class="o">();</span>
<span class="w">         </span><span class="n">wiresphere</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="kt">WireSphere</span><span class="o">();</span>
<span class="w">         </span><span class="n">group</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="kt">ObjectContainer3D</span><span class="o">();</span>
<span class="w">         </span><span class="n">material</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="kt">WireColorMaterial</span><span class="o">();</span>
<span class="w">         </span><span class="n">bitmapMaterial</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="kt">BitmapMaterial</span><span class="o">(</span><span class="n">Cast</span><span class="o">.</span><span class="na">bitmap</span><span class="o">(</span><span class="n">image</span><span class="o">));</span>

<span class="w">         </span><span class="n">material</span><span class="o">.</span><span class="na">color</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="n">xA6111D</span><span class="o">;</span>

<span class="w">         </span><span class="n">sphere</span><span class="o">.</span><span class="na">x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">100</span><span class="o">;</span>
<span class="w">         </span><span class="n">sphere</span><span class="o">.</span><span class="na">y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">50</span><span class="o">;</span>
<span class="w">         </span><span class="n">sphere</span><span class="o">.</span><span class="na">z</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">100</span><span class="o">;</span>
<span class="w">         </span><span class="n">sphere</span><span class="o">.</span><span class="na">radius</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">75</span><span class="o">;</span>
<span class="w">         </span><span class="n">sphere</span><span class="o">.</span><span class="na">bothsides</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">true</span><span class="o">;</span>
<span class="w">         </span><span class="n">sphere</span><span class="o">.</span><span class="na">material</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">material</span><span class="o">;</span>
<span class="w">         </span><span class="n">group</span><span class="o">.</span><span class="na">addChild</span><span class="o">(</span><span class="n">sphere</span><span class="o">);</span>

<span class="w">         </span><span class="n">wiresphere</span><span class="o">.</span><span class="na">x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">270</span><span class="o">;</span>
<span class="w">         </span><span class="n">wiresphere</span><span class="o">.</span><span class="na">y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">150</span><span class="o">;</span>
<span class="w">         </span><span class="n">wiresphere</span><span class="o">.</span><span class="na">z</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">150</span><span class="o">;</span>
<span class="w">         </span><span class="n">wiresphere</span><span class="o">.</span><span class="na">radius</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">75</span><span class="o">;</span>
<span class="w">         </span><span class="n">wiresphere</span><span class="o">.</span><span class="na">bothsides</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">true</span><span class="o">;</span>
<span class="w">         </span><span class="n">wiresphere</span><span class="o">.</span><span class="na">material</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">material</span><span class="o">;</span>
<span class="w">         </span><span class="n">group</span><span class="o">.</span><span class="na">addChild</span><span class="o">(</span><span class="n">wiresphere</span><span class="o">);</span>

<span class="w">         </span><span class="n">cube</span><span class="o">.</span><span class="na">x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">250</span><span class="o">;</span>
<span class="w">         </span><span class="n">cube</span><span class="o">.</span><span class="na">y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">250</span><span class="o">;</span>
<span class="w">         </span><span class="n">cube</span><span class="o">.</span><span class="na">z</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">400</span><span class="o">;</span>
<span class="w">         </span><span class="n">cube</span><span class="o">.</span><span class="na">material</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">bitmapMaterial</span><span class="o">;</span>
<span class="w">         </span><span class="n">group</span><span class="o">.</span><span class="na">addChild</span><span class="o">(</span><span class="n">cube</span><span class="o">);</span>

<span class="w">         </span><span class="n">viewer</span><span class="o">.</span><span class="na">scene</span><span class="o">.</span><span class="na">addChild</span><span class="o">(</span><span class="n">group</span><span class="o">);</span>
<span class="w">         </span><span class="n">viewer</span><span class="o">.</span><span class="na">render</span><span class="o">();</span>

<span class="w">         </span><span class="n">addChild</span><span class="o">(</span><span class="n">viewer</span><span class="o">);</span>

<span class="w">         </span><span class="n">addEventListener</span><span class="o">(</span><span class="n">Event</span><span class="o">.</span><span class="na">ENTER_FRAME</span><span class="o">,</span><span class="w"> </span><span class="n">groupRotation</span><span class="o">);</span>
<span class="w">         </span><span class="n">group</span><span class="o">.</span><span class="na">addEventListener</span><span class="o">(</span><span class="n">Event</span><span class="o">.</span><span class="na">ENTER_FRAME</span><span class="o">,</span><span class="w"> </span><span class="n">sphereRotation</span><span class="o">);</span>
<span class="w">         </span><span class="c1">//addEventListener(MouseEvent.MOUSE_DOWN, lookThere);</span>
<span class="w">      </span><span class="o">}</span>

<span class="w">      </span><span class="kd">public</span><span class="w"> </span><span class="kd">function </span><span class="nf">groupRotation</span><span class="o">(</span><span class="n">e</span><span class="o">:</span><span class="w"> </span><span class="kt">Event</span><span class="o">):</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="o">{</span>
<span class="w">         </span><span class="n">group</span><span class="o">.</span><span class="na">rotationX</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">group</span><span class="o">.</span><span class="na">x</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="o">;</span>
<span class="w">         </span><span class="n">group</span><span class="o">.</span><span class="na">applyRotations</span><span class="o">();</span>

<span class="w">         </span><span class="n">viewer</span><span class="o">.</span><span class="na">render</span><span class="o">();</span>
<span class="w">      </span><span class="o">}</span>

<span class="w">      </span><span class="kd">public</span><span class="w"> </span><span class="kd">function </span><span class="nf">sphereRotation</span><span class="o">(</span><span class="n">e</span><span class="o">:</span><span class="w"> </span><span class="kt">Event</span><span class="o">):</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="o">{</span>
<span class="w">         </span><span class="n">sphere</span><span class="o">.</span><span class="na">rotationX</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sphere</span><span class="o">.</span><span class="na">x</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="o">;</span>
<span class="w">         </span><span class="n">sphere</span><span class="o">.</span><span class="na">applyRotations</span><span class="o">();</span>

<span class="w">         </span><span class="n">wiresphere</span><span class="o">.</span><span class="na">rotationZ</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">wiresphere</span><span class="o">.</span><span class="na">z</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="o">;</span>
<span class="w">         </span><span class="n">wiresphere</span><span class="o">.</span><span class="na">applyRotations</span><span class="o">();</span>
<span class="w">         </span><span class="n">viewer</span><span class="o">.</span><span class="na">render</span><span class="o">();</span>
<span class="w">      </span><span class="o">}</span>

<span class="w">      </span><span class="kd">public</span><span class="w"> </span><span class="kd">function </span><span class="nf">lookThere</span><span class="o">(</span><span class="n">e</span><span class="o">:</span><span class="w"> </span><span class="kt">MouseEvent</span><span class="o">):</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="o">{</span>
<span class="w">         </span><span class="kd">var</span><span class="w"> </span><span class="n">clickpoint</span><span class="p">:</span><span class="w"> </span><span class="kt">Point</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="kt">Point</span><span class="o">(</span><span class="n">e</span><span class="o">.</span><span class="na">stageX</span><span class="o">,</span><span class="w"> </span><span class="n">e</span><span class="o">.</span><span class="na">stageY</span><span class="o">);</span>
<span class="w">         </span><span class="kd">var</span><span class="w"> </span><span class="n">hypothines</span><span class="p">:</span><span class="w"> </span><span class="kt">Number</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">Point</span><span class="o">.</span><span class="na">distance</span><span class="o">(</span><span class="k">new</span><span class="w"> </span><span class="kt">Point</span><span class="o">(</span><span class="mi">0</span><span class="o">,</span><span class="w"> </span><span class="mi">0</span><span class="o">),</span><span class="w"> </span><span class="n">clickpoint</span><span class="o">);</span>
<span class="w">         </span><span class="kd">var</span><span class="w"> </span><span class="n">sine</span><span class="p">:</span><span class="w"> </span><span class="kt">Number</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">Math</span><span class="o">.</span><span class="na">asin</span><span class="o">(</span><span class="n">e</span><span class="o">.</span><span class="na">stageX</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="n">hypothines</span><span class="o">);</span>
<span class="w">         </span><span class="kd">var</span><span class="w"> </span><span class="n">cos</span><span class="p">:</span><span class="w"> </span><span class="kt">Number</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">Math</span><span class="o">.</span><span class="na">acos</span><span class="o">(</span><span class="n">e</span><span class="o">.</span><span class="na">stageY</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="n">hypothines</span><span class="o">);</span>
<span class="w">         </span><span class="n">camera</span><span class="o">.</span><span class="na">lookAt</span><span class="o">(</span><span class="k">new</span><span class="w"> </span><span class="kt">Number3D</span><span class="o">(</span><span class="n">e</span><span class="o">.</span><span class="na">stageX</span><span class="o">,</span><span class="w"> </span><span class="n">e</span><span class="o">.</span><span class="na">stageY</span><span class="o">,</span><span class="w"> </span><span class="n">hypothines</span><span class="o">));</span>
<span class="w">         </span><span class="cm">/**</span>
<span class="cm">          * Horizontal angle</span>
<span class="cm">          */</span>
<span class="w">         </span><span class="n">camera</span><span class="o">.</span><span class="na">pan</span><span class="o">(</span><span class="n">cos</span><span class="o">);</span>
<span class="w">         </span><span class="cm">/**</span>
<span class="cm">          * vertical angle</span>
<span class="cm">          */</span>
<span class="w">         </span><span class="n">camera</span><span class="o">.</span><span class="na">tilt</span><span class="o">(</span><span class="n">sine</span><span class="o">);</span>
<span class="w">         </span><span class="n">viewer</span><span class="o">.</span><span class="na">render</span><span class="o">();</span>
<span class="w">      </span><span class="o">}</span>
<span class="w">   </span><span class="o">}</span>
<span class="o">}</span>
</code></pre></div>]]></content:encoded><description>&lt;p&gt;&lt;strong&gt;3D Animathion&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://1.bp.blogspot.com/_X5tq9y9xv2s/S2sZE9RI5AI/AAAAAAAAALA/sKwq2ehHqto/s1600-h/away3d+example.jpg"&gt;&lt;img alt="image0" src="http://1.bp.blogspot.com/_X5tq9y9xv2s/S2sZE9RI5AI/AAAAAAAAALA/sKwq2ehHqto/s400/away3d+example.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Adobe support for native 3D only in cs4. There are lot of opensource
flash &lt;a href="http://flashenabledblog.com/2008/04/17/flash-3d-list-update/"&gt;3d
engines&lt;/a&gt;
are there. I tried papervision3d and away3d. Both are quite well. There
are lot more tutorials for both online for away3d tutorials  &lt;a href="http://away3d.com/tutorials"&gt;click
here&lt;/a&gt; , for papervision3d download this
&lt;a href="http://www.packtpub.com/article/3d-vector-drawing-and-text-papervision3d-part1"&gt;book&lt;/a&gt;.
I got the …&lt;/p&gt;</description></item><item><title>How to install mplayer on fedora ..?</title><link>https://www.arulraj.net/2010/01/how-to-install-mplayer-on-fedora/</link><category>Linux</category><category>Fedora</category><category>Linux</category><author>noemail@noemail.org (arul)</author><pubDate>Tue, 19 Jan 2010 08:48:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2010-01-19:/2010/01/how-to-install-mplayer-on-fedora/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><strong>How to install mplayer on fedora</strong></p>
<p><img alt="&lt;http://www.haifux.org/lectures/134/lecture/images/mplayer.png&gt;" src="http://www.haifux.org/lectures/134/lecture/images/mplayer.png"/></p>
<p>When i try to install mplayer-1.0-0.102.20080903svn.fc10.src.rpm in
fedora i got this error. i download this file from
<a href="http://download1.rpmfusion.org/free/fedora/releases/10/Everything/source/SRPMS/repoview/index.html">rpmfusion</a></p>
<blockquote>
<p>[<a href="mailto:root@localhost">root@localhost</a> Media]# rpm -ivh
mplayer-1.0-0.102.20080903svn.fc10.src.rpm warning:
mplayer-1.0-0.102.20080903svn.fc10.src.rpm: Header V3 DSA signature:
NOKEY, key ID 49c8885a1:mplayer warning: user mockbuild does not
exist - using root warning: group mockbuild does not exist - using
root warning: user mockbuild does not exist - using root warning:
group mockbuild does not exist - using root warning: user mockbuild
does not exist - using root warning: group mockbuild does not exist -
using root warning: user mockbuild does not exist - using root
warning: group mockbuild does not exist - using root
########################################### [100%]</p>
</blockquote>
<p>I have the same problem when i try to install wine-1.0.1-1.el4.i386.rpm</p>
<p><strong>I have not internet connection in my home pc. so what to do..?</strong></p>
<ul>
<li>Go to "/usr/src/redhat/SOURCES" folder there is a file called
    mplayer-export-2008-09-03.tar.bz2</li>
<li>Extract the file and configure it then make and make install.</li>
<li>Now i have mplayer in my home pc</li>
</ul>
<div class="highlight"><pre><span></span><code>[root@localhost Movies]# mplayer 2012.avi
MPlayer dev-SVN-r27514 (C) 2000-2008 MPlayer Team
CPU: Intel(R) Pentium(R) 4 CPU 3.00GHz (Family: 15, Model: 4, Stepping: 3)
CPUflags: MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
Compiled for x86 CPU with extensions: MMX MMX2 SSE SSE2
Playing 2012.avi.
AVI file format detected.
[aviheader] Video stream found, -vid 0
[aviheader] Audio stream found, -aid 1
AVI: ODML: Building ODML index (2 superindexchunks).
VIDEO: [XVID] 608x272 12bpp 29.970 fps 674.6 kbps (82.4 kbyte/s)
</code></pre></div>
<p><a href="http://3.bp.blogspot.com/_X5tq9y9xv2s/S1W9z-cISFI/AAAAAAAAAHg/LW8cMmLo91E/s1600-h/Screenshot-MPlayer.png"><img alt="image1" src="http://3.bp.blogspot.com/_X5tq9y9xv2s/S1W9z-cISFI/AAAAAAAAAHg/LW8cMmLo91E/s400/Screenshot-MPlayer.png"/></a></p>
<p>when i play the avi file using mplayer it does not play the video only
play the audio</p>
<p>Now i changed the command</p>
<div class="highlight"><pre><span></span><code>[root@localhost Movies]# mplayer -vo x11 -ao alsa 2012.avi
</code></pre></div>
<p>Now working fine</p>
<p><a href="http://4.bp.blogspot.com/_X5tq9y9xv2s/S1W90LG8hUI/AAAAAAAAAHo/M8yz1QPT8cs/s1600-h/Screenshot-MPlayer-1.png"><img alt="image2" src="http://4.bp.blogspot.com/_X5tq9y9xv2s/S1W90LG8hUI/AAAAAAAAAHo/M8yz1QPT8cs/s400/Screenshot-MPlayer-1.png"/></a></p>]]></content:encoded><description>&lt;p&gt;&lt;strong&gt;How to install mplayer on fedora&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="&amp;lt;http://www.haifux.org/lectures/134/lecture/images/mplayer.png&amp;gt;" src="http://www.haifux.org/lectures/134/lecture/images/mplayer.png"&gt;&lt;/p&gt;
&lt;p&gt;When i try to install mplayer-1.0-0.102.20080903svn.fc10.src.rpm in
fedora i got this error. i download this file from
&lt;a href="http://download1.rpmfusion.org/free/fedora/releases/10/Everything/source/SRPMS/repoview/index.html"&gt;rpmfusion&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;[&lt;a href="&amp;#109;&amp;#97;&amp;#105;&amp;#108;&amp;#116;&amp;#111;&amp;#58;&amp;#114;&amp;#111;&amp;#111;&amp;#116;&amp;#64;&amp;#108;&amp;#111;&amp;#99;&amp;#97;&amp;#108;&amp;#104;&amp;#111;&amp;#115;&amp;#116;"&gt;&amp;#114;&amp;#111;&amp;#111;&amp;#116;&amp;#64;&amp;#108;&amp;#111;&amp;#99;&amp;#97;&amp;#108;&amp;#104;&amp;#111;&amp;#115;&amp;#116;&lt;/a&gt; Media]# rpm -ivh
mplayer-1.0-0.102.20080903svn.fc10.src.rpm warning:
mplayer-1.0-0.102.20080903svn.fc10.src.rpm …&lt;/p&gt;&lt;/blockquote&gt;</description></item><item><title>Why i am moving to Linux in my home pc</title><link>https://www.arulraj.net/2010/01/why-i-am-moving-to-linux-in-my-home-pc/</link><category>Linux</category><category>Fedora</category><category>Linux</category><category>ubuntu</category><category>windows</category><author>noemail@noemail.org (arul)</author><pubDate>Tue, 19 Jan 2010 08:32:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2010-01-19:/2010/01/why-i-am-moving-to-linux-in-my-home-pc/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><strong>Why i am moving to Linux in my home pc</strong></p>
<p><a href="http://2.bp.blogspot.com/_X5tq9y9xv2s/S1W9zR_h0gI/AAAAAAAAAHY/4OaNP6AamFo/s1600-h/fedora.png"><img alt="image0" src="http://2.bp.blogspot.com/_X5tq9y9xv2s/S1W9zR_h0gI/AAAAAAAAAHY/4OaNP6AamFo/s400/fedora.png"/></a></p>
<hr/>
<p>For the past 3 years i have used pirated windows xp os in my home pc.
But i have faced lot of problems like system very slow, Blue screen and
more hectic thing is virus softwars. So i want to move any red-hat
family, because i have some good experience with red-hat family os's
like centOS rather then Ubuntu. I have the CentOS 5.0 dvd that was
downloaded before an year. When install using that dvd Testing Disk is
not completed some files are corrupted. I have fedora 7 dvd then
successfully installed on Intel(R) Pentium(R) 4 CPU 3.00GHz 2 cpu
processor Intel 815 motherborad. I have the softwares for windows os
only not for redhat rpm files.At that time
<a href="http://www.winehq.org/">wine</a>(run Windows programs on Unix) software is
help me a lot. I installed Openoffice and vlc using wine those are
working fine. The <a href="http://www.mplayerhq.hu/">mplayer</a>and
<a href="http://ffmpeg.org/">ffmpeg</a> are used for my video and audio
manipulation and playing. gnome-mplayer gives me the graphical toolbar
option for mplayer. I used <a href="http://www.gimp.org/">GIMP</a>for image
manipulation. I have the Netbeans distibution dvd it has java6 sdk and
netbeans it enable me to develop a jsp pages and other things.
Opensource softwares are rocking then why i used that pirated os's
(windows).. Till now i am not face any critical problems on
<a href="http://fedoraproject.org/">fedora</a>. Thanks to the fedora team.</p>]]></content:encoded><description>&lt;p&gt;&lt;strong&gt;Why i am moving to Linux in my home pc&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://2.bp.blogspot.com/_X5tq9y9xv2s/S1W9zR_h0gI/AAAAAAAAAHY/4OaNP6AamFo/s1600-h/fedora.png"&gt;&lt;img alt="image0" src="http://2.bp.blogspot.com/_X5tq9y9xv2s/S1W9zR_h0gI/AAAAAAAAAHY/4OaNP6AamFo/s400/fedora.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;For the past 3 years i have used pirated windows xp os in my home pc.
But i have faced lot of problems like system very slow, Blue screen and
more hectic thing is virus softwars. So i want to …&lt;/p&gt;</description></item><item><title>Adding Remote JMX for Red5</title><link>https://www.arulraj.net/2009/11/adding-remote-jmx-for-red5/</link><category>Red5</category><category>Flash</category><category>java</category><category>Linux</category><category>Programming</category><author>noemail@noemail.org (arul)</author><pubDate>Fri, 13 Nov 2009 07:24:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2009-11-13:/2009/11/adding-remote-jmx-for-red5/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><strong>How to Add JMX for Red5 Server</strong></p>
<p>Here we are going to know, how-to managing red5 server remotely using
JMX.</p>
<p><strong>what is red5 server ..?</strong></p>
<p><img alt="image0" src="http://red5.googlecode.com/svn/doc/trunk/FinalLogo.png"/></p>
<p><a href="http://code.google.com/p/red5/">Red5</a> is an Open Source Flash Server
written in Java that supports:</p>
<ul>
<li>Streaming Video (FLV, F4V, MP4)</li>
<li>Streaming Audio (MP3, F4A, M4A)</li>
<li>Recording Client Streams (FLV only)</li>
<li>Shared Objects</li>
<li>Live Stream Publishing</li>
<li>Remoting</li>
</ul>
<p>This is developed by Reverse Engineering of <a href="http://www.adobe.com/products/flashmediaserver/">Adobe Flash Media
server</a>.  Red5 under
the GNU Lesser General Public License. You can Modify and redistribute
this software.</p>
<p><strong>What is JMX ...?</strong></p>
<p><a href="http://en.wikipedia.org/wiki/JMX">JMX</a> stands for <strong>J</strong>ava
<strong>M</strong>anagement e**X**tension . JMX is written in java technology
used to monitor and manage a java application or objects.</p>
<p>The configuration of jmx agent in red5.properties file. the properties
are</p>
<p><strong>red5.properties</strong></p>
<div class="highlight"><pre><span></span><code><span class="c1"># JMX</span>
<span class="na">jmx.rmi.port.registry</span><span class="o">=</span><span class="s">9999</span>
<span class="na">jmx.rmi.port.remoteobjects</span><span class="o">=</span>
<span class="na">jmx.rmi.host</span><span class="o">=</span><span class="s">0.0.0.0</span>
<span class="na">jmx.rmi.ssl</span><span class="o">=</span><span class="s">false</span>
</code></pre></div>
<p><code>jmx.rmi.port.registry</code> - the RMI registry port</p>
<p><code>jmx.rmi.host</code> - the host value by default 0.0.0.0 . if the host is
127.0.0.1 you can't access from remote. Normally this is your machine
ip address.</p>
<p>you must open the firwall for the port 9999. then only you access from
remote. For more information <a href="http://bit.ly/1ACRRY">see</a></p>
<p>you can visualize the jvm by using this software
<a href="https://visualvm.dev.java.net">visualvm</a></p>
<p>After install this Add the remote Host and Add remote JMX connection by
adding</p>
<p><code>service:jmx:rmi://192.168.2.6:9999/jndi/rmi://192.168.2.6:9999/red5</code></p>
<p>192.168.2.6 - ip address of red5</p>
<p>the default user name for jmx is "red5user" and password is
"changeme". you can change this bu changing the <em>access.properties</em>
and <em>password.properties</em> in red5 conf folder.</p>
<p><a href="http://1.bp.blogspot.com/_X5tq9y9xv2s/Sv1dgjLbZBI/AAAAAAAAAGA/PNEjXLK4M_U/s1600-h/visual_vm.jpg"><img alt="image1" src="http://1.bp.blogspot.com/_X5tq9y9xv2s/Sv1dgjLbZBI/AAAAAAAAAGA/PNEjXLK4M_U/s400/visual_vm.jpg"/></a></p>]]></content:encoded><description>&lt;p&gt;&lt;strong&gt;How to Add JMX for Red5 Server&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Here we are going to know, how-to managing red5 server remotely using
JMX.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;what is red5 server ..?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="image0" src="http://red5.googlecode.com/svn/doc/trunk/FinalLogo.png"&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://code.google.com/p/red5/"&gt;Red5&lt;/a&gt; is an Open Source Flash Server
written in Java that supports:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Streaming Video (FLV, F4V, MP4)&lt;/li&gt;
&lt;li&gt;Streaming Audio (MP3, F4A, M4A)&lt;/li&gt;
&lt;li&gt;Recording Client Streams (FLV …&lt;/li&gt;&lt;/ul&gt;</description></item><item><title>Batch file for building any java application</title><link>https://www.arulraj.net/2009/09/batch-file-for-building-any-java-application/</link><category>Widget</category><category>commands</category><category>Widget</category><category>windows</category><category>Programming</category><author>noemail@noemail.org (arul)</author><pubDate>Thu, 24 Sep 2009 03:58:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2009-09-24:/2009/09/batch-file-for-building-any-java-application/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><strong>Batch file for building any java application</strong></p>
<p><a href="http://2.bp.blogspot.com/_X5tq9y9xv2s/Srs4KNLAw0I/AAAAAAAAAFw/YgXxL4EMQe0/s1600-h/MS-DOS-Batch-File.png"><img alt="image0" src="http://2.bp.blogspot.com/_X5tq9y9xv2s/Srs4KNLAw0I/AAAAAAAAAFw/YgXxL4EMQe0/s400/MS-DOS-Batch-File.png"/></a></p>
<p><strong>What is batch file...?</strong></p>
<p>In DOS, OS/2, and Microsoft Windows, a batch file is a text file
containing a series of commands intended to be executed by the command
interpreter. Article on
<a href="http://en.wikipedia.org/wiki/Batch_file">wikipedia</a></p>
<p>This batch file contains the set of instruction to build a any java
application. To get the good result you follow the below folder
structure..</p>
<p>For example C:apache-tomcat-6.0.18webapps contains the many java web
application. place this batch file in webapps folder.</p>
<blockquote>
<ul>
<li>The java files in webapps\<project_name>src  folder. With in the
    src folder u can follw the java package structure.</project_name></li>
<li>The jar files for your application in webapps\<project_home>lib
    folder.</project_home></li>
<li>Then run that batch file like</li>
</ul>
</blockquote>
<p>C:apache-tomcat-6.0.18webapps&gt; build.bat Library</p>
<blockquote>
<ul>
<li>Here the Library is your project Home. you can use this bat file
    anywhere not only for tomcat webapps folder.</li>
</ul>
</blockquote>
<p>Environment Variable Prequisites:</p>
<blockquote>
<ol>
<li>JAVA_HOME       Must point at your Java Development Kit
    installation.</li>
<li>JAVA_OPTS       (Optional) Java runtime options.</li>
<li>CATALINA_HOME        (Optional) May point at your Catalina
    "build" directory.</li>
</ol>
</blockquote>
<p><strong>How to set JAVA_HOME ...?</strong></p>
<p>JAVA_HOME basically known as Java Environmental Variable.Refers from
<a href="http://confluence.atlassian.com/display/CONF26/Set+JAVA_HOME+variable+in+Windows">web</a></p>
<p>If you already know the install path for the Java or Software
Development Kit,skip this first two steps. Otherwise, find the install
path by following these instructions:</p>
<blockquote>
<ol>
<li>Unless you changed the install path for the Java Developement Kit
    during installation, it will be in a directory under
    <code>C:\Program Files\Java</code>. Using Explorer, open the directory
    <code>C:\Program Files\Java</code></li>
<li>Inside that path will be one or more subdirectories such as
    <code>jdk1.5.0_08</code>. If you just installed the Java Development Kit, it
    will be installed to the newest directory, which you can find by
    sorting by date. For example, it may be installed in
    <code>C:\Program Files\Java\jdk1.5.0_08</code>. This is the install path.</li>
</ol>
</blockquote>
<p>Once you have identified the JDK install path:</p>
<blockquote>
<ol>
<li>Right click on the <strong>My Computer</strong> icon on your desktop and select
    properties</li>
<li>Click the <strong>Advanced</strong> Tab</li>
<li>Click the <strong>Environment Variables</strong> button</li>
<li>Under System Variable, click <strong>New</strong></li>
<li>Enter the variable name as <code>JAVA_HOME</code></li>
<li>Enter the variable value as the install path for the Development
    Kit</li>
<li>Click OK</li>
<li>Click Apply Changes</li>
</ol>
</blockquote>
<p><a href="http://3.bp.blogspot.com/_X5tq9y9xv2s/Srs-dTRgMzI/AAAAAAAAAF4/VzLWmytRU4A/s1600-h/JAVA_HOME.jpg"><img alt="image1" src="http://3.bp.blogspot.com/_X5tq9y9xv2s/Srs-dTRgMzI/AAAAAAAAAF4/VzLWmytRU4A/s400/JAVA_HOME.jpg"/></a></p>
<p><strong>What is JAVA_OPTS ...?</strong></p>
<p>This JAVA_OPTS may increase your server performance. For example</p>
<p><code>set JAVA_OPTS=-Xms128 -Xmx512</code></p>
<dl>
<dt>The two extra parameters specified via JAVA_OPTS are as follows:</dt>
<dd>
<p>-Xms - the amount of memory that the JVM starts with. -Xmx - the
maximum memory that the JVM may have.</p>
</dd>
</dl>
<p>List of Java Hotspot Option
<a href="http://java.sun.com/javase/technologies/hotspot/vmoptions.jsp">Here</a>.</p>
<p><strong>What is CATALINA_HOME...?</strong></p>
<p>Set an environment variable CATALINA_HOME to the path of the directory
into which you have installed Tomcat.</p>
<p>For example :</p>
<p><code>set CATALINA_HOME = C:\apache-tomcat-6.0.18</code></p>
<p><strong>How this Batch File works ...?</strong></p>
<blockquote>
<p>Get the all jar files from \<project_home>lib folder and set this as
classpath.</project_home></p>
<p>Then compile all java files inside the src folder. and build the class
files inside the \<project_home>WEB-INF Folder.</project_home></p>
</blockquote>
<p><strong>How to Download this Batch file ...?</strong></p>
<p>You can download this batch file from
<a href="http://arulraj1985.googlepages.com/build.bat">Here</a>.</p>
<p><a href="http://arulraj1985.googlepages.com/build.bat">http://arulraj1985.googlepages.com/build.bat</a></p>]]></content:encoded><description>&lt;p&gt;&lt;strong&gt;Batch file for building any java application&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://2.bp.blogspot.com/_X5tq9y9xv2s/Srs4KNLAw0I/AAAAAAAAAFw/YgXxL4EMQe0/s1600-h/MS-DOS-Batch-File.png"&gt;&lt;img alt="image0" src="http://2.bp.blogspot.com/_X5tq9y9xv2s/Srs4KNLAw0I/AAAAAAAAAFw/YgXxL4EMQe0/s400/MS-DOS-Batch-File.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What is batch file...?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In DOS, OS/2, and Microsoft Windows, a batch file is a text file
containing a series of commands intended to be executed by the command
interpreter. Article on
&lt;a href="http://en.wikipedia.org/wiki/Batch_file"&gt;wikipedia&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This batch file contains the set of instruction to …&lt;/p&gt;</description><enclosure length="4531" type="application/octet-stream; charset=UTF-8" url="http://arulraj1985.googlepages.com/build.bat"/><itunes:explicit>no</itunes:explicit><itunes:subtitle>Batch file for building any java application What is batch file...? In DOS, OS/2, and Microsoft Windows, a batch file is a text file containing a series of commands intended to be executed by the command interpreter. Article on wikipedia This batch file contains the set of instruction to …</itunes:subtitle><itunes:author>noemail@noemail.org (arul)</itunes:author><itunes:summary>Batch file for building any java application What is batch file...? In DOS, OS/2, and Microsoft Windows, a batch file is a text file containing a series of commands intended to be executed by the command interpreter. Article on wikipedia This batch file contains the set of instruction to …</itunes:summary><itunes:keywords>Widget, commands, Widget, windows, Programming</itunes:keywords></item><item><title>Windows command prompt properties</title><link>https://www.arulraj.net/2009/09/windows-command-prompt-properties/</link><category>Windows</category><category>windows</category><author>noemail@noemail.org (arul)</author><pubDate>Tue, 8 Sep 2009 09:20:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2009-09-08:/2009/09/windows-command-prompt-properties/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Here the new command prompt window. Here you will know how to change the
windows command prompt properties.</p>
<p>Now the command prompt look like <a href="http://www.microsoft.com/windowsserver2003/technologies/management/powershell/default.mspx">windows power
shell.</a>
To run the powershell Run --&gt;type "powershell" --&gt; enter</p>
<p><a href="http://2.bp.blogspot.com/_X5tq9y9xv2s/SqZyvr7zEqI/AAAAAAAAAFg/g7qqtOwQSZw/s1600-h/windows_power_shell.jpg"><img alt="image0" src="http://2.bp.blogspot.com/_X5tq9y9xv2s/SqZyvr7zEqI/AAAAAAAAAFg/g7qqtOwQSZw/s400/windows_power_shell.jpg"/></a></p>
<p>Press windows key + R. Type cmd in the Run command box. Right Click on
the title bar and select the properties.</p>
<p>change the screen buffer size width to 120 and height to 3000.</p>
<p>change the window size width to 120 and height to 50.</p>
<p>change the widow position left 233 and top 169.  That is for 1440 X 900
resolution monitor.</p>
<p><a href="http://1.bp.blogspot.com/_X5tq9y9xv2s/SqZtQHSQxOI/AAAAAAAAAFA/GPZEWhG4FYw/s1600-h/cmd-layout.jpg"><img alt="image1" src="http://1.bp.blogspot.com/_X5tq9y9xv2s/SqZtQHSQxOI/AAAAAAAAAFA/GPZEWhG4FYw/s400/cmd-layout.jpg"/></a></p>
<p>To Change the background color to windows color (blue) . red 1 , green
36 , yellow 86.</p>
<p><a href="http://1.bp.blogspot.com/_X5tq9y9xv2s/SqZtQYYfXEI/AAAAAAAAAFI/2cFH6bdyhUI/s1600-h/cmd-colors.jpg"><img alt="image2" src="http://1.bp.blogspot.com/_X5tq9y9xv2s/SqZtQYYfXEI/AAAAAAAAAFI/2cFH6bdyhUI/s400/cmd-colors.jpg"/></a></p>
<p>The default font setting is.</p>
<p><a href="http://4.bp.blogspot.com/_X5tq9y9xv2s/SqZtQ7y88rI/AAAAAAAAAFQ/4zisnSm3-Y4/s1600-h/cmd-font.jpg"><img alt="image3" src="http://4.bp.blogspot.com/_X5tq9y9xv2s/SqZtQ7y88rI/AAAAAAAAAFQ/4zisnSm3-Y4/s400/cmd-font.jpg"/></a></p>
<p>The options Tap is</p>
<p><a href="http://3.bp.blogspot.com/_X5tq9y9xv2s/SqZtRPLiE2I/AAAAAAAAAFY/YUgDEtYE-Qo/s1600-h/cmd-options.jpg"><img alt="image4" src="http://3.bp.blogspot.com/_X5tq9y9xv2s/SqZtRPLiE2I/AAAAAAAAAFY/YUgDEtYE-Qo/s400/cmd-options.jpg"/></a>now
your command prompt screen look like powershell screen.</p>
<p><a href="http://3.bp.blogspot.com/_X5tq9y9xv2s/SqZ1_nfEqAI/AAAAAAAAAFo/JF20FI-6AJo/s1600-h/powershell.jpg"><img alt="image5" src="http://3.bp.blogspot.com/_X5tq9y9xv2s/SqZ1_nfEqAI/AAAAAAAAAFo/JF20FI-6AJo/s400/powershell.jpg"/></a></p>]]></content:encoded><description>&lt;p&gt;Here the new command prompt window. Here you will know how to change the
windows command prompt properties.&lt;/p&gt;
&lt;p&gt;Now the command prompt look like &lt;a href="http://www.microsoft.com/windowsserver2003/technologies/management/powershell/default.mspx"&gt;windows power
shell.&lt;/a&gt;
To run the powershell Run --&amp;gt;type "powershell" --&amp;gt; enter&lt;/p&gt;
&lt;p&gt;&lt;a href="http://2.bp.blogspot.com/_X5tq9y9xv2s/SqZyvr7zEqI/AAAAAAAAAFg/g7qqtOwQSZw/s1600-h/windows_power_shell.jpg"&gt;&lt;img alt="image0" src="http://2.bp.blogspot.com/_X5tq9y9xv2s/SqZyvr7zEqI/AAAAAAAAAFg/g7qqtOwQSZw/s400/windows_power_shell.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Press windows key + R. Type cmd in the Run command box. Right Click on
the …&lt;/p&gt;</description></item><item><title>Secure login using java servlet</title><link>https://www.arulraj.net/2009/07/secure-login-using-java-servlet/</link><category>Programming</category><category>java</category><author>noemail@noemail.org (arul)</author><pubDate>Sat, 25 Jul 2009 04:57:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2009-07-25:/2009/07/secure-login-using-java-servlet/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>The user authentication is the common task when we create a web
application.The servlet have j_security_check authentication method.This
is commonly called as <strong>form based authentication.</strong></p>
<p>Here the steps for this authentication.</p>
<p><a href="http://2.bp.blogspot.com/_Tq9uaJI0Xww/SmriIO1lnLI/AAAAAAAAFJM/6ru3Sprujzs/s1600-h/tomcat.png"><img alt="image0" src="http://2.bp.blogspot.com/_Tq9uaJI0Xww/SmriIO1lnLI/AAAAAAAAFJM/6ru3Sprujzs/s400/tomcat.png"/></a></p>
<p>This is in your index.jsp or login page</p>
<div class="highlight"><pre><span></span><code><span class="p">&lt;</span><span class="nt">form</span> <span class="na">action</span><span class="o">=</span><span class="s">"j_security_check"</span> <span class="na">method</span><span class="o">=</span><span class="s">"post"</span><span class="p">&gt;</span>
  Username <span class="p">&lt;</span><span class="nt">input</span> <span class="na">name</span><span class="o">=</span><span class="s">"j_username"</span> <span class="na">type</span><span class="o">=</span><span class="s">"text"</span> <span class="p">/&gt;</span>
  Password <span class="p">&lt;</span><span class="nt">input</span> <span class="na">name</span><span class="o">=</span><span class="s">"j_password"</span> <span class="na">type</span><span class="o">=</span><span class="s">"password"</span> <span class="p">/&gt;</span>
  <span class="p">&lt;</span><span class="nt">input</span> <span class="na">type</span><span class="o">=</span><span class="s">"submit"</span> <span class="na">value</span><span class="o">=</span><span class="s">"Login"</span> <span class="p">/&gt;</span>
<span class="p"><!--</span--><span class="nt">form</span><span class="p">&gt;</span>
</span></code></pre></div>
<p>Add below code in your web.xml</p>
<div class="highlight"><pre><span></span><code><span class="nt"><login-config></login-config></span>
<span class="w">  </span><span class="nt"><auth-method></auth-method></span>FORM<span class="nt"></span>
<span class="w">  </span><span class="nt"><realm-name></realm-name></span>Real<span class="w"> </span>Name<span class="nt"></span>
<span class="w">  </span><span class="nt"><form-login-config></form-login-config></span>
<span class="w">    </span><span class="nt"><form-login-page></form-login-page></span>LoginPage.jsp<span class="nt"></span>
<span class="w">    </span><span class="nt"><form-error-page></form-error-page></span>LoginPageError.jsp<span class="nt"></span>
<span class="w">  </span><span class="nt"></span>
<span class="nt"></span>

<span class="w"> </span><span class="nt"><security-role></security-role></span>
<span class="w">  </span><span class="nt"><description></description></span>view<span class="w"> </span>all<span class="w"> </span>permissions<span class="nt"></span>
<span class="w">  </span><span class="nt"><role-name></role-name></span>admin<span class="nt"></span>
<span class="w"> </span><span class="nt"></span>

<span class="w"> </span><span class="nt"><security-role></security-role></span>
<span class="w">  </span><span class="nt"><description></description></span>limited<span class="w"> </span>permissions<span class="nt"></span>
<span class="w">  </span><span class="nt"><role-name></role-name></span>user<span class="nt"></span>
<span class="w"> </span><span class="nt"></span>

<span class="w"> </span><span class="nt"><resource-ref></resource-ref></span>
<span class="w">  </span><span class="nt"><description></description></span>jdbc:mysql://localhost:3306/databasename<span class="nt"></span>
<span class="w">  </span><span class="nt"><res-ref-name></res-ref-name></span>mysql/pooldb<span class="nt"></span>
<span class="w">  </span><span class="nt"><res-type></res-type></span>javax.sql.DataSource<span class="nt"></span>
<span class="w">  </span><span class="nt"><res-auth></res-auth></span>Container<span class="nt"></span>
<span class="w">  </span><span class="nt"><res-sharing-scope></res-sharing-scope></span>Shareable<span class="nt"></span>
<span class="w"> </span><span class="nt"></span>
</code></pre></div>
<p>Add below code in your Tomcat's \conf\server.xml</p>
<div class="highlight"><pre><span></span><code><span class="nt"><realm< span=""><span class="w"> </span><span class="na">className=</span><span class="s">"org.apache.catalina.realm.JDBCRealm"</span><span class="w"> </span><span class="na">debug=</span><span class="s">"99"</span>
<span class="w">    </span><span class="na">driverName=</span><span class="s">"com.mysql.jdbc.Driver"</span>
<span class="w">    </span><span class="na">connectionURL=</span><span class="s">"jdbc:mysql://localhost/DBNAME?user=DBUSER&amp;password=DBPASS"</span>
<span class="w">    </span><span class="na">userTable=</span><span class="s">"USERTABLE"</span><span class="w"> </span><span class="na">userNameCol=</span><span class="s">"NAMECOLUMN"</span><span class="w"> </span><span class="na">userCredCol=</span><span class="s">"PASSCOLUMN"</span>
<span class="w">    </span><span class="na">userRoleTable=</span><span class="s">"ROLETABLE"</span><span class="w"> </span><span class="na">roleNameCol=</span><span class="s">"ROLECOLUMN"</span><span class="nt">/&gt;</span>
</realm<></span></code></pre></div>
<p>For this you need two tables in your database. One is username table
that contains username and password column. And another one is userrole
table that contains username and role column.</p>
<ul>
<li><strong>debug</strong> —Here, we set the debug level. A higher number generates
    more detailed output.</li>
<li><strong>driverName</strong> —The name of our MySQL driver. You need to be sure
    that the driver's JAR file is located in Tomcat's CLASSPATH.</li>
<li><strong>connectionURL</strong> —The database URL that is used to establish a
    JDBC connection. In this field, weblogin is the name of our
    database; user and password are login data with which you are
    connecting to the database. In MySQL, such a user is created by
    default, so you can use it. In case you don't have such a user, you
    need to create your own user and make it capable of working with
    your weblogin database.</li>
<li><strong>userTable</strong> —A table with at least two fields, defined in
    userNameCol and userCredCol.</li>
<li><strong>userNameCol</strong> and userCredCol—The fields with the name of login
    field from the users table and pass.</li>
</ul>
<p>For more info <a href="http://tomcat.apache.org/tomcat-5.5-doc/realm-howto.html">Realm How
to</a> ...</p>]]></content:encoded><description>&lt;p&gt;The user authentication is the common task when we create a web
application.The servlet have j_security_check authentication method.This
is commonly called as &lt;strong&gt;form based authentication.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Here the steps for this authentication.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://2.bp.blogspot.com/_Tq9uaJI0Xww/SmriIO1lnLI/AAAAAAAAFJM/6ru3Sprujzs/s1600-h/tomcat.png"&gt;&lt;img alt="image0" src="http://2.bp.blogspot.com/_Tq9uaJI0Xww/SmriIO1lnLI/AAAAAAAAFJM/6ru3Sprujzs/s400/tomcat.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This is in your index.jsp or login page&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;form&lt;/span&gt; &lt;span class="na"&gt;action&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;j_security_check&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;method&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;post&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  Username &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;input&lt;/span&gt; &lt;span class="na"&gt;name …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>How to create and use private / public keys</title><link>https://www.arulraj.net/2009/07/how-to-create-and-use-private-public-keys/</link><category>Linux</category><category>commands</category><category>Linux</category><category>Programming</category><category>how-to</category><author>noemail@noemail.org (arul)</author><pubDate>Thu, 23 Jul 2009 06:27:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2009-07-23:/2009/07/how-to-create-and-use-private-public-keys/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><a href="http://2.bp.blogspot.com/_Tq9uaJI0Xww/SmhV6r4dTlI/AAAAAAAAFIM/74M6AzeYa_w/s1600-h/puttygen.jpg"><img alt="image0" src="http://2.bp.blogspot.com/_Tq9uaJI0Xww/SmhV6r4dTlI/AAAAAAAAFIM/74M6AzeYa_w/s400/puttygen.jpg"/></a></p>
<p>Hi all,</p>
<p>Here the document for how to create private and public keys for login.
This is more helpful others can login to your machine without disclose
the password.</p>
<p><strong>How to create private key for my machine..?</strong></p>
<p>Go to /home/root/.ssh folder. Then run ssh-keygen command. Answer the
questions. Then the key and pub files are created. save this .pub file
as authorized_keys.</p>
<div class="highlight"><pre><span></span><code><span class="o">[</span>root@localhost<span class="w"> </span>~<span class="o">]</span><span class="c1"># cd .ssh/</span>
<span class="o">[</span>root@localhost<span class="w"> </span>.ssh<span class="o">]</span><span class="c1"># ls</span>
known_hosts
<span class="o">[</span>root@localhost<span class="w"> </span>.ssh<span class="o">]</span><span class="c1"># ssh-key</span>
ssh-keygen<span class="w"> </span>ssh-keyscan
<span class="o">[</span>root@localhost<span class="w"> </span>.ssh<span class="o">]</span><span class="c1"># ssh-keygen</span>
Generating<span class="w"> </span>public/private<span class="w"> </span>rsa<span class="w"> </span>key<span class="w"> </span>pair.
Enter<span class="w"> </span>file<span class="w"> </span><span class="k">in</span><span class="w"> </span>which<span class="w"> </span>to<span class="w"> </span>save<span class="w"> </span>the<span class="w"> </span>key<span class="w"> </span><span class="o">(</span>/root/.ssh/id_rsa<span class="o">)</span>:<span class="w"> </span>example.ppk
Enter<span class="w"> </span>passphrase<span class="w"> </span><span class="o">(</span>empty<span class="w"> </span><span class="k">for</span><span class="w"> </span>no<span class="w"> </span>passphrase<span class="o">)</span>:
Enter<span class="w"> </span>same<span class="w"> </span>passphrase<span class="w"> </span>again:
Your<span class="w"> </span>identification<span class="w"> </span>has<span class="w"> </span>been<span class="w"> </span>saved<span class="w"> </span><span class="k">in</span><span class="w"> </span>example.ppk.
Your<span class="w"> </span>public<span class="w"> </span>key<span class="w"> </span>has<span class="w"> </span>been<span class="w"> </span>saved<span class="w"> </span><span class="k">in</span><span class="w"> </span>example.pub.
The<span class="w"> </span>key<span class="w"> </span>fingerprint<span class="w"> </span>is:
6e:e4:ff:3b:a6:52:0d:57:ec:d2:f8:dd:e5:08:22:d6<span class="w"> </span>root@localhost
<span class="o">[</span>root@localhost<span class="w"> </span>.ssh<span class="o">]</span><span class="c1"># cat example.pub &gt;&gt; authorized_keys</span>
<span class="o">[</span>root@localhost<span class="w"> </span>.ssh<span class="o">]</span><span class="c1"># ls</span>
authorized_keys<span class="w"> </span>example.ppk<span class="w"> </span>example.pub<span class="w"> </span>known_hosts
</code></pre></div>
<p><strong>How to use the private keys..?</strong></p>
<p><em>In putty</em></p>
<ul>
<li>Open putty and type the 'Host Name' (ie <a href="mailto:root@192.168.1.117">root@192.168.1.117</a>)</li>
<li>Give a name in 'Saved Session'</li>
<li>Select Connection --&gt; SSH --&gt; Auth --&gt; Browse --&gt; Select the
    corresponding *.ppk file (ie example.ppk)</li>
<li>Now go to 'Session' Just click 'Save Button'</li>
</ul>
<p>Now you can login to your machine without password in putty. For putty
and puttygen
<a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html">download</a></p>
<p><em>In Win-SCP</em></p>
<ul>
<li>Start WinSCP. Under Session, enter the Host
    name(<a href="mailto:root@192.168.1.117">root@192.168.1.117</a>), User name(root), and Private key
    file(*.ppk) and click 'Save'.</li>
</ul>
<p>Now you can login to your machine without password in WinSCP.</p>
<p><a href="http://1.bp.blogspot.com/_Tq9uaJI0Xww/SmhWF1yTZXI/AAAAAAAAFIU/CEsMmDSIw6U/s1600-h/privatekey.jpg"><img alt="image1" src="http://1.bp.blogspot.com/_Tq9uaJI0Xww/SmhWF1yTZXI/AAAAAAAAFIU/CEsMmDSIw6U/s400/privatekey.jpg"/></a></p>
<p><em>In SCP Command</em></p>
<div class="highlight"><pre><span></span><code>scp<span class="w"> </span>-i<span class="w"> </span>example.ppk<span class="w"> </span>test.jpg<span class="w"> </span>root@192.168.1.117:/home/root/
</code></pre></div>
<p><em>In SSH Command</em></p>
<div class="highlight"><pre><span></span><code>ssh<span class="w"> </span>-i<span class="w"> </span>example.ppk<span class="w"> </span>root@192.168.1.117
</code></pre></div>]]></content:encoded><description>&lt;p&gt;&lt;a href="http://2.bp.blogspot.com/_Tq9uaJI0Xww/SmhV6r4dTlI/AAAAAAAAFIM/74M6AzeYa_w/s1600-h/puttygen.jpg"&gt;&lt;img alt="image0" src="http://2.bp.blogspot.com/_Tq9uaJI0Xww/SmhV6r4dTlI/AAAAAAAAFIM/74M6AzeYa_w/s400/puttygen.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Hi all,&lt;/p&gt;
&lt;p&gt;Here the document for how to create private and public keys for login.
This is more helpful others can login to your machine without disclose
the password.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How to create private key for my machine..?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Go to /home/root/.ssh folder. Then run ssh-keygen command. Answer the
questions …&lt;/p&gt;</description></item><item><title>CentOS Networking FAQ</title><link>https://www.arulraj.net/2009/07/centos-networking-faq/</link><category>Linux</category><category>Linux</category><category>static-ip</category><author>noemail@noemail.org (arul)</author><pubDate>Tue, 14 Jul 2009 07:57:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2009-07-14:/2009/07/centos-networking-faq/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><a href="http://3.bp.blogspot.com/_Tq9uaJI0Xww/SlyToWJ_bHI/AAAAAAAAFFM/U3akGuy-MxU/s1600-h/centos-logo.png"><img alt="image0" class="align-middle" src="http://3.bp.blogspot.com/_Tq9uaJI0Xww/SlyToWJ_bHI/AAAAAAAAFFM/U3akGuy-MxU/s400/centos-logo.png"/></a></p>
<p><strong>How to set static ip..?</strong></p>
<div class="highlight"><pre><span></span><code><span class="o">[</span>root@localhost<span class="w"> </span>~<span class="o">]</span><span class="c1"># cat /etc/sysconfig/network-scripts/ifcfg-eth0</span>
<span class="nv">DEVICE</span><span class="o">=</span>eth0
<span class="nv">ONBOOT</span><span class="o">=</span>yes
<span class="nv">BOOTPROTO</span><span class="o">=</span>static
<span class="nv">IPADDR</span><span class="o">=</span><span class="m">192</span>.168.1.13
<span class="nv">NETMASK</span><span class="o">=</span><span class="m">255</span>.255.255.0
<span class="nv">TYPE</span><span class="o">=</span>Ethernet
<span class="o">[</span>root@localhost<span class="w"> </span>~<span class="o">]</span><span class="c1">#</span>
</code></pre></div>
<p>Edit your <code>/etc/sysconfig/network-scripts/ifcfg-eth0</code> file like this.
Then restart your network.</p>
<p><strong>How to restart the network..?</strong></p>
<p>The command for stop the network is <code>/etc/init.d/network stop</code></p>
<p>To start the network <code>/etc/init.d/network start</code></p>
<p>OR</p>
<div class="highlight"><pre><span></span><code><span class="o">[</span>root@localhost<span class="w"> </span>~<span class="o">]</span><span class="c1"># /etc/init.d/network restart</span>
Shutting<span class="w"> </span>down<span class="w"> </span>interface<span class="w"> </span>eth0:<span class="w">                              </span><span class="o">[</span><span class="w">  </span>OK<span class="w">  </span><span class="o">]</span>
Shutting<span class="w"> </span>down<span class="w"> </span>loopback<span class="w"> </span>interface:<span class="w">                          </span><span class="o">[</span><span class="w">  </span>OK<span class="w">  </span><span class="o">]</span>
Bringing<span class="w"> </span>up<span class="w"> </span>loopback<span class="w"> </span>interface:<span class="w">                            </span><span class="o">[</span><span class="w">  </span>OK<span class="w">  </span><span class="o">]</span>
Bringing<span class="w"> </span>up<span class="w"> </span>interface<span class="w"> </span>eth0:<span class="w">                                </span><span class="o">[</span><span class="w">  </span>OK<span class="w">  </span><span class="o">]</span>
<span class="o">[</span>root@localhost<span class="w"> </span>~<span class="o">]</span><span class="c1">#</span>
</code></pre></div>
<p><strong>How to stop and start the firewall..?</strong></p>
<p>To stop <code>/etc/init.d/iptables stop</code></p>
<p>To start <code>/etc/init.d/iptables start</code></p>
<p>OR</p>
<div class="highlight"><pre><span></span><code><span class="o">[</span>root@localhost<span class="w"> </span>~<span class="o">]</span><span class="c1"># /etc/init.d/iptables restart</span>
Flushing<span class="w"> </span>firewall<span class="w"> </span>rules:<span class="w">                                   </span><span class="o">[</span><span class="w">  </span>OK<span class="w">  </span><span class="o">]</span>
Setting<span class="w"> </span>chains<span class="w"> </span>to<span class="w"> </span>policy<span class="w"> </span>ACCEPT:<span class="w"> </span>filter<span class="w">                    </span><span class="o">[</span><span class="w">  </span>OK<span class="w">  </span><span class="o">]</span>
Unloading<span class="w"> </span>iptables<span class="w"> </span>modules:<span class="w">                                </span><span class="o">[</span><span class="w">  </span>OK<span class="w">  </span><span class="o">]</span>
Applying<span class="w"> </span>iptables<span class="w"> </span>firewall<span class="w"> </span>rules:<span class="w">                          </span><span class="o">[</span><span class="w">  </span>OK<span class="w">  </span><span class="o">]</span>
Loading<span class="w"> </span>additional<span class="w"> </span>iptables<span class="w"> </span>modules:<span class="w"> </span>ip_conntrack_netbios_n<span class="o">[</span><span class="w">  </span>OK<span class="w"> </span><span class="o">]</span>
<span class="o">[</span>root@localhost<span class="w"> </span>~<span class="o">]</span><span class="c1">#</span>
</code></pre></div>
<p><strong>How to view my networking information..?</strong></p>
<p>command for to view all the networking info "ifconfig"</p>
<div class="highlight"><pre><span></span><code><span class="o">[</span>root@localhost<span class="w"> </span>~<span class="o">]</span><span class="c1"># ifconfig eth0</span>
eth0<span class="w">      </span>Link<span class="w"> </span>encap:Ethernet<span class="w">  </span>HWaddr<span class="w"> </span><span class="m">00</span>:16:3E:A0:00:06
inet<span class="w"> </span>addr:192.168.1.13<span class="w">  </span>Bcast:192.168.1.255<span class="w">  </span>Mask:255.255.255.0
inet6<span class="w"> </span>addr:<span class="w"> </span>fe80::216:3eff:fea0:6/64<span class="w"> </span>Scope:Link
UP<span class="w"> </span>BROADCAST<span class="w"> </span>RUNNING<span class="w"> </span>MULTICAST<span class="w">  </span>MTU:1500<span class="w">  </span>Metric:1
RX<span class="w"> </span>packets:1046<span class="w"> </span>errors:0<span class="w"> </span>dropped:0<span class="w"> </span>overruns:0<span class="w"> </span>frame:0
TX<span class="w"> </span>packets:297<span class="w"> </span>errors:0<span class="w"> </span>dropped:0<span class="w"> </span>overruns:0<span class="w"> </span>carrier:0
collisions:0<span class="w"> </span>txqueuelen:1000
RX<span class="w"> </span>bytes:81732<span class="w"> </span><span class="o">(</span><span class="m">79</span>.8<span class="w"> </span>KiB<span class="o">)</span><span class="w">  </span>TX<span class="w"> </span>bytes:37712<span class="w"> </span><span class="o">(</span><span class="m">36</span>.8<span class="w"> </span>KiB<span class="o">)</span>
Interrupt:5<span class="w"> </span>Base<span class="w"> </span>address:0x2000
<span class="o">[</span>root@localhost<span class="w"> </span>~<span class="o">]</span><span class="c1">#</span>
</code></pre></div>
<p><strong>How to add nameserver..?</strong></p>
<p>Add your nameserver (dns) /etc/resolv.conf like this.Here Airtel dns ip
is used.</p>
<div class="highlight"><pre><span></span><code><span class="o">[</span>root@localhost<span class="w"> </span>~<span class="o">]</span><span class="c1"># cat /etc/resolv.conf</span>
<span class="p">;</span><span class="w"> </span>generated<span class="w"> </span>by<span class="w"> </span>/sbin/dhclient-script
nameserver<span class="w"> </span><span class="m">203</span>.145.184.13
search<span class="w"> </span>localdomain
<span class="o">[</span>root@localhost<span class="w"> </span>~<span class="o">]</span><span class="c1">#</span>
</code></pre></div>
<p><strong>How to add Gateway and Hostname..?</strong></p>
<p>open the file <code>/etc/sysconfig/network</code>. Then add your gateway ip. For
the hostname change the HOSTNAME line by default this line is
localhost.localdomain. Then restart your network.</p>
<div class="highlight"><pre><span></span><code><span class="o">[</span>root@localhost<span class="w"> </span>~<span class="o">]</span><span class="c1"># cat /etc/sysconfig/network</span>
<span class="nv">NETWORKING</span><span class="o">=</span>yes
<span class="nv">NETWORKING_IPV6</span><span class="o">=</span>no
<span class="nv">HOSTNAME</span><span class="o">=</span>yourdomain.com
<span class="nv">GATEWAY</span><span class="o">=</span><span class="m">192</span>.168.1.1
<span class="o">[</span>root@localhost<span class="w"> </span>~<span class="o">]</span><span class="c1">#</span>
</code></pre></div>
<p>OR</p>
<p><code>route add -net 0.0.0.0 gw 192.168.1.1</code></p>
<p><strong>How to add a service..?</strong></p>
<p>Copy your service shell script file to /etc/init.d folder. To add a
service.</p>
<p><code>[root@localhost ~]# chkconfig -- add servicename</code></p>
<p>To startup the service at the boot time.</p>
<p><code>[root@localhost ~]# chkconfig --level 5 servicename on</code></p>]]></content:encoded><description>&lt;p&gt;&lt;a href="http://3.bp.blogspot.com/_Tq9uaJI0Xww/SlyToWJ_bHI/AAAAAAAAFFM/U3akGuy-MxU/s1600-h/centos-logo.png"&gt;&lt;img alt="image0" class="align-middle" src="http://3.bp.blogspot.com/_Tq9uaJI0Xww/SlyToWJ_bHI/AAAAAAAAFFM/U3akGuy-MxU/s400/centos-logo.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How to set static ip..?&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="o"&gt;[&lt;/span&gt;root@localhost&lt;span class="w"&gt; &lt;/span&gt;~&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="c1"&gt;# cat /etc/sysconfig/network-scripts/ifcfg-eth0&lt;/span&gt;
&lt;span class="nv"&gt;DEVICE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;eth0
&lt;span class="nv"&gt;ONBOOT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;yes
&lt;span class="nv"&gt;BOOTPROTO&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;static
&lt;span class="nv"&gt;IPADDR&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;192&lt;/span&gt;.168.1.13
&lt;span class="nv"&gt;NETMASK&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;255&lt;/span&gt;.255.255.0
&lt;span class="nv"&gt;TYPE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;Ethernet
&lt;span class="o"&gt;[&lt;/span&gt;root@localhost&lt;span class="w"&gt; &lt;/span&gt;~&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Edit your &lt;code&gt;/etc/sysconfig/network-scripts/ifcfg-eth0&lt;/code&gt; file like this.
Then restart your network.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How to restart the network …&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>How to add Return-path in php mail</title><link>https://www.arulraj.net/2009/07/how-to-add-return-path-in-php-mail/</link><category>PHP</category><category>Linux</category><category>Programming</category><category>how-to</category><author>noemail@noemail.org (arul)</author><pubDate>Mon, 13 Jul 2009 23:19:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2009-07-13:/2009/07/how-to-add-return-path-in-php-mail/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><a href="http://3.bp.blogspot.com/_Tq9uaJI0Xww/SlyTV7ulT3I/AAAAAAAAFFE/gSyRbeYFT1M/s1600-h/php.png"><img alt="image0" src="http://3.bp.blogspot.com/_Tq9uaJI0Xww/SlyTV7ulT3I/AAAAAAAAFFE/gSyRbeYFT1M/s320/php.png"/></a></p>
<p>Here is the code for add Return-path in php mail programmatically.</p>
<div class="highlight"><pre><span></span><code><span class="x">$today = date("F j\t\h Y, g:i a");</span>
<span class="x">$name = 'Yourname';</span>
<span class="x">$from = 'frommail@example.com';</span>
<span class="x">$to = 'tomail@example.com';</span>
<span class="x">$cc = 'ccmail@example.com';</span>
<span class="x">$bcc = 'bccmail@example.com';</span>
<span class="x">$subject = 'Example Subject';</span>

<span class="x">// To send HTML mail</span>
<span class="x">$headers = "MIME-Version: 1.0 \\r\\n";</span>
<span class="x">$headers .= "Content-type: text/html; charset=ISO-8859-1;</span>
<span class="x">format=flowed \\r\\n";</span>
<span class="x">$headers .= "ontent-Transfer-Encoding: 8bit \\r\\n";</span>
<span class="x">$headers .= "X-Mailer: PHP/" . phpversion(). "\\r\\n";</span>
<span class="x">$headers .= "X-Priority: 1 (Highest) \\r\\n";</span>
<span class="x">$headers .= "X-MSMail-Priority: High \\r\\n";</span>
<span class="x">$headers .= "Importance: High \\r\\n";</span>
<span class="x">// Additional headers</span>
<span class="x">$headers .= "From: $name&lt;$from&gt; \\r\\n";</span>

<span class="x">//This is one option to add the return path</span>

<span class="x">$headers .= "Reply-To: $name&lt;$from&gt; \\r\\n";</span>
<span class="x">$headers .= "Return-Path: $from \\r\\n";</span>
<span class="x">$headers .= "Cc: $cc \\r\\n";</span>

<span class="x">//See the 5th argument in mail function for Return-path</span>

<span class="x">mail("toname&lt;$to&gt;",$subject,"This is the test message for How to add return path in the php mail function.",$headers,"-f $from");</span>
</code></pre></div>
<p>OR</p>
<p>add sendmail-path in php.ini file</p>
<div class="highlight"><pre><span></span><code><span class="nv">sendmail_path</span><span class="w"> </span><span class="o">=</span><span class="w"> </span>sendmail<span class="w"> </span>-t<span class="w"> </span>-i<span class="w"> </span>-F<span class="w"> </span>yourname@yourdomain.com<span class="w"> </span>-f<span class="w">  </span>yourname@yourdomain.com
</code></pre></div>
<p>How to find php.ini file in Linux system</p>
<div class="highlight"><pre><span></span><code>root@localhost:~#<span class="w"> </span>find<span class="w"> </span>/<span class="w"> </span>-name<span class="w"> </span>php.ini
</code></pre></div>]]></content:encoded><description>&lt;p&gt;&lt;a href="http://3.bp.blogspot.com/_Tq9uaJI0Xww/SlyTV7ulT3I/AAAAAAAAFFE/gSyRbeYFT1M/s1600-h/php.png"&gt;&lt;img alt="image0" src="http://3.bp.blogspot.com/_Tq9uaJI0Xww/SlyTV7ulT3I/AAAAAAAAFFE/gSyRbeYFT1M/s320/php.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Here is the code for add Return-path in php mail programmatically.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="x"&gt;$today = date(&amp;quot;F j\t\h Y, g:i a&amp;quot;);&lt;/span&gt;
&lt;span class="x"&gt;$name = &amp;#39;Yourname&amp;#39;;&lt;/span&gt;
&lt;span class="x"&gt;$from = &amp;#39;frommail@example.com&amp;#39;;&lt;/span&gt;
&lt;span class="x"&gt;$to = &amp;#39;tomail@example.com&amp;#39;;&lt;/span&gt;
&lt;span class="x"&gt;$cc = &amp;#39;ccmail@example.com&amp;#39;;&lt;/span&gt;
&lt;span class="x"&gt;$bcc = &amp;#39;bccmail@example.com&amp;#39;;&lt;/span&gt;
&lt;span class="x"&gt;$subject = &amp;#39;Example Subject&amp;#39;;&lt;/span&gt;

&lt;span class="x"&gt;// To send HTML mail&lt;/span&gt;
&lt;span class="x"&gt;$headers = &amp;quot;MIME-Version: 1.0 …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>How to Add FreeSwitch Service</title><link>https://www.arulraj.net/2009/06/how-to-add-freeswitch-service/</link><category>Linux</category><category>Linux</category><category>VOIP</category><category>Flash</category><category>how-to</category><author>noemail@noemail.org (arul)</author><pubDate>Tue, 9 Jun 2009 05:41:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2009-06-09:/2009/06/how-to-add-freeswitch-service/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Hello all,</p>
<p>Here how to start
<a href="http://wiki.freeswitch.org/wiki/Installation_Guide">freeswitch</a>when
machine boots.</p>
<div class="highlight"><pre><span></span><code><span class="ch">#!/bin/bash</span>
<span class="c1">#</span>
<span class="c1"># freeswitch This starts and stops the freeswitch</span>
<span class="c1">#</span>
<span class="c1"># chkconfig: 345 60 50</span>
<span class="c1"># chkconfig: - 60 50</span>
<span class="c1"># description: freeswitch.sh - startup script for freeswitch on FreeBSD</span>
<span class="c1"># processname: /usr/local/freeswitch/bin/freeswitch</span>
<span class="c1"># pidfile: /usr/local/freeswitch/log/freeswitch.pid</span>

<span class="nv">PATH</span><span class="o">=</span>/sbin:/bin:/usr/bin:/usr/sbin

<span class="c1"># Source function library.</span>
.<span class="w"> </span>/etc/init.d/functions

<span class="c1"># Get config.</span>
<span class="nb">test</span><span class="w"> </span>-f<span class="w"> </span>/etc/sysconfig/network<span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span>.<span class="w"> </span>/etc/sysconfig/network

<span class="c1"># Check that we are root ... so non-root users stop here</span>
<span class="o">[</span><span class="w"> </span><span class="sb">`</span>id<span class="w"> </span>-u<span class="sb">`</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">0</span><span class="w"> </span><span class="o">]</span><span class="w"> </span><span class="o">||</span><span class="w"> </span><span class="nb">exit</span><span class="w"> </span><span class="m">1</span>

<span class="c1"># Check that networking is up.</span>
<span class="o">[</span><span class="w"> </span><span class="s2">"</span><span class="si">${</span><span class="nv">NETWORKING</span><span class="si">}</span><span class="s2">"</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s2">"yes"</span><span class="w"> </span><span class="o">]</span><span class="w"> </span><span class="se">\|\|</span><span class="w"> </span><span class="nb">exit</span><span class="w"> </span><span class="m">0</span>

<span class="nv">RETVAL</span><span class="o">=</span><span class="m">0</span>
<span class="nv">prog</span><span class="o">=</span><span class="s2">"Freeswitch"</span>

start<span class="o">()</span><span class="w"> </span><span class="o">{</span>
<span class="k">if</span><span class="w"> </span><span class="o">[</span><span class="w"> </span>-x<span class="w"> </span>/usr/local/freeswitch/bin/freeswitch<span class="w"> </span><span class="o">]</span><span class="w"> </span><span class="p">;</span><span class="w"> </span><span class="k">then</span>
<span class="w">  </span><span class="nb">echo</span><span class="w"> </span>-n<span class="w"> </span>$<span class="s2">"Starting </span><span class="nv">$prog</span><span class="s2">: "</span>
<span class="w">  </span>/usr/local/freeswitch/bin/freeswitch<span class="w"> </span>-nc<span class="w"> </span><span class="p">&amp;</span>
<span class="w">  </span><span class="nv">RETVAL</span><span class="o">=</span><span class="nv">$?</span>
<span class="w">  </span>sleep<span class="w"> </span><span class="m">1</span>
<span class="k">fi</span>
<span class="k">return</span><span class="w"> </span><span class="nv">$RETVAL</span>
<span class="o">}</span>

stop<span class="o">()</span><span class="w"> </span><span class="o">{</span>
<span class="w">  </span><span class="k">if</span><span class="w"> </span><span class="o">[</span><span class="w"> </span>-x<span class="w"> </span>/usr/local/freeswitch/bin/freeswitch<span class="w"> </span><span class="o">]</span><span class="w"> </span><span class="p">;</span><span class="w"> </span><span class="k">then</span>
<span class="w">    </span><span class="nb">echo</span><span class="w"> </span>-n<span class="w"> </span>$<span class="s2">"Stopping </span><span class="nv">$prog</span><span class="s2">: "</span>
<span class="w">    </span>/usr/local/freeswitch/bin/freeswitch<span class="w"> </span>-stop<span class="w"> </span><span class="p">&amp;</span>
<span class="w">    </span><span class="nv">RETVAL</span><span class="o">=</span><span class="nv">$?</span>
<span class="w">    </span>sleep<span class="w"> </span><span class="m">1</span>
<span class="w">  </span><span class="k">fi</span>
<span class="w">  </span><span class="k">return</span><span class="w"> </span><span class="nv">$RETVAL</span>
<span class="o">}</span>

restart<span class="o">(){</span>
<span class="w">  </span>stop
<span class="w">  </span>sleep<span class="w"> </span><span class="m">5</span>
<span class="w">  </span>start
<span class="o">}</span>

<span class="c1"># See how we were called.</span>
<span class="k">case</span><span class="w"> </span><span class="s2">"</span><span class="nv">$1</span><span class="s2">"</span><span class="w"> </span><span class="k">in</span>

start<span class="o">)</span>
<span class="w">  </span>start
<span class="p">;;</span>

stop<span class="o">)</span>
<span class="w">  </span>stop
<span class="p">;;</span>

restart<span class="o">)</span>
<span class="w">  </span>restart
<span class="p">;;</span>

*<span class="o">)</span>
<span class="w">  </span><span class="nb">echo</span><span class="w"> </span><span class="s2">"usage: </span><span class="nv">$0</span><span class="s2"> { start \| stop \| restart }"</span>
<span class="w">  </span><span class="nv">RETVAL</span><span class="o">=</span><span class="m">1</span>

<span class="k">esac</span>
<span class="nb">exit</span><span class="w"> </span><span class="nv">$RETVAL</span>
</code></pre></div>
<p>save these lines as file name freeswitch and copied to /etc/init.d/
folder</p>
<p>then run the below comments</p>
<div class="highlight"><pre><span></span><code>chkconfig<span class="w"> </span>-add<span class="w"> </span>/etc/init.d/freeswitch
chkconfig<span class="w"> </span>freeswitch<span class="w"> </span>on
</code></pre></div>
<p>you are done. Now Freeswitch will start when your PC Boots.</p>
<p>Freeswitch commands:</p>
<div class="highlight"><pre><span></span><code>Start<span class="w"> </span>:<span class="w"> </span>/etc/init.d/freeswitch<span class="w"> </span>start
Stop<span class="w"> </span>:<span class="w"> </span>/etc/init.d/freeswitch<span class="w"> </span>stop
Restart<span class="w"> </span>:<span class="w"> </span>/etc/init.d/freeswitch<span class="w"> </span>restart
</code></pre></div>]]></content:encoded><description>&lt;p&gt;Hello all,&lt;/p&gt;
&lt;p&gt;Here how to start
&lt;a href="http://wiki.freeswitch.org/wiki/Installation_Guide"&gt;freeswitch&lt;/a&gt;when
machine boots.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/bin/bash&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# freeswitch This starts and stops the freeswitch&lt;/span&gt;
&lt;span class="c1"&gt;#&lt;/span&gt;
&lt;span class="c1"&gt;# chkconfig: 345 60 50&lt;/span&gt;
&lt;span class="c1"&gt;# chkconfig: - 60 50&lt;/span&gt;
&lt;span class="c1"&gt;# description: freeswitch.sh - startup script for freeswitch on FreeBSD&lt;/span&gt;
&lt;span class="c1"&gt;# processname: /usr/local/freeswitch/bin/freeswitch&lt;/span&gt;
&lt;span class="c1"&gt;# pidfile: /usr/local/freeswitch/log/freeswitch.pid&lt;/span&gt;

&lt;span class="nv"&gt;PATH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/sbin …&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Server Virtualization</title><link>https://www.arulraj.net/2009/04/server-virtualization/</link><category>Virtualization</category><category>cloud-computing</category><category>Linux</category><category>xen</category><author>noemail@noemail.org (arul)</author><pubDate>Wed, 22 Apr 2009 06:00:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2009-04-22:/2009/04/server-virtualization/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><strong>Server Virtualization</strong></p>
<p><strong>What is Virtualization..?</strong></p>
<p><a href="http://en.wikipedia.org/wiki/Virtualization">Virtualization</a>is a
technique of partitioning or dividing the resources of a single server
into multiple segregated execution environments. Each of these
environments runs independently of the other, thus allowing multiple
operating systems to run on the same hardware. This concept has been
widely used in the world of mainframe computers over the years.</p>
<p><strong>What is VMM (Virtual Machine Monitor)?</strong></p>
<p>Each execution environment is called a guest and the server on which
they execute is called the host. The software running on the host that
acts as a bridge between the host and the guests, and that enables these
multiple execution environments is commonly referred to as the <em>Virtual
Machine Monitor</em> (VMM) or a <em>Hypervisor</em>.</p>
<p><strong>What are the Methods in Virtualization Technique ?</strong></p>
<p><strong>System emulation:</strong> The execution environment is called a virtual
machine and it emulates all the hardware resources. This emulation layer
in turn uses the real hardware resources from the host.</p>
<p>This approach Followed by :  <a href="http://www.vmware.com/">VMware</a>,
<a href="http://www.microsoft.com/Windows/products/winfamily/virtualpc/default.mspx">Microsoft virtual
PC</a></p>
<p><strong>Paravirtualization</strong>: There is no hardware emulation. The operating
system that runs on a guest needs to be a modifed version that is aware
of the fact that it is running inside a hypervisor.</p>
<p>This approach Followed by : <a href="http://www.xen.org/">Xen</a></p>
<p><strong>Operating System level virtualization</strong>: Each guest instance is
isolated and runs in a secure environment. However, you can execute only
multiple instances of guests that run the same operating system as the
host.</p>
<p>This approach Followed by : <a href="http://www.sun.com/software/solaris/virtualization.jsp">Sun
Solaris</a></p>
<p><strong>What is Xen?</strong></p>
<p>Xen is an open-source paravirtualization technology that provides a
platform for running multiple operating systems in parallel on one
physical hardware resource, while providing close to native performance.
Xen supports several operating systems—Linux, FreeBSD and NetBSD. The
current version of Xen also supports the new generation of AMD Pacifca
and Intel VT-x chipsets and can run an OS on these chips without any
modifcations by using a version of the hypervisor called the <em>Hardware
Virtual Machine</em> (HVM)</p>
<p><strong>What is HVM (Hardware Virtual Machine) ?</strong></p>
<p>HVM mediates between the guest operating system and the hardware and
passes on the calls made by the guest to the physical hardware.</p>
<h2 id="xen-architecture">Xen Architecture</h2>
<p><a href="http://4.bp.blogspot.com/_Tq9uaJI0Xww/Se8KOh04_5I/AAAAAAAAETY/Gkl-Ck_wpNo/s1600-h/Xen+Architecture.jpg"><img alt="image0" src="http://4.bp.blogspot.com/_Tq9uaJI0Xww/Se8KOh04_5I/AAAAAAAAETY/Gkl-Ck_wpNo/s400/Xen+Architecture.jpg"/></a></p>
<p><strong>Intel Server Virtualization Demo:</strong></p>
<p>Intel® Xeon® processors based on Intel® Core™ microarchitecture
integrate hardware for virtualization into all key server components
including <a href="http://www.intel.com/technology/virtualization/server/index.htm?iid=tech_vt+server">Intel® Virtualization
Technology</a>
(Intel® VT) helping IT organizations consolidate more applications and
heavier workloads on each server to improve flexibility, reliability,
and total cost of ownership (TCO).</p>
<p>Intel® Virtualization Technology for servers Demo :</p>
<div align="center">
<object data="http://www.intel.com/technology/virtualization/demos/closer/demo.swf" height="240" type="application/x-shockwave-flash" width="320">
</object>
</div>
<p>Flexible virtualization</p>
<div align="center">
<object data="http://www.intel.com/business/resources/demos/xeon5500/virtualization/demo.swf" height="240" type="application/x-shockwave-flash" width="320">
</object>
</div>]]></content:encoded><description>&lt;p&gt;&lt;strong&gt;Server Virtualization&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What is Virtualization..?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/Virtualization"&gt;Virtualization&lt;/a&gt;is a
technique of partitioning or dividing the resources of a single server
into multiple segregated execution environments. Each of these
environments runs independently of the other, thus allowing multiple
operating systems to run on the same hardware. This concept has been
widely used …&lt;/p&gt;</description></item><item><title>Visiting Besant Nagar Broken Bridge</title><link>https://www.arulraj.net/2009/04/visiting-besant-nagar-broken-bridge/</link><category>Photos</category><category>Besant-Nagar</category><category>Broken-Bridge</category><category>photos</category><author>noemail@noemail.org (arul)</author><pubDate>Wed, 15 Apr 2009 00:38:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2009-04-15:/2009/04/visiting-besant-nagar-broken-bridge/</guid><description>&lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/Broken_bridge,_Chennai"&gt;Broken Bridge&lt;/a&gt; in
a kilometre and half away from Besant Nagar beach . You have to cross a
hamlet of fishermen to get to this place.&lt;/p&gt;
&lt;p&gt;All of our friend getting bike and go there to see the sunrise. There we
taken some snaps. Here i share my photos&lt;/p&gt;
&lt;div style="width: 300px; text-align: center;"&gt;
&lt;object align="center" data="http://w260.photobucket.com/pbwidget.swf?pbwurl=http://w260.photobucket.com/albums/ii28/arulraj1985/Besant Boys/Broken Bridge/c7c5828b.pbw" height="360" type="application/x-shockwave-flash" width="300"&gt;
&lt;/object&gt;
&lt;/div&gt;
&lt;div style="text-align: center;"&gt;
&lt;iframe align="center" frameborder="0" height="250" src="http://wikimapia.org/s/#lat=13.0127951&amp;amp;lon=80.2760375&amp;amp;z=17&amp;amp;l=0&amp;amp;m=a&amp;amp;v=2" width="250"&gt;
&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>Recent Post Widget in Flash</title><link>https://www.arulraj.net/2009/03/recent-post-widget-in-flash/</link><category>Widget</category><category>Flash</category><category>Recent-Post</category><category>Widget</category><author>noemail@noemail.org (arul)</author><pubDate>Wed, 4 Mar 2009 09:47:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2009-03-04:/2009/03/recent-post-widget-in-flash/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>The widget is shows like that... This is the Beta version only..
Unfortunately it supports only for feed burner feed... I will update
this soon...</p>
<p><a href="http://sharedaa.com/images/Arul/RssReader.swf?feedUrl=http://feeds2.feedburner.com/blogspot/TLLQ?format=xml&amp;feedItems=12&amp;bgcolor=D8D7CC&amp;border=BDBCB6&amp;title=Recent+Books">See this
Link</a></p>
<p>How to use... Use the Below script...</p>
<div class="highlight"><pre><span></span><code><span class="p">&lt;</span><span class="nt">center</span><span class="p">&gt;</span>
  <span class="p">&lt;</span><span class="nt">embed</span> <span class="na">pluginspage</span><span class="o">=</span><span class="s">"http://www.macromedia.com/go/getflashplayer"</span> <span class="na">quality</span><span class="o">=</span><span class="s">"high"</span> <span class="na">align</span><span class="o">=</span><span class="s">""</span> <span class="na">flashvars</span><span class="o">=</span><span class="s">""</span> <span class="na">type</span><span class="o">=</span><span class="s">"application/x-shockwave-flash"</span> <span class="na">height</span><span class="o">=</span><span class="s">"400"</span> <span class="na">src</span><span class="o">=</span><span class="s">"http://sharedaa.com/images/Arul/RssReader.swf?feedUrl=http://feeds2.feedburner.com/blogspot/TLLQ?format=xml&amp;feedItems=12&amp;bgcolor=D8D7CC&amp;border=BDBCB6&amp;title=Recent+Books"</span> <span class="na">bgcolor</span><span class="o">=</span><span class="s">"#FFFFFF"</span> <span class="na">width</span><span class="o">=</span><span class="s">"500"</span> <span class="na">name</span><span class="o">=</span><span class="s">"RssReader"</span><span class="p">&gt;</span>
  <span class="p"><!--</span--><span class="nt">embed</span><span class="p">&gt;</span>
<span class="p"><!--</span--><span class="nt">center</span><span class="p">&gt;</span>
</span></span></code></pre></div>
<p><strong>Variabels</strong></p>
<p>feedUrl - URL of the Feed</p>
<p>feedItems - No of feed you want to display</p>
<p>bgcolor - Background color of the widget</p>
<p>border - Border and Header color of the widget</p>
<p>title - Header name of the widget</p>
<p>Here the <a href="http://booksforpeople.blogspot.com">http://booksforpeople.blogspot.com</a> feed is used</p>]]></content:encoded><description>&lt;p&gt;The widget is shows like that... This is the Beta version only..
Unfortunately it supports only for feed burner feed... I will update
this soon...&lt;/p&gt;
&lt;p&gt;&lt;a href="http://sharedaa.com/images/Arul/RssReader.swf?feedUrl=http://feeds2.feedburner.com/blogspot/TLLQ?format=xml&amp;amp;feedItems=12&amp;amp;bgcolor=D8D7CC&amp;amp;border=BDBCB6&amp;amp;title=Recent+Books"&gt;See this
Link&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;How to use... Use the Below script...&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;center&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;embed&lt;/span&gt; &lt;span class="na"&gt;pluginspage&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;http://www.macromedia.com/go/getflashplayer&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;quality&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;high&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;align&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;flashvars&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;&amp;quot;&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;application …&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>How to set the static ip address in ubuntu..?</title><link>https://www.arulraj.net/2009/03/how-to-set-the-static-ip-address-in-ubuntu/</link><category>Linux</category><category>Linux</category><category>static-ip</category><category>ubuntu</category><author>noemail@noemail.org (arul)</author><pubDate>Wed, 4 Mar 2009 09:35:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2009-03-04:/2009/03/how-to-set-the-static-ip-address-in-ubuntu/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>edit your /etc/network/interfaces file to</p>
<div class="highlight"><pre><span></span><code>auto eth0
iface eth0 inet static
address 192.168.0.50
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
</code></pre></div>
<p>after that rebooting your network by excecuting the below command…</p>
<div class="highlight"><pre><span></span><code><span class="o">[</span>root@localhost<span class="w"> </span>~<span class="o">]</span><span class="c1"># /etc/init.d/networking restart</span>
</code></pre></div>]]></content:encoded><description>&lt;p&gt;edit your /etc/network/interfaces file to&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;auto eth0
iface eth0 inet static
address 192.168.0.50
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;after that rebooting your network by excecuting the below command&amp;hellip;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="o"&gt;[&lt;/span&gt;root@localhost …&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>AirtelLive Manual Setting for LG KG 195</title><link>https://www.arulraj.net/2009/01/airtellive-manual-setting-for-lg-kg-195/</link><category>Mobile</category><category>Airel</category><category>gprs</category><category>KG-195</category><category>LG</category><category>Mobile</category><author>noemail@noemail.org (arul)</author><pubDate>Sat, 31 Jan 2009 09:03:00 +0530</pubDate><guid isPermaLink="false">tag:www.arulraj.net,2009-01-31:/2009/01/airtellive-manual-setting-for-lg-kg-195/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Hello all,</p>
<p>Go to the Browser in your mobile</p>
<p>DataAccount --&gt; GPRS --&gt; Edit the Existing Account</p>
<p>Account Name : Airtel Live (what ever u want)</p>
<p>APN : airtelfun.com</p>
<p>Username :  leave blank</p>
<p>Password : leave blank</p>
<p>Auth Type : Normal</p>
<p>Then Done --&gt; save the setting</p>
<p>Browser --&gt; WAP --&gt; Setting --&gt; Edit Profile --&gt; select a
profile then Edit</p>
<p>Rename : GPRS (what ever u want)</p>
<p>Homepage : <a href="http://live.airtelworld.com">http://live.airtelworld.com</a></p>
<p>Data Account : Airtel Live (This is the Name of the Previosly we edit)</p>
<p>Connection : HTTP</p>
<p>proxy address : 100.001.200.099</p>
<p>Proxy port :8080</p>
<p>Username :  leave blank</p>
<p>Password : leave blank</p>
<p>yeah..! You are done. Go to the Browser it will open the AirtelLive home
page</p>
<p>Download phone suite for LG KG 195 <a href="http://softwares.sharedaa.com/2010/02/lg-kg195-phone-suite.html">Click
here</a></p>]]></content:encoded><description>&lt;p&gt;Hello all,&lt;/p&gt;
&lt;p&gt;Go to the Browser in your mobile&lt;/p&gt;
&lt;p&gt;DataAccount --&amp;gt; GPRS --&amp;gt; Edit the Existing Account&lt;/p&gt;
&lt;p&gt;Account Name : Airtel Live (what ever u want)&lt;/p&gt;
&lt;p&gt;APN : airtelfun.com&lt;/p&gt;
&lt;p&gt;Username :  leave blank&lt;/p&gt;
&lt;p&gt;Password : leave blank&lt;/p&gt;
&lt;p&gt;Auth Type : Normal&lt;/p&gt;
&lt;p&gt;Then Done --&amp;gt; save the setting&lt;/p&gt;
&lt;p&gt;Browser --&amp;gt; WAP --&amp;gt; Setting --&amp;gt; Edit Profile --&amp;gt; select a
profile then Edit …&lt;/p&gt;</description></item></channel></rss>