Chandra Sekar's Blog

GnuCash for Personal Finance: Transactions and Taxes

26 Jul, 2018 · 8 min read · #gnucash #personal-finance #accounting #mutual-fund

This is second in the series of posts describing how I use GnuCash to manage my finances. In the previous post I had discussed how I organize my accounts in GnuCash. In this post I’ll describe how I record transactions and use GnuCash to help with computation of taxes and filing of tax returns.

 Read more

GnuCash for Personal Finance: Chart of Accounts

22 Jul, 2018 · 5 min read · #gnucash #personal-finance #accounting

GnuCash is an open-source double-entry bookkeeping software. In a series of posts this week, I will describe how I use GnuCash to manage my finances. The series will be biased towards a portfolio composed primarily of Indian mutual funds. This post describes the chart of accounts involved and the purpose of each account.

 Read more

Safe and Convenient Password Management

09 Oct, 2017 · 6 min read · #security #password

For better or worse, passwords are central to the safety of almost all our online accounts. 2-factor authentication systems are meant to protect users from compromise of their passwords. However, not all services support it. Also, several online services (including banks), use OTP sent over SMS as the second factor. This has several vulnerabilities and has been deprecated by NIST. That leaves password as a critical piece of these accounts' security.

 Read more

Prepared Statements Without Additional Round-Trip

09 Jul, 2017 · 2 min read · #postgresql #database #sql

Prepared statements are the best way to avoid SQL injections in applications accepting user input. However they require an additional round-trip to prepare the query, which increases latency when your queries are dynamic and the statements are not re-used. PostgreSQL allows execution of such queries without the additional cost!

 Read more

Java's CompletableFuture and Threads

19 May, 2017 · 2 min read · #java #multithreading

Quiz time. How many threads (other than main) will this program create on a dual-core machine?

public class App {
    public static void main(String[] args) {
        for (int i = 0; i < 10; i++) {
            CompletableFuture.runAsync(() -> {

 Read more

← Newer Posts   Older Posts →