Live data from Hacker News

Ask HN: Who wants to collaborate?

news.ycombinator.com

421–430 of 525 posts

Re: Ask HN: Who wants to collaborate?

#421
Hello HN,

My collaborator and I want to help traditional artists enter the NFT space by creating compelling digital/mixed-reality experiences surrounding their art (yes, bringing it into the metaverse!), and by building supportive tooling for distribution. We are currently in talks with some amazing artists and would love to find developers/researchers/3D artists to help bring their ideas to life. I'm a painter myself, and have extensive experience developing with 3D technologies/AR/VR incl at FAANG/Pixar/etc.

If you think you'd be interested in working together, please reach out (email in profile). We are looking for:

1) 3D,2D animators, visual effects artists

2) Blockchain and smart contract developer/advisor

3) Full-stack, Backend/Frontend engineer

Looking forward to connecting and making some magic!

Re: Ask HN: Who wants to collaborate?

#422
post #3

Hey, I want to put together an open source project that gives an overview of how to set up a minimal viable web application from scratch via all the different frameworks. The idea is to format the tutorial for each framework as a shell script. So there is no ambiguity of how to reproduce the results. And it is even possible to just copy&paste the steps into a docker container and see the framework in action. Here is…

Seems like a great idea, what exactly is the MVP? I've thought about doing the same from time to time, doing as shell script seems like a nifty idea but possibly a little more work for the author. Curious if there are multiple steps adding to the same file how you would approach that.

My idea is that the script contains the basic steps which building an MVP usually contains: setup, routes, templates and user accounts.

From there on, it is up to the developer to add their own design and functionality. After you understand the code for setup, routes, templates and user accounts this should be easy.

As for mutliple steps adding to the same file, I think overwriting the whole file every time is doable. For example when we introduce the concept of a template, the template can be created like this:

    cat  templates/index.html
    Hello World
    EOF
Now say later we want to use a base template which contains a content block. Now we modify the template to extend the base template:

    cat  templates/index.html
    {% extends "base.html" %}
    {% block content %}Hello World{% endblock %}
    EOF

Re: Ask HN: Who wants to collaborate?

#423
post #3

Hey, I want to put together an open source project that gives an overview of how to set up a minimal viable web application from scratch via all the different frameworks. The idea is to format the tutorial for each framework as a shell script. So there is no ambiguity of how to reproduce the results. And it is even possible to just copy&paste the steps into a docker container and see the framework in action. Here is…

Looks like you're basically looking for TodoMVC and Real World. TodoMVC is a simple todo list implemented in various frameworks while Real World is a more complex real world app, a blog style social media site. https://todomvc.com/ https://github.com/gothinkster/realworld

That is a bit of a misunderstanding. I do not want to build a collection of repos or projects which the user can read through or try out.

My whole project is just one page!

The page displays multiple scripts side by side.

One script per framwork.

Each script can turn a fresh Linux installation into a working web application with routes, templates and user accounts.

Re: Ask HN: Who wants to collaborate?

#424

Earlier quoted context omitted.

I've thought of something like this, glad to see its been created. Love it. This is how I 'picture' things in my head so it makes it easy for me to organize. Now only if there was a file explorer like this I'd love to use one.

Thanks, glad you like it! For organising information Temin has been an entirely positive experience for me. For the first time what's in my head matches what's on a screen. Early on I expected that mental model to fall over as the amount information in a metaverse grew, but I have ~12,000 sticky notes/pieces of paper in my 'main' metaverse and haven't personally felt the need to add any search functionality yet. I'm…

This looks fantastic, I'd love to try this.

Regarding your question about why this works : I urge you to read at least the first chapter of Frances Yates The Art of Memory https://en.wikipedia.org/wiki/The_Art_of_Memory - how people learned to retain vast stores of knowledge before the invention of the printed page.

Re: Ask HN: Who wants to collaborate?

#425
post #3

Hey, I want to put together an open source project that gives an overview of how to set up a minimal viable web application from scratch via all the different frameworks. The idea is to format the tutorial for each framework as a shell script. So there is no ambiguity of how to reproduce the results. And it is even possible to just copy&paste the steps into a docker container and see the framework in action. Here is…

Are you familiar with https://github.com/TechEmpower/FrameworkBenchmarks ? It's not tutorial-style, but it does contain hundreds of sample web apps (that all do the same thing, but still)

Looking at those, it seems the sample apps are way more complex than what I envision. The Django one starts with these dependencies:

    Django==3.1.12
    greenlet==0.4.17
    gunicorn==20.0.4
    meinheld==1.0.2
    mysqlclient==1.4.6
    psycopg2==2.8.6
    pytz==2020.4
    ujson==4.0.1
The approach I want to show is: What are the minimal steps to get a working web application with routes, templates and user accounts. I know that at least for Django, this is possible with no additional dependencies.

Re: Ask HN: Who wants to collaborate?

#426
post #423

Earlier quoted context omitted.

Looks like you're basically looking for TodoMVC and Real World. TodoMVC is a simple todo list implemented in various frameworks while Real World is a more complex real world app, a blog style social media site. https://todomvc.com/ https://github.com/gothinkster/realworld

That is a bit of a misunderstanding. I do not want to build a collection of repos or projects which the user can read through or try out. My whole project is just one page! The page displays multiple scripts side by side. One script per framwork. Each script can turn a fresh Linux installation into a working web application with routes, templates and user accounts.

Ah that makes more sense now. So you're basically writing docs for all these different tools such that someone can copy paste and get a working installation.

What are your thoughts on docker which seems to do something similar? Also, how would you stay updated on every single framework if they ever change their installation scripts or other such parts?

Re: Ask HN: Who wants to collaborate?

#427
post #423

Earlier quoted context omitted.

That is a bit of a misunderstanding. I do not want to build a collection of repos or projects which the user can read through or try out. My whole project is just one page! The page displays multiple scripts side by side. One script per framwork. Each script can turn a fresh Linux installation into a working web application with routes, templates and user accounts.

Ah that makes more sense now. So you're basically writing docs for all these different tools such that someone can copy paste and get a working installation. What are your thoughts on docker which seems to do something similar? Also, how would you stay updated on every single framework if they ever change their installation scripts or other such parts?

I wouldn't say that Docker is doing something similar. What I want to do is give a one-page overview of the web framework landscape.

Since I envision the scripts to be very small, I expect that updating them will not take long. The history of the updates will indeed be very interesting. In 10 years we can look at it and see how often each framework had breaking changes.

Re: Ask HN: Who wants to collaborate?

#428
post #427

Earlier quoted context omitted.

Ah that makes more sense now. So you're basically writing docs for all these different tools such that someone can copy paste and get a working installation. What are your thoughts on docker which seems to do something similar? Also, how would you stay updated on every single framework if they ever change their installation scripts or other such parts?

I wouldn't say that Docker is doing something similar. What I want to do is give a one-page overview of the web framework landscape. Since I envision the scripts to be very small, I expect that updating them will not take long. The history of the updates will indeed be very interesting. In 10 years we can look at it and see how often each framework had breaking changes.

Makes sense. I mean docker as in dockerfiles which are essentially scripts that create the docker image as a full environment.

Re: Ask HN: Who wants to collaborate?

#429
post #427

Earlier quoted context omitted.

I wouldn't say that Docker is doing something similar. What I want to do is give a one-page overview of the web framework landscape. Since I envision the scripts to be very small, I expect that updating them will not take long. The history of the updates will indeed be very interesting. In 10 years we can look at it and see how often each framework had breaking changes.

Makes sense. I mean docker as in dockerfiles which are essentially scripts that create the docker image as a full environment.

Yes, Dockerfiles usually set up an environment suitable for certain tasks.

So instead of using debian:11-slim as I propose, one could use a Dockerfile made for Django. But that would help very little. Django even abandoned their official Dockerfile because it brings so little to the table.

In my opinion, using a higher level Dockerfile than the bare OS is a net negative. The developer won't know how much magic it hides. Even though it just hides a few lines of code. And being higher up in the stack also means stuff will break more often and the scripts need to be updated more often.

Re: Ask HN: Who wants to collaborate?

#430

Earlier quoted context omitted.

Yes, I had a look at these formats before embarking on my venture. I listed the things I found important in the comparison matrix: https://github.com/kstenerud/concise-encoding#-compared-to-o... To your points: - Protobufs is not an ad-hoc format, which is a big reason why low-friction formats like JSON are popular. There are many use cases where formats like protobufs are clearly the superior choice, but CE doesn't…

Thank you for the clarification! Perhaps a better example would have been Apache Avro (still has a schema, though): https://en.wikipedia.org/wiki/Apache_Avro This looks like a very ambitious project, and I can see that you've put a lot of thought, time, and effort into it! You clearly have a lot of interesting ideas (the graph idea is really cool) and significant experience with data formats. If this is a security-or…

Yes, I had a look at avro as well. I've been following all of the established and nascant formats over a number of years, hoping for one that addresses my concerns, but unfortunately nothing emerged. My ambitions are actually at a much higher level; this is just to set a solid foundation for them.

Cyclic bombs are but one security concern... There are actually a LOT of them, which I try to cover cover in the security section ( https://github.com/kstenerud/concise-encoding/blob/master/ce... ). The security space is of course wider and more nuanced than this, but I didn't want to turn it into an entire tome so I tried to cover the basic philosophical problems. At the end of the day, you must treat data crossing boundaries as hostile, and build your ingestors with that in mind. Sane defaults can avoid the worst of them (and CE actually REQUIRES sane defaults for a lot of things in order to be compliant), but no format can protect you completely. A "fork bomb" using cyclic data is unlikely, unless your application code is really naive (if you're using cyclic data, you need to have a well-reasoned purpose for it, and are likely just using pointers internally - which won't blow out your memory unless you're doing something foolish when processing the resulting structs). Actually, this does give me an idea... make cyclic data disallowed by default, just to cover the common case where people don't use it and don't even want to think about it.

Re time formats: global coordinates will always start with a slash, so 12:00:00/-130/-172. UTC offsets will always start with + or -, and be 4 digits long, so 12:00:00+0130 or 12:00:00-0130.

The validation rules are very specific, and that does complicate the text format a bit, but this drives to the central purpose of it: The text format is for the USER, and is not what you send to other machines or foreign systems. It's for a user to edit or inspect or otherwise interact with the data on the RARE occasions where that is necessary. So the text format doesn't need to be fast or efficient, only unambiguous and easy for a human to read. You certainly shouldn't open an internet connected service that accepts the text format as input (except maybe during development and debugging...) In fact, I would expect a number of CE implementations (such as for embedded systems) to only include CBE support, since you could just use a standalone command-line tool or the like to analyze the data in most cases.

Re: subfields. That would make it harder for a human to read. The text format sacrifices some efficiency for human friendliness and better UX. Parser logic re-use isn't really a priority (other than making sure it's not OBVIOUSLY bad for the parser), because text parsing/encoding is supposed to be the 0.0001% use case.

It's not super easy to add new types to the text format grammar, but that's fine because human friendliness trumps almost all, and adding new types should be done with EXTREME CARE. I've lost count of all the types I've added and then scrapped over the years. It's really hard to come up with these AND justify them!

The ANTLR grammar is actually more of a documentation thing. I've verified it in a toy parser but it's not actually tied to the reference implementation (yet). The reference implementation currently is similar to a parser combinator, with a lot of inspiration from the golang team's JSON parser (I watched a talk by the guy some time ago and was impressed). But at the same time I'm starting to wonder if it might have been better to implement the reference implementation as just an ANTLR parser after all... leave the optimizations and ensuing complications to other implementations and keep the reference implementation readable and understandable. The binary format code is super simple, and about 1/3 the size of the text format code. The major downside of ANTLR of course is the terrible error reporting.

Post reply on HN