Introduction to BoltDB
· ☕ 5 min read
Why use BoltDB Bolt plays pretty well with Go’s concurrency model, we can do multiple reads concurrently. For pro and cons, I will contrast it with similar database SQLite. I have done SQLite when I worked with Xentrix to develop GUI tools for the artists. Pro It is native go. This means you don’t need any database server running, like SQLite. In oppose to Redis and memcached. Cross-compilation One thing I see a lot appearing on the internet about Bolt is it’s an ability to cross-compile.

Unit Testing, Test Coverage and CI with Travis in Go
· ☕ 7 min read
You can’t think of deploying your application to production without testing it. Neither you can manage a large codebase with confidence without it. Let us go through some basics of unit testing in golang. This post is structured in the following manner: unit testing basics in golang (jump) inbuilt code coverage command understanding subtests and helper function (jump) Travis CI integration (jump) running test against multiple version of go Unit Testing in golang Before I start, I must say that do not test code, test the behavior.

Create Lightweight Docker Images With Multi Staged Build
· ☕ 4 min read
Me Before 1 2 3 4 5 6 7 8 9 10 11 12 FROMgolang:alpineWORKDIR/go/src/github.com/santosh/qagineCOPY . .RUN go get -dRUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -installsuffix cgo -o app .EXPOSE8080CMD ["./app"] Me building the image. $ docker build -t sntshk/qagine . Sending build context to Docker daemon 259.6kB Step 1/7 : FROM golang:alpine ---> 760fdda71c8f Step 2/7 : WORKDIR /go/src/github.com/santosh/qagine ---> Running in e2cf75dd1655 Removing intermediate container e2cf75dd1655 ---> 8b4955b2e885 Step 3/7 : COPY .

Contact
· ☕ 1 min read
You can contact me via email at sntshkmr60 at gmail.com. Or you can say hi @sntshk

Projects
· ☕ 1 min read
Projects My digital garden consists of: cotu A command line utility to interact with daily life websites including Twitter, Reddit etc. design pattern oauth2 object-oriented design Tech used: golang, aws eldiario Tech used: golang, mongo, react, rest A service that makes writing diaries fun. written in Go and MongoDB. adheres to RESTful API design best practices. authorization via WebTokens complimented with a command-line interface. personalweb A django based boilerplate for a personal website featuring a website.

2019 In a Review, Colemak, Code Reviews and More
· ☕ 5 min read
This year was a transition period for me from a career perspective. I was hearing, understanding and practicing stuff like microservices, fault tolerance, cross-site deployment, REST APIs, software deployment system, agile development and attending meetings & training sessions with the people on the other side of the planet 😅 . 3 years back I never thought I would end up being some place like this. That version of me just wanted to be a compositor.

Switching to Hugo This New Year
· ☕ 7 min read
Finally I have decided to buy me a domain. But before that I must keep my content ready. Earlier on, I was decided on to giving my website a go backend, but I later thought it was an overkill to use golang as a backend for a personal website and I should keep that enthusiasm for a real app. Instead of manually creating a frontend for my site, I will be using already available Hugo theme.

Run Unit Test Before Every Commit with pre-commit Hook
· ☕ 3 min read
Introduction Why wait for CI/CD services to run your test? And in case you’ve already submitted a pull request, you’ll have to push another commit to fix the cause of failed test held by CI provider. You can prevent that by running unit tests locally before every commit. I’m building my website using the golang. On every git push, Travis CI runs test and create a docker image and pushes it to DockerHub.

Cycles Rendering Checklist for Faster and Clear Renders
· ☕ 4 min read
This is a textual version of Ways to Speed Up Blender Cycles Rendering, hope Andrew won’t mind writing a textual version. ;) This post is mostly for self-reference and does not contains all the methods shown by Andrew. We’ll see how we can create better renders and how render times can be reduced by merely changing some factory settings, and also what prices we might have to pay for that optimization.

Software Testing and Test Driven Development
· ☕ 3 min read
In this post, I’ll show a glimpse of software testing and how test-driven development works in a nutshell. Why Do We Test Every little software grows big, trying to solve more problem regarding its particular domain. It faces bugs in the way which also needs to be taken care of. As software grows big. It becomes harder to go and test if every part of the software is behaving the way it should.

What I've Learnt as a Self Taught Programmer Till Now
· ☕ 2 min read
I have been an independent programmer for a long time. Like 5-6 years? Recently been employed with Xentrix Studios, an animation studio based in Bengaluru, as a pipeline developer. Today I want to share what changes I’ve felt in these recent years. Write Readable Code The code is read much more often than it is written. In fact, source code is written for us, humans. A source code to achieve a certain task to be done can be written in dozens if not hundreds of ways.

Making a Switch to KDE and zsh
· ☕ 3 min read
It’s been a long time I’ve been fiddling around with Linux and Linux distros. The first Linux distro I ever used was Ubuntu. I like the beauty of Linux, its so customizable. One can change every aspect of interface and behaviour that end-user want. Like the desktop environments and shells, which you can’t really change on Windows operating systems. I myself belive in minimalism and not full of features products (which remains unused most of the time in my case).

Advance Interface Topics in Blender
· ☕ 3 min read
This is kinda a manual for new Blender user which I compiled up when I was learning Blender. First of all, when you’re switching from Maya, you’ll find the interface a bit alien. Blender has an option to behave like Maya, but in long run, that’s not gonna be productive. The Basics Right-click selects any object. MMB rotates the scene (we’ll se pivot point later in the post). Shift+MMB+mouse movement pans the scene.