<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-7285521086390419193</atom:id><lastBuildDate>Mon, 24 Aug 2026 21:52:11 +0000</lastBuildDate><title>SHAN&#39;S SOLUTION</title><description>&quot;Always think of a solution, not the technology&quot;</description><link>http://shanssolution.blogspot.com/</link><managingEditor>noreply@blogger.com (SHAN&#39;S SOLUTION)</managingEditor><generator>Blogger</generator><openSearch:totalResults>21</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7285521086390419193.post-5825966114510808419</guid><pubDate>Mon, 24 Aug 2026 21:49:06 +0000</pubDate><atom:updated>2026-08-24T14:49:06.760-07:00</atom:updated><title>Leetcode 78 : Subsets</title><description>&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;en&quot;&gt;
&lt;head&gt;
&lt;meta charset=&quot;utf-8&quot;&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&gt;
&lt;meta name=&quot;description&quot; content=&quot;Step-by-step visualisation of the subsets backtracking algorithm and the call stack.&quot;&gt;
&lt;title&gt;Subsets on the Stack&lt;/title&gt;
&lt;link rel=&quot;preconnect&quot; href=&quot;https://fonts.googleapis.com&quot;&gt;
&lt;link rel=&quot;preconnect&quot; href=&quot;https://fonts.gstatic.com&quot; crossorigin&gt;
&lt;link rel=&quot;stylesheet&quot; href=&quot;https://fonts.googleapis.com/css2?family=Archivo:wght@500;600;700&amp;family=IBM+Plex+Mono:wght@400;500;600&amp;family=Source+Serif+4:opsz,wght@8..60,400;8..60,600&amp;display=swap&quot;&gt;
&lt;style&gt;
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
img,svg{max-width:100%}
&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;style&gt;
:root{
  --paper:#F3F5F6;
  --surface:#FFFFFF;
  --surface-2:#EAEEF1;
  --grid:#DBE3E8;
  --rule:#C6D2DB;
  --ink:#16222E;
  --muted:#5C6B78;
  --accent:#1D4E89;
  --accent-soft:#DCE8F5;
  --accent-line:#1D4E89;
  --pencil:#B23A2E;
  --pencil-soft:#F6E2DF;
  --grow:#2E7D5B;
  --grow-soft:#DDEFE6;
  --shadow:0 1px 2px rgba(22,34,46,.06), 0 8px 24px rgba(22,34,46,.06);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme=&quot;light&quot;]){
    --paper:#0F151B;
    --surface:#18212A;
    --surface-2:#131B22;
    --grid:#27333E;
    --rule:#33414E;
    --ink:#E3E9EE;
    --muted:#93A3B0;
    --accent:#74A9E6;
    --accent-soft:#1B2E44;
    --accent-line:#74A9E6;
    --pencil:#E88073;
    --pencil-soft:#3A2320;
    --grow:#63C298;
    --grow-soft:#16301F;
    --shadow:0 1px 2px rgba(0,0,0,.4), 0 10px 30px rgba(0,0,0,.35);
  }
}
:root[data-theme=&quot;dark&quot;]{
  --paper:#0F151B;
  --surface:#18212A;
  --surface-2:#131B22;
  --grid:#27333E;
  --rule:#33414E;
  --ink:#E3E9EE;
  --muted:#93A3B0;
  --accent:#74A9E6;
  --accent-soft:#1B2E44;
  --accent-line:#74A9E6;
  --pencil:#E88073;
  --pencil-soft:#3A2320;
  --grow:#63C298;
  --grow-soft:#16301F;
  --shadow:0 1px 2px rgba(0,0,0,.4), 0 10px 30px rgba(0,0,0,.35);
}

*{box-sizing:border-box}
body{
  margin:0;
  background-color:var(--paper);
  background-image:
    linear-gradient(var(--grid) 1px, transparent 1px),
    linear-gradient(90deg, var(--grid) 1px, transparent 1px);
  background-size:26px 26px;
  color:var(--ink);
  font-family:&quot;Source Serif 4&quot;, Georgia, &quot;Times New Roman&quot;, serif;
  font-size:17px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
.wrap{max-width:1140px;margin:0 auto;padding:0 22px 90px}

h1,h2,h3,.ui{font-family:&quot;Archivo&quot;,&quot;Helvetica Neue&quot;,Arial,sans-serif}
h1{font-size:clamp(2.1rem,5vw,3.3rem);line-height:1.04;font-weight:700;letter-spacing:-.02em;margin:0 0 14px;text-wrap:balance}
h2{font-size:clamp(1.35rem,2.6vw,1.75rem);font-weight:700;letter-spacing:-.01em;margin:0 0 10px;text-wrap:balance}
h3{font-size:1.02rem;font-weight:600;margin:0 0 8px;letter-spacing:-.005em}
p{margin:0 0 14px;max-width:66ch}
code,.mono{font-family:&quot;IBM Plex Mono&quot;,ui-monospace,SFMono-Regular,Menlo,monospace;font-variant-ligatures:none}
code{font-size:.9em;background:var(--surface-2);padding:1px 5px;border-radius:4px}

.eyebrow{
  font-family:&quot;IBM Plex Mono&quot;,monospace;font-size:.7rem;font-weight:500;
  letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin:0 0 12px;
}

header.top{padding:64px 0 34px;border-bottom:1px solid var(--rule)}
header.top .lede{font-size:1.16rem;color:var(--muted);max-width:60ch;margin:0}
.setline{
  display:inline-flex;align-items:center;gap:10px;margin-top:22px;padding:8px 14px;
  background:var(--surface);border:1px solid var(--rule);border-radius:8px;box-shadow:var(--shadow);
}
.setline .k{font-family:&quot;IBM Plex Mono&quot;,monospace;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.setline .v{font-family:&quot;IBM Plex Mono&quot;,monospace;font-size:1rem;font-weight:600;color:var(--accent)}

section{padding:46px 0;border-bottom:1px solid var(--rule)}
section:last-of-type{border-bottom:0}

/* ---------- machine ---------- */
.machine{
  background:var(--surface);border:1px solid var(--rule);border-radius:12px;
  box-shadow:var(--shadow);overflow:hidden;margin-top:22px;
}
.treewrap{overflow-x:auto;padding:14px 10px 4px;border-bottom:1px solid var(--rule)}
svg.tree{display:block;min-width:900px;width:100%;height:auto}

.n-box{fill:var(--surface);stroke:var(--rule);stroke-width:1.5}
.n-box.done{fill:var(--surface-2);stroke:var(--rule)}
.n-box.path{stroke:var(--accent-line);stroke-width:2}
.n-box.active{fill:var(--accent-soft);stroke:var(--accent-line);stroke-width:2.5}
.n-box.rec{stroke:var(--grow);fill:var(--grow-soft)}
.n-txt{font-family:&quot;IBM Plex Mono&quot;,monospace;font-size:12px;font-weight:500;fill:var(--ink);text-anchor:middle;dominant-baseline:middle}
.n-txt.dim{fill:var(--muted)}
.edge{stroke:var(--rule);stroke-width:1.5;fill:none}
.edge.done{stroke:var(--rule)}
.edge.path{stroke:var(--accent-line);stroke-width:2.5}
.e-lab{font-family:&quot;IBM Plex Mono&quot;,monospace;font-size:9.5px;fill:var(--muted);text-anchor:middle;letter-spacing:.04em}
.e-lab.path{fill:var(--accent);font-weight:600}
.lvl{font-family:&quot;IBM Plex Mono&quot;,monospace;font-size:9.5px;fill:var(--muted);letter-spacing:.1em;text-transform:uppercase}

.narrate{
  display:flex;align-items:center;gap:12px;padding:13px 18px;
  background:var(--surface-2);border-bottom:1px solid var(--rule);min-height:56px;
}
.tag{
  font-family:&quot;IBM Plex Mono&quot;,monospace;font-size:.66rem;font-weight:600;letter-spacing:.1em;
  text-transform:uppercase;padding:4px 9px;border-radius:5px;white-space:nowrap;
  background:var(--surface);border:1px solid var(--rule);color:var(--muted);
}
.tag.push{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}
.tag.pop{background:var(--surface);border-color:var(--rule);color:var(--muted)}
.tag.add{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}
.tag.remove{background:var(--pencil-soft);border-color:var(--pencil);color:var(--pencil)}
.tag.record{background:var(--grow-soft);border-color:var(--grow);color:var(--grow)}
.narrate .msg{font-family:&quot;IBM Plex Mono&quot;,monospace;font-size:.86rem;line-height:1.4;color:var(--ink)}

.panels{display:grid;grid-template-columns:1.15fr 1fr .85fr;gap:0}
.panel{padding:16px 18px;border-right:1px solid var(--rule)}
.panel:last-child{border-right:0}
.panel h3{font-family:&quot;IBM Plex Mono&quot;,monospace;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-bottom:12px}

pre.code{margin:0;font-family:&quot;IBM Plex Mono&quot;,monospace;font-size:.79rem;line-height:1.75;overflow-x:auto}
pre.code .ln{display:block;padding:0 8px 0 6px;border-left:3px solid transparent;border-radius:3px;white-space:pre}
pre.code .ln .num{display:inline-block;width:1.6em;color:var(--muted);opacity:.55;user-select:none}
pre.code .ln.on{background:var(--accent-soft);border-left-color:var(--accent)}
pre.code .ln.on.warm{background:var(--pencil-soft);border-left-color:var(--pencil)}
pre.code .ln.on.good{background:var(--grow-soft);border-left-color:var(--grow)}
.cmt{color:var(--muted)}
.kw{color:var(--accent);font-weight:600}

.stack{display:flex;flex-direction:column;gap:6px;min-height:230px}
.stack .toplab{font-family:&quot;IBM Plex Mono&quot;,monospace;font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:2px}
.frame{
  border:1px solid var(--rule);border-radius:7px;background:var(--surface-2);
  padding:7px 10px;font-family:&quot;IBM Plex Mono&quot;,monospace;
}
.frame.live{background:var(--accent-soft);border-color:var(--accent);border-width:2px}
.frame .fn{font-size:.82rem;font-weight:600}
.frame .meta{font-size:.66rem;color:var(--muted);margin-top:2px}
.frame.live .meta{color:var(--accent)}
.stack .empty{font-family:&quot;IBM Plex Mono&quot;,monospace;font-size:.72rem;color:var(--muted);font-style:italic}
.basefloor{border-top:2px dashed var(--rule);margin-top:6px;padding-top:5px;font-family:&quot;IBM Plex Mono&quot;,monospace;font-size:.62rem;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}

.bag{display:flex;flex-wrap:wrap;gap:6px;align-items:center;min-height:38px;padding:9px;border:1.5px dashed var(--rule);border-radius:8px;background:var(--surface-2)}
.chip{font-family:&quot;IBM Plex Mono&quot;,monospace;font-size:.86rem;font-weight:600;background:var(--accent);color:var(--surface);padding:3px 11px;border-radius:5px}
:root[data-theme=&quot;dark&quot;] .chip,:root:not([data-theme=&quot;light&quot;]) .chip{color:#0F151B}
@media (prefers-color-scheme: light){:root:not([data-theme=&quot;dark&quot;]) .chip{color:#fff}}
.bag .none{font-family:&quot;IBM Plex Mono&quot;,monospace;font-size:.74rem;color:var(--muted);font-style:italic}
.results{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:4px}
.results li{
  font-family:&quot;IBM Plex Mono&quot;,monospace;font-size:.78rem;padding:3px 9px;border-radius:5px;
  background:var(--grow-soft);color:var(--grow);font-weight:600;
}
.results li.fresh{outline:2px solid var(--grow);outline-offset:-2px}
.counter{font-family:&quot;IBM Plex Mono&quot;,monospace;font-size:.68rem;color:var(--muted);margin-top:10px}

.controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:14px 18px;border-top:1px solid var(--rule);background:var(--surface-2)}
button{
  font-family:&quot;Archivo&quot;,sans-serif;font-size:.82rem;font-weight:600;cursor:pointer;
  background:var(--surface);color:var(--ink);border:1px solid var(--rule);
  padding:7px 14px;border-radius:7px;transition:background .12s,border-color .12s,transform .06s;
}
button:hover{border-color:var(--accent);color:var(--accent)}
button:active{transform:translateY(1px)}
button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
button.primary{background:var(--accent);color:var(--surface);border-color:var(--accent)}
:root[data-theme=&quot;dark&quot;] button.primary,:root:not([data-theme=&quot;light&quot;]) button.primary{color:#0F151B}
@media (prefers-color-scheme: light){:root:not([data-theme=&quot;dark&quot;]) button.primary{color:#fff}}
button.primary:hover{opacity:.9;color:var(--surface)}
:root[data-theme=&quot;dark&quot;] button.primary:hover{color:#0F151B}
button:disabled{opacity:.4;cursor:not-allowed}
.spacer{flex:1}
.stepcount{font-family:&quot;IBM Plex Mono&quot;,monospace;font-size:.72rem;color:var(--muted);font-variant-numeric:tabular-nums}
.jumps{display:flex;flex-wrap:wrap;gap:8px;padding:0 18px 14px;background:var(--surface-2)}
.jumps button{font-size:.74rem;padding:5px 11px;background:transparent}

/* ---------- static explainers ---------- */
.twocol{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:20px}
.card{background:var(--surface);border:1px solid var(--rule);border-radius:11px;padding:20px;box-shadow:var(--shadow)}
.card.warm{border-color:var(--pencil)}
.card.cool{border-color:var(--accent)}
.card p{font-size:.94rem;margin-bottom:0}
.card p+p{margin-top:10px}
.miniframes{display:flex;flex-direction:column;gap:5px;margin:14px 0}
.mf{font-family:&quot;IBM Plex Mono&quot;,monospace;font-size:.74rem;border:1px solid var(--rule);border-radius:6px;padding:5px 10px;background:var(--surface-2);display:flex;justify-content:space-between;gap:10px}
.mf b{color:var(--accent);font-weight:600}
.sharedbag{
  font-family:&quot;IBM Plex Mono&quot;,monospace;font-size:.8rem;text-align:center;
  border:2px dashed var(--pencil);border-radius:8px;padding:12px;margin:14px 0;background:var(--pencil-soft);color:var(--pencil);font-weight:600;
}
.arrows{text-align:center;font-family:&quot;IBM Plex Mono&quot;,monospace;font-size:.7rem;color:var(--muted);letter-spacing:.3em}

.rule-list{list-style:none;padding:0;margin:22px 0 0;display:grid;gap:10px}
.rule-list li{
  background:var(--surface);border:1px solid var(--rule);border-left:4px solid var(--accent);
  border-radius:0 8px 8px 0;padding:13px 16px;font-size:.96rem;
}
.rule-list li b{font-family:&quot;Archivo&quot;,sans-serif;font-weight:600}
.rule-list li.pencil{border-left-color:var(--pencil)}
.rule-list li.grow{border-left-color:var(--grow)}

.pull{
  font-family:&quot;Archivo&quot;,sans-serif;font-weight:600;font-size:clamp(1.15rem,2.4vw,1.5rem);
  line-height:1.35;letter-spacing:-.01em;text-wrap:balance;
  border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);
  padding:22px 0;margin:34px 0 0;max-width:34ch;
}
.footnote{font-size:.86rem;color:var(--muted);margin-top:26px}

table.cx{border-collapse:collapse;margin-top:16px;font-size:.9rem;width:100%;max-width:560px}
table.cx td,table.cx th{border-bottom:1px solid var(--rule);padding:8px 12px;text-align:left}
table.cx th{font-family:&quot;IBM Plex Mono&quot;,monospace;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:600}
table.cx td:last-child{font-family:&quot;IBM Plex Mono&quot;,monospace;font-variant-numeric:tabular-nums}

@media (max-width:900px){
  .panels{grid-template-columns:1fr}
  .panel{border-right:0;border-bottom:1px solid var(--rule)}
  .twocol{grid-template-columns:1fr}
}
@media (prefers-reduced-motion: reduce){
  *{transition:none!important;animation:none!important}
}
&lt;/style&gt;

&lt;div class=&quot;wrap&quot;&gt;

&lt;header class=&quot;top&quot;&gt;
  &lt;p class=&quot;eyebrow&quot;&gt;Recursion · Backtracking · The call stack&lt;/p&gt;
  &lt;h1&gt;Subsets on the Stack&lt;/h1&gt;
  &lt;p class=&quot;lede&quot;&gt;Every subset of a set is one path through a tree of yes/no decisions. Watch the machine walk that tree — pushing a frame each time it goes deeper, popping one each time it comes back.&lt;/p&gt;
  &lt;div class=&quot;setline&quot;&gt;
    &lt;span class=&quot;k&quot;&gt;Input set&lt;/span&gt;
    &lt;span class=&quot;v&quot;&gt;{ 1, 2, 3 }&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;→ expect&lt;/span&gt;
    &lt;span class=&quot;v&quot;&gt;2³ = 8 subsets&lt;/span&gt;
  &lt;/div&gt;
&lt;/header&gt;

&lt;section&gt;
  &lt;p class=&quot;eyebrow&quot;&gt;The machine&lt;/p&gt;
  &lt;h2&gt;Step through it&lt;/h2&gt;
  &lt;p&gt;The tree shows &lt;em&gt;where&lt;/em&gt; you are. The stack shows &lt;em&gt;how you got there&lt;/em&gt; — one frame per unfinished call, each one paused mid-line, waiting for the call above it to finish.&lt;/p&gt;

  &lt;div class=&quot;machine&quot;&gt;
    &lt;div class=&quot;treewrap&quot;&gt;&lt;svg class=&quot;tree&quot; id=&quot;tree&quot; viewBox=&quot;0 0 980 560&quot; role=&quot;img&quot; aria-label=&quot;Decision tree of subsets of 1,2,3&quot;&gt;&lt;/svg&gt;&lt;/div&gt;

    &lt;div class=&quot;narrate&quot;&gt;
      &lt;span class=&quot;tag&quot; id=&quot;tag&quot;&gt;start&lt;/span&gt;
      &lt;span class=&quot;msg&quot; id=&quot;msg&quot;&gt;Press Play, or step with the arrow keys.&lt;/span&gt;
    &lt;/div&gt;

    &lt;div class=&quot;panels&quot;&gt;
      &lt;div class=&quot;panel&quot;&gt;
        &lt;h3&gt;Code · current line&lt;/h3&gt;
&lt;pre class=&quot;code&quot; id=&quot;code&quot;&gt;&lt;span class=&quot;ln&quot; data-l=&quot;1&quot;&gt;&lt;span class=&quot;num&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;kw&quot;&gt;void&lt;/span&gt; findSubsets(&lt;span class=&quot;kw&quot;&gt;int&lt;/span&gt; index) {&lt;/span&gt;&lt;span class=&quot;ln&quot; data-l=&quot;2&quot;&gt;&lt;span class=&quot;num&quot;&gt;2&lt;/span&gt;    &lt;span class=&quot;kw&quot;&gt;if&lt;/span&gt; (index == nums.length) {&lt;/span&gt;&lt;span class=&quot;ln&quot; data-l=&quot;3&quot;&gt;&lt;span class=&quot;num&quot;&gt;3&lt;/span&gt;        results.add(&lt;span class=&quot;kw&quot;&gt;new&lt;/span&gt; ArrayList&amp;lt;&amp;gt;(current));&lt;/span&gt;&lt;span class=&quot;ln&quot; data-l=&quot;4&quot;&gt;&lt;span class=&quot;num&quot;&gt;4&lt;/span&gt;        &lt;span class=&quot;kw&quot;&gt;return&lt;/span&gt;;&lt;/span&gt;&lt;span class=&quot;ln&quot; data-l=&quot;5&quot;&gt;&lt;span class=&quot;num&quot;&gt;5&lt;/span&gt;    }&lt;/span&gt;&lt;span class=&quot;ln&quot; data-l=&quot;6&quot;&gt;&lt;span class=&quot;num&quot;&gt;6&lt;/span&gt;    current.add(nums[index]);          &lt;span class=&quot;cmt&quot;&gt;// TAKE&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;ln&quot; data-l=&quot;7&quot;&gt;&lt;span class=&quot;num&quot;&gt;7&lt;/span&gt;    findSubsets(index + 1);            &lt;span class=&quot;cmt&quot;&gt;// explore&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;ln&quot; data-l=&quot;8&quot;&gt;&lt;span class=&quot;num&quot;&gt;8&lt;/span&gt;    current.remove(current.size()-1);  &lt;span class=&quot;cmt&quot;&gt;// UN-TAKE&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;ln&quot; data-l=&quot;9&quot;&gt;&lt;span class=&quot;num&quot;&gt;9&lt;/span&gt;    findSubsets(index + 1);            &lt;span class=&quot;cmt&quot;&gt;// SKIP&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;ln&quot; data-l=&quot;10&quot;&gt;&lt;span class=&quot;num&quot;&gt;10&lt;/span&gt;}&lt;/span&gt;&lt;/pre&gt;
      &lt;/div&gt;

      &lt;div class=&quot;panel&quot;&gt;
        &lt;h3&gt;Call stack&lt;/h3&gt;
        &lt;div class=&quot;stack&quot; id=&quot;stack&quot;&gt;&lt;/div&gt;
      &lt;/div&gt;

      &lt;div class=&quot;panel&quot;&gt;
        &lt;h3&gt;current (the shared bag)&lt;/h3&gt;
        &lt;div class=&quot;bag&quot; id=&quot;bag&quot;&gt;&lt;span class=&quot;none&quot;&gt;empty&lt;/span&gt;&lt;/div&gt;
        &lt;h3 style=&quot;margin-top:18px&quot;&gt;results&lt;/h3&gt;
        &lt;ul class=&quot;results&quot; id=&quot;results&quot;&gt;&lt;/ul&gt;
        &lt;div class=&quot;counter&quot; id=&quot;counter&quot;&gt;0 / 8 recorded&lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;

    &lt;div class=&quot;controls&quot;&gt;
      &lt;button id=&quot;prev&quot;&gt;◀ Prev&lt;/button&gt;
      &lt;button id=&quot;play&quot; class=&quot;primary&quot;&gt;▶ Play&lt;/button&gt;
      &lt;button id=&quot;next&quot;&gt;Next ▶&lt;/button&gt;
      &lt;button id=&quot;reset&quot;&gt;Reset&lt;/button&gt;
      &lt;span class=&quot;spacer&quot;&gt;&lt;/span&gt;
      &lt;span class=&quot;stepcount&quot; id=&quot;stepcount&quot;&gt;step 0 / 0&lt;/span&gt;
    &lt;/div&gt;
    &lt;div class=&quot;jumps&quot;&gt;
      &lt;button data-jump=&quot;first-add&quot;&gt;first TAKE&lt;/button&gt;
      &lt;button data-jump=&quot;deepest&quot;&gt;deepest point (stack = 4)&lt;/button&gt;
      &lt;button data-jump=&quot;first-record&quot;&gt;first subset recorded&lt;/button&gt;
      &lt;button data-jump=&quot;first-remove&quot;&gt;first BACKTRACK&lt;/button&gt;
      &lt;button data-jump=&quot;empty-set&quot;&gt;the empty set&lt;/button&gt;
    &lt;/div&gt;
  &lt;/div&gt;
  &lt;p class=&quot;footnote&quot;&gt;Keyboard: ← and → step, space plays and pauses.&lt;/p&gt;
&lt;/section&gt;

&lt;section&gt;
  &lt;p class=&quot;eyebrow&quot;&gt;The thing that confuses everyone&lt;/p&gt;
  &lt;h2&gt;Two kinds of memory, only one of which cleans itself up&lt;/h2&gt;
  &lt;p&gt;Every frame on that stack carries its own copy of &lt;code&gt;index&lt;/code&gt;. Java saves and restores it for you — that is what a stack frame &lt;em&gt;is&lt;/em&gt;. But there is only &lt;strong&gt;one&lt;/strong&gt; &lt;code&gt;current&lt;/code&gt; list in the entire program, shared by every frame. Nobody restores it for you.&lt;/p&gt;

  &lt;div class=&quot;twocol&quot;&gt;
    &lt;div class=&quot;card cool&quot;&gt;
      &lt;h3&gt;index — per frame, automatic&lt;/h3&gt;
      &lt;div class=&quot;miniframes&quot;&gt;
        &lt;div class=&quot;mf&quot;&gt;&lt;span&gt;frame 4&lt;/span&gt;&lt;b&gt;index = 3&lt;/b&gt;&lt;/div&gt;
        &lt;div class=&quot;mf&quot;&gt;&lt;span&gt;frame 3&lt;/span&gt;&lt;b&gt;index = 2&lt;/b&gt;&lt;/div&gt;
        &lt;div class=&quot;mf&quot;&gt;&lt;span&gt;frame 2&lt;/span&gt;&lt;b&gt;index = 1&lt;/b&gt;&lt;/div&gt;
        &lt;div class=&quot;mf&quot;&gt;&lt;span&gt;frame 1&lt;/span&gt;&lt;b&gt;index = 0&lt;/b&gt;&lt;/div&gt;
      &lt;/div&gt;
      &lt;p&gt;Four live frames, four separate &lt;code&gt;index&lt;/code&gt; values, each sealed inside its own frame. When a frame pops, its &lt;code&gt;index&lt;/code&gt; vanishes with it and the caller finds its own value exactly as it left it.&lt;/p&gt;
      &lt;p&gt;You never write code to restore &lt;code&gt;index&lt;/code&gt;. The hardware stack does it.&lt;/p&gt;
    &lt;/div&gt;

    &lt;div class=&quot;card warm&quot;&gt;
      &lt;h3&gt;current — one object, shared&lt;/h3&gt;
      &lt;div class=&quot;arrows&quot;&gt;↓&amp;nbsp;&amp;nbsp;↓&amp;nbsp;&amp;nbsp;↓&amp;nbsp;&amp;nbsp;↓&lt;/div&gt;
      &lt;div class=&quot;sharedbag&quot;&gt;current = [ 1, 2, 3 ]&lt;/div&gt;
      &lt;div class=&quot;arrows&quot;&gt;all four frames point here&lt;/div&gt;
      &lt;p&gt;Every frame holds a reference to the &lt;em&gt;same&lt;/em&gt; ArrayList. A frame that adds to it has changed the world for its caller too — the change outlives the frame that made it.&lt;/p&gt;
      &lt;p&gt;So the caller must undo it by hand. That is the whole job of line 8: &lt;code&gt;current.remove(...)&lt;/code&gt; is the manual restore for the one piece of state the stack won&#39;t restore for you.&lt;/p&gt;
    &lt;/div&gt;
  &lt;/div&gt;

  &lt;div class=&quot;pull&quot;&gt;The stack restores what belongs to a frame. You restore what everyone shares.&lt;/div&gt;
&lt;/section&gt;

&lt;section&gt;
  &lt;p class=&quot;eyebrow&quot;&gt;Reading the picture&lt;/p&gt;
  &lt;h2&gt;Five things the animation is showing you&lt;/h2&gt;
  &lt;ul class=&quot;rule-list&quot;&gt;
    &lt;li&gt;&lt;b&gt;Going down = pushing.&lt;/b&gt; Line 7 and line 9 are the only two places the stack grows. Each one is a question: “what happens if I take it?” and “what happens if I don&#39;t?”&lt;/li&gt;
    &lt;li&gt;&lt;b&gt;The paused frames are the path.&lt;/b&gt; The frames below the top aren&#39;t idle — each is frozen mid-line, holding the return point. Read the stack bottom-to-top and you read the highlighted path down the tree.&lt;/li&gt;
    &lt;li class=&quot;grow&quot;&gt;&lt;b&gt;Recording happens only at leaves.&lt;/b&gt; A subset is complete only when there are no decisions left. That&#39;s &lt;code&gt;index == nums.length&lt;/code&gt; — the base case, the only place anything is written to &lt;code&gt;results&lt;/code&gt;.&lt;/li&gt;
    &lt;li class=&quot;pencil&quot;&gt;&lt;b&gt;Backtracking happens on the way up.&lt;/b&gt; Line 8 runs &lt;em&gt;after&lt;/em&gt; a whole branch has finished and returned. That&#39;s why it doesn&#39;t look like it belongs where it sits in the code.&lt;/li&gt;
    &lt;li&gt;&lt;b&gt;The tree is never built.&lt;/b&gt; There&#39;s no tree object in memory — only the current root-to-node path, alive as stack frames. Everything to the left has been popped; everything to the right doesn&#39;t exist yet.&lt;/li&gt;
  &lt;/ul&gt;
&lt;/section&gt;

&lt;section&gt;
  &lt;p class=&quot;eyebrow&quot;&gt;The cost&lt;/p&gt;
  &lt;h2&gt;Why the stack stays small even though the answer is huge&lt;/h2&gt;
  &lt;p&gt;The tree has 15 nodes and 8 leaves, but at no moment do more than 4 frames exist. The machine walks the tree depth-first, so it only ever holds one root-to-leaf path — which is why recursion depth is &lt;code&gt;n + 1&lt;/code&gt;, not &lt;code&gt;2ⁿ&lt;/code&gt;.&lt;/p&gt;
  &lt;table class=&quot;cx&quot;&gt;
    &lt;tr&gt;&lt;th&gt;Quantity&lt;/th&gt;&lt;th&gt;For n = 3&lt;/th&gt;&lt;th&gt;In general&lt;/th&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td&gt;Subsets produced&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;2ⁿ&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td&gt;Nodes in the tree&lt;/td&gt;&lt;td&gt;15&lt;/td&gt;&lt;td&gt;2ⁿ⁺¹ − 1&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td&gt;Max frames alive at once&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;n + 1&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td&gt;Time&lt;/td&gt;&lt;td&gt;~24 ops&lt;/td&gt;&lt;td&gt;O(n · 2ⁿ)&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td&gt;Stack space&lt;/td&gt;&lt;td&gt;4 frames&lt;/td&gt;&lt;td&gt;O(n)&lt;/td&gt;&lt;/tr&gt;
  &lt;/table&gt;
  &lt;p style=&quot;margin-top:16px&quot;&gt;Total steps in this trace: &lt;strong id=&quot;totalsteps&quot;&gt;—&lt;/strong&gt;. Every one of them is a push, a pop, an add, a remove, or a record. There is nothing else in backtracking.&lt;/p&gt;

  &lt;div class=&quot;pull&quot;&gt;Choose. Explore. Un-choose. The stack handles the rest.&lt;/div&gt;
&lt;/section&gt;

&lt;/div&gt;

&lt;script&gt;
(function(){
  &quot;use strict&quot;;
  var NUMS = [1,2,3], N = NUMS.length;

  /* ---------- build the trace ---------- */
  var steps = [];
  var cur = [], results = [], path = [], stack = [], done = [], recorded = [];

  function bagOf(key){ var o=[]; for(var i=0;i&lt;key.length;i++){ if(key[i]===&quot;T&quot;) o.push(NUMS[i]); } return o; }
  function fmt(a){ return a.length ? &quot;[&quot;+a.join(&quot;, &quot;)+&quot;]&quot; : &quot;[ ]&quot;; }

  function snap(kind, line, msg){
    steps.push({
      kind:kind, line:line, msg:msg,
      cur:cur.slice(),
      results:results.map(function(r){return r.slice();}),
      stack:stack.map(function(f){return {index:f.index, node:f.node, paused:f.paused};}),
      active: stack.length ? stack[stack.length-1].node : null,
      done: done.slice(),
      recorded: recorded.slice()
    });
  }

  function go(index, viaLine, viaMsg){
    stack.push({index:index, node:path.join(&quot;&quot;), paused:null});
    snap(&quot;push&quot;, viaLine, viaMsg);

    if(index === N){
      results.push(cur.slice());
      recorded.push(path.join(&quot;&quot;));
      snap(&quot;record&quot;, 3, &quot;Base case: no decisions left. Record &quot;+fmt(cur)+&quot; into results.&quot;);
      var leaf = stack.pop();
      done.push(leaf.node);
      snap(&quot;pop&quot;, 4, &quot;return; — POP findSubsets(&quot;+index+&quot;). Back inside findSubsets(&quot;+(index-1)+&quot;).&quot;);
      return;
    }

    var v = NUMS[index];

    cur.push(v); path.push(&quot;T&quot;);
    snap(&quot;add&quot;, 6, &quot;TAKE &quot;+v+&quot; → current is now &quot;+fmt(cur)+&quot;.&quot;);
    stack[stack.length-1].paused = 7;
    go(index+1, 7, &quot;Line 7: call findSubsets(&quot;+(index+1)+&quot;) — PUSH a frame and explore the TAKE branch.&quot;);
    stack[stack.length-1].paused = null;
    path.pop(); cur.pop();
    snap(&quot;remove&quot;, 8, &quot;BACKTRACK: remove &quot;+v+&quot; → current is back to &quot;+fmt(cur)+&quot;. Ready for the other branch.&quot;);

    path.push(&quot;S&quot;);
    stack[stack.length-1].paused = 9;
    go(index+1, 9, &quot;Line 9: call findSubsets(&quot;+(index+1)+&quot;) — PUSH a frame and explore the SKIP branch.&quot;);
    stack[stack.length-1].paused = null;
    path.pop();

    var f = stack.pop();
    done.push(f.node);
    snap(&quot;pop&quot;, 10, &quot;Both branches of element &quot;+v+&quot; are done. POP findSubsets(&quot;+index+&quot;).&quot;);
  }

  go(0, 1, &quot;main calls findSubsets(0) — the first frame is pushed onto the stack.&quot;);
  steps.push({kind:&quot;done&quot;, line:null, msg:&quot;Finished. All 8 subsets found, stack empty.&quot;,
    cur:[], results:results.map(function(r){return r.slice();}), stack:[], active:null,
    done:done.slice(), recorded:recorded.slice()});

  /* ---------- draw the tree ---------- */
  var SVGNS=&quot;http://www.w3.org/2000/svg&quot;;
  var W=980, ROW=[54,178,302,426], LEAFY=500;
  var svg=document.getElementById(&quot;tree&quot;);
  var nodeEls={}, edgeEls={}, labEls={};

  function keyAt(depth,i){
    var s=&quot;&quot;; for(var b=depth-1;b&gt;=0;b--){ s += ((i&gt;&gt;b)&amp;1) ? &quot;S&quot; : &quot;T&quot;; } return s;
  }
  function xOf(depth,i){ return (i+0.5)/Math.pow(2,depth)*W; }

  function el(name,attrs){
    var e=document.createElementNS(SVGNS,name);
    for(var k in attrs){ e.setAttribute(k,attrs[k]); }
    return e;
  }

  // level labels
  [[&quot;decide 1&quot;,0],[&quot;decide 2&quot;,1],[&quot;decide 3&quot;,2],[&quot;nothing left&quot;,3]].forEach(function(p){
    var t=el(&quot;text&quot;,{x:6,y:ROW[p[1]]-30,class:&quot;lvl&quot;}); t.textContent=p[0]; svg.appendChild(t);
  });

  // edges first
  for(var d=0; d&lt;3; d++){
    for(var i=0;i&lt;Math.pow(2,d);i++){
      var px=xOf(d,i), py=ROW[d];
      for(var b=0;b&lt;2;b++){
        var ci=i*2+b, cx=xOf(d+1,ci), cy=ROW[d+1];
        var ck=keyAt(d+1,ci);
        var midY=(py+18+cy-18)/2;
        var pth=el(&quot;path&quot;,{d:&quot;M&quot;+px+&quot;,&quot;+(py+18)+&quot; C&quot;+px+&quot;,&quot;+midY+&quot; &quot;+cx+&quot;,&quot;+midY+&quot; &quot;+cx+&quot;,&quot;+(cy-18), class:&quot;edge&quot;});
        svg.appendChild(pth); edgeEls[ck]=pth;
        var lab=el(&quot;text&quot;,{x:(px+cx)/2 + (b===0?-4:4), y:midY+4, class:&quot;e-lab&quot;});
        lab.textContent=(b===0?&quot;take &quot;:&quot;skip &quot;)+NUMS[d];
        svg.appendChild(lab); labEls[ck]=lab;
      }
    }
  }
  // nodes
  for(var d2=0; d2&lt;4; d2++){
    for(var j=0;j&lt;Math.pow(2,d2);j++){
      var k=keyAt(d2,j), x=xOf(d2,j), y=ROW[d2];
      var g=el(&quot;g&quot;,{});
      var r=el(&quot;rect&quot;,{x:x-40,y:y-17,width:80,height:34,rx:7,class:&quot;n-box&quot;});
      var t=el(&quot;text&quot;,{x:x,y:y+1,class:&quot;n-txt&quot;});
      t.textContent=fmt(bagOf(k)).replace(/, /g,&quot;,&quot;);
      g.appendChild(r); g.appendChild(t); svg.appendChild(g);
      nodeEls[k]={rect:r,text:t};
    }
  }
  // leaf caption
  var cap=el(&quot;text&quot;,{x:W/2,y:LEAFY+18,class:&quot;lvl&quot;,&quot;text-anchor&quot;:&quot;middle&quot;});
  cap.textContent=&quot;THE 8 BOTTOM NODES ARE THE 8 SUBSETS&quot;;
  svg.appendChild(cap);

  /* ---------- render a step ---------- */
  var stackEl=document.getElementById(&quot;stack&quot;),
      bagEl=document.getElementById(&quot;bag&quot;),
      resEl=document.getElementById(&quot;results&quot;),
      cntEl=document.getElementById(&quot;counter&quot;),
      tagEl=document.getElementById(&quot;tag&quot;),
      msgEl=document.getElementById(&quot;msg&quot;),
      codeEl=document.getElementById(&quot;code&quot;),
      stepEl=document.getElementById(&quot;stepcount&quot;);

  var idx=0, timer=null;
  document.getElementById(&quot;totalsteps&quot;).textContent = (steps.length - 1);

  function render(){
    var s=steps[idx];

    // tree
    var onPath={};
    if(s.active!==null){ for(var q=0;q&lt;=s.active.length;q++){ onPath[s.active.slice(0,q)]=true; } }
    var doneSet={}; s.done.forEach(function(k){doneSet[k]=true;});
    var recSet={}; s.recorded.forEach(function(k){recSet[k]=true;});

    Object.keys(nodeEls).forEach(function(k){
      var c=&quot;n-box&quot;;
      if(doneSet[k]) c+=&quot; done&quot;;
      if(recSet[k]) c+=&quot; rec&quot;;
      if(onPath[k]) c+=&quot; path&quot;;
      if(k===s.active) c+=&quot; active&quot;;
      nodeEls[k].rect.setAttribute(&quot;class&quot;,c);
      nodeEls[k].text.setAttribute(&quot;class&quot;, (doneSet[k] &amp;&amp; !onPath[k]) ? &quot;n-txt dim&quot; : &quot;n-txt&quot;);
    });
    Object.keys(edgeEls).forEach(function(k){
      var on = onPath[k];
      edgeEls[k].setAttribute(&quot;class&quot;,&quot;edge&quot;+(on?&quot; path&quot;:(doneSet[k]?&quot; done&quot;:&quot;&quot;)));
      labEls[k].setAttribute(&quot;class&quot;,&quot;e-lab&quot;+(on?&quot; path&quot;:&quot;&quot;));
    });

    // stack (top first)
    stackEl.innerHTML=&quot;&quot;;
    if(s.stack.length===0){
      var e=document.createElement(&quot;div&quot;); e.className=&quot;empty&quot;;
      e.textContent = (s.kind===&quot;done&quot;) ? &quot;empty — the program is finished&quot; : &quot;empty — nothing called yet&quot;;
      stackEl.appendChild(e);
    } else {
      var lab=document.createElement(&quot;div&quot;); lab.className=&quot;toplab&quot;; lab.textContent=&quot;↑ top — executing now&quot;;
      stackEl.appendChild(lab);
      for(var i=s.stack.length-1;i&gt;=0;i--){
        var f=s.stack[i];
        var d=document.createElement(&quot;div&quot;);
        d.className=&quot;frame&quot;+(i===s.stack.length-1?&quot; live&quot;:&quot;&quot;);
        var fn=document.createElement(&quot;div&quot;); fn.className=&quot;fn&quot;;
        fn.textContent=&quot;findSubsets(index = &quot;+f.index+&quot;)&quot;;
        var m=document.createElement(&quot;div&quot;); m.className=&quot;meta&quot;;
        m.textContent = (i===s.stack.length-1)
          ? &quot;running · path &quot;+(f.node===&quot;&quot;?&quot;root&quot;:f.node.split(&quot;&quot;).map(function(c,ix){return (c===&quot;T&quot;?&quot;take &quot;:&quot;skip &quot;)+NUMS[ix];}).join(&quot; → &quot;))
          : &quot;paused at line &quot;+f.paused+&quot; (&quot;+(f.paused===7?&quot;take&quot;:&quot;skip&quot;)+&quot; branch)&quot;;
        d.appendChild(fn); d.appendChild(m);
        stackEl.appendChild(d);
      }
    }
    var floor=document.createElement(&quot;div&quot;); floor.className=&quot;basefloor&quot;;
    floor.textContent=&quot;bottom of stack · main()&quot;;
    stackEl.appendChild(floor);

    // bag
    bagEl.innerHTML=&quot;&quot;;
    if(s.cur.length===0){ var n=document.createElement(&quot;span&quot;); n.className=&quot;none&quot;; n.textContent=&quot;empty&quot;; bagEl.appendChild(n); }
    else s.cur.forEach(function(v){ var c=document.createElement(&quot;span&quot;); c.className=&quot;chip&quot;; c.textContent=v; bagEl.appendChild(c); });

    // results
    resEl.innerHTML=&quot;&quot;;
    s.results.forEach(function(r,i2){
      var li=document.createElement(&quot;li&quot;);
      li.textContent=fmt(r);
      if(s.kind===&quot;record&quot; &amp;&amp; i2===s.results.length-1) li.className=&quot;fresh&quot;;
      resEl.appendChild(li);
    });
    cntEl.textContent=s.results.length+&quot; / 8 recorded&quot;;

    // narration + code
    var labels={push:&quot;push&quot;,pop:&quot;pop&quot;,add:&quot;take&quot;,remove:&quot;backtrack&quot;,record:&quot;record&quot;,done:&quot;done&quot;};
    tagEl.className=&quot;tag &quot;+(s.kind===&quot;add&quot;?&quot;add&quot;:s.kind);
    tagEl.textContent=labels[s.kind]||s.kind;
    msgEl.textContent=s.msg;

    var lines=codeEl.querySelectorAll(&quot;.ln&quot;);
    for(var L=0;L&lt;lines.length;L++){
      var on = s.line &amp;&amp; Number(lines[L].getAttribute(&quot;data-l&quot;))===s.line;
      lines[L].className=&quot;ln&quot;+(on?&quot; on&quot;+(s.kind===&quot;remove&quot;?&quot; warm&quot;:(s.kind===&quot;record&quot;?&quot; good&quot;:&quot;&quot;)):&quot;&quot;);
    }
    stepEl.textContent=&quot;step &quot;+(idx+1)+&quot; / &quot;+steps.length;
    document.getElementById(&quot;prev&quot;).disabled = idx===0;
    document.getElementById(&quot;next&quot;).disabled = idx===steps.length-1;
  }

  function stop(){ if(timer){ clearInterval(timer); timer=null; document.getElementById(&quot;play&quot;).textContent=&quot;▶ Play&quot;; } }
  function start(){
    if(idx&gt;=steps.length-1) idx=0;
    timer=setInterval(function(){
      if(idx&gt;=steps.length-1){ stop(); return; }
      idx++; render();
    },850);
    document.getElementById(&quot;play&quot;).textContent=&quot;❙❙ Pause&quot;;
  }

  document.getElementById(&quot;next&quot;).onclick=function(){ stop(); if(idx&lt;steps.length-1){idx++;render();} };
  document.getElementById(&quot;prev&quot;).onclick=function(){ stop(); if(idx&gt;0){idx--;render();} };
  document.getElementById(&quot;reset&quot;).onclick=function(){ stop(); idx=0; render(); };
  document.getElementById(&quot;play&quot;).onclick=function(){ timer?stop():start(); };

  var marks={};
  for(var t2=0;t2&lt;steps.length;t2++){
    var st=steps[t2];
    if(marks[&quot;first-add&quot;]===undefined &amp;&amp; st.kind===&quot;add&quot;) marks[&quot;first-add&quot;]=t2;
    if(marks[&quot;deepest&quot;]===undefined &amp;&amp; st.stack.length===N+1) marks[&quot;deepest&quot;]=t2;
    if(marks[&quot;first-record&quot;]===undefined &amp;&amp; st.kind===&quot;record&quot;) marks[&quot;first-record&quot;]=t2;
    if(marks[&quot;first-remove&quot;]===undefined &amp;&amp; st.kind===&quot;remove&quot;) marks[&quot;first-remove&quot;]=t2;
    if(st.kind===&quot;record&quot; &amp;&amp; st.cur.length===0) marks[&quot;empty-set&quot;]=t2;
  }
  Array.prototype.forEach.call(document.querySelectorAll(&quot;[data-jump]&quot;),function(b){
    b.onclick=function(){ stop(); var m=marks[b.getAttribute(&quot;data-jump&quot;)]; if(m!==undefined){ idx=m; render(); } };
  });

  document.addEventListener(&quot;keydown&quot;,function(e){
    var tag=(e.target&amp;&amp;e.target.tagName)||&quot;&quot;;
    if(tag===&quot;INPUT&quot;||tag===&quot;TEXTAREA&quot;) return;
    if(e.key===&quot;ArrowRight&quot;){ stop(); if(idx&lt;steps.length-1){idx++;render();} e.preventDefault(); }
    else if(e.key===&quot;ArrowLeft&quot;){ stop(); if(idx&gt;0){idx--;render();} e.preventDefault(); }
    else if(e.key===&quot; &quot;){ timer?stop():start(); e.preventDefault(); }
  });

  render();
})();
&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;
</description><link>http://shanssolution.blogspot.com/2026/08/leetcode-78-subsets.html</link><author>noreply@blogger.com (SHAN&#39;S SOLUTION)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7285521086390419193.post-8499066041431691103</guid><pubDate>Wed, 17 May 2023 17:18:00 +0000</pubDate><atom:updated>2023-05-17T10:25:13.930-07:00</atom:updated><title>Download binaries like pom, jar and dependencies from an artifactory and save it in a local directory | Migrate dependencies from one repository to another | Using maven , pom.xml</title><description>&lt;div&gt;&lt;b&gt;Structure of pom.xml&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
  &lt;p&gt;&lt;a href=&quot;https://github.com/shankhadeepk/dependencydownloader/blob/main/pom.xml&quot;&gt;https://github.com/shankhadeepk/dependencydownloader/blob/main/pom.xml&lt;/a&gt;
  &lt;/p&gt;
  &lt;p&gt;
   Then go the location where the project is and run command
    &lt;/p&gt;
    &lt;p&gt;
      &lt;code&gt;mvn clean install&lt;/code&gt;
  &lt;/p&gt;
  &lt;p&gt;
   A folder will be created at the location ([project]/target/[location as shown below]) which is given by following properties in the pom.xml&lt;/p&gt;
  &lt;p&gt;
    &lt;code&gt;
		&amp;lt;outputDirectory&amp;gt;${project.build.directory}/lib&amp;lt;/outputDirectory&amp;gt;    
    &lt;/code&gt;
  
  &lt;/p&gt;
&lt;/div&gt;
</description><link>http://shanssolution.blogspot.com/2023/05/download-binaries-like-pom-jar-and.html</link><author>noreply@blogger.com (SHAN&#39;S SOLUTION)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7285521086390419193.post-5362881563124954650</guid><pubDate>Wed, 10 Feb 2016 15:08:00 +0000</pubDate><atom:updated>2016-02-10T07:15:45.673-08:00</atom:updated><title>Enable newly installed java for your favorite browsers</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;span style=&quot;font-family: verdana, sans-serif;&quot;&gt;&lt;b&gt;For Mozilla&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: verdana, sans-serif;&quot;&gt;&lt;b&gt;64 bit Jdk&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: verdana, sans-serif;&quot;&gt;sudo ln -s /usr/lib/jvm/jdk1.8.0/jre/lib/amd64/libnpjp2.so /usr/lib/mozilla/plugins&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: verdana, sans-serif;&quot;&gt;&lt;b&gt;32 bit jdk&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: verdana, sans-serif;&quot;&gt;sudo ln -s /usr/lib/jvm/jdk1.8.0/jre/lib/i386/libnpjp2.so /usr/lib/mozilla/plugins&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: verdana, sans-serif;&quot;&gt;&lt;b&gt;For Chrome&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: verdana, sans-serif;&quot;&gt;&lt;b&gt;64 bit jdk&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: verdana, sans-serif;&quot;&gt;sudo mkdir /opt/google/chrome/plugins&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: verdana, sans-serif;&quot;&gt;sudo ln -s /usr/lib/jvm/jdk1.8.0/jre/lib/amd64/libnpjp2.so /opt/google/chrome/plugins&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: verdana, sans-serif;&quot;&gt;&lt;b&gt;32 bit jdk&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: verdana, sans-serif;&quot;&gt;sudo mkdir /opt/google/chrome/plugins&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: verdana, sans-serif;&quot;&gt;sudo ln -s /usr/lib/jvm/jdk1.8.0/jre/lib/i386/libnpjp2.so /opt/google/chrome/plugins&lt;/span&gt;&lt;/div&gt;
</description><link>http://shanssolution.blogspot.com/2016/02/enable-newly-installed-java-for-your.html</link><author>noreply@blogger.com (SHAN&#39;S SOLUTION)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7285521086390419193.post-7470327201278851544</guid><pubDate>Wed, 10 Feb 2016 15:01:00 +0000</pubDate><atom:updated>2016-02-10T07:17:21.586-08:00</atom:updated><title>Install any oracle java in your Ubuntu 15.10</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Step 1: Download the preferable jdk from oracle web site. Here we will use&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;b&gt;jdk version as jdk-8-linux-x64&lt;/b&gt;&lt;br /&gt;
Step 2: Keep the tar.gz file in a folder of your choice in /home/ directory.&lt;br /&gt;
Step 3: Extract the tar.gz file &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;b&gt; tar -xvzf jdk-8-linux-x64.tar.gz&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Step 4: Create JVM folder in /usr/lib folder like: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;b&gt; sudo mkdir /usr/lib/jvm&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Step 5: Move the extracted jdk to the above location like :&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;b&gt;sudo mv jdk1.8.0 /usr/lib/jvm/jdk1.8.0&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Step 6: Install new java sources in system like:&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;b&gt;sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.8.0/bin/javac 1&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.8.0/bin/java 1&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sudo update-alternatives --install /usr/bin/javaws javaws /usr/lib/jvm/jdk1.8.0/bin/javaws&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Step 7: Choose default Java&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;b&gt;sudo update-alternatives --config javac&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sudo update-alternatives --config java&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sudo update-alternatives --config javaws&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Step 8: Check the java version.&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;b&gt; java -version&lt;/b&gt;&lt;/div&gt;
</description><link>http://shanssolution.blogspot.com/2016/02/install-any-oracle-java-in-your-ubuntu.html</link><author>noreply@blogger.com (SHAN&#39;S SOLUTION)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7285521086390419193.post-2492449954401655788</guid><pubDate>Wed, 04 Feb 2015 14:19:00 +0000</pubDate><atom:updated>2015-02-04T06:19:46.369-08:00</atom:updated><title>Change the Heap Size and Stack size in Java&#39;s JVM</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
In order to change the heap size, there are two parameters that need to be updated :&lt;br /&gt;
&lt;br /&gt;
-Xms512m&lt;br /&gt;
-Xmx1024m&lt;br /&gt;
&lt;br /&gt;
These parameters can be found in eclipse.ini file in the eclipse folder.&lt;br /&gt;
&lt;br /&gt;
To change the stack size, there is a parameter that need to be updated :&lt;br /&gt;
&lt;br /&gt;
-Xss512m&lt;/div&gt;
</description><link>http://shanssolution.blogspot.com/2015/02/change-heap-size-and-stack-size-in.html</link><author>noreply@blogger.com (SHAN&#39;S SOLUTION)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7285521086390419193.post-7571871304235570785</guid><pubDate>Sun, 09 Mar 2014 20:14:00 +0000</pubDate><atom:updated>2015-02-04T06:26:22.869-08:00</atom:updated><title>Code for reversing a string in Java</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
package com.reverse;&lt;br /&gt;
&lt;br /&gt;
public class ReverseWords {&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;public static String reverseTheString(String input)&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;{&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;if(input.length()&amp;gt;1)&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;return input.substring(input.length()-1, input.length()) + reverseTheString(input.substring(0,input.length()-1));&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;else&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;{&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;return input.substring(0, 1);&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;}&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;}&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;public static void main(String args[])&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;{&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;System.out.println(reverseTheString(&quot;hello&quot;));&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;}&lt;br /&gt;
&lt;br /&gt;
}&lt;/div&gt;
</description><link>http://shanssolution.blogspot.com/2014/03/code-for-reversing-string-in-java.html</link><author>noreply@blogger.com (SHAN&#39;S SOLUTION)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7285521086390419193.post-5243862164601667989</guid><pubDate>Sat, 14 Jan 2012 14:03:00 +0000</pubDate><atom:updated>2012-01-14T06:09:00.239-08:00</atom:updated><title>Enable java plugin for firefox in Ubuntu</title><description>The java run time environment can be downloaded from the java site.

Run the command for make the plugin work for Firefox in Ubuntu 
&lt;br&gt;

&lt;b&gt;$cd /usr/lib/mozilla/plugins&lt;b&gt;&lt;br&gt;

&lt;b&gt;$sudo ln -s /usr/lib/jvm/jre1.6.0_30/plugin/i386/ns7/libjavaplugin_oji.so&lt;b&gt;</description><link>http://shanssolution.blogspot.com/2012/01/enable-java-plugin-for-firefox-in.html</link><author>noreply@blogger.com (SHAN&#39;S SOLUTION)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7285521086390419193.post-5463557339318711664</guid><pubDate>Mon, 08 Nov 2010 19:59:00 +0000</pubDate><atom:updated>2011-04-06T08:26:50.749-07:00</atom:updated><title>Use Tata photon + in Ubuntu 10.04</title><description>&lt;div style=&quot;text-align: justify;&quot;&gt;
unplug and plug Tata photon + and execute the command
&lt;br&gt;
$ sudo usb_modeswitch -c /etc/usb_modeswitch.d/12d1:1446
&lt;br&gt;
The usb_modeswitch needs to be installed in the ubuntu 10.04
&lt;/div&gt;</description><link>http://shanssolution.blogspot.com/2010/11/use-tata-photon-in-ubuntu-1004.html</link><author>noreply@blogger.com (SHAN&#39;S SOLUTION)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7285521086390419193.post-9118620384378027728</guid><pubDate>Sat, 23 Oct 2010 18:58:00 +0000</pubDate><atom:updated>2010-10-23T12:01:00.315-07:00</atom:updated><title>Play AVI,MP3 and all media file in UBUNTU</title><description>&lt;p&gt;&lt;b&gt;$ sudo wget  --output-document=/etc/apt/sources.list.d/medibuntu.list  http://www.medibuntu.org/sources.list.d/$(lsb_release -cs).list&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;&lt;b&gt;$ sudo apt-get --quiet update&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;&lt;b&gt;$ sudo apt-get --yes --quiet --allow-unauthenticated install medibuntu-keyring&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;&lt;b&gt;$ sudo apt-get --quiet update&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;&lt;b&gt;$ sudo apt-get install non-free-codecs&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;&lt;b&gt;$ sudo apt-get install libdvdcss2
&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;$ &lt;b&gt;sudo apt-get install w32codecs&lt;/b&gt;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;&lt;b&gt;$ sudo apt-get install vlc mplayer&lt;/b&gt;&lt;/p&gt;</description><link>http://shanssolution.blogspot.com/2010/10/play-avimp3-and-all-media-file-in.html</link><author>noreply@blogger.com (SHAN&#39;S SOLUTION)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7285521086390419193.post-1900889128690450063</guid><pubDate>Wed, 15 Apr 2009 06:41:00 +0000</pubDate><atom:updated>2009-04-14T23:49:24.913-07:00</atom:updated><title>Download Mplayer</title><description>http://rpmfind.net/linux/rpm2html/search.php?query=mplayer-skins&amp;amp;submit=Search+...&amp;amp;system=&amp;amp;arch=
&lt;br /&gt;
http://rpmfusion.org/Configuration/&lt;br /&gt;
http://www.mjmwired.net/resources/mplayer-fedora.html#config2</description><link>http://shanssolution.blogspot.com/2009/04/download-mplayer.html</link><author>noreply@blogger.com (SHAN&#39;S SOLUTION)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7285521086390419193.post-2849194021466726029</guid><pubDate>Tue, 18 Nov 2008 01:07:00 +0000</pubDate><atom:updated>2009-03-10T08:06:05.753-07:00</atom:updated><title>Change Repository from Livna to Freshrpms in FEDORA 8</title><description>Follow some simple steps:
&lt;br /&gt;
# sudo rpm -hiv http://ftp.freshrpms.net/pub/freshrpms/fedora/linux/8/freshrpms-release/freshrpms-release-1.1-1.fc.noarch.rpm
&lt;br /&gt;
#sudo rpm --import http://freshrpms.net/RPM-GPG-KEY-freshrpms</description><link>http://shanssolution.blogspot.com/2008/11/change-repository-from-livna-to.html</link><author>noreply@blogger.com (SHAN&#39;S SOLUTION)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7285521086390419193.post-4404365588202576080</guid><pubDate>Sat, 15 Nov 2008 08:13:00 +0000</pubDate><atom:updated>2009-03-10T08:09:23.805-07:00</atom:updated><title>Install Flash Player for firefox 64 bit in FEDORA 8</title><description>&lt;span style=&quot;font-size:100%;&quot;&gt;Just follow some important steps as follows:

&lt;/span&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span class=&quot;HL&quot;&gt;&lt;pre class=&quot;HL&quot;&gt;&lt;span style=&quot;font-family:verdana;&quot;&gt;# rpm -ivh http://linuxdownload.adobe.com/adobe-release/
  adobe-release-i386-1.0-1.noarch.rpm

# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-adobe-linux

# mkdir -p /usr/lib/mozilla/plugins

# yum install nspluginwrapper.{i386,x86_64} pulseaudio-lib.i386

# yum install flash-plugin

# mozilla-plugin-config -i -g -v&lt;/span&gt;
&lt;/pre&gt;&lt;/span&gt;&lt;/span&gt;</description><link>http://shanssolution.blogspot.com/2008/11/install-flash-plyaer-for-firefox-64-bit.html</link><author>noreply@blogger.com (SHAN&#39;S SOLUTION)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7285521086390419193.post-3362445815966238004</guid><pubDate>Sun, 06 Jan 2008 19:53:00 +0000</pubDate><atom:updated>2008-01-06T12:05:17.703-08:00</atom:updated><title>Having problem while using intel 945GCNL motherboard? Damn the Fedora core 6 cannot detect the ethernet card! ......Well here is the solution</title><description>If you have Windows XP or Windows 98 in your PC with Fedora Core ,then go to Win and see the hardware manager .Search for the name of the ethernet card.Find a suitable driver from the net.Install the driver in Fedora Core 6.So,your ethernet card is ready.....njoy the net.

In case of INTEL 945GCNL Its
Realtek &lt;span class=&quot;etxt-bold-006699&quot;&gt;&lt;/span&gt;&lt;a name=&quot;RTL8111B/RTL8168B/RTL8111/RTL8168/RTL8111C&quot;&gt;RTL8168/8111
&lt;/a&gt;&lt;a href=&quot;http://www.realtek.com.tw/downloads/downloadsView.aspx?Langid=1&amp;amp;PNid=13&amp;amp;PFid=5&amp;amp;Level=5&amp;amp;Conn=4&amp;amp;DownTypeID=3&amp;amp;GetDown=false&quot;&gt; To download the driver click here.&lt;/a&gt;</description><link>http://shanssolution.blogspot.com/2008/01/having-problem-while-using-intel.html</link><author>noreply@blogger.com (SHAN&#39;S SOLUTION)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7285521086390419193.post-5548820391441980366</guid><pubDate>Mon, 03 Sep 2007 08:14:00 +0000</pubDate><atom:updated>2007-09-05T01:11:31.667-07:00</atom:updated><title>CONFIGURATION OF BSNL DATAONE BROADBAND SERVICE [using Huawei SmartAX MT880 ADSL router]</title><description>&lt;span style=&quot;font-weight: bold;&quot;&gt;The router configuration is specific to Huawei SmartAX MT880 ADSL router&lt;/span&gt;.

&lt;span style=&quot;font-weight: bold;&quot;&gt;System Configuration&lt;/span&gt;
&lt;br /&gt;&lt;br /&gt;
Login as &lt;span style=&quot;font-weight: bold;&quot;&gt;root&lt;/span&gt;.&lt;br /&gt;
Select System Settings &gt; Network or system-config-network-gui on terminal.

&lt;br /&gt;&lt;br /&gt;
You&#39;ll see your NIC listed there. Select it and click Edit.


&lt;br /&gt;
Check &lt;span style=&quot;font-weight: bold;&quot;&gt;Activate device&lt;/span&gt; when computer starts and Allow all users to enable and disable this device.

&lt;br /&gt;
Select &quot;&lt;span style=&quot;font-weight: bold;&quot;&gt;Statically set IP addresses&lt;/span&gt;&quot;

&lt;br /&gt;&lt;br /&gt;
Enter the following values
&lt;br /&gt;
Code:
&lt;br /&gt;&lt;br /&gt;
Address : 192.168.1.2
&lt;br /&gt;
Subnet Mask : 255.255.255.0
&lt;br /&gt;
Default gateway address : 192.168.1.1

&lt;br /&gt;&lt;br /&gt;
Press &lt;span style=&quot;font-weight: bold;&quot;&gt;OK&lt;/span&gt;.

&lt;br /&gt;
Press &lt;span style=&quot;font-weight: bold;&quot;&gt;Activate&lt;/span&gt;.

&lt;br /&gt;&lt;br /&gt;
open &lt;span style=&quot;font-weight: bold;&quot;&gt;/etc/resolv.conf&lt;/span&gt; in your favourite text editor

&lt;br /&gt;
Append the following lines.

&lt;br /&gt;&lt;br /&gt;
Code:
&lt;br /&gt;
nameserver 61.1.96.69
&lt;br /&gt;
nameserver 61.1.96.71
&lt;br /&gt;&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Router Configuration
&lt;/span&gt;
&lt;br /&gt;&lt;br /&gt;
Now start your &lt;span style=&quot;font-weight: bold;&quot;&gt;Web Browser&lt;/span&gt; and type &lt;span style=&quot;font-weight: bold;&quot;&gt;192.168.1.1&lt;/span&gt; in the address bar and press &lt;span style=&quot;font-weight: bold;&quot;&gt;enter&lt;/span&gt;.

&lt;br /&gt;&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;PS: Enable JavaScript in your browser, if not.
&lt;/span&gt;
&lt;br /&gt;&lt;br /&gt;
It will ask for username and password. Use admin as username and password.


&lt;br /&gt;&lt;br /&gt;
Click on &lt;span style=&quot;font-weight: bold;&quot;&gt;WAN Settings &lt;/span&gt;under Home in the left pane.

&lt;br /&gt;
If not set, enter the following values

&lt;br /&gt;&lt;br /&gt;
Code:

&lt;br /&gt;
PVC No: PVC-0
&lt;br /&gt;
Wan Type: PPP
&lt;br /&gt;
Connection Type: PPPoE VPI/VCI: 0 / 35
&lt;br /&gt;
Default Route : Enabled PPP
&lt;br /&gt;
Username: yourusername
&lt;br /&gt;
Password: yourpassword
&lt;br /&gt;
Use DNS: Enabled
&lt;br /&gt;
Max Idle Time: Always On

&lt;br /&gt;&lt;br /&gt;
Click &lt;span style=&quot;font-weight: bold;&quot;&gt;Apply

&lt;br /&gt;
&lt;/span&gt;When asking for save and reboot, select &lt;span style=&quot;font-weight: bold;&quot;&gt;No&lt;/span&gt; and Press &lt;span style=&quot;font-weight: bold;&quot;&gt;OK&lt;/span&gt;.

&lt;br /&gt;&lt;br /&gt;
Now click on &lt;span style=&quot;font-weight: bold;&quot;&gt;DNS &lt;/span&gt;under Home on left pane.

&lt;br /&gt;
If not set, enter the following values

&lt;br /&gt;
Code:&lt;br /&gt;

&lt;br /&gt;
DNS Status: Enabled
&lt;br /&gt;
Primary DNS Address: 61.1.96.69
&lt;br /&gt;
Secondary DNS Address: 61.1.96.71


&lt;br /&gt;&lt;br /&gt;
Click &lt;span style=&quot;font-weight: bold;&quot;&gt;Apply
&lt;/span&gt;&lt;br /&gt;
When asking for save and reboot, select &lt;span style=&quot;font-weight: bold;&quot;&gt;No&lt;/span&gt; and Press &lt;span style=&quot;font-weight: bold;&quot;&gt;OK&lt;/span&gt;.

&lt;br /&gt;&lt;br /&gt;
Now click on &lt;span style=&quot;font-weight: bold;&quot;&gt;LAN Settings &lt;/span&gt;Under Advanced on left pane.

&lt;br /&gt;
If not set, enter the following values

&lt;br /&gt;
Code:&lt;br /&gt;

&lt;br /&gt;
IP Address: 192.168.1.1
&lt;br /&gt;
Subnet Mask: 255.255.255.0


&lt;br /&gt;&lt;br /&gt;
Click &lt;span style=&quot;font-weight: bold;&quot;&gt;Apply
&lt;/span&gt;&lt;br /&gt;
When asking for save and reboot, select &lt;span style=&quot;font-weight: bold;&quot;&gt;Yes &lt;/span&gt;and Press &lt;span style=&quot;font-weight: bold;&quot;&gt;OK&lt;/span&gt;.



&lt;br /&gt;&lt;br /&gt;
The device will reboot now. It will take about two minute or more.

&lt;br /&gt;&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Do not refresh or close the browser window while rebooting. It&#39;s better leave your computer alone while this operation.
&lt;/span&gt;&lt;br /&gt;

&lt;p&gt;After the device has been rebooted, refresh the page. Now scroll down and you should see the green light for LAN and WAN (PVC-0)Channels.&lt;/p&gt;

&lt;br /&gt;&lt;br /&gt;
Now click on &lt;span style=&quot;font-weight: bold;&quot;&gt;Diagnostics&lt;/span&gt; under Status on left pane.

&lt;br /&gt;&lt;br /&gt;
On Clicking &lt;span style=&quot;font-weight: bold;&quot;&gt;Submit&lt;/span&gt;, it will do a series of tests.

&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
Important thing is that the result of first 3 under Modem Connection Test must be PASS. Don&#39;t care others.



&lt;br /&gt;&lt;br /&gt;
Now, you&#39;re done. Your machine will be connected to the internet from next reboot onwards and will be always on. If you still prefer manual connect/disconnect, uncheck the Activate device when computer starts option from network configuration window. you can use the following commands

&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
for connecting -&lt;span style=&quot;font-weight: bold;&quot;&gt; ifup eth0&lt;/span&gt;
&lt;br /&gt;
for disconnecting -&lt;span style=&quot;font-weight: bold;&quot;&gt; ifdown eth0&lt;/span&gt;
&lt;br /&gt;
&lt;br /&gt;
provided the device name of your &lt;span style=&quot;font-weight: bold;&quot;&gt;NIC is eth0&lt;/span&gt;.
&lt;br /&gt;
You can create launchers on Desktop/Panel for the same.

&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
Reboot your machine and Enjoy DATAONE SERVICE!!!</description><link>http://shanssolution.blogspot.com/2007/09/configuration-of-bsnl-dataone-broadband_03.html</link><author>noreply@blogger.com (SHAN&#39;S SOLUTION)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7285521086390419193.post-8532142169372172259</guid><pubDate>Tue, 07 Aug 2007 22:53:00 +0000</pubDate><atom:updated>2007-08-19T18:12:39.866-07:00</atom:updated><title>The simplest way of checking BSNL DATAONE usage in Fedora Core</title><description>&lt;p&gt;I used IE 6 in Linux for checking my Dataone usage through Fedora Core 6.But,it would have been much better if I could check my usage through my Firefox Browser.I tried everything in Firefox and guess wat I finally solved it.Just click the link given below from ur FireFox browser and check ur monthly usage just u do in ur IE6 browser.&lt;/p&gt;
&lt;pre&gt;&lt;span style=&quot;font-size:130%;&quot;&gt;&lt;span style=&quot;;font-family:verdana;font-size:100%;&quot;  &gt;&lt;/span&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;a style=&quot;font-family: verdana;&quot; href=&quot;http://10.240.43.216/&quot;&gt;BSNL Broadband usage&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;;font-family:verdana;font-size:100%;&quot;  &gt; &lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;</description><link>http://shanssolution.blogspot.com/2007/08/simpleast-way-of-checking-bsnl-dataone.html</link><author>noreply@blogger.com (SHAN&#39;S SOLUTION)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7285521086390419193.post-1041957584003066892</guid><pubDate>Sun, 15 Jul 2007 19:45:00 +0000</pubDate><atom:updated>2015-02-04T06:10:47.997-08:00</atom:updated><title>Another Way To Check BSNL Dataone Usage</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;script type=&quot;text/javascript&quot;&gt;&lt;!-- google_ad_client = &quot;pub-7698384258040423&quot;; google_ad_width = 468; google_ad_height = 60; google_ad_format = &quot;468x60_as_rimg&quot;; google_cpa_choice = &quot;CAAQlYyYhAIaCEU_ZZsKwEZpKOm293MwAA&quot;; //&lt;/script&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
--&amp;gt;&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt; This has been helpful for me and hope will also help you.As I am using Fedora Core6 ,it has been difficult for me to check my account.Then I used the DataFox.But,the safest is IE for Linux.
&lt;/span&gt;&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;I know you people are not intrested in using IE in Linux but it really works in checking the Dataone Account safely.
&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;It&#39;s actually quite easy ,thanks to some very handy scripts from &lt;a href=&quot;http://www.tatanka.com.br/ies4linux/index-en.html&quot;&gt;IEs4Linux&lt;/a&gt;. Before you start you&#39;ll need to make sure you have &lt;span class=&quot;code&quot;&gt;wine&lt;/span&gt; and &lt;span class=&quot;code&quot;&gt;cabextract&lt;/span&gt; installed:
&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;# yum -y install wine cabextract&lt;br /&gt;$ gtar xzvf ies4linux-2.0.5.tar.gz&lt;br /&gt;$ cd ies4linux-2.0.5&lt;br /&gt;$ ./ies4linux&lt;br /&gt;Welcome, greg! I&#39;m IEs4Linux.&lt;br /&gt;I can install IE 6, 5.5 and 5.0 for you easily and quickly.&lt;br /&gt;You are just four &#39;enter&#39;s away from your IEs.
&lt;br /&gt;I&#39;ll ask you some questions now. Just answer y or n (default answer is the bold one)
&lt;br /&gt;IE 6 will be installed automatically.&lt;br /&gt;Do you want to install IE 5.5 SP2 too? [ y / n ] &lt;b&gt;y&lt;/b&gt;&lt;br /&gt;.&lt;br /&gt;.&lt;br /&gt;.&lt;br /&gt;IEs 4 Linux installations finished!
&lt;br /&gt;To run your IEs, type:&lt;br /&gt;ie6&lt;br /&gt;ie55&lt;br /&gt;ie5&lt;br /&gt;
Start the IE and open the famous portal for checking the &lt;a href=&quot;http://10.240.43.216/&quot;&gt;BSNL Broadband usage&lt;/a&gt; and
do as you used to do while using Windows.&lt;br /&gt;do as you used to do while using Windows.          &lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Verdana, sans-serif;&quot;&gt;Then just &lt;a href=&quot;http://www.tatanka.com.br/ies4linux/download.html&quot;&gt;download the latest script&lt;/a&gt;, extract and run it.  The example below is based on version &lt;b&gt;2.0.5&lt;/b&gt;, just adjust the version number as necessary.  Please note that you will want to install and run this as your own user, &lt;b&gt;NOT as root&lt;/b&gt;.  I used the defaults except that I installed all the versions of IE.  I do some web development and I always find myself needing to resolve some goofy incompatibilite&lt;/span&gt;s with older versions of IE.

&lt;span style=&quot;font-size: 130%;&quot;&gt;

&lt;/span&gt;&lt;/div&gt;
&lt;script src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot; type=&quot;text/javascript&quot;&gt;&lt;br /&gt;&lt;/script&gt;</description><link>http://shanssolution.blogspot.com/2007/07/another-way-to-check-dataone-usage.html</link><author>noreply@blogger.com (SHAN&#39;S SOLUTION)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7285521086390419193.post-5824028372644545430</guid><pubDate>Fri, 13 Jul 2007 09:17:00 +0000</pubDate><atom:updated>2007-07-13T02:22:02.904-07:00</atom:updated><title>DataFox to check the usage of Dataone Broad Band Service In LINUX</title><description>&lt;script type=&quot;text/javascript&quot;&gt;&lt;!-- google_ad_client = &quot;pub-7698384258040423&quot;; google_ad_width = 468; google_ad_height = 60; google_ad_format = &quot;468x60_as_rimg&quot;; google_cpa_choice = &quot;CAAQlYyYhAIaCEU_ZZsKwEZpKOm293MwAA&quot;; //--&gt;&lt;br /&gt;&lt;/script&gt; DataFox is an easy to use, &lt;a id=&quot;KonaLink1&quot; target=&quot;_top&quot; class=&quot;kLink&quot; style=&quot;text-decoration: underline ! important; position: static;&quot; href=&quot;http://broadbandforum.in/#&quot;&gt;&lt;span style=&quot;color: rgb(44, 119, 174) ! important;font-family:verdana,geneva,lucida,&amp;quot;;font-size:13;&quot;  &gt;&lt;span class=&quot;kLink&quot; style=&quot;color: rgb(44, 119, 174) ! important;font-family:verdana,geneva,lucida,&amp;quot;;font-size:13;&quot;  &gt;cross &lt;/span&gt;&lt;span class=&quot;kLink&quot; style=&quot;color: rgb(44, 119, 174) ! important;font-family:verdana,geneva,lucida,&amp;quot;;font-size:13;&quot;  &gt;platform&lt;/span&gt;&lt;/span&gt;&lt;/a&gt; &amp; customizable extension to Firefox, which you can use monitor your DataOne Broadband &lt;a id=&quot;KonaLink2&quot; target=&quot;_top&quot; class=&quot;kLink&quot; style=&quot;text-decoration: underline ! important; position: static;&quot; href=&quot;http://broadbandforum.in/#&quot;&gt;&lt;span style=&quot;color: rgb(44, 119, 174) ! important;font-family:verdana,geneva,lucida,&amp;quot;;font-size:13;&quot;  &gt;&lt;span class=&quot;kLink&quot; style=&quot;color: rgb(44, 119, 174) ! important;font-family:verdana,geneva,lucida,&amp;quot;;font-size:13;&quot;  &gt;bandwidth &lt;/span&gt;&lt;span class=&quot;kLink&quot; style=&quot;color: rgb(44, 119, 174) ! important;font-family:verdana,geneva,lucida,&amp;quot;;font-size:13;&quot;  &gt;usage&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;. It is &lt;b&gt;not a standalone program&lt;/b&gt; and will only work when installed as an extension to Firefox.
DataFox is non-intrusive and &lt;b&gt;does not monitor&lt;/b&gt; your network activity, it just obtains the information from the BSNL &lt;a id=&quot;KonaLink3&quot; target=&quot;_top&quot; class=&quot;kLink&quot; style=&quot;text-decoration: underline ! important; position: static;&quot; href=&quot;http://broadbandforum.in/#&quot;&gt;&lt;span style=&quot;color: rgb(44, 119, 174) ! important;font-family:verdana,geneva,lucida,&amp;quot;;font-size:13;&quot;  &gt;&lt;span class=&quot;kLink&quot; style=&quot;color: rgb(44, 119, 174) ! important;font-family:verdana,geneva,lucida,&amp;quot;;font-size:13;&quot;  &gt;website&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;. The collected info is displayed in your Firefox status bar area and additional info is displayed in a tooltip.
&lt;br /&gt;&lt;br /&gt;
Here are a couple of &lt;a id=&quot;KonaLink4&quot; target=&quot;_top&quot; class=&quot;kLink&quot; style=&quot;text-decoration: underline ! important; position: static;&quot; href=&quot;http://broadbandforum.in/#&quot;&gt;&lt;span style=&quot;color: rgb(44, 119, 174) ! important;font-family:verdana,geneva,lucida,&amp;quot;;font-size:13;&quot;  &gt;&lt;span class=&quot;kLink&quot; style=&quot;border-bottom: 1px solid rgb(44, 119, 174); color: rgb(44, 119, 174) ! important;font-family:verdana,geneva,lucida,&amp;quot;;font-size:13;color:#0000e0;&quot;   &gt;screenshots&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;:
&lt;img src=&quot;http://thegoan.com/datafox/withtt.png&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;

&lt;img src=&quot;http://thegoan.com/datafox/withmenu.png&quot; alt=&quot;&quot; border=&quot;0&quot; /&gt;

&lt;br /&gt;
I have been really irritated by the fact that I could not easily check my usage in Firefox, and I really would like to do so frequently, so I didn&#39;t want to use a separate program. Since Firefox is always open on my machine, writing a &lt;a id=&quot;KonaLink5&quot; target=&quot;_top&quot; class=&quot;kLink&quot; style=&quot;text-decoration: underline ! important; position: static;&quot; href=&quot;http://broadbandforum.in/#&quot;&gt;&lt;span style=&quot;color: rgb(44, 119, 174) ! important;font-family:verdana,geneva,lucida,&amp;quot;;font-size:13;&quot;  &gt;&lt;span class=&quot;kLink&quot; style=&quot;border-bottom: 1px solid rgb(44, 119, 174); color: rgb(44, 119, 174) ! important;font-family:verdana,geneva,lucida,&amp;quot;;font-size:13;color:#0000e0;&quot;   &gt;Firefox &lt;/span&gt;&lt;span class=&quot;kLink&quot; style=&quot;border-bottom: 1px solid rgb(44, 119, 174); color: rgb(44, 119, 174) ! important;font-family:verdana,geneva,lucida,&amp;quot;;font-size:13;color:#0000e0;&quot;   &gt;extension&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;  to do this seemed logical.
DataFox does not collect statistics, past records or draw graphics - not yet anyway. The goal here is simplicity, all that matters to me is how much &lt;a id=&quot;KonaLink6&quot; target=&quot;_top&quot; class=&quot;kLink&quot; style=&quot;text-decoration: underline ! important; position: static;&quot; href=&quot;http://broadbandforum.in/#&quot;&gt;&lt;span style=&quot;color: rgb(44, 119, 174) ! important;font-family:verdana,geneva,lucida,&amp;quot;;font-size:13;&quot;  &gt;&lt;span class=&quot;kLink&quot; style=&quot;color: rgb(44, 119, 174) ! important;font-family:verdana,geneva,lucida,&amp;quot;;font-size:13;&quot;  &gt;bandwidth&lt;/span&gt;&lt;/span&gt;&lt;/a&gt; I&#39;ve used and how much I have left until the month ends. I&#39;ve also added the ability to allow Firefox to browse the usage site directly, so if you need the details, you can get them - without switching to IE. DataFox obtains the info it displays from the summary provided in the BSNL site for a given month, it does not read all your records and make it&#39;s own totals.
&lt;br /&gt;&lt;br /&gt;
More info and the &lt;a id=&quot;KonaLink7&quot; target=&quot;_top&quot; class=&quot;kLink&quot; style=&quot;text-decoration: underline ! important; position: static;&quot; href=&quot;http://broadbandforum.in/#&quot;&gt;&lt;span style=&quot;color: rgb(44, 119, 174) ! important;font-family:verdana,geneva,lucida,&amp;quot;;font-size:13;&quot;  &gt;&lt;span class=&quot;kLink&quot; style=&quot;color: rgb(44, 119, 174) ! important;font-family:verdana,geneva,lucida,&amp;quot;;font-size:13;&quot;  &gt;download&lt;/span&gt;&lt;/span&gt;&lt;/a&gt; is available here: &lt;a href=&quot;http://thegoan.com/datafox&quot; target=&quot;_blank&quot;&gt;Download DataFox&lt;/a&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;&lt;br /&gt;&lt;/script&gt;</description><link>http://shanssolution.blogspot.com/2007/07/datafox-to-check-usage-of-dataone-broad.html</link><author>noreply@blogger.com (SHAN&#39;S SOLUTION)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7285521086390419193.post-4202304198374451145</guid><pubDate>Wed, 11 Jul 2007 14:53:00 +0000</pubDate><atom:updated>2007-07-11T07:59:45.173-07:00</atom:updated><title>Rajabazar Science College as seen from Space</title><description>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggCIoC_lFl81qx8FArELuPGDAPXkq5l2YooKK_wzaJGoHLTZmnrcZVDwJRW6sDDKTBrkrMMigvWikdB7uh7IW13BT_gK2GH1Ne53xWwYzHFBUT4_BECJzUFyMEuBNc-XJr5lSBYDbBXuA/s1600-h/rajasc.jpg&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggCIoC_lFl81qx8FArELuPGDAPXkq5l2YooKK_wzaJGoHLTZmnrcZVDwJRW6sDDKTBrkrMMigvWikdB7uh7IW13BT_gK2GH1Ne53xWwYzHFBUT4_BECJzUFyMEuBNc-XJr5lSBYDbBXuA/s400/rajasc.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5085953978533804194&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;This is how the institution looks from Space.Its an image by the satellite.</description><link>http://shanssolution.blogspot.com/2007/07/rajabazar-science-college-as-seen-from.html</link><author>noreply@blogger.com (SHAN&#39;S SOLUTION)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggCIoC_lFl81qx8FArELuPGDAPXkq5l2YooKK_wzaJGoHLTZmnrcZVDwJRW6sDDKTBrkrMMigvWikdB7uh7IW13BT_gK2GH1Ne53xWwYzHFBUT4_BECJzUFyMEuBNc-XJr5lSBYDbBXuA/s72-c/rajasc.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7285521086390419193.post-262210335827373890</guid><pubDate>Wed, 11 Jul 2007 14:38:00 +0000</pubDate><atom:updated>2007-07-12T06:07:29.390-07:00</atom:updated><title>University College Of Science And Technology,Rashbehari Siksha Prangan (Rajabazar Science College)</title><description>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqq-dpbKB2W-h1trhCaMSGSkeiUL1DchHpy9UTZyZ8j3jY0svSpIOogMqkIgFVZ2eiJFe1dah0oD_xpPlPaqE1UyoAMpRIEMwY9vHd7il3tuoHxxieLTRPIBH15CSan0MOMAlwWJTzYXg/s1600-h/IMGP1648.resized.JPG&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqq-dpbKB2W-h1trhCaMSGSkeiUL1DchHpy9UTZyZ8j3jY0svSpIOogMqkIgFVZ2eiJFe1dah0oD_xpPlPaqE1UyoAMpRIEMwY9vHd7il3tuoHxxieLTRPIBH15CSan0MOMAlwWJTzYXg/s400/IMGP1648.resized.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5085949206825138322&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;
University College of Science and Technology is the Science and Technology college under University Of Calcutta.The college is also well renowned by the name Rajabazar Science College.Science and Technological Post Graduate courses are being conducted by the institution.The author is persuing his Post graduate  course from this college.The institution has a history of excellence.University Of Calcutta is the oldest university in Asia with a history of about 150 yrs.Renowned companies are recruiting the students of the University.
&lt;br /&gt;&lt;br /&gt;
If anyone wants to add something to this they are most welcomed.Their comments will be incorporated.</description><link>http://shanssolution.blogspot.com/2007/07/university-college-of-science-and.html</link><author>noreply@blogger.com (SHAN&#39;S SOLUTION)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqq-dpbKB2W-h1trhCaMSGSkeiUL1DchHpy9UTZyZ8j3jY0svSpIOogMqkIgFVZ2eiJFe1dah0oD_xpPlPaqE1UyoAMpRIEMwY9vHd7il3tuoHxxieLTRPIBH15CSan0MOMAlwWJTzYXg/s72-c/IMGP1648.resized.JPG" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7285521086390419193.post-8600296495885365570</guid><pubDate>Fri, 20 Apr 2007 04:48:00 +0000</pubDate><atom:updated>2007-04-19T22:09:10.982-07:00</atom:updated><title>Optimize Memory</title><description>Inorder to optimize your memory
Just create a shortcut on the desktop and add the path as follows

%windir%\system32\rundll32.exe advapi32.dll,ProcessIdleTasks</description><link>http://shanssolution.blogspot.com/2007/04/optimize-memory.html</link><author>noreply@blogger.com (SHAN&#39;S SOLUTION)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7285521086390419193.post-8717844376215724045</guid><pubDate>Sun, 27 Aug 2006 16:23:00 +0000</pubDate><atom:updated>2007-07-06T15:21:10.639-07:00</atom:updated><title>Objective</title><description>The main objective of the blog is to help the users solve simple problems faced while using different Operating Systems .</description><link>http://shanssolution.blogspot.com/2006/08/objectives-of-company.html</link><author>noreply@blogger.com (SHAN&#39;S SOLUTION)</author><thr:total>0</thr:total></item></channel></rss>