855 karma · joined December 5, 2010
My view is, everyone has access to chatgpt and github copilot, and so the idea is to provide value in excess of what chatgpt/copilot can do. Part of that is embedding it in the UI, but (especially for internal tools, which tend to be shorter) the improvement isn't huge over copy/paste or using copilot in vs code.
However, beyond UI integration, we can intelligently pull context on related files, connected DBs/resources, SDKs you're using, and so on. And that's something chatgpt can't do (for now). The quality of response, from what we saw, dramatically improved with the right docs and examples pulled in.
And yes, gpt4 does much better on JS (React specifically) and Python. It's just whatever it's trained on, and there's a ton more JS/Python code out there.
3 - correct, the code is built and pushed to us, similar to Heroku.
Our value prop ultimately is that 1) you can build tools like admin dashboards, data migration scripts, one off devops operations, etc, into production grade web apps and 2) you can do this using code!
It's probably easiest to explain in terms of what a developer does on Airplane:
1. Dev writes code (e.g. see our Getting Started for views[0]) - this can be simple Python scripts, JS views, shell scripts, etc.
2. Dev uses the `airplane` CLI locally to run and test the code
3. Dev runs `airplane deploy` or pushes to GitHub to deploy the code to Airplane
4. Dev's teammate (or dev) can now visit app.airplane.dev to run the code (views, tasks, runbooks) - the execution defaults to Airplane's servers, but you can also use our self-hosted agents[1] to move the execution (data plane) to your own cloud environment.
It's similar to GitHub actions in architecture (but for a different domain).
[0] https://www.cloudflare.com/learning/network-layer/what-is-th...
Airplane is a platform for quickly building internal tools. We let you turn scripts of various types (Python, JS, shell, SQL, REST, ...) into lightweight internal apps for your support, operations, and other teams. Today, we provide UIs, notifications, permissions, approvals, audit logs, and more out of the box. In the future, we'll support increasingly more complicated workflows and interfaces.
I was previously CTO at Benchling (YC S12) and Ravi previously co-founded Heap (YC W13). Across our companies and many others we've talked to, we've seen various combinations of chatbots, scripts, and Jira tickets adding friction, interrupts, and errors to processes across the entire, well, company. We hope Airplane serves as a useful tool to tackle these problems.
We'd love to hear your feedback on Airplane! It's free to sign up and start using.
Right now, a dev will 1) VPN to get shallow network access and 2) SSH over VPN to get deeper network access through the bastion container. Something like a database is security group'd off so that you need to be on the bastion container to access.
My question - would Twingate be able to support an ephemeral use case like this? I'm thinking ideally it can be launched as a sidecar container, and a dev could SSH through the twingate container. A lot of solutions I see don't seem to handle ephemeral situations super well, so I was curious.
Hi there, thanks for the feedback! The 2 examples in the write-up are: 1) Molecular Weight: weighted sum across amino acid sequences, using amino acid weights defined in [1] 2) List Concatenation: aggregate lists of added resistances (like ['Ampicillin', 'Kanamycin']) across itself and all ancestors
These are simple, and can be expressed as formulas in Excel or functions. They take < 0.5 s.
A more complex biochemical property for antibodies that can't be as easily expressed in Excel is isoelectric point ([2], see example BioJava implementation at [3]). It requires a binary search, but the search space is constant so usually these calculations finish < 20 s.
Since our implementation is in Python, we can wrap the function in try/catch and, in the catch block, log the error and set the failed computation status.
[1] https://www.promega.com/-/media/files/resources/technical-re... [2] https://en.wikipedia.org/wiki/Isoelectric_point [3] http://biojava.org/docs/api1.9.1/src-html/org/biojava/bio/pr...
Benchling builds software that powers life science research. Our customers include academia (MIT, Harvard, Stanford, UCSF, Berkeley, etc), biotech (startups and IPO), and large pharma - each improvement we make to our platform directly accelerates progress on cutting-edge CRISPR research, cancer therapeutics, synthetic biologics, and more.
We're looking for engineers who love building things and care about the impact on the future of research and, by extension, society. We've built: an IDE for DNA, a version of Google Docs for biology, and an API platform to power research automation. You'll build the next arc of our platform, as we expand into broader workflows, new science, and new ways of connecting machines and scientists with the Benchling platform.
Apply: http://grnh.se/ocnhd0
Most of the major research organizations working with CRISPR leverage Benchling -- the Broad Institute, various labs at Berkeley, companies like Editas, etc.
Shoot me an email: josh at benchling dot com
If anyone else knows, that'd be helpful - I'm thinking of just buying a ton of *.smalls...
// Edit: Oops, maybe I misunderstood the parent. Sibling's right; you'd need 256 small RIs to make up for one 32xlarge RI. I'm wondering why we should ever buy 32xlarge RIs and lose granularity.
We use fast languages when we need them. Python is just parsing a regex to generate constraints - for DNA search, parsing a 1000-char regex is super fast and rarely an issue.
In this case, we're already at sub 100ms searches (usually sub 50ms) so I don't see much benefit from playing around with L1 caches and JIT-ing when higher-level structure already gives the perf characteristics we need.
As for why we were using ES for the rest of search: we were using it for things like language stemming, matching terms with "slop", things like {'minimum_should_match': '3<67%'} (require exact matches if 3 or less terms, 67% if more than that), searching _all to match anything in the document, etc etc. I think a bunch of these (maybe even all) you can do in PG, but it was way easier to get going with ES.
ES is also distributed, which makes scaling up and doing maintenance a lot easier - a bunch of times we just threw new nodes at it and remove old nodes that had gone bad.
And yeah, Python is a strict requirement since the rest of our code is in Python - figured it wasn't worth throwing in another language when a rough parser worked.
hi! resident scientist at Benchling here! searching near-exact sequence can be really useful! for example, sometimes i would like to find if any of my plasmid has a certain signal peptide, it would be so hard without this search algorithm because so many DNA sequences can be translated to the same signal peptide. it would be great if i could just paste the amino acids and i could identify which plasmids contain the signal peptide.
Maybe it'd be more useful if you're using a single DB for a multi-tenant setup, and you know each tenant's data is strictly isolated?
Do you have a way of generating state machines, or are they hand coded? Is it a perf optimization, or does it help integrating domain-specific logic?
Maybe genomics doesn't have to be so memory hungry. 8)
I mentioned it in a comment below, but our constraints are a bit different once you start supporting multiple genomes - we could've been clearer about that in the post for sure.
The main reasons we decided against a GPU-based approach were cost and scalability:
- We support a dozen+ reference genomes (eg for difference species), and plan to support a lot more (including eventually supporting custom genomes that users provide). Assuming we want to support a few concurrent searches against the same genome, we'd need a few GPUs per genome, and this gets expensive pretty quickly on AWS.
- Our fleet is now non-homogeneous, and now if machine X fails we need to restore machine X' with the same set of genomes.
- If certain genomes are more popular than others, we'll likely have GPUs spun up that aren't being used much (only one lab might be investigating a certain genome, for example). I suppose you could swap genomes in and out of memory as they're accessed, but again it's more complex to manage resources.
- Our current approach allows us to add genomes ad-hoc - hypothetically, you could point us to your own genome on S3 and we'd be able to work with it.
We hint at it towards the end, but we're actually switching to AWS Lambda soon - based on early calculations, it could cost us as little as $50 a month to run everything!
Sorry for the barrage of questions, just really hoping to find a decent tool to clean up CSS...
So far the best reasoning I have is that we're a mostly-dev team, and that there's something for non-devs that is appealing in Slack, but surely it's not a prettier interface? I'm genuinely curious, as I'd like to justify switching to the prettier product. :)
Also, although I've found that ReactJS tends to encourage a more modular component structure (which I'm personally a fan of), there's nothing stopping you from laying out large chunks of a template instead of small snippets.
> This doesn't mean there isn't any evidence--it just means that their internal investigation didn't find any.
Of course the results of the investigation tells us nothing about things outside the investigation. Is that not assumed? How many 3rd parties does it take before this is not true?
Apologies if I sound irate, it's just disappointing that accusations that seem to have little basis (huge disclaimer, purely based on news coverage and this published report) can cause a founder to leave his company.