Saturday, 4 July 2026

3D Printing Debut - Bambu Lab H2S @ Pavoorchatram, Tenkasi

We have started offering a small-scale 3D printing service through Sree Murugan Tile Works for local customers, students, workshops, engineers, architects, and small businesses around Pavoorchatram, Tenkasi, Tirunelveli, and nearby areas.

We currently have Bambu Lab H2S printer with AMS, which can do 340 x 320 x 340 mm.

This service may be useful for engineering students, diploma students, small fabrication workshops, machine service technicians, product developers, architects, builders, and hobby users who need one-off or small-batch printed parts.

Please visit our 3D printing service page, where we will put up more details:

3D Printing Service in Tenkasi – Sree Murugan Tile Works



Sunday, 26 April 2026

Using Claude Code to investigate Prod Machines? Use this skill...

 I do NOT recommended you to use Claude Code to execute arbitrary commands on a production application server. But it is a very addictive, time-saving thing to do - particularly to investigate the logs. If you want to ever do it, here is my suggestion for a skill that provides a harness. Please feel free to comment on your suggested improvements.

---
name: prod-vm
description: Rules and protocol for Claude Code when connecting to and operating on production VMs.
---

When the user asks Claude Code to connect to a production VM and perform actions, the following rules apply.

## Connection

Connections are typically made using `plink` with named saved sessions (e.g., `plink "ERP Kerberos Server" <command>`).

## Command Authorization

- **Diagnostic / read-only commands** (viewing logs, checking processes, disk usage, service status, etc.) are permitted without explicit authorization. `sudo` with a read-only payload is also permitted.
- **Any command that alters machine configuration or files** requires explicit user authorization before execution. Authorization may be granted for a single command, a batch of commands, or a class of commands (e.g., "you may restart services if needed").
- **Every command must be printed before execution**, along with the reason it is being run.

## Logging

Maintain a session log at `~/.claude/logs/prod-vm/<machine-name>.cc.log` on the dev machine (never on the prod VM). Log each command executed, the reason it was run, and a summary of its output.

## Data / File Downloads

Any files or data downloaded from the session must be listed at the end of the session for proper handling and securing.

## Sub-commands

If the user specifies `clean-logs`, delete all log files under `~/.claude/logs/prod-vm/`.

If the user specifies `help`, display the available sub-commands and a summary of the rules above.

Thursday, 29 January 2026

Frappe Insights app - Installation Issues

 

Issue 1: mysqlclient Compilation Error During bench get-app

Insights depends on ibis-framework[mysql], which requires the mysqlclient Python package—a C extension that needs MariaDB development headers.

The Error

During the Docker build:

text
Trying pkg-config --exists libmariadb
Command 'pkg-config --exists libmariadb' returned non-zero exit status 127.
/bin/sh: 1: pkg-config: not found
Exception: Can not find valid pkg-config name.
Specify MYSQLCLIENT_CFLAGS and MYSQLCLIENT_LDFLAGS env vars manually

This happened because the base frappe/erpnext image lacks pkg-config and MariaDB dev packages.

The Fix

I updated my Containerfile to install the necessities as root:

text
USER root
RUN apt-get update && \
    apt-get install -y --no-install-recommends \
    libmariadb-dev \
    build-essential \
    && rm -rf /var/lib/apt/lists/*

USER frappe

# Set env vars to skip pkg-config
ENV MYSQLCLIENT_CFLAGS="-I/usr/include/mariadb"
ENV MYSQLCLIENT_LDFLAGS="-L/usr/lib -lmariadb"

This forces mysqlclient to build from source using explicit paths, keeping the image lean (no pkg-config needed). Rebuild the image, and the bench get-app step succeeds.

Issue 2: NumPy Baseline Optimization Error During bench install-app

After getting the app, running bench --site site.name install-app insights failed with:

RuntimeError: NumPy was built with baseline optimizations: (X86_V2) but your machine doesn't support: (X86_V2).

NumPy 2.0+ (here v2.4.1) requires x86-64-v2 features (SSE4.2, SSSE3, POPCNT), but my VM didn't expose them.

The Cause

Proxmox VM default CPU type (kvm64 or similar) emulates a minimal CPU without passing through host features. My Xeon Silver 4510 supports these, but the guest OS didn't see them (grep sse4_2 /proc/cpuinfo returned nothing).

The Fix

In Proxmox UI:

  • Shut down VM.
  • Hardware > Processor > Edit > Type: Set to host. 
  • Or, change the machine type to q35 (which I did not try)

This passes through the real CPU capabilities. No more NumPy error!

Monday, 19 January 2026

Troubleshooting Claude Code - PyCharm Integration

 If you’re a Python developer using PyCharm and excited about Anthropic’s Claude Code (the powerful AI coding assistant that lives in your terminal and integrates with IDEs), you might run into the same frustrating issue I did recently.

I have a Claude Pro subscription, and I was eager to get the full IDE integration working in PyCharm 2025.3.1. Here’s what happened and how I finally fixed it.

My Setup

•  PyCharm version: 2025.3.1.1 (Build #PY-253.29346.308)

•  Claude Code CLI: v2.1.5 (updated to latest)

•  Claude Code PyCharm Plugin: 0.1.14-Beta (installed from JetBrains Marketplace)

•  OS: Windows 11 Pro

The Claude CLI worked perfectly when I typed claude in my regular terminal — it launched, chatted with my codebase, everything fine.

But inside PyCharm:

•  Clicking the Claude icon launched the tool.

•  Running /ide showed “No IDE detected”.

•  Diff viewing, selection context sharing, file references, and other integrations refused to work.

•  PyCharm popped up a notification: “Cannot Launch Claude Code. Please ensure Claude Code is installed and the ‘claude’ command is in your system path.”

I knew the claude command was in my PATH — it worked everywhere else!

What I Tried First (The Usual Suspects)

I followed Anthropic support’s excellent suggestions:

1.  Ran claude update and restarted terminals/IDEs.

2.  Checked PyCharm’s Python Console PATH in Settings → Build, Execution, Deployment → Console → Python Console — it included the Claude bin directory.

3.  Ran /doctor in Claude Code — installation looked healthy.

4.  Updated both PyCharm and the plugin to the absolute latest versions.

Nothing helped. The integration still failed.

I was about to file a detailed bug report using /bug in Claude Code when I decided to try one more thing…

The Unexpected Fix: Firewall Interference

Out of curiosity, I temporarily disabled my firewall completely and relaunched everything in PyCharm.

It worked instantly!

/ide detected PyCharm, diffs opened in the IDE viewer, context from selections flowed seamlessly, and the notification disappeared.

Turns out, the Claude Code plugin and CLI communicate over a local socket/port (likely localhost TCP connection) to enable those fancy IDE features. My firewall was blocking this internal loopback traffic between the plugin and the running Claude process.

Permanent Solution

Instead of leaving the firewall off (not recommended!), I added a targeted exception:

1.  Opened Windows Defender Firewall.

2.  Created a new inbound and outbound rule.

3.  Allowed the claude executable.

•  Program path: Full path to the claude binary.

•  Action: Allow the connection.

•  Profile: All (Domain/Private/Public) or just Private if you’re careful.

4.  Restarted PyCharm and Claude Code.

Boom — full integration unlocked!

Quick Tips for Others Facing This

•  If /ide says no IDE detected → Check firewall first, especially on Windows or strict corporate setups.

•  PATH issues are common, but in my case it was not.

•  The plugin is still in beta, so small quirks happen.

  Always run claude from your project root in the IDE terminal for best context.

•  If you’re on WSL2 + Windows, also check WSL networking/firewall rules — similar localhost blocking can occur.


Monday, 23 June 2025

Western Digital MyCloud EX4100 - Zabbix SNMP Templates

 Here is the template that I created:

zabbix_export:
version: '7.0'
template_groups:
- uuid: 7df96b18c230490a9a0a9e2307226338
name: Templates
templates:
- uuid: b7d37b2b7192436ba04ad17c9559e7a3
template: 'WD EX4100'
name: 'WD EX4100'
groups:
- name: Templates
items:
- uuid: 2d5c9f65eae849179b1b9efea76e1f9b
name: 'System Temperature'
type: SNMP_AGENT
snmp_oid: .1.3.6.1.4.1.5127.1.1.1.6.1.7.0
key: system.temperature
value_type: "UNSIGNED"
delay: 60s
history: 7d
units: °C
preprocessing:
- type: REGEX
parameters:
- 'Centigrade:([0-9]+)'
- '\1'
- type: DISCARD_UNCHANGED
parameters:
- '0'
- type: STR_REPLACE
parameters:
- '\t'
- ''
triggers:
- uuid: 19c0bacd35674e52862428886d9bb8f5
expression: 'last(/WD EX4100/system.temperature) > 35'
name: 'High system temperature (>45°C) on { HOSTNAME}'
priority: WARNING

- uuid: 9caa115d20cb41d3a6d310cf0b3adf91
name: 'Fan Status'
type: SNMP_AGENT
snmp_oid: .1.3.6.1.4.1.5127.1.1.1.6.1.8.0
key: system.fan.status
value_type: "TEXT"
delay: 60s
history: 7d
preprocessing:
- type: REGEX
parameters:
- 'fan0:\s*(\w+)'
- '\1'
- uuid: 846a55194fc84d32b205b364dc1ce503
name: 'Drive 1 Temperature'
type: SNMP_AGENT
snmp_oid: .1.3.6.1.4.1.5127.1.1.1.6.1.10.1.5.1
key: drive.1.temperature
value_type: "UNSIGNED"
delay: 60s
history: 7d
units: °C
preprocessing:
- type: REGEX
parameters:
- 'Centigrade:([0-9]+)'
- '\1'
triggers:
- uuid: d2205e2739f04351979683de3a6b78f2
expression: 'last(/WD EX4100/drive.1.temperature) > 50'
name: 'High Drive 1 temperature (>50°C) on { HOSTNAME}'
priority: WARNING

- uuid: fffcb441f2c84aabb5c546e21b4934ee
name: 'Drive 2 Temperature'
type: SNMP_AGENT
snmp_oid: .1.3.6.1.4.1.5127.1.1.1.6.1.10.1.5.2
key: drive.2.temperature
value_type: "UNSIGNED"
delay: 60s
history: 7d
units: °C
preprocessing:
- type: REGEX
parameters:
- 'Centigrade:([0-9]+)'
- '\1'
triggers:
- uuid: 00353f4339ae4463829e54343fd2b6dc
expression: 'last(/WD EX4100/drive.2.temperature) > 50'
name: 'High Drive 2 temperature (>50°C) on { HOSTNAME}'
priority: WARNING

- uuid: c8bd3b2d4e3c4dd9a8d37291d2e2f34d
name: 'Drive 3 Temperature'
type: SNMP_AGENT
snmp_oid: .1.3.6.1.4.1.5127.1.1.1.6.1.10.1.5.3
key: drive.3.temperature
value_type: "UNSIGNED"
delay: 60s
history: 7d
units: °C
preprocessing:
- type: REGEX
parameters:
- 'Centigrade:([0-9]+)'
- '\1'
triggers:
- uuid: 62412199cdfe47eb9231d67f3d8234f2
expression: 'last(/WD EX4100/drive.3.temperature) > 50'
name: 'High Drive 3 temperature (>50°C) on { HOSTNAME}'
priority: WARNING

- uuid: d4b5a973129e4d68a00dbf1f689be14b
name: 'Drive 4 Temperature'
type: SNMP_AGENT
snmp_oid: .1.3.6.1.4.1.5127.1.1.1.6.1.10.1.5.4
key: drive.4.temperature
value_type: "UNSIGNED"
delay: 60s
history: 7d
units: °C
preprocessing:
- type: REGEX
parameters:
- 'Centigrade:([0-9]+)'
- '\1'
triggers:
- uuid: f52a4ca4e9134c91b5245ab575633668
expression: 'last(/WD EX4100/drive.4.temperature) > 50'
name: 'High Drive 4 temperature (>50°C) on { HOSTNAME}'
priority: WARNING

macros:
- macro: '{$SNMP_COMMUNITY}'
value: public

Sunday, 20 April 2025

SreeMuruganTileWorks.in - Drupal 11 Website

 Creating the official website for Sree Murugan Tile Works was more than just a technical project—it was a very important experience that merged my passion for personal computing with my business needs.

I chose Drupal 11 as the CMS, as I have decades of experience with it. Hosted on AWS EC2 Linux, with MariaDB running in a Docker container. Running Drupal on a container must make sense, but I chose to install it on the system directly to keep it simple. The theme is based on Bootstrap 5, customized using Sass to achieve a clean, mobile-first layout. I structured the site around our core products—roofing tiles, flooring tiles, and wall tiles—adding content types, taxonomies, and views to manage everything flexibly.

One challenge was optimizing performance of images. Seems PNG, though offering transparency, does not help when it comes to image size! Drupal comes with many SEO ready reatures - Clean URLs, sitemaps, meta data etc to made sure our site was crawlable and fast-loading.

It brought together my interests in computing, creativity, and communication. If you're a DIYer or enthusiast, building your own business site is a project worth taking up.

Sree Murugan Tile Works is the manufacturer of terracotta (clay) tiles for flooring, roofing, facade walls and decorative tiles. Gopuram Brand is very popular since 1958! Visit Sree Murugan Tile Works website!

Sunday, 24 November 2024

Screwed by Auto import

 import _tkinter # If this fails your Python may not be configured for Tk 

Got this mysterious error while deploying my frappe app in production. Was wondering why the hell is tkinter coming up, as it has no place on the app code. Then found this even mysterious line in MY code:

from idlelib.browser import file_open

Wondering where it came from, as I never typed it in. The culprit was Auto import feature of the editor in Pycharm. Typing file_o shows an autocomplete menu, and pressing tab / enter to complete using it results in the above import line being added to the top of the file, least where one is able to easily notice. 

I have turned off Auto Import in the IDE now. Did you also face such issue? Drop a comment...

Thursday, 3 October 2024

requirements.txt garbled or looks corrupt? Here is the fix

 When running pip freeze > requirements.txt from PowerShell (which is the default terminal on IDEs like PyCharm),  you might see the output properly in Windows but may not work properly on Linux. This is because the file is encoded as UTF-16LE and not as UTF-8. To do it properly, the following command works:

 pip freeze | Out-File -Encoding utf8 requirements.txt

Tuesday, 13 February 2024

Autodesk Vault Server - Backup to S3

I recently installed Autodesk Vault Basic 2024 Server and Clients. It seems to be an 'OK' piece of software. Not something like git, just basic check out, check-in and versions. Needed a reliable way to backup the data in it. There is a menu option in the GUI to do just that.



But I wanted precise control over things and wanted to upload to AWS S3. So I decided to write a python code that does just that! Vault server has a command line option to do backups too, that could be used: 

Example

Connectivity.ADMSConsole.exe -Obackup -BC:\Backup -VUadministrator -VPadmin -VAL -LC:\Backup\BackupLog.txt

Pls check out my code at https://github.com/smtwkla/pyAutoDeskVaultBackup 



Friday, 2 February 2024

Amazon Site-To-Site VPN to Sonicwall : No Traffic

 Configured my SonicWall TZ 370 to connect to AWS Site-To-Site VPN. Does not work even after extensive checking. Not able to ping the VPN even though the tunnel is up and shows up as green. removed all manual config and let the SonicWall firmware's AWS configurator setup the connection. Does not work even then. 

Then turned on Asymmetric Route Support in the interfaces T1 and T2 created, in the 'Advanced' tab. Works immediately!



Thursday, 16 November 2017

My experience with ERPNext

ERPNext is simply amazing!!! I am going for on-site installation and it is very interesting!!!

Thursday, 30 March 2017

MXGuardDog

We are testing the online spam protection service MXGuardDog. Setup seems pretty straight forward. Interface is clutter free and clean. It also seams to work without fuss. Looks good. Check it out: MXGuardDog Anti spam service

Tuesday, 7 March 2017

Gopuram Brand Clay Flooring Tiles

Who makes the best clay flooring tile in Tamilnadu? Obviously, Sree Murugan Tile works, Pavoorchatram!!! Our Gopuram brand of clay tiles are great value for money and have the best durability. Please check our website.

Saturday, 11 February 2017

RADIUS communication error

Stumped by RADIUS communication error while configuring SonicWall TZ210 to NPS? Try a short shared key - really short - SonicWall has some problem with generated long shared keys!!!

Sunday, 25 September 2016

Experience with Drupal 8 - Creating a new Company Website

I took up an interesting job this August - to completely redesign from scratch using drupal cms, our company website Sree Murugan Tile Works! When I created the site during 2004, I did it too as a DIY site, with HTML and some PHP code for layout. I chose plain, clean and no-fuss design. Just a few products were listed.

Now I wanted to develop the new site in parallel without disturbing the existing site. I chose to register a new domain name tileworks.in - so that I can redirect to sree-murugan.tileworks.in. I registered the domain with GoDaddy and added a hosting account. Installing Drupal 8 was a breeze, GoDaddy's cpanel let me choose my required PHP version. 

Back in 2004 when I created my company website, people visited websites from computers. Mobile or tablet users were practically non-existent. Today, after 12 years, the world has transformed beyond recognition! Here is the data from Google Analytics: 88% visits from mobile and tablet! Users using Computers are just 12%. 

Designing for mobile is entirely different: accommodating to smaller screens, layout that responds to screen orientation changes etc. I tested Bootstrap theme for Drupal. Though very promising, I wanted to keep coding to the minimum. So I chose Adaptive theme which is specifically for people who are shy of editing theme files. The on-screen configuration supported by Adaptive Theme proved to be a good scaffolding until I developed the courage to edit the theme code and css!

Once the new site was developed enough, I redirected the old domain mspvtiles.com to tileworks.in - the new site for Sree Murugan Tile Works is online! Please do visit the site and drop your comments!

Tuesday, 10 November 2015

Adobe Lightroom CC - A Must for Photographers

Buying a new Nikon D5500 SLR Camera posed a new challenge - to organise, edit and scale photos. I stumbed upon Adobe's new offering Lightroom CC. Available as a Photography bundle comprising of Adobe Photoshop CC and Lightroom CC for just over Rs550 per month. Give it a try, its worth it!


Saturday, 29 June 2013

Toyota Plant Visit

Visited TKAP, Bangalore.
Awestruck by the profoundness!

Sunday, 16 September 2012

Am back!

Has been a long while since I wrote here. A lot has happened but somehow never found the time to share.

I have found DropBox.com very useful to share files among all devices like PC, Android, iPhone & iPad. So far, it is the easiest way for me to quickly upload small documents to my Apple devices - much more simple and convenient than iTunes.

Give it a try.

Monday, 29 November 2010

Thoughts...

A few thoughts inspired by famous quotes:

Anyone can give up. Its the easiest thing to do.

No one can persuade another to change. Each of us guards a gate of change that can only be opened from the inside. We cannot open the gate of another, either by argument or emotional appeal.
Be willing to surrender what you are for what you could become.
“I've learned that people will forget what you said, people will forget what you did, but people will never forget how you made them feel.”

Monday, 19 April 2010

Commom Sense is Not Common

Why is it called common sense anyway?

A lot of business sense and expertise is common sense. Many excellence programs distill to common sense. ISO 9001 QMS, TPM, 5S, Six Sigma... You name it. An essential and substantial ingredient of all these is common sense.

Most important insights are plain common sense. Or so they see, after you learn it. Like Peter Drucker's insights on business for example.

But Common sense is not commonly present. Most of our life experience is about aquiring this common sense. Why call it common sense if it is not common anyway? Perhaps the 'common' does not mean 'present everywhere', it probably means 'applies universally' to many things.