HNHacker News
TopNewBestAskShowJobs

tirumaraiselvan

456 karma · joined November 22, 2015

If you want to contact me, send me a note at tirumarai dot selvan at gmail dot com
submissionscomments
tirumaraiselvan··on Software projects written in Haskell
Sorry, it is actually in preview and not officially released yet. You can get the preview image, docs, etc in the PR: https://github.com/hasura/graphql-engine/pull/3042
tirumaraiselvan··on Software projects written in Haskell
Hey, have you seen the preview docs of hasura actions? It has a small example of integrating python (or for that matter, any language) for custom mutations.
tirumaraiselvan··on Beating Decades of Optimized C with 80 Lines of Haskell
You don't have to get into the intricacies of laziness when you are learning the language IMHO.
tirumaraiselvan··on New In Postgres 12: Generated Columns
Why do they call it Generated Columns and not Computed Columns like most other databases already do?
tirumaraiselvan··on Show HN: OctoSQL – Query and join multiple databases and files, written in Go
At Hasura, we recently released the preview of Remote Joins that allows you to join different GraphQL APIs. So, all you need is a graphql wrapper over your DB/sources (Postgres comes in-built) and you can then join whatever sources.

https://blog.hasura.io/remote-joins-a-graphql-api-to-join-da...

tirumaraiselvan··on How we built a serverless architecture with AWS
Just FYI, Hasura GraphQL Engine has native support for GeoJSON types:

https://blog.hasura.io/graphql-and-geo-location-on-postgres-...

PS: I work here. Apologies for plug.

tirumaraiselvan··on Lee Iacocca Has Died
Similar distaster (like Falcon) happened in India with Tata Nano. It was touted as India's "cheapest" car. It definitely was the most economical car ever introduced and there was lot of hype of how it was going to enable 4-wheels for every household.

Except nobody bought. A car is more than its functionality. It is also a symbol.

tirumaraiselvan··on Scaling to 1M active GraphQL subscriptions on Postgres
> Not sure how people enjoy FP.

See The Blub Paradox [0]

0 : http://www.paulgraham.com/avg.html

tirumaraiselvan··on Logical fallacies in software engineering
True. But age is used as a good proxy for determining authority.
tirumaraiselvan··on Logical fallacies in software engineering
Appeal to authority - mentioned in the article.
tirumaraiselvan··on How to do hard things
Nice. I never explicitly realized this but this is how I always succeeded in doing hard proof-of-concept projects in a complex software product.

Single loop when I know the domain fairly well. And double loop in a complete new domain.

So, the question is: Are there other methods to approach problem-solving which gives positive success?

tirumaraiselvan··on Amazon S3 will no longer support path-style API requests
Did you mean use DNS over HTTPS?
tirumaraiselvan··on How Is GraphQL Versionless?
A less talked about issue: what if you want to change the behaviour. Say you have an `insertUser` mutation but you changed the behaviour in the backend: v1 stores it in DB1 and v2 stores it in DB2.

What now? Fields are just one part of versioning problem.

tirumaraiselvan··on Error Handling in Go (2016)
Except your program won't grow bigger with the "monadic" error handling approach.
tirumaraiselvan··on Show HN: A platform that simplifies deploying static and dynamic web apps
So you differentiate from Heroku in pricing alone or are there any other things?
tirumaraiselvan··on Remove.bg – A service to remove the background of any photo
Incredibly useful tool. Very good domain name. Instant value delivered with free plan. Technology looks great: took 5 seconds to get the output.

All the best.

tirumaraiselvan··on How B players hire C players (2018)
Maybe people transition from A->B->C or other way over the course of a career.
tirumaraiselvan··on Notes on the Amazon Aurora Paper
As per my understanding, CQRS fits here if you consider the database log as the "event source". But wouldn't it be terrible performance wise to create the "view" from the event source rather than using the storage layer.
tirumaraiselvan··on Fearless Concurrency: Clojure, Rust, Pony, Erlang and Dart
It definitely has a lot to do with types in Haskell though. You can only operate on transactional variables in STM context. The STM action when run is what gives you atomicity and isolation.

Ref page 8-9 in [1]

[1] https://www.microsoft.com/en-us/research/publication/beautif...

tirumaraiselvan··on Fearless Concurrency: Clojure, Rust, Pony, Erlang and Dart
Sorry, I do not know any of these languages but I have used Haskell's STM which is incredible. Any of the languages mentioned here close to the STM idea (basically using strong types to ensure mutations happen in isolated context)?
tirumaraiselvan··on Is a shared database in microservices actually an anti-pattern?
Can you give me a concrete example of using CQRS in such a setting and the problem it is solving?
tirumaraiselvan··on Is a shared database in microservices actually an anti-pattern?
How does CQRS solve the problem of referential integrity?
tirumaraiselvan··on Ask HN: Pros and cons of working at a startup in 2019?
I don't disagree but their rate of innovation is rather slow because it isn't something their survival depends on.
tirumaraiselvan··on Ask HN: Pros and cons of working at a startup in 2019?
I don't think this is anything 2019 specific, but working in a niche startup is probably the only plausible way of working on anything niche like say blockchain or serverless.
tirumaraiselvan··on Build and Deploy Serverless React Apps with Next.js 8 and Zeit Now
1) DDoS not just at the API Gateway level, but also at the database level. Suppose you fiddle the query to return you a million rows or some horrible aggregated join. You can slow down the entire DB. You need to hide the query from the client.

2) Yeah, connection pooling is apparently not relevant for DynamoDb because it is HTTP based, I wonder how they implement transactions then. How can I manipulate code while having an open transaction?

tirumaraiselvan··on Build and Deploy Serverless React Apps with Next.js 8 and Zeit Now
Suppose you have set up everything to get you going with a single route. Now, adding another route/handler is just deploying another function. And you deal with everything at this function level and never the entire "monolith".

You get all the advantages of breaking free from a "monolith", independent iteration, scale, federated management. Consider a big team which writes 100s of routes/handlers, then you can just federate the ownership easily.

Not very great for a solo-dev kind of projects, I agree.

tirumaraiselvan··on Overpaid CEOs 2019
> Take an arbitrary dude off the street and give them the experience of a CEO and I bet you that substituting him in would at most lose the company 40% of growth/whatever.

Most arbitrary people will crumble under pressure if they are given the experience of a CEO.

tirumaraiselvan··on Serializability vs. Strict Serializability: The Dirty Secret of Isolation Levels
That seems like a problem of not having sync acknowledgements while allowing multi-instance writes at the same time. I am not sure if that is a strict serializability issue anymore.
tirumaraiselvan··on Build and Deploy Serverless React Apps with Next.js 8 and Zeit Now
Yes. So in serverless, there is no concept of a long running service. So you can't listen on port 3000 and have any routing within the app. You will rather write one function, add a route to it via API Gateway and then use it in your app. You can probably use django library to help you write code in django style but you can't use it fully for e.g. 1) you can't do migrations in serverless the same way, 2) everytime your function is invoked Django will map the database to models, etc so it could be very slow.
tirumaraiselvan··on Serializability vs. Strict Serializability: The Dirty Secret of Isolation Levels
Except in that case, the user already received confirmation that T1 was success before T2 was even executed. So not sure how that is even possible.
← PreviousPage 2 of 5Next →