HNHacker News
TopNewBestAskShowJobs

gpavanb

5 karma · joined February 8, 2017

submissionscomments
gpavanb··on Show HN: Repeat After Me – Read aloud your favourite books in global languages
We've released Repeat After Me across all platforms.

Desktop: https://tinyurl.com/repeat-after-me-app

Android: https://play.google.com/store/apps/details?id=com.repeatafte...

iOS: We are working on the App Store release. In the mean time, you can 1) Go to Safari and open https://tinyurl.com/repeat-after-me-app 2) Hit Share -> Add to Home Screen (iOS)/Dock (Mac)

gpavanb··on Show HN: Repeat After Me – Read aloud your favourite books in global languages
For those on Mac or iOS, you can open the link in Safari and Share -> Add to Dock (Mac)/Add to Home Screen (iOS) to try out the WebView. We are working on getting this in the App Store.
gpavanb··on Show HN: Repeat After Me – Read aloud your favourite books in global languages
Thanks, that looks interesting! Let me evaluate it and see if it can directly integrate into the product.
gpavanb··on Show HN: Repeat After Me – Read aloud your favourite books in global languages
Also, it works best on desktop. There's unfortunately a lot of TTS and STT interventions in Android and iOS
gpavanb··on Show HN: Repeat After Me – Read aloud your favourite books in global languages
Hello everyone,

I have worked as an early engineer in multiple startups before, including in the Ed-Tech space, and always wanted to build something that works in a unified manner across languages.

With tailwinds in voice AI, I decided to build "Repeat After Me", which is targeted at language learners of all ages. Curated content from classics provides a guided approach to refining their language skills.

We plan to add more feedback features such as gamification and your thoughts would be very helpful in that direction.

gpavanb··on When Sigterm Does Nothing: A Postgres Mystery
I'd be happy to make the changes to the codebase but there's definitely scope for improvement. Putting a sleep to avoid repeated lock acquisition should have raised an eyebrow or two when it was implemented.

As mentioned, there should be a read-replica specific code that works using event listeners. Repurposing the primary's code is what causes the issue.

The following pseudocode would give a better picture on the next steps

// Read replica specific implementation

void StandbyWaitForTransactionCompletion(TransactionId xid) {

// Register to receive WAL notifications about this transaction RegisterForWALNotification(xid);

    while (TransactionIdIsInProgress(xid)) {
        // Wait for WAL record indicating transaction completion
        WaitForWALEvent();
        CHECK_FOR_INTERRUPTS();
        
        // Process any incoming WAL records
        ProcessIncomingWAL();
    }
    
    UnregisterForWALNotification(xid);
}
gpavanb··on When Sigterm Does Nothing: A Postgres Mystery
The fundamental problem is that a synchronous, lock-based approach is being used in an asynchronous, event-driven context (logical replication).

The Postgres team needs to go back to the drawing board and avoid polling altogether and more importantly have event-listener based approaches for primary and replicas separately

It's great to see ClickHouse contributing to Postgres though. Cross-pollination between two large database communities can have a multiplying effect.

gpavanb··on Show HN: Kite Modeler Reboot – I built an app to model kites in Python
KiteModeler-Reboot, which is a modern version of KiteModeler from NASA Glenn.

You can check out the repository at http://github.com/gpavanb1/KiteModeler