oleksandr_dem
Joined 2 years ago
Joined 2 years ago
> I don't get this part. What special characters?
For example let's look at this code:
```
class ProductsController < ApplicationController before_action :set_product, only: %i[ show edit update destroy ]
def index
@products = Product.all
end
...```
You can see a bunch of special characters: < : , % [] @
For example, if I wanted to write the same code in Typescript, based on my setup I might just need do something like this:
```
instance.get("/products", () => ProductsRepository.find());
```
Where instance is my router instance (fastify, express, whatever) and ProductsRepository is a TypeORM repository. My before_action might just be a middleware I pass to the callbacks chain or register as global middleware
> "I don't know databases, so I found one way that worked and ran with it as an ORM"
This doesn't really play in favor of Ruby on Rails, the same applies to Typescript and Java (and I'm quite sure to any language that is popular with web developers).
So hypothetically yes, you can build trust overtime (Navicat has over 20 years of development), for every N users who don't trust it now, there is 1 yolo guy who just said "Yeah, this might help me do my job".
I should've presented this post in a different way. A lot of people that came here expected production ready tool, while the reality is that I did this in my free time to help me do my job, I wrote landing page in 10 minutes, and I published this post to get some feedback to see if it is something that may be interesting.
And based on what I read, I think there is interest for this tool.
I have a question: assume I moved the webapp into the CLI (so now everything is localhost), would you prefer using a CLI + webapp or an actual app you have to install (no more CLI, you open the app and do your stuff)?
I see your concern about running it locally and then visiting a remotely hosted webapp. The way it works is that app.dataramen.xyz will call a localhost server (running on your machine, there is no remote code executed) to connect to the database. So all the data stay on your local machine, plus some webapp stuff stored in browser localstorage.
I went for this setup for essentially 2 reasons:
- I didn't want to ship webapp as part of the CLI tool due to the webapp size (it uses React, so the bundle is 800kb or so, while the entire local server code is 45kb).
- In the long term I want the users being able to connect to multiple servers from one webapp. For example you may have a local server running to interact with your local DB, but at the same time you might have configured a remote self hosted server within your company VPN.
It is a weird setup, but you end up doing weird things when you run an app on $0.00 budget
I think koolba's point was not as much about the tool being open-source as it is for a tool that runs on your machine and accesses your database with write permission, not having any guarantees it does the job it promises.
I could not agree more with him. This tool was born as a side project for my personal need, so I obviously use it without hesitation. But obviously, there is nothing to ensure you the tool won't drop your DB out of nowhere, or dumps your data somewhere else.
I think going open source will allow me to build some credibility for now.
PS. I use this tool daily, but I have to admit, in prod env I have read only user.
After reading all the comments, I can see there are two big issues here:
- The code is not open-sourced, and some people don't trust running it locally
- The landing page does not clearly show/explain what DataRamen is and how it works
I should've seen it coming. I will take the following actions to tackle these problems:
1) Open-source the CLI code. There are no super sophisticated algorithms behind it, so no need to keep it private.
2) Improve the landing page with screens and videos to showcase its features.
In addition to this, I will keep working on new features. I saw multiple comments mentioning SQLite support. Since it is possible to run SQLite directly in the browser, I might as well use it as a live demo where you can try the tool with a dummy DB without installing it locally (can't promise it, I have to see the feasibility of this project).
- Local database: it stores some stuff locally, like saved queries or DB configurations
- Query runner: when you run a query in the webapp it will call your localhost server, which will connect to the database and execute the SQL statement
It is technically possible to host it elsewhere, but I wouldn't recommend it (there is no documentation).