I built Codeblox to allow developers to connect code together like building blocks. This makes it easy to build sequences (series of blocks) to do all kinds of things.
Every block and sequence gets an API endpoint (POST api.codeblox.io/username/blockName) and you can also schedule them to run daily.
Each code block specifies an input and output type (text, number, location, etc) and you can build sequences by combining blocks that fit together.
How it Works:
- CLI tool packages up your directory as a ZIP file, and uploads it to S3
- That filename is stored in the DB
- When someone invokes your code from the website, the back-end (Node.js) creates a Lambda function pointed to your ZIP in S3, invokes it and returns the result
- For sequences, do the same thing, except the client handles making each sequential call
Alan - nice work. I'm impressed with easy encapsulation being included in this on day one. I follow and have also built developer tools at the last 2 startups I've done. People often forget that part but it's really what makes the whole thing scalable IMHO.
Now a question: have you thought about just running code blocks on the client? It would have limitations, but I guess most tasks could be accomplished, and the backend running costs would be enormously smaller.
There's also the problem of executing other people's code in your visitors machines, but maybe that isn't so bad -- or could be solved by running a better language than raw Javascript.
I know this sounds like a silly idea, but what do you think?
this is what I built actually, though not active anymore. Users can upload functions with defined parameters and output, which can be strung together. Very ETL oriented. Each of the function will run as a web worker.
An example that I did with the platform was, parse Skype chat log (500MB ish) of it, and look search for specific strings and dump it back as CSV by stringing 3 functions together, all running inside web workers.
I thought about it, but the goal is for codeblox to be language agnostic, so it would need to run server side. Eventually I plan to add Python and Java support. It would reduce costs though, that's for sure.
Ok, just one more quibble: I have the impression that since blocks are small this system is ideal for small pieces of code and has already a great a web interface for input/output, why not let us edit blocks online and test them live with hand-inputted values while we edit? Glitch.com, for example, has a web editor by default, but it is so cumbersome to try the app while editing it -- the contrary is true on Codeblox.
This is a nice concept. It seems like making coding more social and I am excited to see people making interesting things with collaboration.
Right now we can assemble blocks sequentially. It would be awesome if those can also be arranged conditionally (by some programming language- a programming language to arrange blocks of code,eh).
I think this would be very useful for non-coders. For example, some days ago a friend of mine was struggling to get just the emails addresses from a list of names+emails he had in an Excel file.
Yes I think so too. Long-term I'd like to have a extensions (Chrome, desktop, etc) that give access to running blocks from anywhere. I think this makes code much more usable to non-developers.
alanfriedman|8 years ago
I built Codeblox to allow developers to connect code together like building blocks. This makes it easy to build sequences (series of blocks) to do all kinds of things.
Every block and sequence gets an API endpoint (POST api.codeblox.io/username/blockName) and you can also schedule them to run daily.
Each code block specifies an input and output type (text, number, location, etc) and you can build sequences by combining blocks that fit together.
How it Works:
- CLI tool packages up your directory as a ZIP file, and uploads it to S3 - That filename is stored in the DB - When someone invokes your code from the website, the back-end (Node.js) creates a Lambda function pointed to your ZIP in S3, invokes it and returns the result - For sequences, do the same thing, except the client handles making each sequential call
Stack: FE: React/Redux BE: Node.js, MySQL, AWS, Redis
I'd be really interested to hear any feedback or feature requests.
I'm also looking for a co-founder to work on this with (NYC or SF area), so if you like the idea just reach out at info [at] codeblox [dot] io
Thanks! Alan
addcn|8 years ago
staple|8 years ago
fiatjaf|8 years ago
There's also the problem of executing other people's code in your visitors machines, but maybe that isn't so bad -- or could be solved by running a better language than raw Javascript.
I know this sounds like a silly idea, but what do you think?
hyuuu|8 years ago
An example that I did with the platform was, parse Skype chat log (500MB ish) of it, and look search for specific strings and dump it back as CSV by stringing 3 functions together, all running inside web workers.
alanfriedman|8 years ago
fiatjaf|8 years ago
fiatjaf|8 years ago
aryamaan|8 years ago
Right now we can assemble blocks sequentially. It would be awesome if those can also be arranged conditionally (by some programming language- a programming language to arrange blocks of code,eh).
alanfriedman|8 years ago
fiatjaf|8 years ago
alanfriedman|8 years ago
fiatjaf|8 years ago