zapov | 10 years ago | on: Rapidoid – No-Bullshit Web Framework for Java
zapov's comments
zapov | 10 years ago | on: Transit: JSON Data Interchange Format
What does it even mean that something is string based?
Here: https://github.com/eishay/jvm-serializers/wiki a JVM bench where JSON is pretty competitive with binary formats [and results would be event better if project owners actually merged PRs ;( ]
zapov | 10 years ago | on: Domain-Specific Language Engineering (2007) [pdf]
Also, there are no tools for describing DB schemas that way (except if you consider DB DDL such a schema). So my DSL is used as uniform data format. And it's not a problem of mapping between formats, but within the logic required to do such a mapping. It can't be expressed as a simple transformation, compiler is required to analyze and transform it appropriately in various scenarios. And if you want optimizations, good luck with "simple mapping".
So yeah, it's complicated, but it needs to be complicated to support simple modeling DSL. Otherwise you are better off with having several DB schemas, various POOs, Protobuf/Flatbuffer IDL etc...
zapov | 10 years ago | on: Domain-Specific Language Engineering (2007) [pdf]
So an example of the problem I deal with is a database migration. Let's say we have an entity with a value
entity SqlTable { List<TableColumn> nestedTuple; }
value TableColumn { int i; }
and if I change column type in value object to long I want my compilers to prepare a DB migration with the appropriate SQL statements for the specific DB I use. Of course, there is nothing too complex about it, but it's not trivial either (in this case you have to prepare a second field, unnest the whole hierarchy to get to the nested field, copy it to new type and compact the hierarchy back again).
I find it costly since there are gazillion of such features. And when they start interacting with each other things gets messy.
zapov | 10 years ago | on: Domain-Specific Language Engineering (2007) [pdf]
But that's probably because I don't think using templates for code generation is good enough. At least if you want to do something interesting with it.
Language workbenches cut down the cost of DSL design to minimum, but more interesting problem is providing valuable output from it.
zapov | 10 years ago | on: Using Protobuf instead of JSON to communicate with a front end
http://hperadin.github.io/jvm-serializers-report/report.html
zapov | 10 years ago | on: Using Protobuf instead of JSON to communicate with a front end
zapov | 10 years ago | on: Unison: a next-generation programming platform
Few questions:
* how is your editor different from MPS (except being browser based)?
* how does your project compares to an implementation on top of language workbenches?
* do you think your assumption about time spent on a project is mostly Haskell related or is that for some specific types of projects?
* are you thinking about implementing some framework of your own or do you have some other in mind?
* do you plan on integrating with existing libraries or write your own implementation?
And comments:
* for me good IDE feels like semantic editor. I'm inclined to believe that text based editor can have all the good features of semantic editor and avoid most of the bad ones.
* while writing simple structures one time and reusing them vertically in a project is useful, it's doubtful that it's worth while. It becomes worth while only if you have project in multiple languages/technologies. But mostly if you can do refactoring automatically (even database schema migrations).
* try to explain your project better, this should help you with narrowing it's scope. Most of the people will try to fit it into some category they are familiar with so emphasize the distinctions.
Good luck! ;)
zapov | 11 years ago | on: Call Me Maybe: MongoDB Stale Reads
Aphyr article about Postgres could be renamed to call-me-maybe-acid-db-over-the-network and could remain the same.
zapov | 11 years ago | on: Call Me Maybe: MongoDB Stale Reads
That article has various issues, for example, calling Postgres commit protocol as a special case of two phase commit is not really correct. Postgres has 2pc: http://www.postgresql.org/docs/9.2/static/sql-prepare-transa... but that was not tested.
The described behavior is "expected" and "understood". Saying that "you should assume worst from your database" is not something I would ever use for describing DB with ACID semantics.
zapov | 11 years ago | on: Call Me Maybe: MongoDB Stale Reads
zapov | 11 years ago | on: Json vs. simplejson vs. ujson
zapov | 11 years ago | on: Modern SQL in PostgreSQL
zapov | 11 years ago | on: Modern SQL in PostgreSQL
SELECT p, array_agg(SELECT c FROM "MasterDetail"."Child_entity" c WHERE c."parentID" = p."ID") as c FROM "MasterDetail"."Parent_entity" p
zapov | 11 years ago | on: Modern SQL in PostgreSQL
And Revenj has been using it for years: https://github.com/ngs-doo/revenj
And yes, Revenj now comes with an offline compiler ;)
zapov | 11 years ago | on: Automatic REST API for Any Postgres Database
So... no. O/R impedence doesn't apply to an ORDBMS
zapov | 11 years ago | on: PostgreSQL 9.4 Released
It's not like Revenj needs dsl-platform, but rather that dsl-platform integrates into Revenj.
So to make it blunt, would you try/use Revenj if it had part of dsl-platform compilers available for offline use?
zapov | 11 years ago | on: PostgreSQL 9.4 Released
I would argue Revenj + Postgres provide much better developer experience. But as you said, it's not written by Microsoft so that attitude doesn't help it out.
I'm 100% sure Microsoft can't write LINQ provider which actually understands Postgres and can use it to the fullest (as Revenj can).
zapov | 11 years ago | on: PostgreSQL vs. MS SQL
zapov | 11 years ago | on: ToroDB – Document-oriented JSON database on top of PostgreSQL