{
  "site": "https://h3manth.com/scribe/",
  "title": "Scribe by Hemanth HM",
  "description": "Technical writings, research notes, and architecture deep-dives on JavaScript, Node.js, Python, Web APIs, AI Agents, and Open Source by Hemanth HM (2007–present).",
  "author": {
    "name": "Hemanth HM",
    "url": "https://h3manth.com",
    "github": "https://github.com/hemanth",
    "x": "https://x.com/gnumanth",
    "linkedin": "https://www.linkedin.com/in/hemanthhm/"
  },
  "agentEndpoints": {
    "llmsTxt": "https://h3manth.com/scribe/llms.txt",
    "llmsFullTxt": "https://h3manth.com/scribe/llms-full.txt",
    "postsJson": "https://h3manth.com/scribe/posts.json",
    "rssXml": "https://h3manth.com/scribe/rss.xml",
    "agentCard": "https://h3manth.com/scribe/.well-known/agent-card.json",
    "mcpServerCard": "https://h3manth.com/scribe/.well-known/mcp/server-card.json",
    "agentSkillsIndex": "https://h3manth.com/scribe/.well-known/agent-skills/index.json",
    "apiCatalog": "https://h3manth.com/scribe/.well-known/api-catalog"
  },
  "totalPosts": 388,
  "posts": [
    {
      "slug": "baking-with-gemini-argon",
      "title": "Baking with Gemini 4 Argon, Early Access: 43 Sessions, 24 Builds",
      "excerpt": "131 active hours in Google Early Access with Gemini 4 Argon across 43 sessions, 41,778 steps, and 24 builds: Good, Ok, Fun.",
      "publishDate": "2026-10-13T18:00:00.000Z",
      "author": "Hemanth HM",
      "category": "ai",
      "tags": [
        "ai",
        "agents",
        "gemini",
        "argon",
        "google-eap",
        "antigravity",
        "webgpu",
        "gittub",
        "science",
        "benchmarks"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/baking-with-gemini-argon/",
      "markdownUrl": "https://h3manth.com/scribe/blog/baking-with-gemini-argon.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/baking-with-gemini-argon.md",
      "wordCount": 2432,
      "readingTimeMinutes": 13,
      "tokensEstimate": 4609
    },
    {
      "slug": "classifying-tc39-proposals",
      "title": "Classifying TC39 Proposals",
      "excerpt": "For years I wanted to map TC39 proposals by intent, cognitive load, and web-compat risk. A look at classifying all 324 of.",
      "publishDate": "2026-09-17T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "tc39",
        "ecmascript",
        "ai"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/classifying-tc39-proposals/",
      "markdownUrl": "https://h3manth.com/scribe/blog/classifying-tc39-proposals.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/classifying-tc39-proposals.md",
      "wordCount": 597,
      "readingTimeMinutes": 3,
      "tokensEstimate": 1198
    },
    {
      "slug": "serverless-multiplayer-code-jeopardy",
      "title": "Zero-Server Multiplayer: Porting Code Jeopardy to Cloudflare Durable Objects",
      "excerpt": "WebSockets and serverless used to be oxymorons. How I moved a real-time multiplayer trivia game from a fragile PM2 VPS to.",
      "publishDate": "2026-09-01T10:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "serverless",
        "cloudflare",
        "durable-objects",
        "websockets",
        "sqlite",
        "fullstack",
        "game-dev"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/serverless-multiplayer-code-jeopardy/",
      "markdownUrl": "https://h3manth.com/scribe/blog/serverless-multiplayer-code-jeopardy.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/serverless-multiplayer-code-jeopardy.md",
      "wordCount": 1056,
      "readingTimeMinutes": 6,
      "tokensEstimate": 2043
    },
    {
      "slug": "laughter-saturation-curve",
      "title": "The Laughter Saturation Curve",
      "excerpt": "Team quality is a function of shared laughs. It follows Michaelis-Menten kinetics — rapid gains early, diminishing returns.",
      "publishDate": "2026-08-27T06:00:00.000Z",
      "author": "Hemanth HM",
      "category": "engineering",
      "tags": [
        "culture",
        "teams",
        "math",
        "saturation",
        "michaelis-menten"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/laughter-saturation-curve/",
      "markdownUrl": "https://h3manth.com/scribe/blog/laughter-saturation-curve.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/laughter-saturation-curve.md",
      "wordCount": 606,
      "readingTimeMinutes": 4,
      "tokensEstimate": 939
    },
    {
      "slug": "lipi-architecture",
      "title": "Building ಲಿಪಿ: Three-Tier Speech Recognition in the Browser",
      "excerpt": "On-device first, cloud fallback, Whisper polish. A Kannada voice editor that works everywhere, built with zero frameworks.",
      "publishDate": "2026-07-13T06:00:00.000Z",
      "author": "Hemanth HM",
      "category": "ai",
      "tags": [
        "ai",
        "speech",
        "whisper",
        "kannada",
        "web-speech-api",
        "transformers-js",
        "on-device"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/lipi-architecture/",
      "markdownUrl": "https://h3manth.com/scribe/blog/lipi-architecture.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/lipi-architecture.md",
      "wordCount": 687,
      "readingTimeMinutes": 4,
      "tokensEstimate": 1304
    },
    {
      "slug": "zero-overhead-token-budgets",
      "title": "Building Kill-Switches for Autonomous AI Agents",
      "excerpt": "When a parent agent spawns four subagents, token consumption multiplies. The Antigravity SDK gives you telemetry and hooks.",
      "publishDate": "2026-06-12T10:00:00.000Z",
      "author": "Hemanth HM",
      "category": "ai",
      "tags": [
        "ai",
        "agents",
        "antigravity",
        "sdk",
        "subagents",
        "governance"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/zero-overhead-token-budgets/",
      "markdownUrl": "https://h3manth.com/scribe/blog/zero-overhead-token-budgets.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/zero-overhead-token-budgets.md",
      "wordCount": 950,
      "readingTimeMinutes": 5,
      "tokensEstimate": 2243
    },
    {
      "slug": "more-vetoes-less-vision",
      "title": "More Vetoes, Less Vision",
      "excerpt": "Software coherence gets worse when more people have veto power. Here’s why enterprise apps feel like a disjointed mess in JS.",
      "publishDate": "2026-04-12T10:00:00.000Z",
      "author": "Hemanth HM",
      "category": "engineering",
      "tags": [
        "engineering",
        "architecture",
        "teams",
        "philosophy",
        "conways-law"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/more-vetoes-less-vision/",
      "markdownUrl": "https://h3manth.com/scribe/blog/more-vetoes-less-vision.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/more-vetoes-less-vision.md",
      "wordCount": 2102,
      "readingTimeMinutes": 11,
      "tokensEstimate": 3632
    },
    {
      "slug": "gemma4-multi-turn-visual-agent",
      "title": "Building a Visual Product Agent with Gemma 4",
      "excerpt": "A multi-turn visual agent that looks at product images, calls tools, reasons through decisions, and writes full analysis.",
      "publishDate": "2026-04-06T10:00:00.000Z",
      "author": "Hemanth HM",
      "category": "ai",
      "tags": [
        "ai",
        "gemma",
        "agents",
        "vision",
        "function-calling",
        "python"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/gemma4-multi-turn-visual-agent/",
      "markdownUrl": "https://h3manth.com/scribe/blog/gemma4-multi-turn-visual-agent.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/gemma4-multi-turn-visual-agent.md",
      "wordCount": 1343,
      "readingTimeMinutes": 7,
      "tokensEstimate": 2720
    },
    {
      "slug": "trust-fall-with-ai",
      "title": "The Trust Fall With AI",
      "excerpt": "Trust in AI isn’t binary - it’s a spectrum. Like a theater trust fall, it takes practice, guardrails, and the willingness.",
      "publishDate": "2026-04-04T10:00:00.000Z",
      "author": "Hemanth HM",
      "category": "ai",
      "tags": [
        "ai",
        "trust",
        "agents",
        "philosophy",
        "mcp"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/trust-fall-with-ai/",
      "markdownUrl": "https://h3manth.com/scribe/blog/trust-fall-with-ai.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/trust-fall-with-ai.md",
      "wordCount": 1872,
      "readingTimeMinutes": 10,
      "tokensEstimate": 3080
    },
    {
      "slug": "why-you-still-ask-a-friend",
      "title": "Why you still ask a friend before buying",
      "excerpt": "AI agents can crawl every review, match your budget, your size, your purchase history. You still text your friend. That’s.",
      "publishDate": "2026-03-26T10:00:00.000Z",
      "author": "Hemanth HM",
      "category": "ai",
      "tags": [
        "ai",
        "commerce",
        "agents",
        "psychology"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/why-you-still-ask-a-friend/",
      "markdownUrl": "https://h3manth.com/scribe/blog/why-you-still-ask-a-friend.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/why-you-still-ask-a-friend.md",
      "wordCount": 1281,
      "readingTimeMinutes": 7,
      "tokensEstimate": 2043
    },
    {
      "slug": "model-capability-discovery",
      "title": "Model Capability Discovery: The API We're All Missing",
      "excerpt": "No provider exposes model capabilities via API. So every framework builds its own registry. One field in /v1/models would.",
      "publishDate": "2026-03-25T10:00:00.000Z",
      "author": "Hemanth HM",
      "category": "ai",
      "tags": [
        "ai",
        "llm",
        "api",
        "standards",
        "openai",
        "mcp"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/model-capability-discovery/",
      "markdownUrl": "https://h3manth.com/scribe/blog/model-capability-discovery.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/model-capability-discovery.md",
      "wordCount": 904,
      "readingTimeMinutes": 5,
      "tokensEstimate": 1675
    },
    {
      "slug": "voice-ai-response-times",
      "title": "The 200ms window: why voice AI latency is a biology problem",
      "excerpt": "Human conversation runs on a 200ms biological clock. Here’s what that means if you’re building voice AI. Practical notes.",
      "publishDate": "2026-02-25T12:00:00.000Z",
      "author": "Hemanth HM",
      "category": "ai",
      "tags": [
        "ai"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/voice-ai-response-times/",
      "markdownUrl": "https://h3manth.com/scribe/blog/voice-ai-response-times.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/voice-ai-response-times.md",
      "wordCount": 1252,
      "readingTimeMinutes": 7,
      "tokensEstimate": 2037
    },
    {
      "slug": "webmcp-bridge",
      "title": "WebMCP Bridge",
      "excerpt": "A browser-first tool that connects any remote MCP server to Chrome’s WebMCP API. Discover tools, execute them, and let in JS.",
      "publishDate": "2026-02-16T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "mcp",
        "webmcp",
        "ai",
        "chrome",
        "agents",
        "opensource"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/webmcp-bridge/",
      "markdownUrl": "https://h3manth.com/scribe/blog/webmcp-bridge.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/webmcp-bridge.md",
      "wordCount": 1110,
      "readingTimeMinutes": 6,
      "tokensEstimate": 1953
    },
    {
      "slug": "ucpify-json-to-commerce-server",
      "title": "ucpify: JSON → Commerce Server in Seconds",
      "excerpt": "Generate a fully UCP-compliant commerce server from a single JSON config. Stripe, PayPal, SQLite, admin dashboard, all wired.",
      "publishDate": "2026-02-13T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "python",
        "ucp",
        "commerce",
        "agentic",
        "ai",
        "opensource"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/ucpify-json-to-commerce-server/",
      "markdownUrl": "https://h3manth.com/scribe/blog/ucpify-json-to-commerce-server.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/ucpify-json-to-commerce-server.md",
      "wordCount": 812,
      "readingTimeMinutes": 5,
      "tokensEstimate": 1664
    },
    {
      "slug": "rfcs-vs-readmes",
      "title": "RFCs vs. READMEs: The Evolution of Protocols",
      "excerpt": "How we build the internet’s invisible contracts has changed completely. I’m not sure that’s entirely good. Practical notes.",
      "publishDate": "2026-02-01T10:00:00.000Z",
      "author": "Hemanth HM",
      "category": "technology",
      "tags": [
        "ai",
        "standards",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/rfcs-vs-readmes/",
      "markdownUrl": "https://h3manth.com/scribe/blog/rfcs-vs-readmes.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/rfcs-vs-readmes.md",
      "wordCount": 1171,
      "readingTimeMinutes": 6,
      "tokensEstimate": 1870
    },
    {
      "slug": "9-year-old-builds-gaming-pc",
      "title": "My 9-Year-Old Built His Own Gaming PC (And Cannibalized a Laptop)",
      "excerpt": "I suggested we build a PC together. He ended up doing 90% of it himself, including extracting an SSD from an old laptop.",
      "publishDate": "2025-12-27T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "hardware",
      "tags": [
        "hardware",
        "diy",
        "kids",
        "gaming",
        "teaching"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/9-year-old-builds-gaming-pc/",
      "markdownUrl": "https://h3manth.com/scribe/blog/9-year-old-builds-gaming-pc.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/9-year-old-builds-gaming-pc.md",
      "wordCount": 1089,
      "readingTimeMinutes": 6,
      "tokensEstimate": 1746
    },
    {
      "slug": "consolidating-6-platforms-18-years",
      "title": "Consolidating 18 Years of Writing: From 6 Platforms to One",
      "excerpt": "From Blogspot to Drupal to WordPress to Octopress to 11ty and finally Astro - the story of consolidating 372 posts across 6.",
      "publishDate": "2025-12-27T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "javascript",
        "python",
        "astro"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/consolidating-6-platforms-18-years/",
      "markdownUrl": "https://h3manth.com/scribe/blog/consolidating-6-platforms-18-years.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/consolidating-6-platforms-18-years.md",
      "wordCount": 959,
      "readingTimeMinutes": 5,
      "tokensEstimate": 1671
    },
    {
      "slug": "2025-ai-predictions-review",
      "title": "My 2025 AI Predictions: How Did They Hold Up?",
      "excerpt": "A year-end review of my optimistic AI predictions for 2025 - spoiler: 6.5 out of 7 came true. Practical notes and code in JS.",
      "publishDate": "2025-12-23T15:00:00.000Z",
      "author": "Hemanth HM",
      "category": "ai",
      "tags": [
        "ai",
        "predictions",
        "2025",
        "technology",
        "review"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/2025-ai-predictions-review/",
      "markdownUrl": "https://h3manth.com/scribe/blog/2025-ai-predictions-review.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/2025-ai-predictions-review.md",
      "wordCount": 675,
      "readingTimeMinutes": 4,
      "tokensEstimate": 1116
    },
    {
      "slug": "okap",
      "title": "We Need OKAP: OAuth for API Keys",
      "excerpt": "Every AI app wants my API keys. Copy. Paste. Repeat. What if we had a standard for this? Practical notes and code examples.",
      "publishDate": "2025-12-21T06:00:00.000Z",
      "author": "Hemanth HM",
      "category": "ai",
      "tags": [
        "ai",
        "api",
        "security",
        "protocol",
        "keys"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/okap/",
      "markdownUrl": "https://h3manth.com/scribe/blog/okap.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/okap.md",
      "wordCount": 804,
      "readingTimeMinutes": 5,
      "tokensEstimate": 1515
    },
    {
      "slug": "skills-and-mcp-better-together",
      "title": "Skills vs MCP? Wrong Question",
      "excerpt": "With agent frameworks adding Skills support, some are asking if MCP is still needed. Short answer: yes. Here’s why in JS.",
      "publishDate": "2025-12-21T05:30:00.000Z",
      "author": "Hemanth HM",
      "category": "ai",
      "tags": [
        "ai",
        "agents",
        "mcp",
        "tools",
        "architecture"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/skills-and-mcp-better-together/",
      "markdownUrl": "https://h3manth.com/scribe/blog/skills-and-mcp-better-together.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/skills-and-mcp-better-together.md",
      "wordCount": 952,
      "readingTimeMinutes": 5,
      "tokensEstimate": 1794
    },
    {
      "slug": "high-velocity-ai-field-test",
      "title": "Taking AI Agents to the Race Track: Lessons from the High-Velocity Field Test",
      "excerpt": "What happens when you strap a laptop into a race car, connect GPS devices, and run Gemini Nano at 150mph - a GDE field test.",
      "publishDate": "2025-12-18T08:00:00.000Z",
      "author": "Hemanth HM",
      "category": "ai",
      "tags": [
        "ai"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/high-velocity-ai-field-test/",
      "markdownUrl": "https://h3manth.com/scribe/blog/high-velocity-ai-field-test.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/high-velocity-ai-field-test.md",
      "wordCount": 1607,
      "readingTimeMinutes": 9,
      "tokensEstimate": 3275
    },
    {
      "slug": "google-maps-mcp-with-agentu",
      "title": "Google Maps MCP with AgentU",
      "excerpt": "Connect your AI agents to Google Maps using the Model Context Protocol - search places, get weather, and compute routes.",
      "publishDate": "2025-12-17T08:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "python",
        "ai",
        "agents",
        "mcp",
        "google-maps",
        "agentu"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/google-maps-mcp-with-agentu/",
      "markdownUrl": "https://h3manth.com/scribe/blog/google-maps-mcp-with-agentu.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/google-maps-mcp-with-agentu.md",
      "wordCount": 760,
      "readingTimeMinutes": 4,
      "tokensEstimate": 1454
    },
    {
      "slug": "ai-agents-web-architecture",
      "title": "AI Agents Are The New Web Stack",
      "excerpt": "How modern AI agent architecture mirrors web engineering principles - from progressive loading to sandboxed execution in JS.",
      "publishDate": "2025-11-19T09:00:00.000Z",
      "author": "Hemanth HM",
      "category": "ai",
      "tags": [
        "ai",
        "agents",
        "architecture",
        "web",
        "mcp",
        "cloudflare"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/ai-agents-web-architecture/",
      "markdownUrl": "https://h3manth.com/scribe/blog/ai-agents-web-architecture.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/ai-agents-web-architecture.md",
      "wordCount": 1019,
      "readingTimeMinutes": 6,
      "tokensEstimate": 1879
    },
    {
      "slug": "agentu-sleek-ai-agent-framework",
      "title": "AgentU: The Sleekest Way to Build AI Agents",
      "excerpt": "A minimalist Python framework that makes building AI agent workflows as simple as chaining operators - no complex in JS fast.",
      "publishDate": "2025-11-09T10:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "python",
        "ai",
        "agents",
        "workflows",
        "llm",
        "opensource"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/agentu-sleek-ai-agent-framework/",
      "markdownUrl": "https://h3manth.com/scribe/blog/agentu-sleek-ai-agent-framework.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/agentu-sleek-ai-agent-framework.md",
      "wordCount": 1022,
      "readingTimeMinutes": 6,
      "tokensEstimate": 2027
    },
    {
      "slug": "git-tips-success",
      "title": "git-tips: A Decade of Open Source Impact",
      "excerpt": "How a simple list of Git tricks became a top 0.01% GitHub repo. Practical notes and code examples on git-tips: A Decade of.",
      "publishDate": "2025-05-29T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "opensource",
      "tags": [
        "git",
        "opensource",
        "github",
        "success"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/git-tips-success/",
      "markdownUrl": "https://h3manth.com/scribe/blog/git-tips-success.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/git-tips-success.md",
      "wordCount": 135,
      "readingTimeMinutes": 1,
      "tokensEstimate": 287
    },
    {
      "slug": "deepseek-reason-extractor",
      "title": "Deepseek Reason Extractor",
      "excerpt": "Extract just the reasoning data from deepseek. Practical notes and code examples on Deepseek Reason Extractor by Hemanth HM.",
      "publishDate": "2025-01-27T08:33:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "deepseek",
        "reasoning",
        "extractor",
        "python",
        "pip"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/deepseek-reason-extractor/",
      "markdownUrl": "https://h3manth.com/scribe/blog/deepseek-reason-extractor.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/deepseek-reason-extractor.md",
      "wordCount": 383,
      "readingTimeMinutes": 2,
      "tokensEstimate": 829
    },
    {
      "slug": "vaklm",
      "title": "vaklm - Python Client for OpenAI-Compatible APIs",
      "excerpt": "A Python client for interacting with OpenAI-compatible API endpoints with reasoning support. Practical notes and code in JS.",
      "publishDate": "2025-01-26T13:28:47.050Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "python",
        "ai",
        "api",
        "openai"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/vaklm/",
      "markdownUrl": "https://h3manth.com/scribe/blog/vaklm.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/vaklm.md",
      "wordCount": 369,
      "readingTimeMinutes": 2,
      "tokensEstimate": 886
    },
    {
      "slug": "piragi-best-rag-interface",
      "title": "piragi: The Best RAG Interface Yet",
      "excerpt": "A zero-config RAG library that works with local models out of the box - no API keys, no vector database setup, just three.",
      "publishDate": "2025-01-10T10:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "python",
        "rag",
        "ai",
        "llm",
        "embeddings",
        "vector-search",
        "opensource"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/piragi-best-rag-interface/",
      "markdownUrl": "https://h3manth.com/scribe/blog/piragi-best-rag-interface.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/piragi-best-rag-interface.md",
      "wordCount": 1253,
      "readingTimeMinutes": 7,
      "tokensEstimate": 2503
    },
    {
      "slug": "ollamafunctions-mistral",
      "title": "OllamaFunctions and Mistral",
      "excerpt": "Extracting structured data from text using OllamaFunctions and Mistral. Practical notes and code examples on OllamaFunctions.",
      "publishDate": "2024-05-18T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "ai",
      "tags": [
        "langchain",
        "ollama",
        "mistral",
        "ai"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/ollamafunctions-mistral/",
      "markdownUrl": "https://h3manth.com/scribe/blog/ollamafunctions-mistral.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/ollamafunctions-mistral.md",
      "wordCount": 357,
      "readingTimeMinutes": 2,
      "tokensEstimate": 744
    },
    {
      "slug": "well-known-symbols",
      "title": "Well-known Symbols",
      "excerpt": "A deep dive into Well-known Symbols in JavaScript. Practical notes and code examples on Well-known Symbols by Hemanth HM.",
      "publishDate": "2023-02-14T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "symbols",
        "es6"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/well-known-symbols/",
      "markdownUrl": "https://h3manth.com/scribe/blog/well-known-symbols.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/well-known-symbols.md",
      "wordCount": 683,
      "readingTimeMinutes": 4,
      "tokensEstimate": 1314
    },
    {
      "slug": "navigation-api",
      "title": "Navigation API",
      "excerpt": "The Navigation API provides an interface for navigations and session history, especially useful for SPAs. Practical notes.",
      "publishDate": "2022-04-13T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "javascript",
        "web",
        "navigation",
        "spa"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/navigation-api/",
      "markdownUrl": "https://h3manth.com/scribe/blog/navigation-api.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/navigation-api.md",
      "wordCount": 693,
      "readingTimeMinutes": 4,
      "tokensEstimate": 1417
    },
    {
      "slug": "abortsignal-throwifaborted",
      "title": "AbortSignal throwIfAborted",
      "excerpt": "If the signal has been aborted, throw the signal’s abort reason. Practical notes and code examples on AbortSignal in JS fast.",
      "publishDate": "2022-04-07T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "javascript",
        "web",
        "dom",
        "abort"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/abortsignal-throwifaborted/",
      "markdownUrl": "https://h3manth.com/scribe/blog/abortsignal-throwifaborted.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/abortsignal-throwifaborted.md",
      "wordCount": 241,
      "readingTimeMinutes": 2,
      "tokensEstimate": 704
    },
    {
      "slug": "http-imports-node",
      "title": "HTTP Imports on Node",
      "excerpt": "Node.js gets ESM import support over HTTPS remotely and HTTP locally. Practical notes and code examples on HTTP Imports on.",
      "publishDate": "2022-02-11T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "node",
      "tags": [
        "node",
        "javascript",
        "esm",
        "http"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/http-imports-node/",
      "markdownUrl": "https://h3manth.com/scribe/blog/http-imports-node.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/http-imports-node.md",
      "wordCount": 628,
      "readingTimeMinutes": 4,
      "tokensEstimate": 1330
    },
    {
      "slug": "http-request-postgres",
      "title": "HTTP Request in Postgres",
      "excerpt": "Fetching data over HTTP in PostgreSQL using the http extension. Practical notes and code examples on HTTP Request in in JS.",
      "publishDate": "2022-01-20T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "db",
      "tags": [
        "postgres",
        "db",
        "http",
        "sql"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/http-request-postgres/",
      "markdownUrl": "https://h3manth.com/scribe/blog/http-request-postgres.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/http-request-postgres.md",
      "wordCount": 289,
      "readingTimeMinutes": 2,
      "tokensEstimate": 628
    },
    {
      "slug": "unicode-segmentation-in-javascript",
      "title": "Unicode Segmentation in JavaScript",
      "excerpt": "What is Intl.Segmenter and how to use it for Unicode text segmentation. Practical notes and code examples on Unicode in JS.",
      "publishDate": "2021-10-25T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "intl",
        "unicode",
        "i18n"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/unicode-segmentation-in-javascript/",
      "markdownUrl": "https://h3manth.com/scribe/blog/unicode-segmentation-in-javascript.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/unicode-segmentation-in-javascript.md",
      "wordCount": 431,
      "readingTimeMinutes": 3,
      "tokensEstimate": 846
    },
    {
      "slug": "hdr-css-mediaquery",
      "title": "HDR CSS MediaQuery",
      "excerpt": "CSS4’s dynamic-range and video-dynamic-range feature for HDR displays. Practical notes and code examples on HDR CSS in JS.",
      "publishDate": "2021-10-07T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "css",
        "web",
        "hdr",
        "media-queries"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/hdr-css-mediaquery/",
      "markdownUrl": "https://h3manth.com/scribe/blog/hdr-css-mediaquery.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/hdr-css-mediaquery.md",
      "wordCount": 368,
      "readingTimeMinutes": 2,
      "tokensEstimate": 681
    },
    {
      "slug": "primordials-in-node",
      "title": "Primordials in Node.js",
      "excerpt": "What are Primordials in Node.js and why do they exist? Practical notes and code examples on Primordials in Node.js by in JS.",
      "publishDate": "2021-09-09T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "node",
      "tags": [
        "node",
        "javascript",
        "internals"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/primordials-in-node/",
      "markdownUrl": "https://h3manth.com/scribe/blog/primordials-in-node.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/primordials-in-node.md",
      "wordCount": 580,
      "readingTimeMinutes": 3,
      "tokensEstimate": 1255
    },
    {
      "slug": "my-site-was-hacked",
      "title": "My Site Was Hacked",
      "excerpt": "How my site was hacked and how I recovered from it. Practical notes and code examples on My Site Was Hacked by Hemanth HM.",
      "publishDate": "2021-06-09T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "security",
      "tags": [
        "security",
        "web",
        "hacking",
        "drupal"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/my-site-was-hacked/",
      "markdownUrl": "https://h3manth.com/scribe/blog/my-site-was-hacked.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/my-site-was-hacked.md",
      "wordCount": 1182,
      "readingTimeMinutes": 6,
      "tokensEstimate": 1764
    },
    {
      "slug": "dynamic-remotes-webpack-module-federation",
      "title": "Dynamic Remotes, Webpack Module Federation",
      "excerpt": "How to dynamically load remotes at runtime with Webpack Module Federation. Practical notes and code examples on Dynamic.",
      "publishDate": "2021-06-06T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "webpack",
        "javascript",
        "module-federation",
        "microfrontends"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/dynamic-remotes-webpack-module-federation/",
      "markdownUrl": "https://h3manth.com/scribe/blog/dynamic-remotes-webpack-module-federation.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/dynamic-remotes-webpack-module-federation.md",
      "wordCount": 500,
      "readingTimeMinutes": 3,
      "tokensEstimate": 1082
    },
    {
      "slug": "webpack-module-federation",
      "title": "Webpack Module Federation",
      "excerpt": "Webpack’s Module Federation is a new feature that was introduced in Webpack5 with the intent of having multiple independent.",
      "publishDate": "2021-06-02T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "webpack",
        "javascript",
        "module-federation",
        "microfrontends"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/webpack-module-federation/",
      "markdownUrl": "https://h3manth.com/scribe/blog/webpack-module-federation.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/webpack-module-federation.md",
      "wordCount": 385,
      "readingTimeMinutes": 2,
      "tokensEstimate": 844
    },
    {
      "slug": "declarative-shadow-dom",
      "title": "Declarative Shadow DOM",
      "excerpt": "Shadow DOM for the server with ease using declarative template syntax. Practical notes and code examples on Declarative.",
      "publishDate": "2021-04-30T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "html",
        "web-components",
        "shadow-dom"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/declarative-shadow-dom/",
      "markdownUrl": "https://h3manth.com/scribe/blog/declarative-shadow-dom.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/declarative-shadow-dom.md",
      "wordCount": 136,
      "readingTimeMinutes": 1,
      "tokensEstimate": 368
    },
    {
      "slug": "promisified-node-built-ins",
      "title": "Promisified Node Builtins",
      "excerpt": "Node.js has several built-in modules that are already promisified for you. Practical notes and code examples on Promisified.",
      "publishDate": "2021-04-26T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "node",
      "tags": [
        "node",
        "javascript",
        "promises"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/promisified-node-built-ins/",
      "markdownUrl": "https://h3manth.com/scribe/blog/promisified-node-built-ins.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/promisified-node-built-ins.md",
      "wordCount": 234,
      "readingTimeMinutes": 2,
      "tokensEstimate": 677
    },
    {
      "slug": "v8-inspector-from-node",
      "title": "V8 Inspector from Node",
      "excerpt": "Using the inspector module to interact with the V8 inspector from Node.js. Practical notes and code examples on V8 Inspector.",
      "publishDate": "2021-04-13T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "node",
      "tags": [
        "node",
        "javascript",
        "debugging",
        "v8"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/v8-inspector-from-node/",
      "markdownUrl": "https://h3manth.com/scribe/blog/v8-inspector-from-node.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/v8-inspector-from-node.md",
      "wordCount": 238,
      "readingTimeMinutes": 2,
      "tokensEstimate": 615
    },
    {
      "slug": "urlpattern-api",
      "title": "URLPattern API",
      "excerpt": "The URLPattern web API is an URL pattern matching web-platform primitive for JavaScript. Practical notes and code examples.",
      "publishDate": "2021-03-03T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "javascript",
        "web-api",
        "urlpattern"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/urlpattern-api/",
      "markdownUrl": "https://h3manth.com/scribe/blog/urlpattern-api.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/urlpattern-api.md",
      "wordCount": 388,
      "readingTimeMinutes": 2,
      "tokensEstimate": 818
    },
    {
      "slug": "css-highlight-pseudo-elements",
      "title": "CSS Highlight Pseudo-elements",
      "excerpt": "CSS4 provides ability to select highlighted content for styling. Practical notes and code examples on CSS Highlight in JS.",
      "publishDate": "2021-01-07T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "css",
        "web",
        "pseudo-elements"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/css-highlight-pseudo-elements/",
      "markdownUrl": "https://h3manth.com/scribe/blog/css-highlight-pseudo-elements.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/css-highlight-pseudo-elements.md",
      "wordCount": 152,
      "readingTimeMinutes": 1,
      "tokensEstimate": 346
    },
    {
      "slug": "nullish-coalescing-vs-logical-or",
      "title": "Nullish Coalescing vs Logical OR",
      "excerpt": "Understanding the difference between ?? and || operators in JavaScript. Practical notes and code examples on Nullish in JS.",
      "publishDate": "2020-09-03T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "es2020",
        "tc39"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/nullish-coalescing-vs-logical-or/",
      "markdownUrl": "https://h3manth.com/scribe/blog/nullish-coalescing-vs-logical-or.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/nullish-coalescing-vs-logical-or.md",
      "wordCount": 189,
      "readingTimeMinutes": 1,
      "tokensEstimate": 362
    },
    {
      "slug": "logical-assignment-operators-in-javascript",
      "title": "Logical Assignment Operators in JavaScript",
      "excerpt": "Combine logical operators and assignment expressions with ||=, and and =, and ??=. Practical notes and code examples on.",
      "publishDate": "2020-08-29T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "es2021",
        "tc39"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/logical-assignment-operators-in-javascript/",
      "markdownUrl": "https://h3manth.com/scribe/blog/logical-assignment-operators-in-javascript.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/logical-assignment-operators-in-javascript.md",
      "wordCount": 172,
      "readingTimeMinutes": 1,
      "tokensEstimate": 374
    },
    {
      "slug": "reactive-context-in-svelte",
      "title": "Reactive Context in Svelte",
      "excerpt": "Using stores with context API for reactive state in Svelte components. Practical notes and code examples on Reactive Context.",
      "publishDate": "2020-07-04T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "javascript",
        "svelte",
        "frontend"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/reactive-context-in-svelte/",
      "markdownUrl": "https://h3manth.com/scribe/blog/reactive-context-in-svelte.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/reactive-context-in-svelte.md",
      "wordCount": 229,
      "readingTimeMinutes": 2,
      "tokensEstimate": 486
    },
    {
      "slug": "top-level-await-node-repl",
      "title": "Top Level Await Node REPL",
      "excerpt": "Using await keyword outside of async functions in Node.js REPL. Practical notes and code examples on Top Level Await Node.",
      "publishDate": "2020-05-23T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "node",
      "tags": [
        "node",
        "javascript",
        "async",
        "await"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/top-level-await-node-repl/",
      "markdownUrl": "https://h3manth.com/scribe/blog/top-level-await-node-repl.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/top-level-await-node-repl.md",
      "wordCount": 222,
      "readingTimeMinutes": 2,
      "tokensEstimate": 470
    },
    {
      "slug": "contact-picker-api",
      "title": "Contact Picker API",
      "excerpt": "Access device contacts from the web with the Contact Picker API. Practical notes and code examples on Contact Picker API by.",
      "publishDate": "2020-03-11T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "javascript",
        "web-api",
        "mobile"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/contact-picker-api/",
      "markdownUrl": "https://h3manth.com/scribe/blog/contact-picker-api.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/contact-picker-api.md",
      "wordCount": 144,
      "readingTimeMinutes": 1,
      "tokensEstimate": 338
    },
    {
      "slug": "websocketstream-api",
      "title": "WebSocketStream API",
      "excerpt": "A modern WebSocket API that supports backpressure and streams. Practical notes and code examples on WebSocketStream API by.",
      "publishDate": "2020-03-05T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "javascript",
        "web-api",
        "websocket",
        "streams"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/websocketstream-api/",
      "markdownUrl": "https://h3manth.com/scribe/blog/websocketstream-api.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/websocketstream-api.md",
      "wordCount": 129,
      "readingTimeMinutes": 1,
      "tokensEstimate": 329
    },
    {
      "slug": "dom-element-timing-api",
      "title": "DOM Element Timing API",
      "excerpt": "Measure and monitor rendering timestamps of DOM elements for performance optimization. Practical notes and code examples on.",
      "publishDate": "2020-03-03T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "javascript",
        "web-api",
        "performance"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/dom-element-timing-api/",
      "markdownUrl": "https://h3manth.com/scribe/blog/dom-element-timing-api.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/dom-element-timing-api.md",
      "wordCount": 166,
      "readingTimeMinutes": 1,
      "tokensEstimate": 411
    },
    {
      "slug": "detect-dark-mode",
      "title": "Detect Dark Mode",
      "excerpt": "Using prefers-color-scheme to detect and respond to user’s dark mode preference. Practical notes and code examples on Detect.",
      "publishDate": "2020-02-13T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "javascript",
        "css",
        "dark-mode"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/detect-dark-mode/",
      "markdownUrl": "https://h3manth.com/scribe/blog/detect-dark-mode.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/detect-dark-mode.md",
      "wordCount": 233,
      "readingTimeMinutes": 2,
      "tokensEstimate": 602
    },
    {
      "slug": "tracking-dom-element-visibility",
      "title": "Tracking DOM Element Visibility",
      "excerpt": "Using Intersection Observer API to efficiently track element visibility. Practical notes and code examples on Tracking DOM.",
      "publishDate": "2020-02-02T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "javascript",
        "dom",
        "performance"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/tracking-dom-element-visibility/",
      "markdownUrl": "https://h3manth.com/scribe/blog/tracking-dom-element-visibility.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/tracking-dom-element-visibility.md",
      "wordCount": 204,
      "readingTimeMinutes": 2,
      "tokensEstimate": 513
    },
    {
      "slug": "portal-communication",
      "title": "Portal Communication",
      "excerpt": "Communicating between host and portal browsing contexts. Practical notes and code examples on Portal Communication by in JS.",
      "publishDate": "2019-05-12T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "javascript",
        "web-api",
        "portals"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/portal-communication/",
      "markdownUrl": "https://h3manth.com/scribe/blog/portal-communication.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/portal-communication.md",
      "wordCount": 242,
      "readingTimeMinutes": 2,
      "tokensEstimate": 542
    },
    {
      "slug": "es2019-features",
      "title": "ES2019 Features",
      "excerpt": "A comprehensive overview of all ES2019 JavaScript features. Practical notes and code examples on ES2019 Features by Hemanth.",
      "publishDate": "2019-02-06T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "es2019",
        "tc39"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/es2019-features/",
      "markdownUrl": "https://h3manth.com/scribe/blog/es2019-features.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/es2019-features.md",
      "wordCount": 253,
      "readingTimeMinutes": 2,
      "tokensEstimate": 506
    },
    {
      "slug": "whats-new-in-node-v10",
      "title": "What's New in Node v10?",
      "excerpt": "Key features in Node.js v10 including fs/promises, console.table, top-level await, and more. Practical notes and code in JS.",
      "publishDate": "2018-04-25T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "node",
      "tags": [
        "node",
        "javascript"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/whats-new-in-node-v10/",
      "markdownUrl": "https://h3manth.com/scribe/blog/whats-new-in-node-v10.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/whats-new-in-node-v10.md",
      "wordCount": 212,
      "readingTimeMinutes": 2,
      "tokensEstimate": 504
    },
    {
      "slug": "redux-async-actions",
      "title": "Redux Async Actions",
      "excerpt": "How to handle async actions in Redux without middleware. Practical notes and code examples on Redux Async Actions by Hemanth.",
      "publishDate": "2018-02-16T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "javascript",
        "redux",
        "react"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/redux-async-actions/",
      "markdownUrl": "https://h3manth.com/scribe/blog/redux-async-actions.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/redux-async-actions.md",
      "wordCount": 199,
      "readingTimeMinutes": 1,
      "tokensEstimate": 508
    },
    {
      "slug": "jwt-encryption-with-rsa",
      "title": "JWT Encryption with RSA",
      "excerpt": "Quick guide to JWT encryption with RSA using openSSL and Node.js. Practical notes and code examples on JWT Encryption with.",
      "publishDate": "2017-08-22T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "node",
      "tags": [
        "node",
        "javascript",
        "security",
        "jwt"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/jwt-encryption-with-rsa/",
      "markdownUrl": "https://h3manth.com/scribe/blog/jwt-encryption-with-rsa.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/jwt-encryption-with-rsa.md",
      "wordCount": 143,
      "readingTimeMinutes": 1,
      "tokensEstimate": 377
    },
    {
      "slug": "rethinking-async-in-javascript",
      "title": "Rethinking Async in JavaScript",
      "excerpt": "Evolution from callbacks to promises to async/await. Practical notes and code examples on Rethinking Async in JavaScript by.",
      "publishDate": "2016-12-10T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "async"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/rethinking-async-in-javascript/",
      "markdownUrl": "https://h3manth.com/scribe/blog/rethinking-async-in-javascript.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/rethinking-async-in-javascript.md",
      "wordCount": 89,
      "readingTimeMinutes": 1,
      "tokensEstimate": 256
    },
    {
      "slug": "succeed-with-service-workers",
      "title": "Succeed with Service Workers",
      "excerpt": "A comprehensive introduction to Service Workers. Practical notes and code examples on Succeed with Service Workers by in JS.",
      "publishDate": "2016-10-11T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "javascript",
        "service-worker",
        "pwa"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/succeed-with-service-workers/",
      "markdownUrl": "https://h3manth.com/scribe/blog/succeed-with-service-workers.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/succeed-with-service-workers.md",
      "wordCount": 101,
      "readingTimeMinutes": 1,
      "tokensEstimate": 277
    },
    {
      "slug": "url-navigation-from-service-worker",
      "title": "URL Navigation from Service Worker",
      "excerpt": "Using WindowClient.navigate() to navigate controlled pages. Practical notes and code examples on URL Navigation from Service.",
      "publishDate": "2016-10-05T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "javascript",
        "service-worker"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/url-navigation-from-service-worker/",
      "markdownUrl": "https://h3manth.com/scribe/blog/url-navigation-from-service-worker.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/url-navigation-from-service-worker.md",
      "wordCount": 64,
      "readingTimeMinutes": 1,
      "tokensEstimate": 259
    },
    {
      "slug": "webpack-bundle-unimported-assets",
      "title": "Webpack: Bundle Unimported Assets",
      "excerpt": "How to bundle files not imported in source using webpack. Practical notes and code examples on Webpack: Bundle Unimported.",
      "publishDate": "2016-07-23T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "webpack",
        "javascript"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/webpack-bundle-unimported-assets/",
      "markdownUrl": "https://h3manth.com/scribe/blog/webpack-bundle-unimported-assets.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/webpack-bundle-unimported-assets.md",
      "wordCount": 62,
      "readingTimeMinutes": 1,
      "tokensEstimate": 303
    },
    {
      "slug": "path-resolver-with-javascript-proxies",
      "title": "Path Resolver with JavaScript Proxies",
      "excerpt": "Using ES6 Proxies to access nested object paths with dot notation strings. Practical notes and code examples on Path in JS.",
      "publishDate": "2016-06-15T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "es6",
        "proxy"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/path-resolver-with-javascript-proxies/",
      "markdownUrl": "https://h3manth.com/scribe/blog/path-resolver-with-javascript-proxies.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/path-resolver-with-javascript-proxies.md",
      "wordCount": 78,
      "readingTimeMinutes": 1,
      "tokensEstimate": 207
    },
    {
      "slug": "serviceworker-communication-via-messagechannel",
      "title": "ServiceWorker Communication via MessageChannel",
      "excerpt": "Two-way communication between ServiceWorker and main thread using MessageChannel API. Practical notes and code examples on.",
      "publishDate": "2016-02-13T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "javascript",
        "service-worker",
        "web-api"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/serviceworker-communication-via-messagechannel/",
      "markdownUrl": "https://h3manth.com/scribe/blog/serviceworker-communication-via-messagechannel.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/serviceworker-communication-via-messagechannel.md",
      "wordCount": 121,
      "readingTimeMinutes": 1,
      "tokensEstimate": 387
    },
    {
      "slug": "string-prototype-replace-you-might-have-missed",
      "title": "String.prototype.replace You Might Have Missed",
      "excerpt": "Using replacer functions in JavaScript’s String.replace method. Practical notes and code examples on — Scribe notes.",
      "publishDate": "2016-01-10T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/string-prototype-replace-you-might-have-missed/",
      "markdownUrl": "https://h3manth.com/scribe/blog/string-prototype-replace-you-might-have-missed.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/string-prototype-replace-you-might-have-missed.md",
      "wordCount": 101,
      "readingTimeMinutes": 1,
      "tokensEstimate": 272
    },
    {
      "slug": "365-days-of-github",
      "title": "365 Days of GitHub",
      "excerpt": "Learnings from 365 days of continuous GitHub contributions. Practical notes and code examples on 365 Days of GitHub by in JS.",
      "publishDate": "2015-11-07T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "opensource",
      "tags": [
        "github",
        "opensource"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/365-days-of-github/",
      "markdownUrl": "https://h3manth.com/scribe/blog/365-days-of-github.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/365-days-of-github.md",
      "wordCount": 160,
      "readingTimeMinutes": 1,
      "tokensEstimate": 322
    },
    {
      "slug": "are-you-async-yet",
      "title": "Are You Async Yet?",
      "excerpt": "Transitioning from callbacks to async/await in JavaScript. Practical notes and code examples on Are You Async Yet? by in JS.",
      "publishDate": "2015-10-05T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "async",
        "es7"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/are-you-async-yet/",
      "markdownUrl": "https://h3manth.com/scribe/blog/are-you-async-yet.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/are-you-async-yet.md",
      "wordCount": 76,
      "readingTimeMinutes": 1,
      "tokensEstimate": 237
    },
    {
      "slug": "recursive-map-reduce-and-filter-in-javascript",
      "title": "Recursive Map, Reduce and Filter in JavaScript",
      "excerpt": "Functional implementations of map, reduce, and filter using recursion. Practical notes and code examples on Recursive Map.",
      "publishDate": "2015-09-06T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "functional"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/recursive-map-reduce-and-filter-in-javascript/",
      "markdownUrl": "https://h3manth.com/scribe/blog/recursive-map-reduce-and-filter-in-javascript.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/recursive-map-reduce-and-filter-in-javascript.md",
      "wordCount": 108,
      "readingTimeMinutes": 1,
      "tokensEstimate": 253
    },
    {
      "slug": "authoring-node-modules",
      "title": "Authoring Node Modules",
      "excerpt": "Best practices for creating and publishing npm packages. Practical notes and code examples on Authoring Node Modules by.",
      "publishDate": "2015-07-30T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "node",
      "tags": [
        "node",
        "npm"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/authoring-node-modules/",
      "markdownUrl": "https://h3manth.com/scribe/blog/authoring-node-modules.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/authoring-node-modules.md",
      "wordCount": 127,
      "readingTimeMinutes": 1,
      "tokensEstimate": 323
    },
    {
      "slug": "es7-async-await",
      "title": "ES7 Async Await",
      "excerpt": "The async/await proposal that changed how we handle asynchronous JavaScript. Practical notes and code examples on ES7 Async.",
      "publishDate": "2015-06-21T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "es7",
        "async"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/es7-async-await/",
      "markdownUrl": "https://h3manth.com/scribe/blog/es7-async-await.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/es7-async-await.md",
      "wordCount": 193,
      "readingTimeMinutes": 1,
      "tokensEstimate": 405
    },
    {
      "slug": "create-a-nodeschool-workshop",
      "title": "Create a NodeSchool Workshop",
      "excerpt": "Building interactive NodeSchool workshops with adventure-runner. Practical notes and code examples on Create a NodeSchool.",
      "publishDate": "2015-05-23T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "node",
      "tags": [
        "node",
        "nodeschool"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/create-a-nodeschool-workshop/",
      "markdownUrl": "https://h3manth.com/scribe/blog/create-a-nodeschool-workshop.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/create-a-nodeschool-workshop.md",
      "wordCount": 95,
      "readingTimeMinutes": 1,
      "tokensEstimate": 282
    },
    {
      "slug": "currying-in-es6",
      "title": "Currying in ES6",
      "excerpt": "Implementing function currying with ES6 arrow functions. Practical notes and code examples on Currying in ES6 by Hemanth HM.",
      "publishDate": "2015-04-30T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "es6",
        "functional"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/currying-in-es6/",
      "markdownUrl": "https://h3manth.com/scribe/blog/currying-in-es6.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/currying-in-es6.md",
      "wordCount": 129,
      "readingTimeMinutes": 1,
      "tokensEstimate": 298
    },
    {
      "slug": "es7-features",
      "title": "ES7 Features",
      "excerpt": "Overview of ECMAScript 7 (ES2016) features and proposals. Practical notes and code examples on ES7 Features by Hemanth HM.",
      "publishDate": "2015-03-10T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "es7"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/es7-features/",
      "markdownUrl": "https://h3manth.com/scribe/blog/es7-features.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/es7-features.md",
      "wordCount": 89,
      "readingTimeMinutes": 1,
      "tokensEstimate": 270
    },
    {
      "slug": "sms-service-with-firefox-os",
      "title": "SMS Service with Firefox OS",
      "excerpt": "Building an SMS booking service using Firefox OS APIs. Practical notes and code examples on SMS Service with Firefox OS by.",
      "publishDate": "2015-02-21T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "javascript",
        "firefoxos"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/sms-service-with-firefox-os/",
      "markdownUrl": "https://h3manth.com/scribe/blog/sms-service-with-firefox-os.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/sms-service-with-firefox-os.md",
      "wordCount": 90,
      "readingTimeMinutes": 1,
      "tokensEstimate": 265
    },
    {
      "slug": "superfluous-patterns-of-javascript",
      "title": "Superfluous Patterns of JavaScript",
      "excerpt": "ES6 features that eliminate old JavaScript patterns. Practical notes and code examples on Superfluous Patterns of JavaScript.",
      "publishDate": "2015-02-20T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "es6"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/superfluous-patterns-of-javascript/",
      "markdownUrl": "https://h3manth.com/scribe/blog/superfluous-patterns-of-javascript.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/superfluous-patterns-of-javascript.md",
      "wordCount": 137,
      "readingTimeMinutes": 1,
      "tokensEstimate": 295
    },
    {
      "slug": "node-rules",
      "title": "Node Rules - Business Rules Engine",
      "excerpt": "Light weight forward chaining Rule Engine for JavaScript. Practical notes and code examples on Node Rules - Business Rules.",
      "publishDate": "2015-01-29T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "node",
      "tags": [
        "node",
        "business-logic"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/node-rules/",
      "markdownUrl": "https://h3manth.com/scribe/blog/node-rules.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/node-rules.md",
      "wordCount": 88,
      "readingTimeMinutes": 1,
      "tokensEstimate": 269
    },
    {
      "slug": "es6-reflect-api",
      "title": "ES6 Reflect API",
      "excerpt": "Understanding the Reflect object and its methods in ES6. Practical notes and code examples on ES6 Reflect API by Hemanth HM.",
      "publishDate": "2015-01-12T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "es6"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/es6-reflect-api/",
      "markdownUrl": "https://h3manth.com/scribe/blog/es6-reflect-api.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/es6-reflect-api.md",
      "wordCount": 202,
      "readingTimeMinutes": 2,
      "tokensEstimate": 499
    },
    {
      "slug": "custom-elements-with-es6",
      "title": "Custom Elements with ES6",
      "excerpt": "Creating Web Components custom elements using ES6 classes. Practical notes and code examples on Custom Elements with ES6 by.",
      "publishDate": "2015-01-06T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "web",
        "webcomponents",
        "es6"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/custom-elements-with-es6/",
      "markdownUrl": "https://h3manth.com/scribe/blog/custom-elements-with-es6.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/custom-elements-with-es6.md",
      "wordCount": 104,
      "readingTimeMinutes": 1,
      "tokensEstimate": 301
    },
    {
      "slug": "descriptor-decorator-in-python",
      "title": "Descriptor Decorator in Python",
      "excerpt": "Combining Python decorators with descriptor protocol. Practical notes and code examples on Descriptor Decorator in Python.",
      "publishDate": "2014-12-01T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "python"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/descriptor-decorator-in-python/",
      "markdownUrl": "https://h3manth.com/scribe/blog/descriptor-decorator-in-python.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/descriptor-decorator-in-python.md",
      "wordCount": 73,
      "readingTimeMinutes": 1,
      "tokensEstimate": 259
    },
    {
      "slug": "es6-array-methods",
      "title": "ES6 Array Methods",
      "excerpt": "New array methods in ES6: Array.from, Array.of, copyWithin, fill, find, findIndex, keys, entries, values. Practical notes.",
      "publishDate": "2014-10-18T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "es6"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/es6-array-methods/",
      "markdownUrl": "https://h3manth.com/scribe/blog/es6-array-methods.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/es6-array-methods.md",
      "wordCount": 222,
      "readingTimeMinutes": 2,
      "tokensEstimate": 467
    },
    {
      "slug": "python-datasets",
      "title": "Python Datasets",
      "excerpt": "Simple database abstraction with Python dataset library. Practical notes and code examples on Python Datasets by Hemanth HM.",
      "publishDate": "2014-09-14T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "python",
        "db"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/python-datasets/",
      "markdownUrl": "https://h3manth.com/scribe/blog/python-datasets.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/python-datasets.md",
      "wordCount": 66,
      "readingTimeMinutes": 1,
      "tokensEstimate": 254
    },
    {
      "slug": "date-shifting-in-ruby",
      "title": "Date Shifting in Ruby",
      "excerpt": "Using the and operators on Ruby Date objects. Practical notes and code examples on Date Shifting in Ruby by Hemanth HM in JS.",
      "publishDate": "2014-09-11T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "ruby",
      "tags": [
        "ruby"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/date-shifting-in-ruby/",
      "markdownUrl": "https://h3manth.com/scribe/blog/date-shifting-in-ruby.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/date-shifting-in-ruby.md",
      "wordCount": 63,
      "readingTimeMinutes": 1,
      "tokensEstimate": 190
    },
    {
      "slug": "thisarg-in-javascript",
      "title": "thisArg in JavaScript",
      "excerpt": "Understanding the thisArg parameter in JavaScript array methods. Practical notes and code examples on thisArg in JavaScript.",
      "publishDate": "2014-08-09T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/thisarg-in-javascript/",
      "markdownUrl": "https://h3manth.com/scribe/blog/thisarg-in-javascript.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/thisarg-in-javascript.md",
      "wordCount": 166,
      "readingTimeMinutes": 1,
      "tokensEstimate": 425
    },
    {
      "slug": "immediately-invoked-generator-function-expression-iigfe",
      "title": "Immediately-Invoked Generator Function Expression (IIGFE)",
      "excerpt": "A new pattern for immediately invoked generator functions in ES6. Practical notes and code examples on Immediately-Invoked.",
      "publishDate": "2014-07-08T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "es6",
        "generators"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/immediately-invoked-generator-function-expression-iigfe/",
      "markdownUrl": "https://h3manth.com/scribe/blog/immediately-invoked-generator-function-expression-iigfe.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/immediately-invoked-generator-function-expression-iigfe.md",
      "wordCount": 83,
      "readingTimeMinutes": 1,
      "tokensEstimate": 230
    },
    {
      "slug": "check-for-root-user",
      "title": "Check for Root User",
      "excerpt": "Checking for root privileges across different languages. Practical notes and code examples on Check for Root User by Hemanth.",
      "publishDate": "2014-06-14T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "cli",
      "tags": [
        "linux",
        "cli"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/check-for-root-user/",
      "markdownUrl": "https://h3manth.com/scribe/blog/check-for-root-user.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/check-for-root-user.md",
      "wordCount": 67,
      "readingTimeMinutes": 1,
      "tokensEstimate": 219
    },
    {
      "slug": "thunks-in-haskell",
      "title": "Thunks in Haskell",
      "excerpt": "Understanding lazy evaluation and thunks in Haskell. Practical notes and code examples on Thunks in Haskell by Hemanth HM.",
      "publishDate": "2014-06-14T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "haskell",
      "tags": [
        "haskell",
        "functional"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/thunks-in-haskell/",
      "markdownUrl": "https://h3manth.com/scribe/blog/thunks-in-haskell.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/thunks-in-haskell.md",
      "wordCount": 98,
      "readingTimeMinutes": 1,
      "tokensEstimate": 261
    },
    {
      "slug": "navigator-sendbeacon",
      "title": "navigator.sendBeacon",
      "excerpt": "Using the Beacon API for reliable analytics data transmission during page unload. Practical notes and code examples on in JS.",
      "publishDate": "2014-05-17T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "javascript",
        "web-api",
        "analytics"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/navigator-sendbeacon/",
      "markdownUrl": "https://h3manth.com/scribe/blog/navigator-sendbeacon.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/navigator-sendbeacon.md",
      "wordCount": 167,
      "readingTimeMinutes": 1,
      "tokensEstimate": 414
    },
    {
      "slug": "detecting-file-type-in-node-and-browser",
      "title": "Detecting File Type in Node and Browser",
      "excerpt": "Using magic numbers and file signatures to detect file types in JavaScript. Practical notes and code examples on Detecting.",
      "publishDate": "2014-05-01T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "node",
      "tags": [
        "node",
        "javascript"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/detecting-file-type-in-node-and-browser/",
      "markdownUrl": "https://h3manth.com/scribe/blog/detecting-file-type-in-node-and-browser.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/detecting-file-type-in-node-and-browser.md",
      "wordCount": 129,
      "readingTimeMinutes": 1,
      "tokensEstimate": 390
    },
    {
      "slug": "prime-number-generation-with-es6-generators",
      "title": "Prime Number Generation with ES6 Generators",
      "excerpt": "Using ES6 generators to create an infinite prime number generator. Practical notes and code examples on Prime Number in JS.",
      "publishDate": "2014-04-18T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "es6",
        "generators"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/prime-number-generation-with-es6-generators/",
      "markdownUrl": "https://h3manth.com/scribe/blog/prime-number-generation-with-es6-generators.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/prime-number-generation-with-es6-generators.md",
      "wordCount": 92,
      "readingTimeMinutes": 1,
      "tokensEstimate": 238
    },
    {
      "slug": "grunt-usemin-example",
      "title": "grunt-usemin Example",
      "excerpt": "Minimal example of using grunt-usemin for asset optimization. Practical notes and code examples on grunt-usemin Example by.",
      "publishDate": "2014-04-09T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "tools",
      "tags": [
        "grunt",
        "build"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/grunt-usemin-example/",
      "markdownUrl": "https://h3manth.com/scribe/blog/grunt-usemin-example.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/grunt-usemin-example.md",
      "wordCount": 71,
      "readingTimeMinutes": 1,
      "tokensEstimate": 250
    },
    {
      "slug": "tree-traversal-with-es6-generator",
      "title": "Tree Traversal with ES6 Generator",
      "excerpt": "Implementing depth-first tree traversal algorithms using ES6 generators. Practical notes and code examples on Tree Traversal.",
      "publishDate": "2014-03-14T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "es6",
        "generators",
        "algorithms"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/tree-traversal-with-es6-generator/",
      "markdownUrl": "https://h3manth.com/scribe/blog/tree-traversal-with-es6-generator.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/tree-traversal-with-es6-generator.md",
      "wordCount": 165,
      "readingTimeMinutes": 1,
      "tokensEstimate": 419
    },
    {
      "slug": "clone-all-official-yeoman-generators",
      "title": "Clone All Official Yeoman Generators",
      "excerpt": "Script to clone all official Yeoman generators. Practical notes and code examples on Clone All Official Yeoman Generators.",
      "publishDate": "2014-03-09T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "tools",
      "tags": [
        "yeoman",
        "cli"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/clone-all-official-yeoman-generators/",
      "markdownUrl": "https://h3manth.com/scribe/blog/clone-all-official-yeoman-generators.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/clone-all-official-yeoman-generators.md",
      "wordCount": 60,
      "readingTimeMinutes": 1,
      "tokensEstimate": 215
    },
    {
      "slug": "npm-save-to-create-package-json",
      "title": "npm --save to Create package.json",
      "excerpt": "Shell function to automatically create package.json when using npm install --save. Practical notes and code examples on npm.",
      "publishDate": "2014-03-09T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "node",
      "tags": [
        "node",
        "npm"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/npm-save-to-create-package-json/",
      "markdownUrl": "https://h3manth.com/scribe/blog/npm-save-to-create-package-json.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/npm-save-to-create-package-json.md",
      "wordCount": 138,
      "readingTimeMinutes": 1,
      "tokensEstimate": 303
    },
    {
      "slug": "atom-editor-packages-with-yeoman",
      "title": "Atom Editor Packages with Yeoman",
      "excerpt": "Using Yeoman generator to scaffold Atom editor packages. Practical notes and code examples on Atom Editor Packages with.",
      "publishDate": "2014-03-02T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "tools",
      "tags": [
        "atom",
        "yeoman"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/atom-editor-packages-with-yeoman/",
      "markdownUrl": "https://h3manth.com/scribe/blog/atom-editor-packages-with-yeoman.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/atom-editor-packages-with-yeoman.md",
      "wordCount": 63,
      "readingTimeMinutes": 1,
      "tokensEstimate": 195
    },
    {
      "slug": "current-interface-and-random-port-with-nodejs",
      "title": "Current Interface and Random Port with Node.js",
      "excerpt": "Quick way to get the current network interface and a random port for Node.js servers. Practical notes and code examples on.",
      "publishDate": "2014-02-16T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "node",
      "tags": [
        "node",
        "javascript"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/current-interface-and-random-port-with-nodejs/",
      "markdownUrl": "https://h3manth.com/scribe/blog/current-interface-and-random-port-with-nodejs.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/current-interface-and-random-port-with-nodejs.md",
      "wordCount": 131,
      "readingTimeMinutes": 1,
      "tokensEstimate": 320
    },
    {
      "slug": "es6-one-liners-to-show-off",
      "title": "ES6 One Liners to Show Off",
      "excerpt": "Collection of impressive ES6 one-liners for destructuring, spread, Sets, and more. Practical notes and code examples on ES6.",
      "publishDate": "2014-02-11T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "es6"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/es6-one-liners-to-show-off/",
      "markdownUrl": "https://h3manth.com/scribe/blog/es6-one-liners-to-show-off.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/es6-one-liners-to-show-off.md",
      "wordCount": 113,
      "readingTimeMinutes": 1,
      "tokensEstimate": 265
    },
    {
      "slug": "getting-started-with-koajs",
      "title": "Getting Started with Koa.js",
      "excerpt": "Introduction to Koa, the next generation web framework for Node.js using ES6 generators. Practical notes and code examples.",
      "publishDate": "2014-02-09T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "node",
      "tags": [
        "node",
        "javascript",
        "koa"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/getting-started-with-koajs/",
      "markdownUrl": "https://h3manth.com/scribe/blog/getting-started-with-koajs.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/getting-started-with-koajs.md",
      "wordCount": 187,
      "readingTimeMinutes": 1,
      "tokensEstimate": 438
    },
    {
      "slug": "launch-browser-from-node-server",
      "title": "Launch Browser from Node Server",
      "excerpt": "Automatically open the browser when starting a Node.js web server. Practical notes and code examples on Launch Browser from.",
      "publishDate": "2014-01-30T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "node",
      "tags": [
        "node",
        "javascript"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/launch-browser-from-node-server/",
      "markdownUrl": "https://h3manth.com/scribe/blog/launch-browser-from-node-server.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/launch-browser-from-node-server.md",
      "wordCount": 106,
      "readingTimeMinutes": 1,
      "tokensEstimate": 297
    },
    {
      "slug": "programmatically-accessing-network-interfaces",
      "title": "Programmatically Accessing Network Interfaces",
      "excerpt": "Accessing network interfaces in Ruby, Python, Perl, and Node.js. Practical notes and code examples on Programmatically in JS.",
      "publishDate": "2013-12-30T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "node",
      "tags": [
        "node",
        "ruby",
        "python",
        "cli"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/programmatically-accessing-network-interfaces/",
      "markdownUrl": "https://h3manth.com/scribe/blog/programmatically-accessing-network-interfaces.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/programmatically-accessing-network-interfaces.md",
      "wordCount": 76,
      "readingTimeMinutes": 1,
      "tokensEstimate": 248
    },
    {
      "slug": "publish-packages-to-npm-with-yeoman",
      "title": "Publish Packages to NPM with Yeoman",
      "excerpt": "Using Yeoman’s generator-node to create and publish npm packages. Practical notes and code examples on Publish Packages to.",
      "publishDate": "2013-11-30T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "node",
      "tags": [
        "node",
        "npm",
        "yeoman"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/publish-packages-to-npm-with-yeoman/",
      "markdownUrl": "https://h3manth.com/scribe/blog/publish-packages-to-npm-with-yeoman.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/publish-packages-to-npm-with-yeoman.md",
      "wordCount": 80,
      "readingTimeMinutes": 1,
      "tokensEstimate": 261
    },
    {
      "slug": "dom-mutation-observers",
      "title": "DOM Mutation Observers",
      "excerpt": "Using MutationObserver API to watch for DOM tree changes. Practical notes and code examples on DOM Mutation Observers by.",
      "publishDate": "2013-11-11T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "javascript",
        "dom",
        "web-api"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/dom-mutation-observers/",
      "markdownUrl": "https://h3manth.com/scribe/blog/dom-mutation-observers.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/dom-mutation-observers.md",
      "wordCount": 110,
      "readingTimeMinutes": 1,
      "tokensEstimate": 377
    },
    {
      "slug": "negative-array-index-in-javascript",
      "title": "Negative Array Index in JavaScript",
      "excerpt": "Implementing Python-style negative array indexing using ES6 Proxies. Practical notes and code examples on Negative Array.",
      "publishDate": "2013-10-06T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "es6",
        "proxies"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/negative-array-index-in-javascript/",
      "markdownUrl": "https://h3manth.com/scribe/blog/negative-array-index-in-javascript.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/negative-array-index-in-javascript.md",
      "wordCount": 99,
      "readingTimeMinutes": 1,
      "tokensEstimate": 282
    },
    {
      "slug": "redefining-dom-objects-behaviour",
      "title": "Redefining DOM Object's Behaviour",
      "excerpt": "Using Object.defineProperty with setAttribute to redefine DOM element properties. Practical notes and code examples on in JS.",
      "publishDate": "2013-09-05T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "dom"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/redefining-dom-objects-behaviour/",
      "markdownUrl": "https://h3manth.com/scribe/blog/redefining-dom-objects-behaviour.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/redefining-dom-objects-behaviour.md",
      "wordCount": 119,
      "readingTimeMinutes": 1,
      "tokensEstimate": 339
    },
    {
      "slug": "es6-on-nodejs",
      "title": "ES6 on Node.js",
      "excerpt": "Using ES6 harmony features in Node.js with --harmony flags. Practical notes and code examples on ES6 on Node.js by Hemanth.",
      "publishDate": "2013-09-01T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "node",
      "tags": [
        "node",
        "javascript",
        "es6"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/es6-on-nodejs/",
      "markdownUrl": "https://h3manth.com/scribe/blog/es6-on-nodejs.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/es6-on-nodejs.md",
      "wordCount": 166,
      "readingTimeMinutes": 1,
      "tokensEstimate": 387
    },
    {
      "slug": "jekyll-blog-from-a-subdirectory",
      "title": "Jekyll Blog from a Subdirectory",
      "excerpt": "Serving a Jekyll blog from a subdirectory like example.com/blog. Practical notes and code examples on Jekyll Blog from a.",
      "publishDate": "2013-08-25T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "jekyll",
        "cli"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/jekyll-blog-from-a-subdirectory/",
      "markdownUrl": "https://h3manth.com/scribe/blog/jekyll-blog-from-a-subdirectory.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/jekyll-blog-from-a-subdirectory.md",
      "wordCount": 88,
      "readingTimeMinutes": 1,
      "tokensEstimate": 246
    },
    {
      "slug": "method-deprecated-warning-in-nodejs",
      "title": "Method Deprecated Warning in Node.js",
      "excerpt": "Using util.deprecate to warn users about deprecated methods. Practical notes and code examples on Method Deprecated Warning.",
      "publishDate": "2013-08-06T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "node",
      "tags": [
        "node",
        "javascript"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/method-deprecated-warning-in-nodejs/",
      "markdownUrl": "https://h3manth.com/scribe/blog/method-deprecated-warning-in-nodejs.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/method-deprecated-warning-in-nodejs.md",
      "wordCount": 68,
      "readingTimeMinutes": 1,
      "tokensEstimate": 216
    },
    {
      "slug": "auto-syncing-a-forked-git-repository",
      "title": "Auto Syncing a Forked Git Repository",
      "excerpt": "Bash script to automatically sync forked repos with parent. Practical notes and code examples on Auto Syncing a Forked Git.",
      "publishDate": "2013-07-31T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "opensource",
      "tags": [
        "git",
        "bash",
        "cli"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/auto-syncing-a-forked-git-repository/",
      "markdownUrl": "https://h3manth.com/scribe/blog/auto-syncing-a-forked-git-repository.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/auto-syncing-a-forked-git-repository.md",
      "wordCount": 131,
      "readingTimeMinutes": 1,
      "tokensEstimate": 302
    },
    {
      "slug": "auto-require-ruby-gems",
      "title": "Auto Require Ruby Gems",
      "excerpt": "Automatically install missing Ruby gems when requiring them. Practical notes and code examples on Auto Require Ruby Gems by.",
      "publishDate": "2013-07-27T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "ruby",
      "tags": [
        "ruby"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/auto-require-ruby-gems/",
      "markdownUrl": "https://h3manth.com/scribe/blog/auto-require-ruby-gems.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/auto-require-ruby-gems.md",
      "wordCount": 83,
      "readingTimeMinutes": 1,
      "tokensEstimate": 241
    },
    {
      "slug": "sublime-text-build-system-errno-2",
      "title": "Sublime Text Build System Errno 2",
      "excerpt": "Fixing the Errno 2 issue in Sublime Text build systems. Practical notes and code examples on Sublime Text Build System Errno.",
      "publishDate": "2013-07-27T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "cli",
        "sublime"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/sublime-text-build-system-errno-2/",
      "markdownUrl": "https://h3manth.com/scribe/blog/sublime-text-build-system-errno-2.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/sublime-text-build-system-errno-2.md",
      "wordCount": 42,
      "readingTimeMinutes": 1,
      "tokensEstimate": 179
    },
    {
      "slug": "http-status-code-as-a-service",
      "title": "HTTP Status Code as a Service",
      "excerpt": "Building a simple HTTP status code service with Node.js. Practical notes and code examples on HTTP Status Code as a Service.",
      "publishDate": "2013-07-22T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "node",
      "tags": [
        "node",
        "javascript"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/http-status-code-as-a-service/",
      "markdownUrl": "https://h3manth.com/scribe/blog/http-status-code-as-a-service.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/http-status-code-as-a-service.md",
      "wordCount": 58,
      "readingTimeMinutes": 1,
      "tokensEstimate": 218
    },
    {
      "slug": "grunt-test-before-git-commit",
      "title": "Grunt Test Before Git Commit",
      "excerpt": "Running tests with grunt before every git commit using pre-commit hooks. Practical notes and code examples on Grunt Test.",
      "publishDate": "2013-07-15T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "node",
      "tags": [
        "node",
        "grunt",
        "git",
        "testing"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/grunt-test-before-git-commit/",
      "markdownUrl": "https://h3manth.com/scribe/blog/grunt-test-before-git-commit.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/grunt-test-before-git-commit.md",
      "wordCount": 100,
      "readingTimeMinutes": 1,
      "tokensEstimate": 271
    },
    {
      "slug": "grunt-tweet-git-commit",
      "title": "Grunt Tweet Git Commit",
      "excerpt": "Automatically tweet about every git commit using Grunt. Practical notes and code examples on Grunt Tweet Git Commit by in JS.",
      "publishDate": "2013-07-07T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "node",
      "tags": [
        "node",
        "grunt",
        "git",
        "cli"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/grunt-tweet-git-commit/",
      "markdownUrl": "https://h3manth.com/scribe/blog/grunt-tweet-git-commit.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/grunt-tweet-git-commit.md",
      "wordCount": 140,
      "readingTimeMinutes": 1,
      "tokensEstimate": 382
    },
    {
      "slug": "handling-currency-in-javascript",
      "title": "Handling Currency in JavaScript",
      "excerpt": "Using the Intl.NumberFormat API for currency formatting. Practical notes and code examples on Handling Currency in in JS.",
      "publishDate": "2013-06-18T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "intl"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/handling-currency-in-javascript/",
      "markdownUrl": "https://h3manth.com/scribe/blog/handling-currency-in-javascript.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/handling-currency-in-javascript.md",
      "wordCount": 89,
      "readingTimeMinutes": 1,
      "tokensEstimate": 300
    },
    {
      "slug": "selfless-javascript",
      "title": "Selfless JavaScript",
      "excerpt": "Avoiding self=this by using bind() for context preservation. Practical notes and code examples on Selfless JavaScript by.",
      "publishDate": "2013-05-26T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/selfless-javascript/",
      "markdownUrl": "https://h3manth.com/scribe/blog/selfless-javascript.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/selfless-javascript.md",
      "wordCount": 160,
      "readingTimeMinutes": 1,
      "tokensEstimate": 372
    },
    {
      "slug": "auto-notify-git-pull",
      "title": "Auto Notify Git Pull",
      "excerpt": "Bash function to notify when entering a git directory with upstream changes. Practical notes and code examples on Auto in JS.",
      "publishDate": "2013-05-01T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "opensource",
      "tags": [
        "git",
        "bash",
        "cli"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/auto-notify-git-pull/",
      "markdownUrl": "https://h3manth.com/scribe/blog/auto-notify-git-pull.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/auto-notify-git-pull.md",
      "wordCount": 99,
      "readingTimeMinutes": 1,
      "tokensEstimate": 242
    },
    {
      "slug": "getting-expiry-date-of-pfx-pkcs12",
      "title": "Getting the Expiry Date of PFX (PKCS12)",
      "excerpt": "How to extract certificate expiration date from PFX files using OpenSSL. Practical notes and code examples on Getting the.",
      "publishDate": "2013-04-29T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "security",
      "tags": [
        "cli",
        "openssl",
        "security"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/getting-expiry-date-of-pfx-pkcs12/",
      "markdownUrl": "https://h3manth.com/scribe/blog/getting-expiry-date-of-pfx-pkcs12.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/getting-expiry-date-of-pfx-pkcs12.md",
      "wordCount": 67,
      "readingTimeMinutes": 1,
      "tokensEstimate": 200
    },
    {
      "slug": "power-of-vanilla-js",
      "title": "Power of Vanilla JS",
      "excerpt": "Demonstrating the power of native JavaScript without jQuery. Practical notes and code examples on Power of Vanilla JS by.",
      "publishDate": "2013-04-26T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "vanilla-js"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/power-of-vanilla-js/",
      "markdownUrl": "https://h3manth.com/scribe/blog/power-of-vanilla-js.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/power-of-vanilla-js.md",
      "wordCount": 128,
      "readingTimeMinutes": 1,
      "tokensEstimate": 434
    },
    {
      "slug": "web-crawler-with-python-twisted",
      "title": "Web Crawler with Python Twisted",
      "excerpt": "Building an asynchronous web crawler using Python Twisted framework. Practical notes and code examples on Web Crawler with.",
      "publishDate": "2013-04-26T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "python",
        "twisted",
        "web-crawler"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/web-crawler-with-python-twisted/",
      "markdownUrl": "https://h3manth.com/scribe/blog/web-crawler-with-python-twisted.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/web-crawler-with-python-twisted.md",
      "wordCount": 123,
      "readingTimeMinutes": 1,
      "tokensEstimate": 397
    },
    {
      "slug": "regular-expression-negation-in-ruby",
      "title": "Regular Expression Negation in Ruby",
      "excerpt": "The difference between !=~ and !~ for regex negation in Ruby. Practical notes and code examples on Regular Expression in JS.",
      "publishDate": "2013-04-24T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "ruby",
      "tags": [
        "ruby",
        "regex"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/regular-expression-negation-in-ruby/",
      "markdownUrl": "https://h3manth.com/scribe/blog/regular-expression-negation-in-ruby.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/regular-expression-negation-in-ruby.md",
      "wordCount": 83,
      "readingTimeMinutes": 1,
      "tokensEstimate": 209
    },
    {
      "slug": "watir-webdriver-web-inspector",
      "title": "Watir-webdriver Web Inspector",
      "excerpt": "An experimental minimal combinatorial code generation on element inspection. Check out the repo for sending your P.R ;) The.",
      "publishDate": "2013-04-20T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "ruby",
        "git",
        "web",
        "linux"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/watir-webdriver-web-inspector/",
      "markdownUrl": "https://h3manth.com/scribe/blog/watir-webdriver-web-inspector.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/watir-webdriver-web-inspector.md",
      "wordCount": 244,
      "readingTimeMinutes": 2,
      "tokensEstimate": 647
    },
    {
      "slug": "gem-list-gemfile",
      "title": "Gem List to Gemfile",
      "excerpt": "Say you have n-machines that needs to be in sync with their ruby gem versions, we can have one system to update all as per.",
      "publishDate": "2013-03-20T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "ruby",
        "javascript"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/gem-list-gemfile/",
      "markdownUrl": "https://h3manth.com/scribe/blog/gem-list-gemfile.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/gem-list-gemfile.md",
      "wordCount": 182,
      "readingTimeMinutes": 1,
      "tokensEstimate": 394
    },
    {
      "slug": "packing-ruby20-debian",
      "title": "Packing ruby2.0 on Debian.",
      "excerpt": "One can use the below script to package ruby2.0 on squeeze. To get going, just get the script form Here and says sudo bash.",
      "publishDate": "2013-03-08T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "ruby",
        "ubuntu",
        "git",
        "bash"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/packing-ruby20-debian/",
      "markdownUrl": "https://h3manth.com/scribe/blog/packing-ruby20-debian.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/packing-ruby20-debian.md",
      "wordCount": 162,
      "readingTimeMinutes": 1,
      "tokensEstimate": 400
    },
    {
      "slug": "made-it-guinness-book",
      "title": "Made It Into the Guinness Book!",
      "excerpt": "Couple of weeks back when I was cleaning my mailbox I noticed a mail which read Hey redditgiftor, YOU are a Guinness World.",
      "publishDate": "2013-03-03T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/made-it-guinness-book/",
      "markdownUrl": "https://h3manth.com/scribe/blog/made-it-guinness-book.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/made-it-guinness-book.md",
      "wordCount": 172,
      "readingTimeMinutes": 1,
      "tokensEstimate": 316
    },
    {
      "slug": "filter-elements-pattern-jquery",
      "title": "Filter Elements by Pattern jQuery.",
      "excerpt": "The need was pretty simple : ’Find the elements that contain a particular word and display them and hide others’ Along with.",
      "publishDate": "2013-02-23T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "python",
        "javascript",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/filter-elements-pattern-jquery/",
      "markdownUrl": "https://h3manth.com/scribe/blog/filter-elements-pattern-jquery.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/filter-elements-pattern-jquery.md",
      "wordCount": 113,
      "readingTimeMinutes": 1,
      "tokensEstimate": 320
    },
    {
      "slug": "better-html-password-fields-mobile",
      "title": "Better HTML Password Fields for Mobile ?",
      "excerpt": "There is a particular issue that most of us would have noticed with few mobile devices in portrait with T9 (predictivetext).",
      "publishDate": "2013-02-08T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/better-html-password-fields-mobile/",
      "markdownUrl": "https://h3manth.com/scribe/blog/better-html-password-fields-mobile.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/better-html-password-fields-mobile.md",
      "wordCount": 263,
      "readingTimeMinutes": 2,
      "tokensEstimate": 549
    },
    {
      "slug": "grayscale-image-when-user-offline",
      "title": "Grayscale Image When User Offline",
      "excerpt": "You must have noticed, webapps images in chrome going grayscale to indicate that the network is down, a simple demonstration.",
      "publishDate": "2013-01-07T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/grayscale-image-when-user-offline/",
      "markdownUrl": "https://h3manth.com/scribe/blog/grayscale-image-when-user-offline.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/grayscale-image-when-user-offline.md",
      "wordCount": 169,
      "readingTimeMinutes": 1,
      "tokensEstimate": 438
    },
    {
      "slug": "nth-child-css-pseudo-class-christmas-colors",
      "title": "Nth-child CSS Pseudo-class Christmas Colors",
      "excerpt": "Lately /me noticed HN using Christmas color scheme for their post numbering, but the source sadly read 1. below is some.",
      "publishDate": "2012-12-25T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/nth-child-css-pseudo-class-christmas-colors/",
      "markdownUrl": "https://h3manth.com/scribe/blog/nth-child-css-pseudo-class-christmas-colors.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/nth-child-css-pseudo-class-christmas-colors.md",
      "wordCount": 196,
      "readingTimeMinutes": 1,
      "tokensEstimate": 409
    },
    {
      "slug": "eventemitter-nodejs",
      "title": "EventEmitter in Nodejs",
      "excerpt": "Sometime back had pawed at Making promises with javascript but node school of thought offers an attractive pattern of in JS.",
      "publishDate": "2012-12-16T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "nodejs",
        "javascript",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/eventemitter-nodejs/",
      "markdownUrl": "https://h3manth.com/scribe/blog/eventemitter-nodejs.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/eventemitter-nodejs.md",
      "wordCount": 159,
      "readingTimeMinutes": 1,
      "tokensEstimate": 421
    },
    {
      "slug": "live-reload-grunt",
      "title": "Live Reload With Grunt",
      "excerpt": "Sometime back I had published an entry on Node Packing with grunt but live reload has been so fascinating to most of the.",
      "publishDate": "2012-12-15T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "nodejs",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/live-reload-grunt/",
      "markdownUrl": "https://h3manth.com/scribe/blog/live-reload-grunt.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/live-reload-grunt.md",
      "wordCount": 158,
      "readingTimeMinutes": 1,
      "tokensEstimate": 425
    },
    {
      "slug": "why-parameter-expansion-bash",
      "title": "Why Parameter Expansion in Bash?",
      "excerpt": "Most of us would have come across bash scripts that have the use of secondary commands for simple string manipulations, such.",
      "publishDate": "2012-12-01T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "python",
        "bash"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/why-parameter-expansion-bash/",
      "markdownUrl": "https://h3manth.com/scribe/blog/why-parameter-expansion-bash.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/why-parameter-expansion-bash.md",
      "wordCount": 181,
      "readingTimeMinutes": 1,
      "tokensEstimate": 403
    },
    {
      "slug": "node-packing-made-easy-grunt",
      "title": "Node Packing Made Easy With Grunt",
      "excerpt": "Publish node packages with npm is easier done than said! ;) First of all check out Hitchhikers guide to npm After which.",
      "publishDate": "2012-10-30T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "nodejs",
        "git",
        "bash",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/node-packing-made-easy-grunt/",
      "markdownUrl": "https://h3manth.com/scribe/blog/node-packing-made-easy-grunt.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/node-packing-made-easy-grunt.md",
      "wordCount": 369,
      "readingTimeMinutes": 2,
      "tokensEstimate": 792
    },
    {
      "slug": "making-promise-javascript",
      "title": "Making a Promise With Javascript",
      "excerpt": "Chaining functions in javascript is fun, so is the understanding of Blaocking vs Non-Blocking code, but callback can soon.",
      "publishDate": "2012-10-29T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "nodejs",
        "javascript",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/making-promise-javascript/",
      "markdownUrl": "https://h3manth.com/scribe/blog/making-promise-javascript.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/making-promise-javascript.md",
      "wordCount": 291,
      "readingTimeMinutes": 2,
      "tokensEstimate": 619
    },
    {
      "slug": "coffeescript-classes",
      "title": "CoffeeScript Classes",
      "excerpt": "When rails 3 was out I had a serious look at coffescript commit-diff but was not very much carried by it then. But as the.",
      "publishDate": "2012-10-24T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "ruby",
        "nodejs",
        "javascript",
        "git"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/coffeescript-classes/",
      "markdownUrl": "https://h3manth.com/scribe/blog/coffeescript-classes.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/coffeescript-classes.md",
      "wordCount": 571,
      "readingTimeMinutes": 3,
      "tokensEstimate": 1106
    },
    {
      "slug": "cluster-computing-nodejs",
      "title": "Cluster Computing With Nodejs",
      "excerpt": "A single instance of Node runs in a single thread. To take advantage of multi-core systems we may want to launch a cluster.",
      "publishDate": "2012-10-07T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "nodejs",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/cluster-computing-nodejs/",
      "markdownUrl": "https://h3manth.com/scribe/blog/cluster-computing-nodejs.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/cluster-computing-nodejs.md",
      "wordCount": 489,
      "readingTimeMinutes": 3,
      "tokensEstimate": 921
    },
    {
      "slug": "irc-notification-bot-nodejs",
      "title": "IRC Notification Bot With node.js",
      "excerpt": "This bot is a product of a simple need of notifying people when their friends login to a particular channel. The need in JS.",
      "publishDate": "2012-09-23T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "nodejs",
        "git",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/irc-notification-bot-nodejs/",
      "markdownUrl": "https://h3manth.com/scribe/blog/irc-notification-bot-nodejs.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/irc-notification-bot-nodejs.md",
      "wordCount": 205,
      "readingTimeMinutes": 2,
      "tokensEstimate": 465
    },
    {
      "slug": "heroku-vs-nodejitsu-nodejs",
      "title": "Heroku vs Nodejitsu for Nodejs",
      "excerpt": "It all started when I wanted to try out node with websockets with ws but strange but true heroku does not support node’s ws.",
      "publishDate": "2012-09-19T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "ruby",
        "nodejs",
        "git"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/heroku-vs-nodejitsu-nodejs/",
      "markdownUrl": "https://h3manth.com/scribe/blog/heroku-vs-nodejitsu-nodejs.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/heroku-vs-nodejitsu-nodejs.md",
      "wordCount": 334,
      "readingTimeMinutes": 2,
      "tokensEstimate": 574
    },
    {
      "slug": "exposing-your-localhost-internet",
      "title": "Exposing Your Localhost to the Internet",
      "excerpt": "Exposing your local web server to the internet is very useful at times, it gets a bit tough when you are on a DHCP. The.",
      "publishDate": "2012-09-17T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "ruby",
        "python",
        "linux"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/exposing-your-localhost-internet/",
      "markdownUrl": "https://h3manth.com/scribe/blog/exposing-your-localhost-internet.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/exposing-your-localhost-internet.md",
      "wordCount": 238,
      "readingTimeMinutes": 2,
      "tokensEstimate": 429
    },
    {
      "slug": "program-dependency-management-nodejs",
      "title": "Program Dependency Management With node.js",
      "excerpt": "Lately was working with a few PRs for The Yeoman project and tried to hack through a shelljs script to audit the OS before.",
      "publishDate": "2012-09-15T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "ruby",
        "nodejs",
        "git",
        "bash"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/program-dependency-management-nodejs/",
      "markdownUrl": "https://h3manth.com/scribe/blog/program-dependency-management-nodejs.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/program-dependency-management-nodejs.md",
      "wordCount": 174,
      "readingTimeMinutes": 1,
      "tokensEstimate": 392
    },
    {
      "slug": "perl-nodejs",
      "title": "Perl in node.js",
      "excerpt": "Yes! Perl5 can be embedded in node.js! First of all just do a npm install perl P.S : node-perl requires a perl5 binary built.",
      "publishDate": "2012-09-11T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "nodejs",
        "javascript",
        "git"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/perl-nodejs/",
      "markdownUrl": "https://h3manth.com/scribe/blog/perl-nodejs.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/perl-nodejs.md",
      "wordCount": 148,
      "readingTimeMinutes": 1,
      "tokensEstimate": 375
    },
    {
      "slug": "temp-dir-ruby",
      "title": "Temp Dir With Ruby",
      "excerpt": "Played around with few programming languages to handle temp dirs, but amongst the lot /me really liked ruby’s paradigm in JS.",
      "publishDate": "2012-09-06T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "ruby"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/temp-dir-ruby/",
      "markdownUrl": "https://h3manth.com/scribe/blog/temp-dir-ruby.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/temp-dir-ruby.md",
      "wordCount": 117,
      "readingTimeMinutes": 1,
      "tokensEstimate": 268
    },
    {
      "slug": "get-node-details-drupal",
      "title": "Get Node Details From Drupal",
      "excerpt": "Currently I’m trying to migrate my blog from drupal to something must lighter, migrating data is indeed the first step! A.",
      "publishDate": "2012-09-01T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "database"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/get-node-details-drupal/",
      "markdownUrl": "https://h3manth.com/scribe/blog/get-node-details-drupal.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/get-node-details-drupal.md",
      "wordCount": 172,
      "readingTimeMinutes": 1,
      "tokensEstimate": 341
    },
    {
      "slug": "convert-any-image-html5-canvas",
      "title": "Convert Any Image to HTML5 Canvas",
      "excerpt": "Even before talking about the technicalities of converting an image to a canvas element, check out the demo! DEMO input any.",
      "publishDate": "2012-08-26T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/convert-any-image-html5-canvas/",
      "markdownUrl": "https://h3manth.com/scribe/blog/convert-any-image-html5-canvas.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/convert-any-image-html5-canvas.md",
      "wordCount": 287,
      "readingTimeMinutes": 2,
      "tokensEstimate": 696
    },
    {
      "slug": "html5-fullscreen-video-crossbrowser",
      "title": "HTML5 Fullscreen video crossbrowser",
      "excerpt": "With the evolution of HTML5 APIs taking a video to Fullscreen and back is very easy and indeed no flash! P.S : I shall be.",
      "publishDate": "2012-08-25T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "html5"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/html5-fullscreen-video-crossbrowser/",
      "markdownUrl": "https://h3manth.com/scribe/blog/html5-fullscreen-video-crossbrowser.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/html5-fullscreen-video-crossbrowser.md",
      "wordCount": 198,
      "readingTimeMinutes": 1,
      "tokensEstimate": 492
    },
    {
      "slug": "chaining-functions-javascript",
      "title": "Chaining Functions in Javascript",
      "excerpt": "Most of us are aware of the all famous Jquery demo $(’p.neat’).addClass(’ohmy’).show(’slow’); which is a gem of an example.",
      "publishDate": "2012-08-19T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "ruby",
        "javascript"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/chaining-functions-javascript/",
      "markdownUrl": "https://h3manth.com/scribe/blog/chaining-functions-javascript.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/chaining-functions-javascript.md",
      "wordCount": 214,
      "readingTimeMinutes": 2,
      "tokensEstimate": 526
    },
    {
      "slug": "remote-debugging-android-browsers",
      "title": "Remote debugging android browsers.",
      "excerpt": "This entry briefs about remote debugging browsers that are active in any of the Android devices. The focus is mainly on the.",
      "publishDate": "2012-08-17T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "programming"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/remote-debugging-android-browsers/",
      "markdownUrl": "https://h3manth.com/scribe/blog/remote-debugging-android-browsers.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/remote-debugging-android-browsers.md",
      "wordCount": 263,
      "readingTimeMinutes": 2,
      "tokensEstimate": 497
    },
    {
      "slug": "control-telephone-calls-browser",
      "title": "Control Telephone Calls From the Browser!",
      "excerpt": "Control telephone calls from the browser, yes browser! But Mozilla Mobile Browser as of now. The phone functionality can be.",
      "publishDate": "2012-08-09T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/control-telephone-calls-browser/",
      "markdownUrl": "https://h3manth.com/scribe/blog/control-telephone-calls-browser.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/control-telephone-calls-browser.md",
      "wordCount": 237,
      "readingTimeMinutes": 2,
      "tokensEstimate": 540
    },
    {
      "slug": "ffi-python-vs-ruby",
      "title": "FFI Python vs Ruby",
      "excerpt": "A comparison of Foreign Function Interface (FFI) usage in Python vs Ruby to call C libraries. Practical notes and code in JS.",
      "publishDate": "2012-08-01T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "python",
        "ruby"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/ffi-python-vs-ruby/",
      "markdownUrl": "https://h3manth.com/scribe/blog/ffi-python-vs-ruby.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/ffi-python-vs-ruby.md",
      "wordCount": 163,
      "readingTimeMinutes": 1,
      "tokensEstimate": 357
    },
    {
      "slug": "python-vs-ruby-singleton",
      "title": "Python vs Ruby Singleton",
      "excerpt": "A comparison of Singleton design pattern implementation in Python vs Ruby. Practical notes and code examples on Python vs.",
      "publishDate": "2012-07-31T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "python",
        "ruby",
        "patterns"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/python-vs-ruby-singleton/",
      "markdownUrl": "https://h3manth.com/scribe/blog/python-vs-ruby-singleton.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/python-vs-ruby-singleton.md",
      "wordCount": 156,
      "readingTimeMinutes": 1,
      "tokensEstimate": 401
    },
    {
      "slug": "module-pattern-javascript",
      "title": "Module Pattern in Javascript",
      "excerpt": "Lately wrote about Singleton Pattern in JavaScript after which thought of writing few lines about the famous module pattern.",
      "publishDate": "2012-07-26T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/module-pattern-javascript/",
      "markdownUrl": "https://h3manth.com/scribe/blog/module-pattern-javascript.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/module-pattern-javascript.md",
      "wordCount": 504,
      "readingTimeMinutes": 3,
      "tokensEstimate": 1013
    },
    {
      "slug": "stringeach-missing-in-ruby19",
      "title": "String#each missing in Ruby 1.9",
      "excerpt": "One might have noticed that String#each is no more present in Ruby 1.9 and how to fix it. Practical notes and code examples.",
      "publishDate": "2012-07-25T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "ruby",
      "tags": [
        "ruby"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/stringeach-missing-in-ruby19/",
      "markdownUrl": "https://h3manth.com/scribe/blog/stringeach-missing-in-ruby19.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/stringeach-missing-in-ruby19.md",
      "wordCount": 184,
      "readingTimeMinutes": 1,
      "tokensEstimate": 379
    },
    {
      "slug": "stringeach-missing-ruby19",
      "title": "String#each Missing in ruby1.9",
      "excerpt": "One might have noticed that String#each is no more present in ruby1.9 1.9.1 :002 ’hemanth’.each NoMethodError: undefined.",
      "publishDate": "2012-07-25T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "bash"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/stringeach-missing-ruby19/",
      "markdownUrl": "https://h3manth.com/scribe/blog/stringeach-missing-ruby19.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/stringeach-missing-ruby19.md",
      "wordCount": 171,
      "readingTimeMinutes": 1,
      "tokensEstimate": 366
    },
    {
      "slug": "statements-got-better-python-31",
      "title": "With Statements Got Better With Python 3.1",
      "excerpt": "In my previous post about using the with statement in python /me had tried to throw some light on why to use ’with’ in JS.",
      "publishDate": "2012-07-24T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "python",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/statements-got-better-python-31/",
      "markdownUrl": "https://h3manth.com/scribe/blog/statements-got-better-python-31.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/statements-got-better-python-31.md",
      "wordCount": 183,
      "readingTimeMinutes": 1,
      "tokensEstimate": 371
    },
    {
      "slug": "cross-window-messaging",
      "title": "Cross-Window Messaging",
      "excerpt": "Cross-origin/window communication is possible with the HTML5 API window.postMessage. Practical notes and code examples on.",
      "publishDate": "2012-07-22T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "html5"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/cross-window-messaging/",
      "markdownUrl": "https://h3manth.com/scribe/blog/cross-window-messaging.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/cross-window-messaging.md",
      "wordCount": 234,
      "readingTimeMinutes": 2,
      "tokensEstimate": 542
    },
    {
      "slug": "class-handling-classlist",
      "title": "Class Handling With classList",
      "excerpt": "classList returns a token list of the class attribute for a given element, with which one can do the below easily! add a.",
      "publishDate": "2012-07-21T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/class-handling-classlist/",
      "markdownUrl": "https://h3manth.com/scribe/blog/class-handling-classlist.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/class-handling-classlist.md",
      "wordCount": 176,
      "readingTimeMinutes": 1,
      "tokensEstimate": 373
    },
    {
      "slug": "asynchronous-loading-css-and-javascript",
      "title": "Asynchronous Loading of Css and Javascript",
      "excerpt": "Sometime back was pawing at async forEach in JavaScript that helped me to make a simple inject function that would help in.",
      "publishDate": "2012-07-18T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/asynchronous-loading-css-and-javascript/",
      "markdownUrl": "https://h3manth.com/scribe/blog/asynchronous-loading-css-and-javascript.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/asynchronous-loading-css-and-javascript.md",
      "wordCount": 182,
      "readingTimeMinutes": 1,
      "tokensEstimate": 529
    },
    {
      "slug": "async-foreach-javascript",
      "title": "Async forEach in JavaScript",
      "excerpt": "After writing about Blocking vs Non-Blocking /me was stuck with making forEach of JS asynchronous as it was very much needed.",
      "publishDate": "2012-07-17T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "nodejs",
        "javascript",
        "git",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/async-foreach-javascript/",
      "markdownUrl": "https://h3manth.com/scribe/blog/async-foreach-javascript.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/async-foreach-javascript.md",
      "wordCount": 522,
      "readingTimeMinutes": 3,
      "tokensEstimate": 1028
    },
    {
      "slug": "asynchronous-loading-of-css-and-javascript",
      "title": "asynchronous loading of css and javascript",
      "excerpt": "Sometime back was pawing at async forEach in JavaScript that helped me to make a simple inject... Practical notes and code.",
      "publishDate": "2012-07-17T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "css"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/asynchronous-loading-of-css-and-javascript/",
      "markdownUrl": "https://h3manth.com/scribe/blog/asynchronous-loading-of-css-and-javascript.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/asynchronous-loading-of-css-and-javascript.md",
      "wordCount": 188,
      "readingTimeMinutes": 1,
      "tokensEstimate": 531
    },
    {
      "slug": "singleton-pattern-javascript",
      "title": "Singleton Pattern in JavaScript",
      "excerpt": "What is Singleton Pattern? The singleton pattern is a design pattern that restricts the instantiation of a class to one.",
      "publishDate": "2012-07-10T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/singleton-pattern-javascript/",
      "markdownUrl": "https://h3manth.com/scribe/blog/singleton-pattern-javascript.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/singleton-pattern-javascript.md",
      "wordCount": 178,
      "readingTimeMinutes": 1,
      "tokensEstimate": 410
    },
    {
      "slug": "arrow-functions-javascript",
      "title": "Arrow Functions in Javascript",
      "excerpt": "CoffeeScript is influencing javascript with fat arrows! As python had influenced it before with list comprehensions. Well.",
      "publishDate": "2012-07-05T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "python",
        "javascript"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/arrow-functions-javascript/",
      "markdownUrl": "https://h3manth.com/scribe/blog/arrow-functions-javascript.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/arrow-functions-javascript.md",
      "wordCount": 311,
      "readingTimeMinutes": 2,
      "tokensEstimate": 604
    },
    {
      "slug": "getting-home-path-and-username-python",
      "title": "Getting Home Path and Username in Python",
      "excerpt": ", were just an one liners for me so for : os.path.expanduser(’/’) and pwd.getpwuid(os.getuid())[0] were doing the job for.",
      "publishDate": "2012-07-05T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "python"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/getting-home-path-and-username-python/",
      "markdownUrl": "https://h3manth.com/scribe/blog/getting-home-path-and-username-python.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/getting-home-path-and-username-python.md",
      "wordCount": 155,
      "readingTimeMinutes": 1,
      "tokensEstimate": 374
    },
    {
      "slug": "parsing-query-string-javascript",
      "title": "Parsing Query String in Javascript",
      "excerpt": "Well there are hell lot of solution out there for parsing query strings in javascript, but still /me managed to make my own.",
      "publishDate": "2012-07-04T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/parsing-query-string-javascript/",
      "markdownUrl": "https://h3manth.com/scribe/blog/parsing-query-string-javascript.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/parsing-query-string-javascript.md",
      "wordCount": 199,
      "readingTimeMinutes": 1,
      "tokensEstimate": 477
    },
    {
      "slug": "camera-and-microphone-access-html5",
      "title": "Camera and Microphone Access With HTML5",
      "excerpt": "Yes, Plugin-free acess to camera/microphone with HTML5! Welcome to the post-flash revolution aka smartphone development.",
      "publishDate": "2012-07-02T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "android",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/camera-and-microphone-access-html5/",
      "markdownUrl": "https://h3manth.com/scribe/blog/camera-and-microphone-access-html5.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/camera-and-microphone-access-html5.md",
      "wordCount": 162,
      "readingTimeMinutes": 1,
      "tokensEstimate": 471
    },
    {
      "slug": "html5-canvas-full-screen-and-full-page",
      "title": "HTML5 canvas full-screen and full-page",
      "excerpt": "How to make a canvas element occupy an entire page and also how to go full screen with canvas. Practical notes and code.",
      "publishDate": "2012-07-02T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "html5"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/html5-canvas-full-screen-and-full-page/",
      "markdownUrl": "https://h3manth.com/scribe/blog/html5-canvas-full-screen-and-full-page.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/html5-canvas-full-screen-and-full-page.md",
      "wordCount": 193,
      "readingTimeMinutes": 1,
      "tokensEstimate": 444
    },
    {
      "slug": "camera-and-microphone-access-with-html5",
      "title": "Camera and Microphone Access with HTML5",
      "excerpt": "Plugin-free access to camera/microphone with HTML5! Welcome to the post-flash revolution. Practical notes and code examples.",
      "publishDate": "2012-07-01T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "html5"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/camera-and-microphone-access-with-html5/",
      "markdownUrl": "https://h3manth.com/scribe/blog/camera-and-microphone-access-with-html5.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/camera-and-microphone-access-with-html5.md",
      "wordCount": 161,
      "readingTimeMinutes": 1,
      "tokensEstimate": 473
    },
    {
      "slug": "top-5-javascript-oneliners",
      "title": "Top 5 JavaScript oneliners",
      "excerpt": "JavaScript is such a beautiful language, where everything can be minified to one line! Practical notes and code examples on.",
      "publishDate": "2012-07-01T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/top-5-javascript-oneliners/",
      "markdownUrl": "https://h3manth.com/scribe/blog/top-5-javascript-oneliners.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/top-5-javascript-oneliners.md",
      "wordCount": 309,
      "readingTimeMinutes": 2,
      "tokensEstimate": 613
    },
    {
      "slug": "using-statement-python",
      "title": "Using the 'With' Statement in Python",
      "excerpt": "The ’with’ Statement PEP was created way back in 2005, PEP 343 to be precise, but /me notice many still coding with old.",
      "publishDate": "2012-06-29T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "python"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/using-statement-python/",
      "markdownUrl": "https://h3manth.com/scribe/blog/using-statement-python.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/using-statement-python.md",
      "wordCount": 325,
      "readingTimeMinutes": 2,
      "tokensEstimate": 657
    },
    {
      "slug": "iterating-list-or-array-index",
      "title": "Iterating List or Array With Index",
      "excerpt": "Iterating an array or a list with index while scripting, has it’s own purpose. Before we discuss about iterating an array.",
      "publishDate": "2012-06-28T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "ruby",
        "python",
        "javascript"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/iterating-list-or-array-index/",
      "markdownUrl": "https://h3manth.com/scribe/blog/iterating-list-or-array-index.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/iterating-list-or-array-index.md",
      "wordCount": 269,
      "readingTimeMinutes": 2,
      "tokensEstimate": 488
    },
    {
      "slug": "classes-javascript-es6",
      "title": "Classes in JavaScript ES6",
      "excerpt": "Well, well... there are so many JavaScript frameworks that already try to implement classes as per the classical Object.",
      "publishDate": "2012-06-26T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/classes-javascript-es6/",
      "markdownUrl": "https://h3manth.com/scribe/blog/classes-javascript-es6.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/classes-javascript-es6.md",
      "wordCount": 541,
      "readingTimeMinutes": 3,
      "tokensEstimate": 1179
    },
    {
      "slug": "classes-in-javascript-es6",
      "title": "Classes in JavaScript ES6",
      "excerpt": "With Harmony (ES6) implementing classes like classical OO shall be possible. Practical notes and code examples on Classes.",
      "publishDate": "2012-06-25T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/classes-in-javascript-es6/",
      "markdownUrl": "https://h3manth.com/scribe/blog/classes-in-javascript-es6.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/classes-in-javascript-es6.md",
      "wordCount": 591,
      "readingTimeMinutes": 3,
      "tokensEstimate": 1183
    },
    {
      "slug": "blocking-vs-non-blocking-nodejs",
      "title": "Blocking vs Non-blocking in node.js",
      "excerpt": "The most common task that any developer would do is File I/O, this being a very fundamental process : Open a File. Read.",
      "publishDate": "2012-06-24T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "nodejs"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/blocking-vs-non-blocking-nodejs/",
      "markdownUrl": "https://h3manth.com/scribe/blog/blocking-vs-non-blocking-nodejs.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/blocking-vs-non-blocking-nodejs.md",
      "wordCount": 483,
      "readingTimeMinutes": 3,
      "tokensEstimate": 892
    },
    {
      "slug": "rss-json-using-nodejs",
      "title": "RSS as JSON Using node.js",
      "excerpt": "Lately me and one my hacker buddies we talking about a project plan, in which RSS as JSON was a major module, some simple.",
      "publishDate": "2012-06-21T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "nodejs",
        "javascript",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/rss-json-using-nodejs/",
      "markdownUrl": "https://h3manth.com/scribe/blog/rss-json-using-nodejs.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/rss-json-using-nodejs.md",
      "wordCount": 129,
      "readingTimeMinutes": 1,
      "tokensEstimate": 301
    },
    {
      "slug": "how-caching-matters-js",
      "title": "How Caching Matters in JS?",
      "excerpt": "Caching plays a very important role, may it be on the client side or on the server side. I tired to do a tittle benchmark.",
      "publishDate": "2012-06-19T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "linux",
        "opensource"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/how-caching-matters-js/",
      "markdownUrl": "https://h3manth.com/scribe/blog/how-caching-matters-js.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/how-caching-matters-js.md",
      "wordCount": 118,
      "readingTimeMinutes": 1,
      "tokensEstimate": 281
    },
    {
      "slug": "globbing-scripting-languages",
      "title": "Globbing in Scripting Languages",
      "excerpt": "Globbing is the most common and yet the most powerful operation that any scripter would use. glob() is a Unix library in JS.",
      "publishDate": "2012-06-18T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "ruby",
        "python",
        "bash"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/globbing-scripting-languages/",
      "markdownUrl": "https://h3manth.com/scribe/blog/globbing-scripting-languages.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/globbing-scripting-languages.md",
      "wordCount": 302,
      "readingTimeMinutes": 2,
      "tokensEstimate": 558
    },
    {
      "slug": "inspecting-objects-scripting",
      "title": "Inspecting Objects in Scripting",
      "excerpt": "Examine the contents of a class / object is one of most useful and repetitive tasks that most of the coder do while in JS.",
      "publishDate": "2012-06-14T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "ruby",
        "python",
        "javascript",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/inspecting-objects-scripting/",
      "markdownUrl": "https://h3manth.com/scribe/blog/inspecting-objects-scripting.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/inspecting-objects-scripting.md",
      "wordCount": 646,
      "readingTimeMinutes": 4,
      "tokensEstimate": 1283
    },
    {
      "slug": "handling-internationalized-domain-name-idn-scripting",
      "title": "Handling Internationalized Domain Name (IDN) in Scripting",
      "excerpt": "IDN is helping many, but caused a lot of trouble initially for many programming languages, specially in parsing and reading.",
      "publishDate": "2012-06-13T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "ruby",
        "python",
        "bash",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/handling-internationalized-domain-name-idn-scripting/",
      "markdownUrl": "https://h3manth.com/scribe/blog/handling-internationalized-domain-name-idn-scripting.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/handling-internationalized-domain-name-idn-scripting.md",
      "wordCount": 286,
      "readingTimeMinutes": 2,
      "tokensEstimate": 623
    },
    {
      "slug": "google-hourly-hot-trends-command-line",
      "title": "Google Hourly Hot Trends on Command Line",
      "excerpt": "Well, /me back to pawing at Google from CLI, after few silly apps like getting the weather, news, sunrise and sets from.",
      "publishDate": "2012-06-12T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "ruby",
        "bash",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/google-hourly-hot-trends-command-line/",
      "markdownUrl": "https://h3manth.com/scribe/blog/google-hourly-hot-trends-command-line.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/google-hourly-hot-trends-command-line.md",
      "wordCount": 167,
      "readingTimeMinutes": 1,
      "tokensEstimate": 348
    },
    {
      "slug": "es6-nodejs",
      "title": "ES6 in node.js",
      "excerpt": "Well first for thanks to paulmillr for his wonderful contribution of es6-shim for node.js and browsers. As ECMAScript 6.",
      "publishDate": "2012-06-11T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "nodejs",
        "javascript",
        "bash",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/es6-nodejs/",
      "markdownUrl": "https://h3manth.com/scribe/blog/es6-nodejs.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/es6-nodejs.md",
      "wordCount": 286,
      "readingTimeMinutes": 2,
      "tokensEstimate": 538
    },
    {
      "slug": "get-iframe-contents-using-queryselectors",
      "title": "Get iframe contents using queryselectors",
      "excerpt": "Selecting data from iframes using the power of querySelectors. Practical notes and code examples on Get iframe contents.",
      "publishDate": "2012-06-08T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/get-iframe-contents-using-queryselectors/",
      "markdownUrl": "https://h3manth.com/scribe/blog/get-iframe-contents-using-queryselectors.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/get-iframe-contents-using-queryselectors.md",
      "wordCount": 242,
      "readingTimeMinutes": 2,
      "tokensEstimate": 600
    },
    {
      "slug": "reading-logs-made-easy-bash",
      "title": "Reading Logs Made Easy With Bash.",
      "excerpt": "Most of the web programmers would normally look into their applications/server error logs when they find issues, indeed.",
      "publishDate": "2012-06-07T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "bash"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/reading-logs-made-easy-bash/",
      "markdownUrl": "https://h3manth.com/scribe/blog/reading-logs-made-easy-bash.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/reading-logs-made-easy-bash.md",
      "wordCount": 217,
      "readingTimeMinutes": 2,
      "tokensEstimate": 391
    },
    {
      "slug": "reading-logs-made-easy-with-bash",
      "title": "Reading logs made easy with bash",
      "excerpt": "Most of the web programmers would normally look into their applications/server error logs when they find issues, indeed.",
      "publishDate": "2012-06-07T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "cli",
      "tags": [
        "bash",
        "cli"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/reading-logs-made-easy-with-bash/",
      "markdownUrl": "https://h3manth.com/scribe/blog/reading-logs-made-easy-with-bash.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/reading-logs-made-easy-with-bash.md",
      "wordCount": 218,
      "readingTimeMinutes": 2,
      "tokensEstimate": 390
    },
    {
      "slug": "whats-deal-onx",
      "title": "What's the Deal With on{X} ?",
      "excerpt": "M$cro$fot has made a big move! is it a realisation that open source (rather free) software/platform is the way to go or it.",
      "publishDate": "2012-06-07T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "android"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/whats-deal-onx/",
      "markdownUrl": "https://h3manth.com/scribe/blog/whats-deal-onx.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/whats-deal-onx.md",
      "wordCount": 517,
      "readingTimeMinutes": 3,
      "tokensEstimate": 818
    },
    {
      "slug": "ninja-object-properties-scripting-languages",
      "title": "Ninja Object Properties in Scripting Languages",
      "excerpt": "10 hours ago, came across atrick-wied’s ninja object properties in JavaScript, that speaks of code as below. var x = {}.",
      "publishDate": "2012-06-06T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "ruby",
        "python",
        "javascript"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/ninja-object-properties-scripting-languages/",
      "markdownUrl": "https://h3manth.com/scribe/blog/ninja-object-properties-scripting-languages.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/ninja-object-properties-scripting-languages.md",
      "wordCount": 163,
      "readingTimeMinutes": 1,
      "tokensEstimate": 342
    },
    {
      "slug": "sets-and-maps-javascript",
      "title": "Sets and Maps in JavaScript",
      "excerpt": "FF13 comes out with experimental support for ECMAScript 6 Map and Set objects. As maps and sets can be easily implemented.",
      "publishDate": "2012-06-06T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/sets-and-maps-javascript/",
      "markdownUrl": "https://h3manth.com/scribe/blog/sets-and-maps-javascript.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/sets-and-maps-javascript.md",
      "wordCount": 262,
      "readingTimeMinutes": 2,
      "tokensEstimate": 503
    },
    {
      "slug": "html5js-offlineonline-notification",
      "title": "HTML5+JS offline/online notification",
      "excerpt": "With HTML5 and some JavaScript magic, it’s very easy for a webpage/webapp to indicate if the user is offline or online in JS.",
      "publishDate": "2012-06-05T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "html5"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/html5js-offlineonline-notification/",
      "markdownUrl": "https://h3manth.com/scribe/blog/html5js-offlineonline-notification.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/html5js-offlineonline-notification.md",
      "wordCount": 238,
      "readingTimeMinutes": 2,
      "tokensEstimate": 595
    },
    {
      "slug": "ninja-object-properties-in-scripting-languages",
      "title": "Ninja Object Properties in Scripting languages",
      "excerpt": "Ninja object properties in JavaScript and other scripting languages - using spaces and control characters as object keys.",
      "publishDate": "2012-06-05T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "python",
        "ruby"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/ninja-object-properties-in-scripting-languages/",
      "markdownUrl": "https://h3manth.com/scribe/blog/ninja-object-properties-in-scripting-languages.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/ninja-object-properties-in-scripting-languages.md",
      "wordCount": 190,
      "readingTimeMinutes": 1,
      "tokensEstimate": 364
    },
    {
      "slug": "javascript-one-liner-extracting-unique-words-webpages",
      "title": "JavaScript One Liner Extracting Unique Words From Webpages",
      "excerpt": "Unlike JSON parsing with ruby one-liner ? this is indeed a very strong raw JavaScript one liner that /me managed to frame.",
      "publishDate": "2012-06-04T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "ruby",
        "javascript",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/javascript-one-liner-extracting-unique-words-webpages/",
      "markdownUrl": "https://h3manth.com/scribe/blog/javascript-one-liner-extracting-unique-words-webpages.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/javascript-one-liner-extracting-unique-words-webpages.md",
      "wordCount": 282,
      "readingTimeMinutes": 2,
      "tokensEstimate": 609
    },
    {
      "slug": "togist-chrome-plugin",
      "title": "togist chrome plugin",
      "excerpt": "This is a simple chrome plugin that /me managed to build which helps to create public gists on github. All you need to do.",
      "publishDate": "2012-06-04T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "tools",
      "tags": [
        "programming"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/togist-chrome-plugin/",
      "markdownUrl": "https://h3manth.com/scribe/blog/togist-chrome-plugin.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/togist-chrome-plugin.md",
      "wordCount": 56,
      "readingTimeMinutes": 1,
      "tokensEstimate": 204
    },
    {
      "slug": "javascript-one-liner-extracting-unique-words-from-webpages",
      "title": "JavaScript one liner extracting unique words from webpages",
      "excerpt": "A very strong raw JavaScript one liner for extracting all the words in a given webpage. Practical notes and code examples.",
      "publishDate": "2012-06-03T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/javascript-one-liner-extracting-unique-words-from-webpages/",
      "markdownUrl": "https://h3manth.com/scribe/blog/javascript-one-liner-extracting-unique-words-from-webpages.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/javascript-one-liner-extracting-unique-words-from-webpages.md",
      "wordCount": 332,
      "readingTimeMinutes": 2,
      "tokensEstimate": 643
    },
    {
      "slug": "javascript-referenceerror-invalid-left-hand-side-assignment",
      "title": "Javascript ReferenceError: Invalid Left-hand Side in Assignment",
      "excerpt": "So lately was trying some silly syntax with javascript, logically it seems to work, but throw away your dry logic! Most of.",
      "publishDate": "2012-06-03T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "git"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/javascript-referenceerror-invalid-left-hand-side-assignment/",
      "markdownUrl": "https://h3manth.com/scribe/blog/javascript-referenceerror-invalid-left-hand-side-assignment.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/javascript-referenceerror-invalid-left-hand-side-assignment.md",
      "wordCount": 175,
      "readingTimeMinutes": 1,
      "tokensEstimate": 384
    },
    {
      "slug": "javascript-referenceerror-invalid-left-hand-side-in-assignment",
      "title": "JavaScript ReferenceError: Invalid left-hand side in assignment",
      "excerpt": "Exploring interesting JavaScript reference errors and learning about ||= operator. Practical notes and code examples on.",
      "publishDate": "2012-06-02T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/javascript-referenceerror-invalid-left-hand-side-in-assignment/",
      "markdownUrl": "https://h3manth.com/scribe/blog/javascript-referenceerror-invalid-left-hand-side-in-assignment.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/javascript-referenceerror-invalid-left-hand-side-in-assignment.md",
      "wordCount": 143,
      "readingTimeMinutes": 1,
      "tokensEstimate": 331
    },
    {
      "slug": "hitchhikers-guide-npm",
      "title": "Hitchhikers Guide to Npm",
      "excerpt": "Hello hackers, this post is just a simple hello-world packing tutorial for packing nodejs with npm. P.S : This does not.",
      "publishDate": "2012-05-30T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "nodejs",
        "javascript",
        "bash",
        "database"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/hitchhikers-guide-npm/",
      "markdownUrl": "https://h3manth.com/scribe/blog/hitchhikers-guide-npm.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/hitchhikers-guide-npm.md",
      "wordCount": 467,
      "readingTimeMinutes": 3,
      "tokensEstimate": 979
    },
    {
      "slug": "hitchhikers-guide-to-npm",
      "title": "Hitchhiker's guide to npm",
      "excerpt": "A simple hello-world packing tutorial for packing nodejs with npm. Practical notes and code examples on Hitchhiker’s guide.",
      "publishDate": "2012-05-30T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "nodejs",
      "tags": [
        "javascript",
        "nodejs"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/hitchhikers-guide-to-npm/",
      "markdownUrl": "https://h3manth.com/scribe/blog/hitchhikers-guide-to-npm.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/hitchhikers-guide-to-npm.md",
      "wordCount": 450,
      "readingTimeMinutes": 3,
      "tokensEstimate": 910
    },
    {
      "slug": "7-ruby-gems-7-days",
      "title": "7 Ruby Gems in 7 Days",
      "excerpt": "So /me managed to write 7 silly ruby gems in 7 days, the below is a simple video demo of those 7 ruby gems : DEMO LInk to.",
      "publishDate": "2012-05-26T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "ruby",
        "git",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/7-ruby-gems-7-days/",
      "markdownUrl": "https://h3manth.com/scribe/blog/7-ruby-gems-7-days.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/7-ruby-gems-7-days.md",
      "wordCount": 89,
      "readingTimeMinutes": 1,
      "tokensEstimate": 307
    },
    {
      "slug": "7-ruby-gems-in-7-days",
      "title": "7 ruby gems in 7 days",
      "excerpt": "So /me managed to write 7 silly ruby gems in 7 days, the below is a simple video demo of those 7 ruby gems : DEMO( in JS.",
      "publishDate": "2012-05-25T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "ruby",
      "tags": [
        "ruby"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/7-ruby-gems-in-7-days/",
      "markdownUrl": "https://h3manth.com/scribe/blog/7-ruby-gems-in-7-days.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/7-ruby-gems-in-7-days.md",
      "wordCount": 87,
      "readingTimeMinutes": 1,
      "tokensEstimate": 311
    },
    {
      "slug": "notes-build-awesome-command-line-apps",
      "title": "Notes From Build Awesome Command-Line Apps",
      "excerpt": "Lately I was going through book and talks on ’Build Awesome Command-Line Applications in Ruby: Control Your Computer in JS.",
      "publishDate": "2012-05-20T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "ruby",
        "bash"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/notes-build-awesome-command-line-apps/",
      "markdownUrl": "https://h3manth.com/scribe/blog/notes-build-awesome-command-line-apps.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/notes-build-awesome-command-line-apps.md",
      "wordCount": 274,
      "readingTimeMinutes": 2,
      "tokensEstimate": 504
    },
    {
      "slug": "notes-from-build-awesome-command-line-apps",
      "title": "Notes from Build Awesome Command-Line apps",
      "excerpt": "Lately I was going through book and talks on ’Build Awesome Command-Line Applications in Ruby: Control Your Computer in JS.",
      "publishDate": "2012-05-19T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "ruby",
      "tags": [
        "ruby"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/notes-from-build-awesome-command-line-apps/",
      "markdownUrl": "https://h3manth.com/scribe/blog/notes-from-build-awesome-command-line-apps.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/notes-from-build-awesome-command-line-apps.md",
      "wordCount": 274,
      "readingTimeMinutes": 2,
      "tokensEstimate": 493
    },
    {
      "slug": "json-parsing-ruby-one-liner",
      "title": "JSON Parsing With Ruby One-liner ?",
      "excerpt": "Parsing JSON is one of the most common tasks that any web developer does in his daily activities. Parsing JSON with ruby.",
      "publishDate": "2012-05-18T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "ruby",
        "javascript",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/json-parsing-ruby-one-liner/",
      "markdownUrl": "https://h3manth.com/scribe/blog/json-parsing-ruby-one-liner.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/json-parsing-ruby-one-liner.md",
      "wordCount": 331,
      "readingTimeMinutes": 2,
      "tokensEstimate": 812
    },
    {
      "slug": "typeerror-object-has-no-method-foreach-in-javascript",
      "title": "TypeError: Object has no method 'forEach' in JavaScript",
      "excerpt": "Iterating a NodeList in JavaScript using forEach - understanding why you get this error and how to fix it. Practical notes.",
      "publishDate": "2012-05-18T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "nodejs"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/typeerror-object-has-no-method-foreach-in-javascript/",
      "markdownUrl": "https://h3manth.com/scribe/blog/typeerror-object-has-no-method-foreach-in-javascript.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/typeerror-object-has-no-method-foreach-in-javascript.md",
      "wordCount": 246,
      "readingTimeMinutes": 2,
      "tokensEstimate": 528
    },
    {
      "slug": "typeerror-object-nodelist-has-no-method-foreach-javascript",
      "title": "TypeError: Object # Has No Method 'forEach' in Javascript?",
      "excerpt": "Iterating a NodeList in javascript using forEach due to temptation, you have defiantly come across TypeError: Object # has.",
      "publishDate": "2012-05-18T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/typeerror-object-nodelist-has-no-method-foreach-javascript/",
      "markdownUrl": "https://h3manth.com/scribe/blog/typeerror-object-nodelist-has-no-method-foreach-javascript.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/typeerror-object-nodelist-has-no-method-foreach-javascript.md",
      "wordCount": 243,
      "readingTimeMinutes": 2,
      "tokensEstimate": 507
    },
    {
      "slug": "json-parsing-with-ruby-one-liner",
      "title": "JSON parsing with ruby one-liner?",
      "excerpt": "Parsing JSON is one of the most common tasks that any web developer does. Here’s how to do it with Ruby one-liners in JS.",
      "publishDate": "2012-05-17T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "ruby",
      "tags": [
        "ruby"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/json-parsing-with-ruby-one-liner/",
      "markdownUrl": "https://h3manth.com/scribe/blog/json-parsing-with-ruby-one-liner.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/json-parsing-with-ruby-one-liner.md",
      "wordCount": 329,
      "readingTimeMinutes": 2,
      "tokensEstimate": 821
    },
    {
      "slug": "native-js-jquery",
      "title": "Native JS Like jQuery",
      "excerpt": "Lately was pawing at some Selector API’s and really liked the raw power of native JS! So here is some comaprsion of Native.",
      "publishDate": "2012-05-14T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/native-js-jquery/",
      "markdownUrl": "https://h3manth.com/scribe/blog/native-js-jquery.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/native-js-jquery.md",
      "wordCount": 150,
      "readingTimeMinutes": 1,
      "tokensEstimate": 383
    },
    {
      "slug": "url-scraping-javascript",
      "title": "URL Scrapping With Javascript",
      "excerpt": "Quite some time ago /me had coded a small entry on Hyperlink to URL and and Extracting all the links from a site which was.",
      "publishDate": "2012-05-12T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/url-scraping-javascript/",
      "markdownUrl": "https://h3manth.com/scribe/blog/url-scraping-javascript.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/url-scraping-javascript.md",
      "wordCount": 521,
      "readingTimeMinutes": 3,
      "tokensEstimate": 987
    },
    {
      "slug": "download-images-nodejs",
      "title": "Download Images With node.js",
      "excerpt": "All of a sudden /me gets silly and crazy thoughts to do useless tasks that just pleases me only! Here is one such task, the.",
      "publishDate": "2012-05-11T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "nodejs",
        "bash",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/download-images-nodejs/",
      "markdownUrl": "https://h3manth.com/scribe/blog/download-images-nodejs.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/download-images-nodejs.md",
      "wordCount": 134,
      "readingTimeMinutes": 1,
      "tokensEstimate": 424
    },
    {
      "slug": "typeerror-cant-convert-regexp-string",
      "title": "TypeError: Can't Convert Regexp Into String",
      "excerpt": "in Ruby So what? #!/usr/bin/env ruby ’hemanth’.include?(/hem/) =begin Exectuing the above code will result in : =end It so.",
      "publishDate": "2012-05-01T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "ruby"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/typeerror-cant-convert-regexp-string/",
      "markdownUrl": "https://h3manth.com/scribe/blog/typeerror-cant-convert-regexp-string.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/typeerror-cant-convert-regexp-string.md",
      "wordCount": 273,
      "readingTimeMinutes": 2,
      "tokensEstimate": 582
    },
    {
      "slug": "typeerror-cant-convert-regexp-into-string",
      "title": "TypeError: can't convert Regexp into String",
      "excerpt": "How to handle Ruby’s TypeError when using Regexp with String#include? Practical notes and code examples on TypeError: can’t.",
      "publishDate": "2012-04-30T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "ruby",
      "tags": [
        "ruby"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/typeerror-cant-convert-regexp-into-string/",
      "markdownUrl": "https://h3manth.com/scribe/blog/typeerror-cant-convert-regexp-into-string.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/typeerror-cant-convert-regexp-into-string.md",
      "wordCount": 221,
      "readingTimeMinutes": 2,
      "tokensEstimate": 487
    },
    {
      "slug": "one-click-duckduckgo",
      "title": "One click DuckDuckGo",
      "excerpt": "Search any text that is selected anywhere in the OS with DuckDuckGo in a single click! Practical notes and code examples on.",
      "publishDate": "2012-04-24T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "cli",
      "tags": [
        "linux",
        "bash"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/one-click-duckduckgo/",
      "markdownUrl": "https://h3manth.com/scribe/blog/one-click-duckduckgo.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/one-click-duckduckgo.md",
      "wordCount": 146,
      "readingTimeMinutes": 1,
      "tokensEstimate": 312
    },
    {
      "slug": "comparing-strings-variable-white-spacing",
      "title": "Comparing Strings With Variable White Spacing",
      "excerpt": "Stings may sound like 101 of programming, but just a glimpse of TAOCP would turn the thought inside out! Comparing Strings.",
      "publishDate": "2012-04-12T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "ruby",
        "python",
        "javascript"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/comparing-strings-variable-white-spacing/",
      "markdownUrl": "https://h3manth.com/scribe/blog/comparing-strings-variable-white-spacing.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/comparing-strings-variable-white-spacing.md",
      "wordCount": 367,
      "readingTimeMinutes": 2,
      "tokensEstimate": 679
    },
    {
      "slug": "watir-webdriver-attach-window",
      "title": "Watir Webdriver attach window",
      "excerpt": "How to switch between windows in Watir Webdriver when the attach method is missing. Practical notes and code examples on.",
      "publishDate": "2012-04-03T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "ruby",
      "tags": [
        "ruby",
        "testing"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/watir-webdriver-attach-window/",
      "markdownUrl": "https://h3manth.com/scribe/blog/watir-webdriver-attach-window.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/watir-webdriver-attach-window.md",
      "wordCount": 129,
      "readingTimeMinutes": 1,
      "tokensEstimate": 343
    },
    {
      "slug": "remotely-enable-remote-desktop-debian",
      "title": "Remotely Enable Remote Desktop on Debian",
      "excerpt": "It so happened, as I was working from home last Friday, box there at office had only ssh enabled, but was in need of remote.",
      "publishDate": "2012-03-10T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "ubuntu",
        "linux"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/remotely-enable-remote-desktop-debian/",
      "markdownUrl": "https://h3manth.com/scribe/blog/remotely-enable-remote-desktop-debian.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/remotely-enable-remote-desktop-debian.md",
      "wordCount": 154,
      "readingTimeMinutes": 1,
      "tokensEstimate": 366
    },
    {
      "slug": "remotely-enable-remote-desktop-on-debian",
      "title": "Remotely enable remote desktop on Debian",
      "excerpt": "It so happened, as I was working from home last Friday, box there at office had only ssh enabled, but was in need of remote.",
      "publishDate": "2012-03-09T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "programming"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/remotely-enable-remote-desktop-on-debian/",
      "markdownUrl": "https://h3manth.com/scribe/blog/remotely-enable-remote-desktop-on-debian.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/remotely-enable-remote-desktop-on-debian.md",
      "wordCount": 169,
      "readingTimeMinutes": 1,
      "tokensEstimate": 388
    },
    {
      "slug": "android-remote-control-setup",
      "title": "Android Remote Control Setup",
      "excerpt": "Control your Android devices while running scripts on your computer! Wonder can be done with ASE and an android device along.",
      "publishDate": "2012-02-14T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "python",
        "ruby"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/android-remote-control-setup/",
      "markdownUrl": "https://h3manth.com/scribe/blog/android-remote-control-setup.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/android-remote-control-setup.md",
      "wordCount": 756,
      "readingTimeMinutes": 4,
      "tokensEstimate": 1090
    },
    {
      "slug": "tweaking-command-not-found",
      "title": "Tweaking Command Not Found",
      "excerpt": "Most of the time in ubuntu, when we come across the message like : The program ’program_name’ is currently not installed.",
      "publishDate": "2012-01-31T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "python"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/tweaking-command-not-found/",
      "markdownUrl": "https://h3manth.com/scribe/blog/tweaking-command-not-found.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/tweaking-command-not-found.md",
      "wordCount": 351,
      "readingTimeMinutes": 2,
      "tokensEstimate": 736
    },
    {
      "slug": "to-h-ruby-20",
      "title": "Hemanth.HM",
      "excerpt": "With few major changes ruby 2.0 is out today, out the many new features I really liked the toh We can convert a class to a.",
      "publishDate": "2012-01-01T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "ruby",
        "git"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/to-h-ruby-20/",
      "markdownUrl": "https://h3manth.com/scribe/blog/to-h-ruby-20.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/to-h-ruby-20.md",
      "wordCount": 186,
      "readingTimeMinutes": 1,
      "tokensEstimate": 396
    },
    {
      "slug": "getting-server-info-using-nodejs",
      "title": "Getting server info using nodejs",
      "excerpt": "Getting server information using nodejs is very easy especially using the os module. Wrote a simple script to fetch in JS.",
      "publishDate": "2011-12-28T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "nodejs",
      "tags": [
        "javascript",
        "nodejs"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/getting-server-info-using-nodejs/",
      "markdownUrl": "https://h3manth.com/scribe/blog/getting-server-info-using-nodejs.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/getting-server-info-using-nodejs.md",
      "wordCount": 302,
      "readingTimeMinutes": 2,
      "tokensEstimate": 699
    },
    {
      "slug": "http-request-header-nodejs",
      "title": "HTTP-request Header From node.js",
      "excerpt": "The message header of requests and responses in the Hypertext Transfer Protocol define the operating parameters of an HTTP.",
      "publishDate": "2011-12-23T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "nodejs",
        "javascript",
        "ubuntu",
        "git"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/http-request-header-nodejs/",
      "markdownUrl": "https://h3manth.com/scribe/blog/http-request-header-nodejs.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/http-request-header-nodejs.md",
      "wordCount": 233,
      "readingTimeMinutes": 2,
      "tokensEstimate": 581
    },
    {
      "slug": "http-request-header-from-nodejs",
      "title": "HTTP-request header from node.js",
      "excerpt": "The message header of requests and responses in the Hypertext Transfer Protocol define the operating parameters of an HTTP.",
      "publishDate": "2011-12-22T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "nodejs",
      "tags": [
        "javascript",
        "nodejs"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/http-request-header-from-nodejs/",
      "markdownUrl": "https://h3manth.com/scribe/blog/http-request-header-from-nodejs.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/http-request-header-from-nodejs.md",
      "wordCount": 239,
      "readingTimeMinutes": 2,
      "tokensEstimate": 549
    },
    {
      "slug": "unicode-symbols-function-names",
      "title": "Unicode Symbols as Function Names",
      "excerpt": "Unicode stings for function/method names is a very rare scenario, but who knows in the near future people might use them.",
      "publishDate": "2011-12-01T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "python",
        "bash"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/unicode-symbols-function-names/",
      "markdownUrl": "https://h3manth.com/scribe/blog/unicode-symbols-function-names.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/unicode-symbols-function-names.md",
      "wordCount": 289,
      "readingTimeMinutes": 2,
      "tokensEstimate": 503
    },
    {
      "slug": "unicode-symbols-as-function-names",
      "title": "Unicode symbols as function names",
      "excerpt": "Unicode stings for function/method names is a very rare scenario, but who knows in the near future people might use them.",
      "publishDate": "2011-11-30T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "python",
        "ruby"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/unicode-symbols-as-function-names/",
      "markdownUrl": "https://h3manth.com/scribe/blog/unicode-symbols-as-function-names.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/unicode-symbols-as-function-names.md",
      "wordCount": 317,
      "readingTimeMinutes": 2,
      "tokensEstimate": 492
    },
    {
      "slug": "invalid-html-googles-homepage",
      "title": "Invalid HTML in Google's Homepage",
      "excerpt": "When validating my homepage /me got 1Error and 1warning, was curious to paw more! w3.org validator says : 37 Errors, 2 in JS.",
      "publishDate": "2011-11-19T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/invalid-html-googles-homepage/",
      "markdownUrl": "https://h3manth.com/scribe/blog/invalid-html-googles-homepage.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/invalid-html-googles-homepage.md",
      "wordCount": 213,
      "readingTimeMinutes": 2,
      "tokensEstimate": 444
    },
    {
      "slug": "simple-closure-cross-browser-xhr-instance",
      "title": "Simple Closure for Cross Browser XHR Instance",
      "excerpt": "Yes that is right, there are many libraries to handle XHR, but raw JS is always fun! There are many ways of doing this, but.",
      "publishDate": "2011-11-14T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "nodejs",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/simple-closure-cross-browser-xhr-instance/",
      "markdownUrl": "https://h3manth.com/scribe/blog/simple-closure-cross-browser-xhr-instance.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/simple-closure-cross-browser-xhr-instance.md",
      "wordCount": 138,
      "readingTimeMinutes": 1,
      "tokensEstimate": 325
    },
    {
      "slug": "typeof-javascript-tweaked",
      "title": "typeof JavaScript tweaked",
      "excerpt": "A simple but very effective tweak for the typeof operator in JavaScript. Practical notes and code examples on typeof in JS.",
      "publishDate": "2011-11-08T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/typeof-javascript-tweaked/",
      "markdownUrl": "https://h3manth.com/scribe/blog/typeof-javascript-tweaked.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/typeof-javascript-tweaked.md",
      "wordCount": 284,
      "readingTimeMinutes": 2,
      "tokensEstimate": 672
    },
    {
      "slug": "javascript-event-tracking-and-management",
      "title": "JavaScript Event tracking and management",
      "excerpt": "A simple prototype with raw JavaScript to make basic event management and tracking easier. Practical notes and code examples.",
      "publishDate": "2011-11-06T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/javascript-event-tracking-and-management/",
      "markdownUrl": "https://h3manth.com/scribe/blog/javascript-event-tracking-and-management.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/javascript-event-tracking-and-management.md",
      "wordCount": 446,
      "readingTimeMinutes": 3,
      "tokensEstimate": 1032
    },
    {
      "slug": "simple-cookie-management-javascript",
      "title": "Simple Cookie Management With JavaScript",
      "excerpt": "On of the most common things that most of the web developer would do is cookie management. Was pawing at some JavaScript.",
      "publishDate": "2011-10-25T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/simple-cookie-management-javascript/",
      "markdownUrl": "https://h3manth.com/scribe/blog/simple-cookie-management-javascript.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/simple-cookie-management-javascript.md",
      "wordCount": 294,
      "readingTimeMinutes": 2,
      "tokensEstimate": 705
    },
    {
      "slug": "introducing-slang-api",
      "title": "Introducing the Slang API",
      "excerpt": "Lately was working on some slang filtering module, but for the LOLz of it made a simple JSON API. The deal is pretty simple.",
      "publishDate": "2011-10-24T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "android",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/introducing-slang-api/",
      "markdownUrl": "https://h3manth.com/scribe/blog/introducing-slang-api.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/introducing-slang-api.md",
      "wordCount": 68,
      "readingTimeMinutes": 1,
      "tokensEstimate": 208
    },
    {
      "slug": "simple-cookie-management-with-javascript",
      "title": "Simple Cookie Management with JavaScript",
      "excerpt": "A simple cookie management class in JavaScript that does basic cookie management. Practical notes and code examples on in JS.",
      "publishDate": "2011-10-24T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/simple-cookie-management-with-javascript/",
      "markdownUrl": "https://h3manth.com/scribe/blog/simple-cookie-management-with-javascript.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/simple-cookie-management-with-javascript.md",
      "wordCount": 310,
      "readingTimeMinutes": 2,
      "tokensEstimate": 679
    },
    {
      "slug": "javascript-mapreduce-one-liner",
      "title": "JavaScript MapReduce One Liner?!",
      "excerpt": "After Word frequency using mapreduce in python I got my paws dirty with some silly javascript, after reducing a whole chuck.",
      "publishDate": "2011-10-15T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "python",
        "nodejs",
        "javascript",
        "database"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/javascript-mapreduce-one-liner/",
      "markdownUrl": "https://h3manth.com/scribe/blog/javascript-mapreduce-one-liner.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/javascript-mapreduce-one-liner.md",
      "wordCount": 151,
      "readingTimeMinutes": 1,
      "tokensEstimate": 369
    },
    {
      "slug": "word-frequency-mapreduce-python",
      "title": "Word Frequency With Mapreduce in Python",
      "excerpt": "Implementing Google’s MapReduce programming model in Python to compute word frequency counts across text documents using.",
      "publishDate": "2011-09-23T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "python",
        "mapreduce",
        "algorithms"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/word-frequency-mapreduce-python/",
      "markdownUrl": "https://h3manth.com/scribe/blog/word-frequency-mapreduce-python.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/word-frequency-mapreduce-python.md",
      "wordCount": 316,
      "readingTimeMinutes": 2,
      "tokensEstimate": 749
    },
    {
      "slug": "setup-your-own-cloud-30-seconds",
      "title": "Setup Your Own Cloud in 30 Seconds",
      "excerpt": "Yes from past few years there is hell lot of hype for cloud. Which is the new name the enterprise gave for the old game of.",
      "publishDate": "2011-09-01T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "git",
        "bash",
        "database"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/setup-your-own-cloud-30-seconds/",
      "markdownUrl": "https://h3manth.com/scribe/blog/setup-your-own-cloud-30-seconds.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/setup-your-own-cloud-30-seconds.md",
      "wordCount": 232,
      "readingTimeMinutes": 2,
      "tokensEstimate": 508
    },
    {
      "slug": "instant-upload-images-imgur-android",
      "title": "Instant Upload Images to Imgur From Android",
      "excerpt": "Python needs to be embraced for it’s capacity to gel with android so well and make things easier with simple and fun in JS.",
      "publishDate": "2011-08-31T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "python",
        "javascript",
        "android",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/instant-upload-images-imgur-android/",
      "markdownUrl": "https://h3manth.com/scribe/blog/instant-upload-images-imgur-android.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/instant-upload-images-imgur-android.md",
      "wordCount": 325,
      "readingTimeMinutes": 2,
      "tokensEstimate": 718
    },
    {
      "slug": "figlr-ascii-art-fly",
      "title": "Figlr ASCII Art on Fly",
      "excerpt": "Figlr is a simple fun tool to generate FIGlet text. Those are normally used to make ASCII art banners. It makes use of in JS.",
      "publishDate": "2011-08-30T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/figlr-ascii-art-fly/",
      "markdownUrl": "https://h3manth.com/scribe/blog/figlr-ascii-art-fly.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/figlr-ascii-art-fly.md",
      "wordCount": 98,
      "readingTimeMinutes": 1,
      "tokensEstimate": 285
    },
    {
      "slug": "programmatically-delete-sms-androidpython",
      "title": "Programmatically delete SMS in android using python",
      "excerpt": "Deleting SMS text has been on of issues with default SMS clients of Andriod OS. Issue 5669 talks a lot about it. The most.",
      "publishDate": "2011-08-30T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "python",
        "android"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/programmatically-delete-sms-androidpython/",
      "markdownUrl": "https://h3manth.com/scribe/blog/programmatically-delete-sms-androidpython.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/programmatically-delete-sms-androidpython.md",
      "wordCount": 225,
      "readingTimeMinutes": 2,
      "tokensEstimate": 466
    },
    {
      "slug": "programmatically-delete-sms-android-using-python",
      "title": "Programmatically Delete SMS in Android Using Python",
      "excerpt": "Deleting SMS text has been on of issues with default SMS clients of Andriod OS. Issue 5669 talks a lot about it. The most.",
      "publishDate": "2011-08-29T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "python",
        "android",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/programmatically-delete-sms-android-using-python/",
      "markdownUrl": "https://h3manth.com/scribe/blog/programmatically-delete-sms-android-using-python.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/programmatically-delete-sms-android-using-python.md",
      "wordCount": 218,
      "readingTimeMinutes": 2,
      "tokensEstimate": 497
    },
    {
      "slug": "yoda-talks-xmpp-twitter-and-identica",
      "title": "Yoda Talks to XMPP, Twitter and Identi.ca",
      "excerpt": "This is more a tribute to Master Yoda rather than coding! The idea was to use a simple python script to update my gmail.",
      "publishDate": "2011-08-28T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "python",
        "git",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/yoda-talks-xmpp-twitter-and-identica/",
      "markdownUrl": "https://h3manth.com/scribe/blog/yoda-talks-xmpp-twitter-and-identica.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/yoda-talks-xmpp-twitter-and-identica.md",
      "wordCount": 156,
      "readingTimeMinutes": 1,
      "tokensEstimate": 367
    },
    {
      "slug": "random-images-wikipedia",
      "title": "Random Images From Wikipedia",
      "excerpt": "After Random images from xkcd as wallpaper it was time for some more fun, this time did a simple script to get Random images.",
      "publishDate": "2011-08-27T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/random-images-wikipedia/",
      "markdownUrl": "https://h3manth.com/scribe/blog/random-images-wikipedia.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/random-images-wikipedia.md",
      "wordCount": 389,
      "readingTimeMinutes": 2,
      "tokensEstimate": 1068
    },
    {
      "slug": "wikipedia-search-summary-api",
      "title": "Wikipedia Search Summary API",
      "excerpt": "After Random images from wikipedia I made another simple API to get the summary for a search term using PHP. It’s a JSONP.",
      "publishDate": "2011-08-27T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/wikipedia-search-summary-api/",
      "markdownUrl": "https://h3manth.com/scribe/blog/wikipedia-search-summary-api.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/wikipedia-search-summary-api.md",
      "wordCount": 136,
      "readingTimeMinutes": 1,
      "tokensEstimate": 390
    },
    {
      "slug": "compressing-files-python-perl-ruby-and-php",
      "title": "Compressing Files With Python, Perl, Ruby and Php",
      "excerpt": "is one of the most common tasks any programmer would have done. The below is a simple comparison of compression paradigms.",
      "publishDate": "2011-08-24T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "ruby",
        "python",
        "bash",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/compressing-files-python-perl-ruby-and-php/",
      "markdownUrl": "https://h3manth.com/scribe/blog/compressing-files-python-perl-ruby-and-php.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/compressing-files-python-perl-ruby-and-php.md",
      "wordCount": 188,
      "readingTimeMinutes": 1,
      "tokensEstimate": 546
    },
    {
      "slug": "get-json-ip-service",
      "title": "Get Json Ip Service",
      "excerpt": "Getting client IP address is one common thing most of the web developers do, but getting the same with JavaScript is not.",
      "publishDate": "2011-08-24T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/get-json-ip-service/",
      "markdownUrl": "https://h3manth.com/scribe/blog/get-json-ip-service.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/get-json-ip-service.md",
      "wordCount": 313,
      "readingTimeMinutes": 2,
      "tokensEstimate": 674
    },
    {
      "slug": "sms-android-using-python",
      "title": "SMS From Android Using Python",
      "excerpt": "All one needs to have is Scripting layer installed in the mobile device. Use the QR code below to get the apk and install.",
      "publishDate": "2011-08-22T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "python",
        "javascript",
        "android",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/sms-android-using-python/",
      "markdownUrl": "https://h3manth.com/scribe/blog/sms-android-using-python.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/sms-android-using-python.md",
      "wordCount": 234,
      "readingTimeMinutes": 2,
      "tokensEstimate": 697
    },
    {
      "slug": "my-google-interview-devnull",
      "title": "My Google Interview > /dev/null",
      "excerpt": "It all started couple of months back, on a fine sunny morning i read a mail with a subject Career Opportunities @ Google at.",
      "publishDate": "2011-07-31T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "linux",
        "opensource"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/my-google-interview-devnull/",
      "markdownUrl": "https://h3manth.com/scribe/blog/my-google-interview-devnull.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/my-google-interview-devnull.md",
      "wordCount": 1212,
      "readingTimeMinutes": 7,
      "tokensEstimate": 1758
    },
    {
      "slug": "selective-directory-index-htacess",
      "title": "Selective Directory Index From Htacess",
      "excerpt": "Apache Module moddir provides ’trailing slash’ redirects and serving directory index files. ’The DirectoryIndex directive.",
      "publishDate": "2011-07-03T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "linux",
        "opensource"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/selective-directory-index-htacess/",
      "markdownUrl": "https://h3manth.com/scribe/blog/selective-directory-index-htacess.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/selective-directory-index-htacess.md",
      "wordCount": 317,
      "readingTimeMinutes": 2,
      "tokensEstimate": 596
    },
    {
      "slug": "downloading-files-comparative-study",
      "title": "Downloading Files : A Comparative Study",
      "excerpt": "A simple case study of downloading files in perl, ruby, python and php. Assumption : The input for these scripts are in JS.",
      "publishDate": "2011-06-12T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "ruby",
        "python"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/downloading-files-comparative-study/",
      "markdownUrl": "https://h3manth.com/scribe/blog/downloading-files-comparative-study.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/downloading-files-comparative-study.md",
      "wordCount": 621,
      "readingTimeMinutes": 4,
      "tokensEstimate": 1641
    },
    {
      "slug": "gnu-mediagoblin",
      "title": "GNU MediaGoblin",
      "excerpt": "What is GNU MediaGoblin? Initially, a place to store all your photos and artwork, more better than (Flickr, DeviantArt in JS.",
      "publishDate": "2011-05-03T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "python",
        "ubuntu",
        "git",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/gnu-mediagoblin/",
      "markdownUrl": "https://h3manth.com/scribe/blog/gnu-mediagoblin.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/gnu-mediagoblin.md",
      "wordCount": 137,
      "readingTimeMinutes": 1,
      "tokensEstimate": 381
    },
    {
      "slug": "keyless-auto-login-ssh-script",
      "title": "Keyless Auto Login SSH Script",
      "excerpt": "keys less login has been easy always with ssh keygen and copy-id, but just a small bash loop will help auto login on in JS.",
      "publishDate": "2011-04-09T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "bash",
        "linux"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/keyless-auto-login-ssh-script/",
      "markdownUrl": "https://h3manth.com/scribe/blog/keyless-auto-login-ssh-script.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/keyless-auto-login-ssh-script.md",
      "wordCount": 182,
      "readingTimeMinutes": 1,
      "tokensEstimate": 419
    },
    {
      "slug": "server-side-javascript-nodejs",
      "title": "Server-Side JavaScript With Node.js",
      "excerpt": "Installing node.js on a Debian machine : sudo apt-get install g++ curl libssl-dev apache2-utils git-core git clone cd...",
      "publishDate": "2011-03-13T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "nodejs",
        "javascript",
        "ubuntu",
        "git"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/server-side-javascript-nodejs/",
      "markdownUrl": "https://h3manth.com/scribe/blog/server-side-javascript-nodejs.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/server-side-javascript-nodejs.md",
      "wordCount": 326,
      "readingTimeMinutes": 2,
      "tokensEstimate": 806
    },
    {
      "slug": "stealing-google-logos-using-yahoo-api",
      "title": "Stealing Google Logos Using Yahoo API",
      "excerpt": "Many love browsing through Google Logos, so do some of my friends, was planning to make a simple page with infinite scroll.",
      "publishDate": "2011-03-07T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/stealing-google-logos-using-yahoo-api/",
      "markdownUrl": "https://h3manth.com/scribe/blog/stealing-google-logos-using-yahoo-api.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/stealing-google-logos-using-yahoo-api.md",
      "wordCount": 189,
      "readingTimeMinutes": 1,
      "tokensEstimate": 380
    },
    {
      "slug": "color-clock",
      "title": "The Color Clock",
      "excerpt": "I came across the thecolourclock wanted to check out the source sadly it was build in flash so tired to make one with some.",
      "publishDate": "2011-01-23T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "git",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/color-clock/",
      "markdownUrl": "https://h3manth.com/scribe/blog/color-clock.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/color-clock.md",
      "wordCount": 84,
      "readingTimeMinutes": 1,
      "tokensEstimate": 237
    },
    {
      "slug": "multi-lingual-xmpp-translate-bot",
      "title": "Multi Lingual Xmpp Translate Bot",
      "excerpt": "Multi lingual translate bot code in ruby after the xmpp ruby chat-bot this bot is coding in ruby with the help of tolang.",
      "publishDate": "2011-01-02T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "ruby",
        "javascript",
        "git",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/multi-lingual-xmpp-translate-bot/",
      "markdownUrl": "https://h3manth.com/scribe/blog/multi-lingual-xmpp-translate-bot.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/multi-lingual-xmpp-translate-bot.md",
      "wordCount": 109,
      "readingTimeMinutes": 1,
      "tokensEstimate": 303
    },
    {
      "slug": "python-objects-json-string",
      "title": "Python Objects to JSON String",
      "excerpt": "Python provides a easy way to handle JSON, by importing thejson module, one can easily encode a list of dicts or a dict of.",
      "publishDate": "2010-12-29T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "python",
        "javascript",
        "bash"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/python-objects-json-string/",
      "markdownUrl": "https://h3manth.com/scribe/blog/python-objects-json-string.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/python-objects-json-string.md",
      "wordCount": 191,
      "readingTimeMinutes": 1,
      "tokensEstimate": 502
    },
    {
      "slug": "getting-redirected-url",
      "title": "Getting the Redirected URL",
      "excerpt": "Many time one needs to get the redirected URL, the reasons might be many but the logic remains the same. HTTP request in JS.",
      "publishDate": "2010-11-12T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "bash",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/getting-redirected-url/",
      "markdownUrl": "https://h3manth.com/scribe/blog/getting-redirected-url.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/getting-redirected-url.md",
      "wordCount": 262,
      "readingTimeMinutes": 2,
      "tokensEstimate": 676
    },
    {
      "slug": "google-im-feeling-lucky-python-and-ruby",
      "title": "Google I'm Feeling Lucky in Python and Ruby",
      "excerpt": "With the xmpp and irc bots : l33ty.l33t and l33ty so far i’m having fun coding them, of all the methods in them i liked the.",
      "publishDate": "2010-11-08T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "ruby",
        "python",
        "javascript",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/google-im-feeling-lucky-python-and-ruby/",
      "markdownUrl": "https://h3manth.com/scribe/blog/google-im-feeling-lucky-python-and-ruby.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/google-im-feeling-lucky-python-and-ruby.md",
      "wordCount": 396,
      "readingTimeMinutes": 2,
      "tokensEstimate": 1063
    },
    {
      "slug": "xmpp-ruby-chat-bot",
      "title": "XMPP Ruby Chat Bot",
      "excerpt": "After Python-IRC-bot my interest was in making a gmail bot, that lead me to make a simple bot very much like the previous.",
      "publishDate": "2010-11-06T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "ruby",
        "python",
        "ubuntu",
        "git"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/xmpp-ruby-chat-bot/",
      "markdownUrl": "https://h3manth.com/scribe/blog/xmpp-ruby-chat-bot.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/xmpp-ruby-chat-bot.md",
      "wordCount": 169,
      "readingTimeMinutes": 1,
      "tokensEstimate": 368
    },
    {
      "slug": "python-irc-bot",
      "title": "Python IRC Bot",
      "excerpt": "It started with the intention of making a simple IRC l33t translate bot after the l33t translation API. l33ty is an IRC bot.",
      "publishDate": "2010-10-31T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "python",
        "ubuntu",
        "git",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/python-irc-bot/",
      "markdownUrl": "https://h3manth.com/scribe/blog/python-irc-bot.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/python-irc-bot.md",
      "wordCount": 152,
      "readingTimeMinutes": 1,
      "tokensEstimate": 346
    },
    {
      "slug": "l33t-translator",
      "title": "L33t Translator",
      "excerpt": "Here I introduce a dynamic 733+ translator an on the fly translator similar to Google translate. Where i can see the in JS.",
      "publishDate": "2010-10-14T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "git",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/l33t-translator/",
      "markdownUrl": "https://h3manth.com/scribe/blog/l33t-translator.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/l33t-translator.md",
      "wordCount": 184,
      "readingTimeMinutes": 1,
      "tokensEstimate": 399
    },
    {
      "slug": "edit-dot-rc-files-and-auto-source",
      "title": "Edit Dot Rc Files and Auto Source",
      "excerpt": "Here is the list which makes things clear: Type of shell | .rc support? | Path to rc ---|---|--- bash | yes | /.bashrc ash.",
      "publishDate": "2010-10-06T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "python",
        "bash"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/edit-dot-rc-files-and-auto-source/",
      "markdownUrl": "https://h3manth.com/scribe/blog/edit-dot-rc-files-and-auto-source.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/edit-dot-rc-files-and-auto-source.md",
      "wordCount": 475,
      "readingTimeMinutes": 3,
      "tokensEstimate": 1102
    },
    {
      "slug": "copying-shared-library-dependencies",
      "title": "Copying Shared Library Dependencies",
      "excerpt": "Shared library dependenices can be easily listed with the help of ldd– list dynamic dependencies of executable files or.",
      "publishDate": "2010-10-04T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "bash",
        "linux"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/copying-shared-library-dependencies/",
      "markdownUrl": "https://h3manth.com/scribe/blog/copying-shared-library-dependencies.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/copying-shared-library-dependencies.md",
      "wordCount": 395,
      "readingTimeMinutes": 2,
      "tokensEstimate": 897
    },
    {
      "slug": "time-zone-conversions",
      "title": "Time Zone Conversions",
      "excerpt": "’Time is constant, we come and go’, but the beauty of earth is so, that time varies with space. I made a simple BASH script.",
      "publishDate": "2010-09-27T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "bash",
        "linux"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/time-zone-conversions/",
      "markdownUrl": "https://h3manth.com/scribe/blog/time-zone-conversions.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/time-zone-conversions.md",
      "wordCount": 414,
      "readingTimeMinutes": 3,
      "tokensEstimate": 739
    },
    {
      "slug": "curious-case-combining-pdfs",
      "title": "Curious Case of Combining Pdfs",
      "excerpt": "The case: Few many chapters of some study material,files like chapter1.pdf, chapter2.pdf....chapterN.pdf, was easy to loop.",
      "publishDate": "2010-09-24T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "bash",
        "linux"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/curious-case-combining-pdfs/",
      "markdownUrl": "https://h3manth.com/scribe/blog/curious-case-combining-pdfs.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/curious-case-combining-pdfs.md",
      "wordCount": 351,
      "readingTimeMinutes": 2,
      "tokensEstimate": 720
    },
    {
      "slug": "limpid-simple-app-p2pu",
      "title": "Limpid a Simple App for P2pu",
      "excerpt": "It all start with a simple idea, i got of embedding a vt in a terminal, later on it turned out to be a stand alone all, with.",
      "publishDate": "2010-09-22T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "python",
        "web",
        "linux"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/limpid-simple-app-p2pu/",
      "markdownUrl": "https://h3manth.com/scribe/blog/limpid-simple-app-p2pu.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/limpid-simple-app-p2pu.md",
      "wordCount": 241,
      "readingTimeMinutes": 2,
      "tokensEstimate": 482
    },
    {
      "slug": "setup-diaspora-ubuntu",
      "title": "Setup Diaspora on Ubuntu",
      "excerpt": "Was seeing lot of people facing issues to in set up, including me at the beginning, so i thought to make a setup script for.",
      "publishDate": "2010-09-16T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "ubuntu",
        "git",
        "bash",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/setup-diaspora-ubuntu/",
      "markdownUrl": "https://h3manth.com/scribe/blog/setup-diaspora-ubuntu.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/setup-diaspora-ubuntu.md",
      "wordCount": 506,
      "readingTimeMinutes": 3,
      "tokensEstimate": 1129
    },
    {
      "slug": "insight-google-instant",
      "title": "Insight of Google Instant",
      "excerpt": "Google Instant is a new search enhancement that shows results as you type. Advantages to the users: 1. Faster a better live.",
      "publishDate": "2010-09-08T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/insight-google-instant/",
      "markdownUrl": "https://h3manth.com/scribe/blog/insight-google-instant.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/insight-google-instant.md",
      "wordCount": 194,
      "readingTimeMinutes": 1,
      "tokensEstimate": 417
    },
    {
      "slug": "meet-rms",
      "title": "Meet RMS",
      "excerpt": "RMS had been to RV college of engineering today to give a speech on Free Software, i was lucky enough to get a picture in JS.",
      "publishDate": "2010-09-08T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "ubuntu",
        "web",
        "linux"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/meet-rms/",
      "markdownUrl": "https://h3manth.com/scribe/blog/meet-rms.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/meet-rms.md",
      "wordCount": 432,
      "readingTimeMinutes": 3,
      "tokensEstimate": 745
    },
    {
      "slug": "mozilla-p2pu-course",
      "title": "Mozilla P2PU Course",
      "excerpt": "Join now The main goal of P2PU is to,’create a vibrant, peer-led system that helps people around the world easily access.",
      "publishDate": "2010-09-02T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/mozilla-p2pu-course/",
      "markdownUrl": "https://h3manth.com/scribe/blog/mozilla-p2pu-course.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/mozilla-p2pu-course.md",
      "wordCount": 247,
      "readingTimeMinutes": 2,
      "tokensEstimate": 495
    },
    {
      "slug": "pybrain",
      "title": "PyBrain",
      "excerpt": "The data processing flow : PyBrain for whom? 1. Students. 2. Teachers. 3. Developers. PyBrain for what? 1. Neural Networks.",
      "publishDate": "2010-08-28T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "python",
        "ubuntu",
        "git",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/pybrain/",
      "markdownUrl": "https://h3manth.com/scribe/blog/pybrain.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/pybrain.md",
      "wordCount": 83,
      "readingTimeMinutes": 1,
      "tokensEstimate": 267
    },
    {
      "slug": "gmail-voice-and-video-chat-comes-gnulinux-last",
      "title": "Gmail Voice and Video Chat Comes to GNU/Linux at Last",
      "excerpt": "Today gmail has announced and rolled out this feature yes there were many alternatives like Pidgin, Empathy with this in JS.",
      "publishDate": "2010-08-20T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "web",
        "linux"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/gmail-voice-and-video-chat-comes-gnulinux-last/",
      "markdownUrl": "https://h3manth.com/scribe/blog/gmail-voice-and-video-chat-comes-gnulinux-last.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/gmail-voice-and-video-chat-comes-gnulinux-last.md",
      "wordCount": 96,
      "readingTimeMinutes": 1,
      "tokensEstimate": 284
    },
    {
      "slug": "svg-smiley",
      "title": "SVG Smiley",
      "excerpt": "If SVG is not rendered in your browser, you can save the image from here If SVG is not rendered in your browser, you can.",
      "publishDate": "2010-08-18T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/svg-smiley/",
      "markdownUrl": "https://h3manth.com/scribe/blog/svg-smiley.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/svg-smiley.md",
      "wordCount": 102,
      "readingTimeMinutes": 1,
      "tokensEstimate": 281
    },
    {
      "slug": "hacker-news-widget",
      "title": "Hacker News Widget",
      "excerpt": "Technical guide and code examples on Hacker News Widget (javascript, linux) by Hemanth HM. Practical notes and code examples.",
      "publishDate": "2010-08-15T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "android",
        "git",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/hacker-news-widget/",
      "markdownUrl": "https://h3manth.com/scribe/blog/hacker-news-widget.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/hacker-news-widget.md",
      "wordCount": 73,
      "readingTimeMinutes": 1,
      "tokensEstimate": 234
    },
    {
      "slug": "lemote-yeeloong",
      "title": "Lemote Yeeloong",
      "excerpt": "Few years back when i gave a talk on free software, one of the guys in the crowd asked me don’t you have free hardware? I.",
      "publishDate": "2010-08-10T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/lemote-yeeloong/",
      "markdownUrl": "https://h3manth.com/scribe/blog/lemote-yeeloong.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/lemote-yeeloong.md",
      "wordCount": 184,
      "readingTimeMinutes": 1,
      "tokensEstimate": 397
    },
    {
      "slug": "speaking-clock-gnulinux",
      "title": "Speaking Clock GNU/Linux",
      "excerpt": "Python Code Prerequisite:pyttsx #!/usr/bin/env python import pyttsx import time engine = pyttsx.init() rate = — Scribe notes.",
      "publishDate": "2010-08-05T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "python",
        "ubuntu",
        "bash",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/speaking-clock-gnulinux/",
      "markdownUrl": "https://h3manth.com/scribe/blog/speaking-clock-gnulinux.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/speaking-clock-gnulinux.md",
      "wordCount": 66,
      "readingTimeMinutes": 1,
      "tokensEstimate": 278
    },
    {
      "slug": "scripting-101-reddit-course",
      "title": "Scripting 101 Reddit Course",
      "excerpt": "’The University of Reddit is the product of free intellectualism and is a haven for the sharing of knowledge. Teachers and.",
      "publishDate": "2010-08-03T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "ruby",
        "python",
        "bash",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/scripting-101-reddit-course/",
      "markdownUrl": "https://h3manth.com/scribe/blog/scripting-101-reddit-course.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/scripting-101-reddit-course.md",
      "wordCount": 177,
      "readingTimeMinutes": 1,
      "tokensEstimate": 454
    },
    {
      "slug": "yql-yui-and-jquery",
      "title": "YQL YUI and JQuery",
      "excerpt": "Data 1. Query : select from github.user.info where id=’hemanth’ 2.The REST query... Practical notes and code examples on.",
      "publishDate": "2010-07-31T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "git",
        "database",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/yql-yui-and-jquery/",
      "markdownUrl": "https://h3manth.com/scribe/blog/yql-yui-and-jquery.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/yql-yui-and-jquery.md",
      "wordCount": 421,
      "readingTimeMinutes": 3,
      "tokensEstimate": 1259
    },
    {
      "slug": "twiit-your-google-status",
      "title": "Twiit Your Google Status",
      "excerpt": "After Finding invisible mates I tried a simple python script again to do me a neat job of twitting and setting the same as.",
      "publishDate": "2010-07-28T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "python",
        "bash",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/twiit-your-google-status/",
      "markdownUrl": "https://h3manth.com/scribe/blog/twiit-your-google-status.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/twiit-your-google-status.md",
      "wordCount": 171,
      "readingTimeMinutes": 1,
      "tokensEstimate": 572
    },
    {
      "slug": "find-your-invisible-friends-gmail",
      "title": "Find Your Invisible Friends on Gmail",
      "excerpt": "After google news in terminal i was much interested in playing with XMPP Extensible Messaging and Presence Protocol, my.",
      "publishDate": "2010-07-18T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "python",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/find-your-invisible-friends-gmail/",
      "markdownUrl": "https://h3manth.com/scribe/blog/find-your-invisible-friends-gmail.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/find-your-invisible-friends-gmail.md",
      "wordCount": 293,
      "readingTimeMinutes": 2,
      "tokensEstimate": 737
    },
    {
      "slug": "sort-text-blocks",
      "title": "Sort Text Blocks",
      "excerpt": "I recently came across a simple task, wherein i had to sort a massive text file which was an output of a heavy data in JS.",
      "publishDate": "2010-07-16T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "bash"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/sort-text-blocks/",
      "markdownUrl": "https://h3manth.com/scribe/blog/sort-text-blocks.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/sort-text-blocks.md",
      "wordCount": 164,
      "readingTimeMinutes": 1,
      "tokensEstimate": 330
    },
    {
      "slug": "desktop-session-detection-python",
      "title": "Desktop Session Detection Python",
      "excerpt": "As, i was doing a bug fix for this bug i had to find a way to detect the current desktop session, based on which further.",
      "publishDate": "2010-07-05T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "python"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/desktop-session-detection-python/",
      "markdownUrl": "https://h3manth.com/scribe/blog/desktop-session-detection-python.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/desktop-session-detection-python.md",
      "wordCount": 229,
      "readingTimeMinutes": 2,
      "tokensEstimate": 673
    },
    {
      "slug": "google-news-terminal",
      "title": "Google News in Terminal",
      "excerpt": "After Upload to picasa from cli and google-sunrise-sunset-terminal in past few days, i was gaming on some substantial data.",
      "publishDate": "2010-07-05T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "python",
        "bash",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/google-news-terminal/",
      "markdownUrl": "https://h3manth.com/scribe/blog/google-news-terminal.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/google-news-terminal.md",
      "wordCount": 373,
      "readingTimeMinutes": 2,
      "tokensEstimate": 996
    },
    {
      "slug": "rss-feed-twitt-bots",
      "title": "RSS Feed Twitt Bots",
      "excerpt": "The open source world has always be a great source of energy to all especially for code monkeys and terminal junkies, not.",
      "publishDate": "2010-07-02T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "ruby",
        "python",
        "linux"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/rss-feed-twitt-bots/",
      "markdownUrl": "https://h3manth.com/scribe/blog/rss-feed-twitt-bots.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/rss-feed-twitt-bots.md",
      "wordCount": 477,
      "readingTimeMinutes": 3,
      "tokensEstimate": 1223
    },
    {
      "slug": "twitter-updates-geolocation",
      "title": "Twitter Updates With Geolocation",
      "excerpt": "Update your twitter with your current geolocation, from terminal I was playing with a python wrapper around the Twitter API.",
      "publishDate": "2010-07-01T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "python",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/twitter-updates-geolocation/",
      "markdownUrl": "https://h3manth.com/scribe/blog/twitter-updates-geolocation.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/twitter-updates-geolocation.md",
      "wordCount": 295,
      "readingTimeMinutes": 2,
      "tokensEstimate": 726
    },
    {
      "slug": "bash-vs-python",
      "title": "Bash vs Python",
      "excerpt": "A simple case study: It’s not about one programming language killing and replacing the other, its all about the purpose!.",
      "publishDate": "2010-06-30T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "python",
        "bash"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/bash-vs-python/",
      "markdownUrl": "https://h3manth.com/scribe/blog/bash-vs-python.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/bash-vs-python.md",
      "wordCount": 98,
      "readingTimeMinutes": 1,
      "tokensEstimate": 283
    },
    {
      "slug": "mutt-gmail-labels-and-contact-suggestions-imap",
      "title": "Mutt Gmail Labels and Contact Suggestions via IMAP",
      "excerpt": "No matter how many E-Mail client are released, the power of Mutt remains unbeaten IMAP or POP3 ?! This has become much a.",
      "publishDate": "2010-06-29T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "ubuntu",
        "git",
        "linux"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/mutt-gmail-labels-and-contact-suggestions-imap/",
      "markdownUrl": "https://h3manth.com/scribe/blog/mutt-gmail-labels-and-contact-suggestions-imap.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/mutt-gmail-labels-and-contact-suggestions-imap.md",
      "wordCount": 158,
      "readingTimeMinutes": 1,
      "tokensEstimate": 330
    },
    {
      "slug": "google-sunrise-sunset-terminal",
      "title": "Google Sunrise Sunset From Terminal",
      "excerpt": "As Google starts Sunrise and Sunset query, i tried these silly bash functions, make it more better. Prerequisites in JS fast.",
      "publishDate": "2010-06-28T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "ubuntu",
        "git",
        "bash",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/google-sunrise-sunset-terminal/",
      "markdownUrl": "https://h3manth.com/scribe/blog/google-sunrise-sunset-terminal.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/google-sunrise-sunset-terminal.md",
      "wordCount": 104,
      "readingTimeMinutes": 1,
      "tokensEstimate": 292
    },
    {
      "slug": "getme-video",
      "title": "Getme Video",
      "excerpt": "Ingredients: youtube-dl, ffmpeg, ffmpeg2theora sudo apt-get install youtube-dl ffmpeg ffmpeg2theora cat /.bashrc ’ fi fi }.",
      "publishDate": "2010-06-22T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "ubuntu",
        "bash"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/getme-video/",
      "markdownUrl": "https://h3manth.com/scribe/blog/getme-video.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/getme-video.md",
      "wordCount": 141,
      "readingTimeMinutes": 1,
      "tokensEstimate": 325
    },
    {
      "slug": "sendmails-sendmail-attachments",
      "title": "Sendmails via Sendmail With Attachments",
      "excerpt": "After Send mail via python it was time to try real sendmail. [ From the FAQ pages of sendmail ] How do I create attachments.",
      "publishDate": "2010-06-22T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "python",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/sendmails-sendmail-attachments/",
      "markdownUrl": "https://h3manth.com/scribe/blog/sendmails-sendmail-attachments.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/sendmails-sendmail-attachments.md",
      "wordCount": 256,
      "readingTimeMinutes": 2,
      "tokensEstimate": 600
    },
    {
      "slug": "random-images-xkcd-wallpaper",
      "title": "Random Images From Xkcd as Wallpaper",
      "excerpt": "Afterhowto use real-time earth wallpaper i tired to make some random xkcd images as my wallpaper. The below is a simple.",
      "publishDate": "2010-06-20T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "bash",
        "web",
        "linux"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/random-images-xkcd-wallpaper/",
      "markdownUrl": "https://h3manth.com/scribe/blog/random-images-xkcd-wallpaper.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/random-images-xkcd-wallpaper.md",
      "wordCount": 164,
      "readingTimeMinutes": 1,
      "tokensEstimate": 400
    },
    {
      "slug": "upload-picasa-command-line-using-googlecl",
      "title": "Upload to Picasa From Command Line Using Googlecl",
      "excerpt": "Specially for Nikon users sudo apt-get install ufraw-batch cd /Pictures/Nikon ufraw-batch --out-type=jpeg .NEF ; mkidr nef.",
      "publishDate": "2010-06-19T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "python",
        "ubuntu",
        "bash",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/upload-picasa-command-line-using-googlecl/",
      "markdownUrl": "https://h3manth.com/scribe/blog/upload-picasa-command-line-using-googlecl.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/upload-picasa-command-line-using-googlecl.md",
      "wordCount": 170,
      "readingTimeMinutes": 1,
      "tokensEstimate": 446
    },
    {
      "slug": "openvbx-web-based-open-source-phone-system",
      "title": "OpenVBX a Web-based Open Source Phone System.",
      "excerpt": "’OpenVBX is an open source PHP/MySQL application that helps developers build rich, high quality Internet phone and SMS in JS.",
      "publishDate": "2010-06-15T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "android",
        "git",
        "bash",
        "database"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/openvbx-web-based-open-source-phone-system/",
      "markdownUrl": "https://h3manth.com/scribe/blog/openvbx-web-based-open-source-phone-system.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/openvbx-web-based-open-source-phone-system.md",
      "wordCount": 207,
      "readingTimeMinutes": 2,
      "tokensEstimate": 451
    },
    {
      "slug": "extended-experiment-command-line-dictionary",
      "title": "Extended Experiment With Command Line Dictionary",
      "excerpt": "After my old experiments with dictionary server protocol linux rfc 2229 i just wanted to try getting a mammoth list of in JS.",
      "publishDate": "2010-06-13T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "ubuntu",
        "bash",
        "web",
        "linux"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/extended-experiment-command-line-dictionary/",
      "markdownUrl": "https://h3manth.com/scribe/blog/extended-experiment-command-line-dictionary.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/extended-experiment-command-line-dictionary.md",
      "wordCount": 258,
      "readingTimeMinutes": 2,
      "tokensEstimate": 499
    },
    {
      "slug": "join-operation-clean-sweep",
      "title": "Join Operation Clean Sweep",
      "excerpt": "Read more Operation Cleansweep was launched at UDS-M by Jono Bacon. The below the skeleton of the Workflow from the review.",
      "publishDate": "2010-06-07T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "ubuntu",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/join-operation-clean-sweep/",
      "markdownUrl": "https://h3manth.com/scribe/blog/join-operation-clean-sweep.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/join-operation-clean-sweep.md",
      "wordCount": 165,
      "readingTimeMinutes": 1,
      "tokensEstimate": 543
    },
    {
      "slug": "mygooglepage",
      "title": "MyGooglepage",
      "excerpt": "As Google is rolling there new feature of changing the background of the main search page, i created the above with one of.",
      "publishDate": "2010-06-07T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/mygooglepage/",
      "markdownUrl": "https://h3manth.com/scribe/blog/mygooglepage.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/mygooglepage.md",
      "wordCount": 51,
      "readingTimeMinutes": 1,
      "tokensEstimate": 210
    },
    {
      "slug": "ubuntu-1010-maverick-meerkat-alpha-1-get-it-test-it",
      "title": "Ubuntu 10.10 (Maverick Meerkat) Alpha 1 Get It Test It",
      "excerpt": "Ubuntu 10.10 (Maverick Meerkat) Alpha 1 Get It Test It — [] Download ubuntu 10.10 alpha1 Practical notes and code examples.",
      "publishDate": "2010-06-03T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "ubuntu",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/ubuntu-1010-maverick-meerkat-alpha-1-get-it-test-it/",
      "markdownUrl": "https://h3manth.com/scribe/blog/ubuntu-1010-maverick-meerkat-alpha-1-get-it-test-it.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/ubuntu-1010-maverick-meerkat-alpha-1-get-it-test-it.md",
      "wordCount": 92,
      "readingTimeMinutes": 1,
      "tokensEstimate": 248
    },
    {
      "slug": "sudosocialme",
      "title": "sudosocial.me",
      "excerpt": "See the video and also do visit sudosocial.me SudoSocial - An Introduction from Mozilla Labs README file. Practical notes.",
      "publishDate": "2010-06-02T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "git",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/sudosocialme/",
      "markdownUrl": "https://h3manth.com/scribe/blog/sudosocialme.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/sudosocialme.md",
      "wordCount": 48,
      "readingTimeMinutes": 1,
      "tokensEstimate": 202
    },
    {
      "slug": "vlc-110-release-candidate-webm-vp8",
      "title": "VLC 1.1.0 Release Candidate With WebM / VP8",
      "excerpt": "’The WebM project is dedicated to developing a high-quality, open video format for the web that is freely available to in JS.",
      "publishDate": "2010-05-28T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "git",
        "web",
        "linux"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/vlc-110-release-candidate-webm-vp8/",
      "markdownUrl": "https://h3manth.com/scribe/blog/vlc-110-release-candidate-webm-vp8.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/vlc-110-release-candidate-webm-vp8.md",
      "wordCount": 77,
      "readingTimeMinutes": 1,
      "tokensEstimate": 285
    },
    {
      "slug": "google-chrome-stable-gnulinux-now",
      "title": "Google Chrome Is Stable for GNU/Linux Now",
      "excerpt": "The image shows an error which says, google-chrome-beta is conflicting package, so what is upgrade? Google Chrome is stable.",
      "publishDate": "2010-05-26T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "ubuntu",
        "web",
        "linux"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/google-chrome-stable-gnulinux-now/",
      "markdownUrl": "https://h3manth.com/scribe/blog/google-chrome-stable-gnulinux-now.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/google-chrome-stable-gnulinux-now.md",
      "wordCount": 127,
      "readingTimeMinutes": 1,
      "tokensEstimate": 335
    },
    {
      "slug": "how-get-info-about-all-nodes-network-ssh",
      "title": "How to Get Info About All the Nodes in the Network via SSH ?",
      "excerpt": "Logic: 1. Checking if the host is alive. 2. Getting info about them, via remote commands. Steps: 1. Prepare password free.",
      "publishDate": "2010-05-17T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "bash",
        "linux"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/how-get-info-about-all-nodes-network-ssh/",
      "markdownUrl": "https://h3manth.com/scribe/blog/how-get-info-about-all-nodes-network-ssh.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/how-get-info-about-all-nodes-network-ssh.md",
      "wordCount": 203,
      "readingTimeMinutes": 2,
      "tokensEstimate": 399
    },
    {
      "slug": "surfraw-fast-unix-command-line-interface-www-services",
      "title": "Surfraw - a Fast Unix Command Line Interface to WWW Services",
      "excerpt": "’Surfraw provides a fast unix command line interface to a variety of popular WWW search engines and other artifacts of in JS.",
      "publishDate": "2010-05-12T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "ubuntu",
        "bash"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/surfraw-fast-unix-command-line-interface-www-services/",
      "markdownUrl": "https://h3manth.com/scribe/blog/surfraw-fast-unix-command-line-interface-www-services.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/surfraw-fast-unix-command-line-interface-www-services.md",
      "wordCount": 1047,
      "readingTimeMinutes": 6,
      "tokensEstimate": 2161
    },
    {
      "slug": "embedding-google-wave",
      "title": "Embedding Google Wave",
      "excerpt": "Embedding Google Wave — Embedding Google Wave: Sample WAVES embedded Practical notes and code examples by Hemanth HM in JS.",
      "publishDate": "2010-05-01T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/embedding-google-wave/",
      "markdownUrl": "https://h3manth.com/scribe/blog/embedding-google-wave.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/embedding-google-wave.md",
      "wordCount": 4,
      "readingTimeMinutes": 1,
      "tokensEstimate": 113
    },
    {
      "slug": "how-google-wave-embedding-works",
      "title": "How Google Wave Embedding Works ?",
      "excerpt": "The flow of embedding a wave to any webpage The URI will be like : googlewavedomain#Postion!w[Code] The embed code will be.",
      "publishDate": "2010-05-01T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/how-google-wave-embedding-works/",
      "markdownUrl": "https://h3manth.com/scribe/blog/how-google-wave-embedding-works.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/how-google-wave-embedding-works.md",
      "wordCount": 82,
      "readingTimeMinutes": 1,
      "tokensEstimate": 216
    },
    {
      "slug": "my-experience-p2pu",
      "title": "My Experience With P2pu",
      "excerpt": "p2pu Learning for everyone, by everyone, about almost anything. ’The Peer 2 Peer University (P2PU) is an online community.",
      "publishDate": "2010-04-28T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/my-experience-p2pu/",
      "markdownUrl": "https://h3manth.com/scribe/blog/my-experience-p2pu.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/my-experience-p2pu.md",
      "wordCount": 367,
      "readingTimeMinutes": 2,
      "tokensEstimate": 737
    },
    {
      "slug": "rfc-finder-desktop-app",
      "title": "RFC Finder a Desktop App",
      "excerpt": "The idea was to make a desktop application for GNU/Linux where you could make searching Request for Comments (RFC), easier.",
      "publishDate": "2010-04-28T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "ubuntu",
        "linux"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/rfc-finder-desktop-app/",
      "markdownUrl": "https://h3manth.com/scribe/blog/rfc-finder-desktop-app.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/rfc-finder-desktop-app.md",
      "wordCount": 136,
      "readingTimeMinutes": 1,
      "tokensEstimate": 310
    },
    {
      "slug": "ubuntu-family-happy-family",
      "title": "Ubuntu Family a Happy Family",
      "excerpt": "Ubuntu family, I made a collage work out of all the pics of ubuntu code names, inspired by nizarus. Version | Code name |.",
      "publishDate": "2010-04-24T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "ubuntu",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/ubuntu-family-happy-family/",
      "markdownUrl": "https://h3manth.com/scribe/blog/ubuntu-family-happy-family.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/ubuntu-family-happy-family.md",
      "wordCount": 127,
      "readingTimeMinutes": 1,
      "tokensEstimate": 300
    },
    {
      "slug": "fixed-enabling-desktop-effects-ati-ubuntu-lucid",
      "title": "Fixed Enabling Desktop Effects for ATI in Ubuntu Lucid",
      "excerpt": "0.sudo apt-get purge fglrx-modaliases fglrx-amdcccle fglrx-kernel-source xorg-driver-fglrx xorg-driver-fglrx-dev 1.reboot.",
      "publishDate": "2010-04-22T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "ubuntu",
        "linux"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/fixed-enabling-desktop-effects-ati-ubuntu-lucid/",
      "markdownUrl": "https://h3manth.com/scribe/blog/fixed-enabling-desktop-effects-ati-ubuntu-lucid.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/fixed-enabling-desktop-effects-ati-ubuntu-lucid.md",
      "wordCount": 124,
      "readingTimeMinutes": 1,
      "tokensEstimate": 312
    },
    {
      "slug": "quickshot",
      "title": "QuickShot",
      "excerpt": "Take screen shots in your language using an intuitive and semi-automated step-by-step process Install it: $ sudo in code.",
      "publishDate": "2010-04-21T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "ubuntu",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/quickshot/",
      "markdownUrl": "https://h3manth.com/scribe/blog/quickshot.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/quickshot.md",
      "wordCount": 81,
      "readingTimeMinutes": 1,
      "tokensEstimate": 248
    },
    {
      "slug": "ants-journey-planet-called-ibm",
      "title": "An Ants Journey in a Planet Called IBM",
      "excerpt": "Most of us would have attended many conferences and seminars, with an agenda a topic too and yes indeed lunch and back home.",
      "publishDate": "2010-04-14T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "linux",
        "opensource"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/ants-journey-planet-called-ibm/",
      "markdownUrl": "https://h3manth.com/scribe/blog/ants-journey-planet-called-ibm.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/ants-journey-planet-called-ibm.md",
      "wordCount": 951,
      "readingTimeMinutes": 5,
      "tokensEstimate": 1352
    },
    {
      "slug": "gcc-450-released",
      "title": "GCC 4.5.0 Released!",
      "excerpt": "Status report form From: Richard Guenther The GCC 4.5.0 release has been created and the branch is now open for regression.",
      "publishDate": "2010-04-14T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "web",
        "linux"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/gcc-450-released/",
      "markdownUrl": "https://h3manth.com/scribe/blog/gcc-450-released.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/gcc-450-released.md",
      "wordCount": 82,
      "readingTimeMinutes": 1,
      "tokensEstimate": 214
    },
    {
      "slug": "go-ubuntu",
      "title": "Go on Ubuntu",
      "excerpt": "Go is a compiled, garbage-collected, concurrent programming language developed by Google Inc. Below is a simple script to.",
      "publishDate": "2010-04-06T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "python",
        "ubuntu",
        "bash",
        "linux"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/go-ubuntu/",
      "markdownUrl": "https://h3manth.com/scribe/blog/go-ubuntu.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/go-ubuntu.md",
      "wordCount": 172,
      "readingTimeMinutes": 1,
      "tokensEstimate": 363
    },
    {
      "slug": "generate-unique-random-alphanumeric-strings-ruby",
      "title": "Generate Unique Random Alphanumeric Strings Ruby",
      "excerpt": "There are many ways to achieve the same, after meddling with different ways and from the help of few ruby clans, I could.",
      "publishDate": "2010-03-31T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "ruby",
        "linux"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/generate-unique-random-alphanumeric-strings-ruby/",
      "markdownUrl": "https://h3manth.com/scribe/blog/generate-unique-random-alphanumeric-strings-ruby.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/generate-unique-random-alphanumeric-strings-ruby.md",
      "wordCount": 261,
      "readingTimeMinutes": 2,
      "tokensEstimate": 516
    },
    {
      "slug": "googles-web-application-security-scanner",
      "title": "Google's Web Application Security Scanner",
      "excerpt": "skipfish - web application security scanner ’Skipfish is an active web application security reconnaissance tool. It prepares.",
      "publishDate": "2010-03-20T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "bash",
        "web",
        "linux"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/googles-web-application-security-scanner/",
      "markdownUrl": "https://h3manth.com/scribe/blog/googles-web-application-security-scanner.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/googles-web-application-security-scanner.md",
      "wordCount": 77,
      "readingTimeMinutes": 1,
      "tokensEstimate": 242
    },
    {
      "slug": "script-install-oracle",
      "title": "Script to Install Oracle",
      "excerpt": "Simple hack to install oracle on Ubuntu sudo sh -c ’echo ’deb unstable main non-free’ /etc/apt/sources.list’ wget in JS fast.",
      "publishDate": "2010-03-12T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "ubuntu",
        "bash",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/script-install-oracle/",
      "markdownUrl": "https://h3manth.com/scribe/blog/script-install-oracle.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/script-install-oracle.md",
      "wordCount": 67,
      "readingTimeMinutes": 1,
      "tokensEstimate": 233
    },
    {
      "slug": "cli-twitpic",
      "title": "CLI twitpic",
      "excerpt": "Bash CLI script using curl and multipart/form-data to upload images directly to TwitPic and post status updates to Twitter.",
      "publishDate": "2010-03-05T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "bash",
        "linux",
        "cli"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/cli-twitpic/",
      "markdownUrl": "https://h3manth.com/scribe/blog/cli-twitpic.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/cli-twitpic.md",
      "wordCount": 189,
      "readingTimeMinutes": 1,
      "tokensEstimate": 443
    },
    {
      "slug": "insert-mysql-db-text-files",
      "title": "Insert into mysql DB from text files",
      "excerpt": "Bash script using file descriptors, sed, awk, and MySQL CLI to parse words and meanings from text files and batch-insert.",
      "publishDate": "2010-03-05T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "bash",
        "mysql",
        "linux"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/insert-mysql-db-text-files/",
      "markdownUrl": "https://h3manth.com/scribe/blog/insert-mysql-db-text-files.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/insert-mysql-db-text-files.md",
      "wordCount": 116,
      "readingTimeMinutes": 1,
      "tokensEstimate": 290
    },
    {
      "slug": "install-ssl-certificate-tomcat-bash-script",
      "title": "Install SSL Certificate Tomcat bash script",
      "excerpt": "Automated Bash script to import and install SSL certificates into the Java keystore for Apache Tomcat servers on Linux.",
      "publishDate": "2010-03-05T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "bash"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/install-ssl-certificate-tomcat-bash-script/",
      "markdownUrl": "https://h3manth.com/scribe/blog/install-ssl-certificate-tomcat-bash-script.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/install-ssl-certificate-tomcat-bash-script.md",
      "wordCount": 84,
      "readingTimeMinutes": 1,
      "tokensEstimate": 286
    },
    {
      "slug": "customizing-bespin",
      "title": "Customizing Bespin",
      "excerpt": "with syntax and code highlighting Read the intro to bespin before you continue Prereq: Python 2.5 with simplejson or Python.",
      "publishDate": "2010-02-21T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "python",
        "javascript",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/customizing-bespin/",
      "markdownUrl": "https://h3manth.com/scribe/blog/customizing-bespin.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/customizing-bespin.md",
      "wordCount": 185,
      "readingTimeMinutes": 1,
      "tokensEstimate": 550
    },
    {
      "slug": "bespin-next-generation-web-code-editor",
      "title": "Bespin the Next Generation Web Code Editor",
      "excerpt": "’Bespin is a Mozilla Labs experiment on how to build an extensible Web code editor using HTML 5 technology.’ I have tired.",
      "publishDate": "2010-02-15T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/bespin-next-generation-web-code-editor/",
      "markdownUrl": "https://h3manth.com/scribe/blog/bespin-next-generation-web-code-editor.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/bespin-next-generation-web-code-editor.md",
      "wordCount": 181,
      "readingTimeMinutes": 1,
      "tokensEstimate": 437
    },
    {
      "slug": "ns2-ubuntu-910",
      "title": "NS2 on Ubuntu 9.10",
      "excerpt": "To install The Network Simulator - ns-2 we need to bit of circus. Install dependencies : $ sudo apt-get install libpcap-dev.",
      "publishDate": "2010-02-13T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "ubuntu",
        "bash",
        "web",
        "linux"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/ns2-ubuntu-910/",
      "markdownUrl": "https://h3manth.com/scribe/blog/ns2-ubuntu-910.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/ns2-ubuntu-910.md",
      "wordCount": 118,
      "readingTimeMinutes": 1,
      "tokensEstimate": 281
    },
    {
      "slug": "generate-indexhtml-given-directory",
      "title": "Generate index.html for a given directory",
      "excerpt": "#!/bin/bash #Author : Hemanth.HM #Email : hemanth.hm@gmail.com #Purpose : To genrate index.html for a give directory. #Usage.",
      "publishDate": "2010-02-12T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "bash"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/generate-indexhtml-given-directory/",
      "markdownUrl": "https://h3manth.com/scribe/blog/generate-indexhtml-given-directory.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/generate-indexhtml-given-directory.md",
      "wordCount": 127,
      "readingTimeMinutes": 1,
      "tokensEstimate": 313
    },
    {
      "slug": "rss-feed-wallpaper",
      "title": "RSS Feed as Wallpaper",
      "excerpt": "Pre-Req convert utility :sudo apt-get install imagemagick curl utility :sudo apt-get install curl Any wallpaper :it’s called.",
      "publishDate": "2010-02-10T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "ubuntu",
        "bash"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/rss-feed-wallpaper/",
      "markdownUrl": "https://h3manth.com/scribe/blog/rss-feed-wallpaper.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/rss-feed-wallpaper.md",
      "wordCount": 175,
      "readingTimeMinutes": 1,
      "tokensEstimate": 400
    },
    {
      "slug": "log-file-viewer-php",
      "title": "Log file viewer in PHP",
      "excerpt": "= 0) { $position = $position - $chunklen; if ($position = $numtoget + 1) { pregmatch(’!(.?n){’.($numtoget-1).’}$!’, $data.",
      "publishDate": "2010-02-09T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "linux",
        "opensource"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/log-file-viewer-php/",
      "markdownUrl": "https://h3manth.com/scribe/blog/log-file-viewer-php.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/log-file-viewer-php.md",
      "wordCount": 77,
      "readingTimeMinutes": 1,
      "tokensEstimate": 255
    },
    {
      "slug": "ground-control-karmic",
      "title": "Ground Control on Karmic",
      "excerpt": "Ground control collaboration of launchpad and bazaar branches for easier development for the everyday user! How to install.",
      "publishDate": "2010-01-30T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "python",
        "ubuntu",
        "linux"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/ground-control-karmic/",
      "markdownUrl": "https://h3manth.com/scribe/blog/ground-control-karmic.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/ground-control-karmic.md",
      "wordCount": 159,
      "readingTimeMinutes": 1,
      "tokensEstimate": 335
    },
    {
      "slug": "django-ubuntu",
      "title": "Django on Ubuntu",
      "excerpt": "Django | The Web framework for perfectionists with deadlines Settings it up: sudo apt-get install django Check out the in JS.",
      "publishDate": "2010-01-26T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "python",
        "ubuntu",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/django-ubuntu/",
      "markdownUrl": "https://h3manth.com/scribe/blog/django-ubuntu.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/django-ubuntu.md",
      "wordCount": 255,
      "readingTimeMinutes": 2,
      "tokensEstimate": 593
    },
    {
      "slug": "my-google-wave-ideas",
      "title": "My Google Wave Ideas",
      "excerpt": "My 55 ideas for Google Wave :{Some are on it’s way} : Go and vote here :You liked any? 1.’Alloww grouping in contacts list.",
      "publishDate": "2010-01-22T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/my-google-wave-ideas/",
      "markdownUrl": "https://h3manth.com/scribe/blog/my-google-wave-ideas.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/my-google-wave-ideas.md",
      "wordCount": 1057,
      "readingTimeMinutes": 6,
      "tokensEstimate": 1612
    },
    {
      "slug": "firefox-36-full-html-5-api-support",
      "title": "Firefox 3.6 With Full HTML 5 API Support",
      "excerpt": "As the latest firfox came up was were happy to read the below in there site : ’Currently, an entirely new spec is being.",
      "publishDate": "2010-01-21T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "javascript",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/firefox-36-full-html-5-api-support/",
      "markdownUrl": "https://h3manth.com/scribe/blog/firefox-36-full-html-5-api-support.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/firefox-36-full-html-5-api-support.md",
      "wordCount": 220,
      "readingTimeMinutes": 2,
      "tokensEstimate": 462
    },
    {
      "slug": "mysql-db-synchronization",
      "title": "MySQL DB Synchronization.",
      "excerpt": "DB replication/reflection is on the most import process while achieving a distributed system, which helps in the DB in JS.",
      "publishDate": "2010-01-19T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "bash",
        "database"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/mysql-db-synchronization/",
      "markdownUrl": "https://h3manth.com/scribe/blog/mysql-db-synchronization.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/mysql-db-synchronization.md",
      "wordCount": 428,
      "readingTimeMinutes": 3,
      "tokensEstimate": 816
    },
    {
      "slug": "synchronize-remote-hosts",
      "title": "Synchronize remote hosts",
      "excerpt": "A simple script to sync remote hosts, steps to achieve it : 1.Avoid SCP prompting for password [ local host ] = ssh-keygen.",
      "publishDate": "2010-01-18T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "linux"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/synchronize-remote-hosts/",
      "markdownUrl": "https://h3manth.com/scribe/blog/synchronize-remote-hosts.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/synchronize-remote-hosts.md",
      "wordCount": 145,
      "readingTimeMinutes": 1,
      "tokensEstimate": 365
    },
    {
      "slug": "send-mail-gmail-programatically-python",
      "title": "Send mail to Gmail programatically with Python",
      "excerpt": "#!/usr/bin/python import smtplib from email.MIMEMultipart import MIMEMultipart from email.MIMEBase import MIMEBase from.",
      "publishDate": "2010-01-16T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "python"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/send-mail-gmail-programatically-python/",
      "markdownUrl": "https://h3manth.com/scribe/blog/send-mail-gmail-programatically-python.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/send-mail-gmail-programatically-python.md",
      "wordCount": 88,
      "readingTimeMinutes": 1,
      "tokensEstimate": 360
    },
    {
      "slug": "reseting-htpasswd-php",
      "title": "Reseting htpasswd with PHP",
      "excerpt": "0) { $htpasswd = file($file); $auth = array(); foreach($htpasswd as $h) { $array = explode(’:’,$h); $user = $array[0]; $pass.",
      "publishDate": "2010-01-15T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "linux",
        "opensource"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/reseting-htpasswd-php/",
      "markdownUrl": "https://h3manth.com/scribe/blog/reseting-htpasswd-php.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/reseting-htpasswd-php.md",
      "wordCount": 189,
      "readingTimeMinutes": 1,
      "tokensEstimate": 462
    },
    {
      "slug": "synchronizing-svn-https-url",
      "title": "Synchronizing SVN With an HTTPS URL",
      "excerpt": "Creating a read-only mirror of a repository from a HTTPS which is in sync helps to maintain an local repo which is in sync.",
      "publishDate": "2010-01-05T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "git"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/synchronizing-svn-https-url/",
      "markdownUrl": "https://h3manth.com/scribe/blog/synchronizing-svn-https-url.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/synchronizing-svn-https-url.md",
      "wordCount": 208,
      "readingTimeMinutes": 2,
      "tokensEstimate": 457
    },
    {
      "slug": "amd-ati-catalyst-display-driver-gnulinux",
      "title": "Amd Ati Catalyst Display Driver Gnulinux",
      "excerpt": "Dependencies : XOrg 6.8, 6.9, 7.0, 7.1, 7.2, 7.3 or 7.4 Linux kernel 2.6 or above glibc version 2.2 or 2.3 POSIX Shared.",
      "publishDate": "2010-01-01T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "linux"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/amd-ati-catalyst-display-driver-gnulinux/",
      "markdownUrl": "https://h3manth.com/scribe/blog/amd-ati-catalyst-display-driver-gnulinux.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/amd-ati-catalyst-display-driver-gnulinux.md",
      "wordCount": 91,
      "readingTimeMinutes": 1,
      "tokensEstimate": 239
    },
    {
      "slug": "indian-transliteration-bookmarklet-kannada",
      "title": "Indian Transliteration Bookmarklet Kannada",
      "excerpt": "Google Transliteration offers an option for converting English characters to the characters used in Kannada and many other.",
      "publishDate": "2010-01-01T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "linux"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/indian-transliteration-bookmarklet-kannada/",
      "markdownUrl": "https://h3manth.com/scribe/blog/indian-transliteration-bookmarklet-kannada.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/indian-transliteration-bookmarklet-kannada.md",
      "wordCount": 107,
      "readingTimeMinutes": 1,
      "tokensEstimate": 277
    },
    {
      "slug": "programmatically-delete-sms-android-python",
      "title": "Programmatically Delete Sms Android Python",
      "excerpt": "Deleting SMS text has been on of issues with default SMS clients of Andriod OS. Issue 5669 talks a lot about it. The most.",
      "publishDate": "2010-01-01T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "linux",
        "bash"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/programmatically-delete-sms-android-python/",
      "markdownUrl": "https://h3manth.com/scribe/blog/programmatically-delete-sms-android-python.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/programmatically-delete-sms-android-python.md",
      "wordCount": 218,
      "readingTimeMinutes": 2,
      "tokensEstimate": 497
    },
    {
      "slug": "generic-file-extracter",
      "title": "Generic File Extracter",
      "excerpt": "Simple but effective and handy utility for people dealing with hell lot of zips. type -P $1 and /dev/null || echo $1 not.",
      "publishDate": "2009-12-31T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "linux",
        "opensource"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/generic-file-extracter/",
      "markdownUrl": "https://h3manth.com/scribe/blog/generic-file-extracter.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/generic-file-extracter.md",
      "wordCount": 63,
      "readingTimeMinutes": 1,
      "tokensEstimate": 176
    },
    {
      "slug": "auto-completion-bash-maven",
      "title": "Auto Completion in Bash for Maven",
      "excerpt": "Step 1 : Check if bashcompletion in enabled in your .bashrc. Step 2 : Add the file attached to /etc/bashcompletion.d/m2.",
      "publishDate": "2009-12-24T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "bash"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/auto-completion-bash-maven/",
      "markdownUrl": "https://h3manth.com/scribe/blog/auto-completion-bash-maven.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/auto-completion-bash-maven.md",
      "wordCount": 55,
      "readingTimeMinutes": 1,
      "tokensEstimate": 183
    },
    {
      "slug": "bash-made-better-shopt",
      "title": "Bash Made Better With Shopt",
      "excerpt": "1.Enable automatic typo correction for directory names shopt -s cdspell Testing hemanth@ubuntu:/var/log$ cd /tp /tmp in JS.",
      "publishDate": "2009-12-24T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "ubuntu",
        "bash"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/bash-made-better-shopt/",
      "markdownUrl": "https://h3manth.com/scribe/blog/bash-made-better-shopt.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/bash-made-better-shopt.md",
      "wordCount": 74,
      "readingTimeMinutes": 1,
      "tokensEstimate": 238
    },
    {
      "slug": "plotting-performance-graph-gnulinux-box",
      "title": "Plotting Performance Graph of a GNU/Linux Box",
      "excerpt": "Easy and fun Things needed : dstat GNUPlot This post, is not elaborating on dstat or GNUplot but rather focusing directly.",
      "publishDate": "2009-12-11T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "bash",
        "web",
        "linux"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/plotting-performance-graph-gnulinux-box/",
      "markdownUrl": "https://h3manth.com/scribe/blog/plotting-performance-graph-gnulinux-box.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/plotting-performance-graph-gnulinux-box.md",
      "wordCount": 503,
      "readingTimeMinutes": 3,
      "tokensEstimate": 1046
    },
    {
      "slug": "creating-self-extracting-sources-files",
      "title": "Creating Self-Extracting Sources Files",
      "excerpt": "The idea is pretty simple : Embed all your tgz’s below a place holder and count the lines to get each tgz and pipe tail and.",
      "publishDate": "2009-12-10T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "bash"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/creating-self-extracting-sources-files/",
      "markdownUrl": "https://h3manth.com/scribe/blog/creating-self-extracting-sources-files.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/creating-self-extracting-sources-files.md",
      "wordCount": 223,
      "readingTimeMinutes": 2,
      "tokensEstimate": 406
    },
    {
      "slug": "setting-secure-subversion-server-apache-ubuntu",
      "title": "Setting Up a Secure Subversion Server With Apache in Ubuntu",
      "excerpt": "If you have not read theApache HTTPS, read it before you go through this post. ’Subversion (SVN) is a version control system.",
      "publishDate": "2009-11-21T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "ubuntu",
        "git",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/setting-secure-subversion-server-apache-ubuntu/",
      "markdownUrl": "https://h3manth.com/scribe/blog/setting-secure-subversion-server-apache-ubuntu.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/setting-secure-subversion-server-apache-ubuntu.md",
      "wordCount": 225,
      "readingTimeMinutes": 2,
      "tokensEstimate": 520
    },
    {
      "slug": "how-secure-apache-https",
      "title": "How to Secure Apache With HTTPS",
      "excerpt": "Hypertext Transfer Protocol Secure (HTTPS) = HTTP + SSL/TLS Check list: apache sever openssl Steps: For Ubuntu 10.04/Apache.",
      "publishDate": "2009-11-14T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "ubuntu",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/how-secure-apache-https/",
      "markdownUrl": "https://h3manth.com/scribe/blog/how-secure-apache-https.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/how-secure-apache-https.md",
      "wordCount": 291,
      "readingTimeMinutes": 2,
      "tokensEstimate": 646
    },
    {
      "slug": "skype-21-beta-ubuntu-910",
      "title": "Skype 2.1 beta on Ubuntu 9.10",
      "excerpt": "Skype 2.1 beta an open source UI layer and works great one pulse audio in karmic. Enable medibuntu : sudo wget... Practical.",
      "publishDate": "2009-11-08T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "ubuntu",
        "bash",
        "web",
        "linux"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/skype-21-beta-ubuntu-910/",
      "markdownUrl": "https://h3manth.com/scribe/blog/skype-21-beta-ubuntu-910.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/skype-21-beta-ubuntu-910.md",
      "wordCount": 52,
      "readingTimeMinutes": 1,
      "tokensEstimate": 199
    },
    {
      "slug": "install-firefox-36-namoroka-karmic",
      "title": "Install FireFox 3.6 Namoroka for Karmic",
      "excerpt": "Namoroka After Firefox3.5 (’Shiretoko’) is released, the next version of Firefox will be developed under the project name.",
      "publishDate": "2009-11-07T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "ubuntu",
        "web",
        "linux"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/install-firefox-36-namoroka-karmic/",
      "markdownUrl": "https://h3manth.com/scribe/blog/install-firefox-36-namoroka-karmic.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/install-firefox-36-namoroka-karmic.md",
      "wordCount": 178,
      "readingTimeMinutes": 1,
      "tokensEstimate": 374
    },
    {
      "slug": "sound-card-not-detected-ubuntu-910-fix-it",
      "title": "Sound Card Not Detected in Ubuntu 9.10? Fix It!",
      "excerpt": "Normally the Audio device: ATI Technologies Inc RS780 Azalia controller and RS series break after an upgrade to karmic This.",
      "publishDate": "2009-11-07T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "ubuntu",
        "linux"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/sound-card-not-detected-ubuntu-910-fix-it/",
      "markdownUrl": "https://h3manth.com/scribe/blog/sound-card-not-detected-ubuntu-910-fix-it.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/sound-card-not-detected-ubuntu-910-fix-it.md",
      "wordCount": 169,
      "readingTimeMinutes": 1,
      "tokensEstimate": 338
    },
    {
      "slug": "install-linux-hdd-without-burning-iso",
      "title": "Install Linux From HDD Without Burning From Iso",
      "excerpt": "Had a collection of GNU/Linux distros, had no time or money to buy DVD’s :P so came up with this plan : sudo mkdir /distro.",
      "publishDate": "2009-11-02T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "ubuntu",
        "linux"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/install-linux-hdd-without-burning-iso/",
      "markdownUrl": "https://h3manth.com/scribe/blog/install-linux-hdd-without-burning-iso.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/install-linux-hdd-without-burning-iso.md",
      "wordCount": 106,
      "readingTimeMinutes": 1,
      "tokensEstimate": 275
    },
    {
      "slug": "zsync-update-upgrade-ubuntu",
      "title": "Zsync | Update to Upgrade Ubuntu",
      "excerpt": "From alpha,beta or RC now you can update the .iso image to upgrade the OS, instead of downloading the entire iso image Very.",
      "publishDate": "2009-10-30T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "ubuntu",
        "bash"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/zsync-update-upgrade-ubuntu/",
      "markdownUrl": "https://h3manth.com/scribe/blog/zsync-update-upgrade-ubuntu.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/zsync-update-upgrade-ubuntu.md",
      "wordCount": 86,
      "readingTimeMinutes": 1,
      "tokensEstimate": 237
    },
    {
      "slug": "unable-login-after-upgrade-karmic-solved",
      "title": "Unable to Login After Upgrade to Karmic [Solved]",
      "excerpt": "This happens when an upgrade is done without removing the non-free graphical drivers, normally Nvidia or ATI cards. Actually.",
      "publishDate": "2009-10-27T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "ubuntu",
        "bash"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/unable-login-after-upgrade-karmic-solved/",
      "markdownUrl": "https://h3manth.com/scribe/blog/unable-login-after-upgrade-karmic-solved.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/unable-login-after-upgrade-karmic-solved.md",
      "wordCount": 206,
      "readingTimeMinutes": 2,
      "tokensEstimate": 420
    },
    {
      "slug": "csv-parsing-methods-linux",
      "title": "CSV parsing methods in Linux",
      "excerpt": "#To get emails from CSV which is exported form your mail box grep -o -i ’[^,]@[^,]’ contacts.csv #Cut the required column.",
      "publishDate": "2009-10-22T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "bash",
        "linux"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/csv-parsing-methods-linux/",
      "markdownUrl": "https://h3manth.com/scribe/blog/csv-parsing-methods-linux.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/csv-parsing-methods-linux.md",
      "wordCount": 216,
      "readingTimeMinutes": 2,
      "tokensEstimate": 434
    },
    {
      "slug": "pax-powerful-tool-read-and-write-file-archives-and-copy-directory-hierarchies",
      "title": "'Pax' a Powerful Tool to Read and Write File Archives and Copy Directory Hierarchies",
      "excerpt": "To install pax on ubuntu sudo apt-get install pax the manual is attached with this article. ’pax will read, write, and list.",
      "publishDate": "2009-10-22T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "ubuntu"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/pax-powerful-tool-read-and-write-file-archives-and-copy-directory-hierarchies/",
      "markdownUrl": "https://h3manth.com/scribe/blog/pax-powerful-tool-read-and-write-file-archives-and-copy-directory-hierarchies.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/pax-powerful-tool-read-and-write-file-archives-and-copy-directory-hierarchies.md",
      "wordCount": 237,
      "readingTimeMinutes": 2,
      "tokensEstimate": 430
    },
    {
      "slug": "sudo-add-apt-repository-karmic-kool",
      "title": "Sudo Add-apt-repository | Karmic Kool",
      "excerpt": "The Changelog of Karmic read so : software-properties (0.75) karmic; urgency=low new helper script ’add-apt-repository’.",
      "publishDate": "2009-10-04T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "ubuntu"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/sudo-add-apt-repository-karmic-kool/",
      "markdownUrl": "https://h3manth.com/scribe/blog/sudo-add-apt-repository-karmic-kool.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/sudo-add-apt-repository-karmic-kool.md",
      "wordCount": 268,
      "readingTimeMinutes": 2,
      "tokensEstimate": 543
    },
    {
      "slug": "howto-set-your-own-google-wave-sever-ubuntu",
      "title": "Howto Set Up Your Own Google Wave Sever on Ubuntu?",
      "excerpt": "PyGoWave Server | Google wave server needs the following : Python 2.6.1 Django 1.0.2 Orbited 0.7.7 RabbitMQ 1.6.0 Python.",
      "publishDate": "2009-10-01T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "python",
        "javascript",
        "ubuntu",
        "git"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/howto-set-your-own-google-wave-sever-ubuntu/",
      "markdownUrl": "https://h3manth.com/scribe/blog/howto-set-your-own-google-wave-sever-ubuntu.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/howto-set-your-own-google-wave-sever-ubuntu.md",
      "wordCount": 458,
      "readingTimeMinutes": 3,
      "tokensEstimate": 1314
    },
    {
      "slug": "install-gnome-shell-ubuntu-kamric-jaunty",
      "title": "Install-gnome-shell-ubuntu-kamric-jaunty",
      "excerpt": "1) Get curl sudo apt-get install curl 2) Build deps : sudo apt-get install libgnomeui-dev librsvg2-dev libreadline5-dev.",
      "publishDate": "2009-10-01T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "ubuntu",
        "git",
        "bash"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/install-gnome-shell-ubuntu-kamric-jaunty/",
      "markdownUrl": "https://h3manth.com/scribe/blog/install-gnome-shell-ubuntu-kamric-jaunty.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/install-gnome-shell-ubuntu-kamric-jaunty.md",
      "wordCount": 70,
      "readingTimeMinutes": 1,
      "tokensEstimate": 261
    },
    {
      "slug": "ooidentica-update-identica-status-oo",
      "title": "OOIdenti.ca | Update identi.ca Status From OO",
      "excerpt": "After OOTwitter i tired a similar one for indeti.ca, the steps are as before you download the file from the attachment in JS.",
      "publishDate": "2009-10-01T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/ooidentica-update-identica-status-oo/",
      "markdownUrl": "https://h3manth.com/scribe/blog/ooidentica-update-identica-status-oo.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/ooidentica-update-identica-status-oo.md",
      "wordCount": 21,
      "readingTimeMinutes": 1,
      "tokensEstimate": 134
    },
    {
      "slug": "oootwitter-open-office-twitter",
      "title": "OOoTwitter | Open Office Twitter",
      "excerpt": "Question : How to twitt from open office? Download and open this :OOTwitter Now goto : Tools - Macros - Organize macros.",
      "publishDate": "2009-09-30T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "bash",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/oootwitter-open-office-twitter/",
      "markdownUrl": "https://h3manth.com/scribe/blog/oootwitter-open-office-twitter.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/oootwitter-open-office-twitter.md",
      "wordCount": 192,
      "readingTimeMinutes": 1,
      "tokensEstimate": 483
    },
    {
      "slug": "how-use-real-time-earth-wallpaper-script-linux",
      "title": "How to Use the Real-time Earth Wallpaper Script for Linux",
      "excerpt": "1.Save code part to a file, say change.sh while [ 1 ]; do COUNTER=0 while [ $COUNTER -lt 60 ]; do wget... Practical notes.",
      "publishDate": "2009-09-20T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "bash",
        "web",
        "linux"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/how-use-real-time-earth-wallpaper-script-linux/",
      "markdownUrl": "https://h3manth.com/scribe/blog/how-use-real-time-earth-wallpaper-script-linux.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/how-use-real-time-earth-wallpaper-script-linux.md",
      "wordCount": 142,
      "readingTimeMinutes": 1,
      "tokensEstimate": 325
    },
    {
      "slug": "amdati-black-edtion-64bit-ubuntu-fixing-issues",
      "title": "AMD/ATI | Black Edtion 64bit on Ubuntu | Fixing Issues",
      "excerpt": "P.S : The below discussion is considering AMD/ATI into frame. AMD Phenom has many variates the latest belonging to in JS.",
      "publishDate": "2009-09-11T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "ubuntu",
        "linux"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/amdati-black-edtion-64bit-ubuntu-fixing-issues/",
      "markdownUrl": "https://h3manth.com/scribe/blog/amdati-black-edtion-64bit-ubuntu-fixing-issues.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/amdati-black-edtion-64bit-ubuntu-fixing-issues.md",
      "wordCount": 309,
      "readingTimeMinutes": 2,
      "tokensEstimate": 601
    },
    {
      "slug": "resolving-application-dependencies-apt-cache",
      "title": "Resolving Application Dependencies | Apt-cache",
      "excerpt": "Normally while updating an application in GNU/Linux, we download the source and compile and install it. Sometimes we find.",
      "publishDate": "2009-08-29T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "web",
        "linux"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/resolving-application-dependencies-apt-cache/",
      "markdownUrl": "https://h3manth.com/scribe/blog/resolving-application-dependencies-apt-cache.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/resolving-application-dependencies-apt-cache.md",
      "wordCount": 122,
      "readingTimeMinutes": 1,
      "tokensEstimate": 287
    },
    {
      "slug": "pidgin-261-adds-xmpp-voice-and-video-support-not-windows",
      "title": "Pidgin 2.6.1 Adds XMPP Voice and Video Support (but Not on Windows)",
      "excerpt": "Long awaited in the list, voice support for pidgin for GNU/Linux is out, most of them were on Skype all these days for Voice.",
      "publishDate": "2009-08-22T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "ubuntu",
        "web",
        "linux"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/pidgin-261-adds-xmpp-voice-and-video-support-not-windows/",
      "markdownUrl": "https://h3manth.com/scribe/blog/pidgin-261-adds-xmpp-voice-and-video-support-not-windows.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/pidgin-261-adds-xmpp-voice-and-video-support-not-windows.md",
      "wordCount": 184,
      "readingTimeMinutes": 1,
      "tokensEstimate": 495
    },
    {
      "slug": "install-eclipse-galileo-35-ubuntu-karmic-910",
      "title": "Install Eclipse Galileo (3.5) on Ubuntu Karmic (9.10)",
      "excerpt": "Eclipse is not mere an IDE, it’s smart! Open source community and non-profit organization. ’Borland, IBM, MERANT, QNX in JS.",
      "publishDate": "2009-08-20T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "ubuntu",
        "bash",
        "linux"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/install-eclipse-galileo-35-ubuntu-karmic-910/",
      "markdownUrl": "https://h3manth.com/scribe/blog/install-eclipse-galileo-35-ubuntu-karmic-910.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/install-eclipse-galileo-35-ubuntu-karmic-910.md",
      "wordCount": 221,
      "readingTimeMinutes": 2,
      "tokensEstimate": 416
    },
    {
      "slug": "installing-kde-43-rc-3",
      "title": "Installing KDE 4.3 RC 3",
      "excerpt": "Karmic users, can upgrade to the latest packages. Users of 9.04 : echo ’deb jaunty main’ ... Practical notes and code in JS.",
      "publishDate": "2009-08-05T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "ubuntu",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/installing-kde-43-rc-3/",
      "markdownUrl": "https://h3manth.com/scribe/blog/installing-kde-43-rc-3.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/installing-kde-43-rc-3.md",
      "wordCount": 74,
      "readingTimeMinutes": 1,
      "tokensEstimate": 206
    },
    {
      "slug": "experiments-dictionary-server-protocol-linux-rfc-2229",
      "title": "Experiments With Dictionary Server Protocol Linux | RFC 2229",
      "excerpt": "There RFC 2229 defines the The Dictionary Server Protocol (DICT) is a TCP transaction based query/response protocol that.",
      "publishDate": "2009-08-03T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "ubuntu",
        "bash",
        "linux"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/experiments-dictionary-server-protocol-linux-rfc-2229/",
      "markdownUrl": "https://h3manth.com/scribe/blog/experiments-dictionary-server-protocol-linux-rfc-2229.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/experiments-dictionary-server-protocol-linux-rfc-2229.md",
      "wordCount": 329,
      "readingTimeMinutes": 2,
      "tokensEstimate": 543
    },
    {
      "slug": "install-emacs23-ubuntu",
      "title": "Install EMACS23 on Ubuntu",
      "excerpt": "The emacs-snapshot packages originate from emacs and are adapted to work in Ubuntu. Add the attached file info to your in JS.",
      "publishDate": "2009-08-01T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "ubuntu",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/install-emacs23-ubuntu/",
      "markdownUrl": "https://h3manth.com/scribe/blog/install-emacs23-ubuntu.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/install-emacs23-ubuntu.md",
      "wordCount": 69,
      "readingTimeMinutes": 1,
      "tokensEstimate": 208
    },
    {
      "slug": "one-line-search-wiki-linux-gui",
      "title": "One Line to Search Wiki in Linux With GUI",
      "excerpt": "I just tried make a one liner to get info about keywords from Wikipedia. This is just an idea can be further advanced , the.",
      "publishDate": "2009-08-01T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "ubuntu",
        "bash",
        "web",
        "linux"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/one-line-search-wiki-linux-gui/",
      "markdownUrl": "https://h3manth.com/scribe/blog/one-line-search-wiki-linux-gui.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/one-line-search-wiki-linux-gui.md",
      "wordCount": 159,
      "readingTimeMinutes": 1,
      "tokensEstimate": 323
    },
    {
      "slug": "hyperlink-url-extracting-all-links-site",
      "title": "Hyperlink to URL && Extracting all the links from a site",
      "excerpt": "This is a sample experiment i tried to convert , rather extract an URI from a hyperlink. Consider an example : href = ’.",
      "publishDate": "2009-07-26T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "bash",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/hyperlink-url-extracting-all-links-site/",
      "markdownUrl": "https://h3manth.com/scribe/blog/hyperlink-url-extracting-all-links-site.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/hyperlink-url-extracting-all-links-site.md",
      "wordCount": 261,
      "readingTimeMinutes": 2,
      "tokensEstimate": 419
    },
    {
      "slug": "nmap",
      "title": "One line to install NMAP 5.0 from source",
      "excerpt": "The below command , is what i got after playing with wget and tar for a while, just copy and paste in the terminal to in JS.",
      "publishDate": "2009-07-18T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "bash",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/nmap/",
      "markdownUrl": "https://h3manth.com/scribe/blog/nmap.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/nmap.md",
      "wordCount": 59,
      "readingTimeMinutes": 1,
      "tokensEstimate": 171
    },
    {
      "slug": "know-your-weather-terminal",
      "title": "Know Your Weather From Terminal",
      "excerpt": "Here is a small trick i tired to find the weather from the terminal. The simple code below , gives you the update of current.",
      "publishDate": "2009-07-15T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "bash",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/know-your-weather-terminal/",
      "markdownUrl": "https://h3manth.com/scribe/blog/know-your-weather-terminal.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/know-your-weather-terminal.md",
      "wordCount": 124,
      "readingTimeMinutes": 1,
      "tokensEstimate": 277
    },
    {
      "slug": "methods-submit-form-post-using-curl-perl-python-ruby-lynx",
      "title": "Methods to Submit a Form With POST Using {Curl | Perl | Python | Ruby | Lynx}",
      "excerpt": "Assume that you have a form , in the source look for something similar to : input name=’rid’ type=’TEXT’ input name=’submit’.",
      "publishDate": "2009-07-15T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "ruby",
        "python",
        "bash",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/methods-submit-form-post-using-curl-perl-python-ruby-lynx/",
      "markdownUrl": "https://h3manth.com/scribe/blog/methods-submit-form-post-using-curl-perl-python-ruby-lynx.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/methods-submit-form-post-using-curl-perl-python-ruby-lynx.md",
      "wordCount": 184,
      "readingTimeMinutes": 1,
      "tokensEstimate": 424
    },
    {
      "slug": "new-vlc-10-howto-get-it",
      "title": "New VLC 1.0 howto get it",
      "excerpt": "How to install VLC 1.0 on Ubuntu using the Launchpad PPA. Practical notes and code examples on New VLC 1.0 howto get it by.",
      "publishDate": "2009-07-10T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "cli",
      "tags": [
        "linux"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/new-vlc-10-howto-get-it/",
      "markdownUrl": "https://h3manth.com/scribe/blog/new-vlc-10-howto-get-it.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/new-vlc-10-howto-get-it.md",
      "wordCount": 79,
      "readingTimeMinutes": 1,
      "tokensEstimate": 263
    },
    {
      "slug": "xclip-command-line-interface-to-x-selections-clipboard",
      "title": "xclip - command line interface to X selections (clipboard)",
      "excerpt": "xclip reads from standard in and makes the data available as an X selection for pasting into X applications. Practical notes.",
      "publishDate": "2009-07-10T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "cli",
      "tags": [
        "linux",
        "bash"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/xclip-command-line-interface-to-x-selections-clipboard/",
      "markdownUrl": "https://h3manth.com/scribe/blog/xclip-command-line-interface-to-x-selections-clipboard.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/xclip-command-line-interface-to-x-selections-clipboard.md",
      "wordCount": 152,
      "readingTimeMinutes": 1,
      "tokensEstimate": 302
    },
    {
      "slug": "cricket-score-terminal",
      "title": "Cricket Score From Terminal",
      "excerpt": "For all cricket fans and PC freaks out there , this is delight script both cli and gui scripts are there in the source. For.",
      "publishDate": "2009-06-27T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "bash",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/cricket-score-terminal/",
      "markdownUrl": "https://h3manth.com/scribe/blog/cricket-score-terminal.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/cricket-score-terminal.md",
      "wordCount": 105,
      "readingTimeMinutes": 1,
      "tokensEstimate": 274
    },
    {
      "slug": "integrate-google-calendar-evolution-and-gnome-clock",
      "title": "Integrate Google Calendar With Evolution and Gnome Clock",
      "excerpt": "Step-by-step guide to syncing your private Google Calendar iCal feed with the GNOME desktop clock and Evolution on Linux.",
      "publishDate": "2009-05-20T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "bash",
        "web"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/integrate-google-calendar-evolution-and-gnome-clock/",
      "markdownUrl": "https://h3manth.com/scribe/blog/integrate-google-calendar-evolution-and-gnome-clock.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/integrate-google-calendar-evolution-and-gnome-clock.md",
      "wordCount": 120,
      "readingTimeMinutes": 1,
      "tokensEstimate": 307
    },
    {
      "slug": "sox-sound-exchange",
      "title": "SoX - Sound eXchange",
      "excerpt": "SoX - Sound eXchange, the Swiss Army knife of audio manipulation. Practical notes and code examples on SoX - Sound eXchange.",
      "publishDate": "2009-01-08T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "cli",
      "tags": [
        "linux",
        "audio"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/sox-sound-exchange/",
      "markdownUrl": "https://h3manth.com/scribe/blog/sox-sound-exchange.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/sox-sound-exchange.md",
      "wordCount": 615,
      "readingTimeMinutes": 4,
      "tokensEstimate": 974
    },
    {
      "slug": "wget-tircks-and-tips",
      "title": "Wget - tricks and tips",
      "excerpt": "Wget and Curl make such a wonderful pair in Linux. Here are some tricks and tips. Practical notes and code examples on Wget.",
      "publishDate": "2009-01-08T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "cli",
      "tags": [
        "linux",
        "bash"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/wget-tircks-and-tips/",
      "markdownUrl": "https://h3manth.com/scribe/blog/wget-tircks-and-tips.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/wget-tircks-and-tips.md",
      "wordCount": 215,
      "readingTimeMinutes": 2,
      "tokensEstimate": 462
    },
    {
      "slug": "fun-with-mp3",
      "title": "Fun with mp3 :)",
      "excerpt": "Few useful mp3 tools : 1.mp3splt NAME : mp3splt — Utility for mp3/ogg splitting without decoding SYNOPSIS : mp3splt OPTIONS.",
      "publishDate": "2009-01-05T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "programming"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/fun-with-mp3/",
      "markdownUrl": "https://h3manth.com/scribe/blog/fun-with-mp3.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/fun-with-mp3.md",
      "wordCount": 109,
      "readingTimeMinutes": 1,
      "tokensEstimate": 261
    },
    {
      "slug": "java-docs",
      "title": "Java Docs",
      "excerpt": "This application allows to conveniently browse, over the Internet and local filesystem, multiple javadoc sets, using a in JS.",
      "publishDate": "2009-01-05T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "programming"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/java-docs/",
      "markdownUrl": "https://h3manth.com/scribe/blog/java-docs.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/java-docs.md",
      "wordCount": 56,
      "readingTimeMinutes": 1,
      "tokensEstimate": 221
    },
    {
      "slug": "play-from-command-line",
      "title": "Play from command line!",
      "excerpt": "My favorite command line audio players: mpg123, VLC, and mp3blaster. Practical notes and code examples on Play from command.",
      "publishDate": "2009-01-05T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "cli",
      "tags": [
        "linux",
        "audio"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/play-from-command-line/",
      "markdownUrl": "https://h3manth.com/scribe/blog/play-from-command-line.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/play-from-command-line.md",
      "wordCount": 111,
      "readingTimeMinutes": 1,
      "tokensEstimate": 271
    },
    {
      "slug": "configuring-google-apps",
      "title": "Configuring Google Apps",
      "excerpt": "Steps to configure Google App Engine for Python. Practical notes and code examples on Configuring Google Apps by Hemanth HM.",
      "publishDate": "2009-01-04T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "python",
      "tags": [
        "python"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/configuring-google-apps/",
      "markdownUrl": "https://h3manth.com/scribe/blog/configuring-google-apps.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/configuring-google-apps.md",
      "wordCount": 48,
      "readingTimeMinutes": 1,
      "tokensEstimate": 195
    },
    {
      "slug": "google-andriod",
      "title": "Google Android SDK Setup",
      "excerpt": "How to download and set up the Android SDK with Eclipse. Practical notes and code examples on Google Android SDK Setup by.",
      "publishDate": "2009-01-04T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "cli",
      "tags": [
        "android"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/google-andriod/",
      "markdownUrl": "https://h3manth.com/scribe/blog/google-andriod.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/google-andriod.md",
      "wordCount": 323,
      "readingTimeMinutes": 2,
      "tokensEstimate": 641
    },
    {
      "slug": "fun-with-pdf",
      "title": "Fun with Pdf",
      "excerpt": "Ever wanted to combine or merger many pdf files to a single file , no issues , you can do it easily on the shell. If PDF is.",
      "publishDate": "2008-12-19T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "cli",
      "tags": [
        "programming"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/fun-with-pdf/",
      "markdownUrl": "https://h3manth.com/scribe/blog/fun-with-pdf.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/fun-with-pdf.md",
      "wordCount": 175,
      "readingTimeMinutes": 1,
      "tokensEstimate": 365
    },
    {
      "slug": "pdf-to",
      "title": "PDF to ****",
      "excerpt": "pdf2dsc pdffonts pdfinfo pdftk pdftohtml pdftops pdf2ps pdfimages pdfopt pdftoabw pdftoppm pdftotext These are few tools.",
      "publishDate": "2008-12-19T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "programming"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/pdf-to/",
      "markdownUrl": "https://h3manth.com/scribe/blog/pdf-to.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/pdf-to.md",
      "wordCount": 29,
      "readingTimeMinutes": 1,
      "tokensEstimate": 144
    },
    {
      "slug": "gobby-a-collaborative-text-editor",
      "title": "Gobby: A Collaborative Text Editor",
      "excerpt": "Gobby Using Gobby is easy: just create a ses... Practical notes and code examples on Gobby: A Collaborative Text Editor by.",
      "publishDate": "2008-11-28T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "programming"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/gobby-a-collaborative-text-editor/",
      "markdownUrl": "https://h3manth.com/scribe/blog/gobby-a-collaborative-text-editor.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/gobby-a-collaborative-text-editor.md",
      "wordCount": 129,
      "readingTimeMinutes": 1,
      "tokensEstimate": 313
    },
    {
      "slug": "how-to-install-ubuntu-in-3-easy-steps",
      "title": "How to install Ubuntu in 3 easy steps !!",
      "excerpt": "Its like a small poem ain’t it :) 1.Make free space in Hard Disk. 2.Boot live cd . 3.Click install ,next until end ,check.",
      "publishDate": "2008-11-28T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "programming"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/how-to-install-ubuntu-in-3-easy-steps/",
      "markdownUrl": "https://h3manth.com/scribe/blog/how-to-install-ubuntu-in-3-easy-steps.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/how-to-install-ubuntu-in-3-easy-steps.md",
      "wordCount": 35,
      "readingTimeMinutes": 1,
      "tokensEstimate": 134
    },
    {
      "slug": "photoshop-photoframed",
      "title": "PhotoShop PhotoFramed",
      "excerpt": "You can do all that you were doing in PhotoShop , for free !! in GIMP :) {GIMP} GNU Image Manipulation Program. It is a.",
      "publishDate": "2008-11-28T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "programming"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/photoshop-photoframed/",
      "markdownUrl": "https://h3manth.com/scribe/blog/photoshop-photoframed.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/photoshop-photoframed.md",
      "wordCount": 90,
      "readingTimeMinutes": 1,
      "tokensEstimate": 287
    },
    {
      "slug": "download-from-youtube",
      "title": "Download from youtube",
      "excerpt": "Application that downloads YouTube videos, then encodes them by using FFmpeg. PyTube offers a thumbnail preview of the in JS.",
      "publishDate": "2008-11-27T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "programming"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/download-from-youtube/",
      "markdownUrl": "https://h3manth.com/scribe/blog/download-from-youtube.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/download-from-youtube.md",
      "wordCount": 80,
      "readingTimeMinutes": 1,
      "tokensEstimate": 277
    },
    {
      "slug": "eclipse-on-ubuntu-for-j2ee",
      "title": "Eclipse on Ubuntu for J2EE",
      "excerpt": "Install or update Eclipse to have Eclipse Web Tools Platform (WTP). Practical notes and code examples on Eclipse on Ubuntu.",
      "publishDate": "2008-11-27T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "cli",
      "tags": [
        "java",
        "linux"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/eclipse-on-ubuntu-for-j2ee/",
      "markdownUrl": "https://h3manth.com/scribe/blog/eclipse-on-ubuntu-for-j2ee.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/eclipse-on-ubuntu-for-j2ee.md",
      "wordCount": 246,
      "readingTimeMinutes": 2,
      "tokensEstimate": 515
    },
    {
      "slug": "i-wont-buy-itunes",
      "title": "I won't buy iTunes :)",
      "excerpt": "Why do we buy iTunes ??!! When we have some as good as it for free ! Floola is freely distributed in the hope that it will.",
      "publishDate": "2008-11-27T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "web",
      "tags": [
        "programming"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/i-wont-buy-itunes/",
      "markdownUrl": "https://h3manth.com/scribe/blog/i-wont-buy-itunes.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/i-wont-buy-itunes.md",
      "wordCount": 144,
      "readingTimeMinutes": 1,
      "tokensEstimate": 373
    },
    {
      "slug": "java-and-eclipse-on-ubuntu",
      "title": "Java and Eclipse on Ubuntu",
      "excerpt": "How to install Java JDK/JRE and Eclipse on Ubuntu. Practical notes and code examples on Java and Eclipse on Ubuntu by in JS.",
      "publishDate": "2008-11-27T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "cli",
      "tags": [
        "java",
        "linux"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/java-and-eclipse-on-ubuntu/",
      "markdownUrl": "https://h3manth.com/scribe/blog/java-and-eclipse-on-ubuntu.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/java-and-eclipse-on-ubuntu.md",
      "wordCount": 134,
      "readingTimeMinutes": 1,
      "tokensEstimate": 435
    },
    {
      "slug": "java-cgi-tomcat-apache-php-msql-on-ubuntu-easy-steps",
      "title": "Java CGI Tomcat Apache PHP MySQL on Ubuntu - Easy Steps",
      "excerpt": "Quick steps to set up LAMP stack and CGI on Ubuntu. Practical notes and code examples on Java CGI Tomcat Apache PHP MySQL.",
      "publishDate": "2008-11-27T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "cli",
      "tags": [
        "linux",
        "java"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/java-cgi-tomcat-apache-php-msql-on-ubuntu-easy-steps/",
      "markdownUrl": "https://h3manth.com/scribe/blog/java-cgi-tomcat-apache-php-msql-on-ubuntu-easy-steps.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/java-cgi-tomcat-apache-php-msql-on-ubuntu-easy-steps.md",
      "wordCount": 188,
      "readingTimeMinutes": 1,
      "tokensEstimate": 403
    },
    {
      "slug": "removing-usb-viruses-most-of-the-viruses-which-are-wide-speared-due-to-os-like-windows-can-me-easily-smashed-in-os-like-ubuntu",
      "title": "Removing USB viruses with Ubuntu",
      "excerpt": "Most of the viruses which are widespread due to OS like Windows can be easily smashed in OS like Ubuntu. Practical notes.",
      "publishDate": "2008-11-27T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "cli",
      "tags": [
        "linux"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/removing-usb-viruses-most-of-the-viruses-which-are-wide-speared-due-to-os-like-windows-can-me-easily-smashed-in-os-like-ubuntu/",
      "markdownUrl": "https://h3manth.com/scribe/blog/removing-usb-viruses-most-of-the-viruses-which-are-wide-speared-due-to-os-like-windows-can-me-easily-smashed-in-os-like-ubuntu.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/removing-usb-viruses-most-of-the-viruses-which-are-wide-speared-due-to-os-like-windows-can-me-easily-smashed-in-os-like-ubuntu.md",
      "wordCount": 88,
      "readingTimeMinutes": 1,
      "tokensEstimate": 216
    },
    {
      "slug": "removing-usb-viruses-most-viruses-which-are-wide-speared-due-os-windows-can-me-easily-smashe",
      "title": "Removing USB viruses--Most of the Viruses Which Are Wide Speared Due to OS Like Windows Can Me Easily Smashed in OS Like UBUNTU ;)",
      "excerpt": "Removing USB viruses--Most of the Viruses Which Are Wide Speared Due to OS Like Windows Can Me Easil. Practical notes and.",
      "publishDate": "2008-11-27T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "linux",
      "tags": [
        "ubuntu"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/removing-usb-viruses-most-viruses-which-are-wide-speared-due-os-windows-can-me-easily-smashe/",
      "markdownUrl": "https://h3manth.com/scribe/blog/removing-usb-viruses-most-viruses-which-are-wide-speared-due-os-windows-can-me-easily-smashe.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/removing-usb-viruses-most-viruses-which-are-wide-speared-due-os-windows-can-me-easily-smashe.md",
      "wordCount": 61,
      "readingTimeMinutes": 1,
      "tokensEstimate": 179
    },
    {
      "slug": "skype-problem-with-audio-playback",
      "title": "Skype Problem with Audio Playback",
      "excerpt": "Skype audio not working :( , i know it’s too bad if one of the only few good VoIP provides for Linux in {not}Working , i.",
      "publishDate": "2008-11-27T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "cli",
      "tags": [
        "programming"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/skype-problem-with-audio-playback/",
      "markdownUrl": "https://h3manth.com/scribe/blog/skype-problem-with-audio-playback.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/skype-problem-with-audio-playback.md",
      "wordCount": 100,
      "readingTimeMinutes": 1,
      "tokensEstimate": 263
    },
    {
      "slug": "who-said-no-games-in-ubuntu",
      "title": "Who said no GAMES in Ubuntu",
      "excerpt": "Playdeb, helps you to play loads and loads of games Download and install updated apturl package(. Practical notes and code.",
      "publishDate": "2008-11-27T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "programming"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/who-said-no-games-in-ubuntu/",
      "markdownUrl": "https://h3manth.com/scribe/blog/who-said-no-games-in-ubuntu.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/who-said-no-games-in-ubuntu.md",
      "wordCount": 205,
      "readingTimeMinutes": 2,
      "tokensEstimate": 397
    },
    {
      "slug": "who-am-i",
      "title": "Who am i ?",
      "excerpt": "Hemanth is that kind of a person , who admits he doesn’t know it , if he really doesn’t know it and will not stop there.",
      "publishDate": "2007-08-04T00:00:00.000Z",
      "author": "Hemanth HM",
      "category": "javascript",
      "tags": [
        "programming"
      ],
      "canonicalUrl": "https://h3manth.com/scribe/who-am-i/",
      "markdownUrl": "https://h3manth.com/scribe/blog/who-am-i.md",
      "altMarkdownUrl": "https://h3manth.com/scribe/who-am-i.md",
      "wordCount": 163,
      "readingTimeMinutes": 1,
      "tokensEstimate": 348
    }
  ]
}