dsanchez97 | 3 years ago | on: Cdev: A New Python Serverless Development Framework
dsanchez97's comments
dsanchez97 | 3 years ago | on: Show HN: Chunk – Code sandbox for back-end devs
dsanchez97 | 3 years ago | on: Ask HN: Recommendation for the mom of a near-college-aged “tech geared” student?
Although they can not provide detailed and expert level guidance, I still turn to them for career and life advice. I try to explain anything I am working on at a level that they can understand, but even then, I have to weigh their guidance against the fact they do not share the same context as me or someone in the field. It came a bit faster than both they and I expected, but I think all of us have realized we reached a point where they can't provide all the guidance I need and that it is on me to find mentors and decide the path that is best for me.
dsanchez97 | 3 years ago | on: Running Containers on AWS Lambda
dsanchez97 | 3 years ago | on: Running Containers on AWS Lambda
[1] https://www.youtube.com/watch?v=A-7j0QlGwFk&ab_channel=Insid...
dsanchez97 | 4 years ago | on: Show HN: Stacktape – Full power of AWS with Heroku-like experience
Are you using a custom IaaC management tool for the deployments, or is it compiling down to something like Aws Cloudformation or Terraform Providers?
dsanchez97 | 4 years ago | on: Scaling lessons learned at Dropbox (2012)
dsanchez97 | 4 years ago | on: AWS Lambda function URLs: Built-in HTTPS endpoints
If you want the developer experience of Django with the benefits of Serverless Compute platforms check it out!
dsanchez97 | 4 years ago | on: A magical AWS serverless developer experience
With all that said, I am working on building a framework that I would describe to the crowd here as Django for Serverless. It is in early stages but you can check it out at https://staging.cdevframework.io/. One of the main focuses is to make it easier to write code that is not dependent on running on a Functions as a Service (FaaS) model, so that your code can eventually be bundled up and deployed on a traditional server when a FaaS platform becomes uneconomical.
dsanchez97 | 4 years ago | on: Ask HN: Best SaaS Boilerplate?
dsanchez97 | 4 years ago | on: My First Impressions of Web3
I played a decent amount of Runescape growing up, so when I first heard of NFT's I naturally thought of that game. I would definitely find intrinsic value in truly owning an NFT of some of the rare in game items. And knowing that even if Jagex (parent company) disappears that I still have ownership over the items definitely adds a lot of value.
dsanchez97 | 4 years ago | on: Stack Graphs
dsanchez97 | 4 years ago | on: Stack Graphs
Even with that flexibility, there are still some things that just weren't possible because of how configurable python is at runtime. For example, someone could write a factory style class that dynamically creates python object instances based on a passed in string that represents the class the object will be of. Then they could pass user input into this factory making the created objects completely dependent on runtime input.
I would wage 99% of python written doesn't use these kinds of runtime abilities, and it probably isn't a great practice to use them in general from a maintainability point of view but they do exist. My solution to this is that if you are sophisticated enough to be using these features then you should be able to understand why my tool can't capture that information from the AST.
Not sure if that solution would work for what you are working on, but I figured I'd let you know about my experience because it can get gnarly quickly once you start thinking about all the things that are possible in python.
dsanchez97 | 4 years ago | on: Stack Graphs
When python resolves 'import' statements, it looks for the modules based on the PYTHONPATH. Although not done that often, it is possible to modify the PYTHONPATH at runtime, changing what an imported symbol will resolve to. How do you handle situations like that?
Just from a hypothetical stand point, someone could take advantage of this to make it seem like the library is linking to a safe implementation of a function such that when using this feature people are directed to the safe implementation. Then at runtime without the user knowing, they could dynamically change the PYTHONPATH so a malicious version of the function is loaded.
dsanchez97 | 4 years ago | on: You Can't Buy Integration
If I am at an organization and not directly on a software development team and want to do a simple data transformation between two systems, how would I go about getting an environment to run my process? Even if I know how to write it using a general purpose language there are probably too many steps to go through to get a server environment to run my code on. With a low code solution, I can get my simple process running and automated much easier.
A little while ago there was an article about the python environment run at big banks that allow banking analysts to easily use python to solve their day to day problems. The banking python system was built to allow these people to quickly write python without much organizational overhead and therefore saw wide spread adoption among non traditional software developers.
I have been thinking about this space because I am trying to build a platform on top of serverless (FaaS) platforms that would make it easy for companies to empower workers to use general purpose programming languages to solve their business problems.
dsanchez97 | 4 years ago | on: Patents in Open Source: the important parts of real cases
dsanchez97 | 4 years ago | on: Patents in Open Source: the important parts of real cases
dsanchez97 | 4 years ago | on: Patents in Open Source: the important parts of real cases
dsanchez97 | 4 years ago | on: Patents in Open Source: the important parts of real cases
A hypothetical example is that a small toy maker comes up with the idea for the Big Wheel (https://www.amazon.com/Original-Big-Wheel-Inch-Tricycle/dp/B...). They patent the design for the concept and begin manufacturing the Big Wheel. Once on the market, a big toy manufacturer could easily begin producing the exact same product because they have the resources to, so the fact that it is easy to reimplement does not mean that it is contradictory for the inventor to want a patent. The patent on the 'invention' of the Big Wheel would be the only thing the small inventor has to protect themselves.
I know that the world and community has benefited from open source and freely available software and that there is a bad history of software companies using the patent system in debatable ways, but there are also cases where it can look like big companies take advantage of the free and open ecosystem in ways that disincentivise future innovations.
dsanchez97 | 4 years ago | on: Patents in Open Source: the important parts of real cases
I am working on a startup idea that has a component that I would like to 'defend'. I am trying to improve a process for developers and I think this new component is a big piece of solving the problem. The component is a unique/new part of a pipeline, but there are already established companies working on pipelines to solve the same problem. This component executes on the client side, so it can not be kept as a secret process that happens server side. I know that once it is viewed by competitors, they could reimplement the idea without directly using the 'source code' and add it to their pipeline/product. I want to be able to distribute my project to potential users and allow them to use it freely while also preventing competitors from copying the ideas into their own products.
I know that patents were originally created to incentivize innovation by preventing established competitors from simply copying ideas/processes from new competitors, and I feel that I am in that situation.
One idea I had is to separate the unique component into its own library then give my own project the right to license/distribute the library, but I do not know if there are any off the shelf licenses that support that.
I am excited to share an early Alpha of Cdev, a new Python Serverless Development framework. Cdev is designed to help developers build and deploy Serverless applications on AWS quickly and easily by providing out of the box optimizations for a developer’s project. Although Serverless Development can provide many benefits, it can come with many challenges that require developers to change their workflows and development experience. Cdev was designed from scratch to tackle the problems that arise with Serverless Development while providing a familiar experience for Python developers.
Some of the key features of Cdev include:
- Easy deployments: Cdev makes it easy to deploy your code to AWS Lambda by allowing you deploy a Lambda function with just a single extra annotation.
- Serverless Optimizations: Cdev provides optimizations that understand and parse out individual functions from files to automatically create artifacts that are optimized for Serverless Platforms.
- Automated Third Party Package Deployments: Cdev manages the bundling of third party packages used by functions.
- Infrastructure as Code: Cdev provides high level constructs for other Serverless Resources (DynamoDB, SQS, S3, etc) that easily integrate with your Serverless Functions.
- Isolated Environments: Create isolated development environments in the Cloud using the Cdev CLI.
When I first began learning about Serverless Development, one of the points of friction that felt unique to Serverless Development was having to break my functions into individual files or accept tradeoffs(https://dev.to/cdkpatterns/learn-the-3-aws-lambda-states-tod...) around package size, cold starts (latency), and purity of each Serverless Function only containing its own logic. To solve this issue, I created a process that analyzes a project’s Abstract Syntax Tree to understand and create optimized deployment artifacts. The created artifacts contain only the code necessary for an individual function, which provides the ability to track changes to individual functions even if they are contained in the same file.
One of the other challenges when transitioning to Serverless Development is understanding the process of packaging a function’s dependencies. Using the outputted artifacts from the Syntax Tree optimization, Cdev provides automated bundling of relative and packaged dependencies for your functions. These created dependencies are optimized to only contain the dependencies used by an individual function, which helps lower the cold start of your functions and avoid platform limitation regarding package sizes.
These optimizations are provided as part of a larger framework that strives to provide an approachable place for any Python developer to begin building Serverless applications. The framework provides high level Infrastructure as Code components for the most popular Serverless Resources on AWS that attempt to simplify connecting different Serverless resources. Along with helping developers get started fast, Cdev provides features like isolated deployment environments to help keep development fast as a project grows.
Currently, the framework is in an early alpha stage and has many rough edges, but it has all the features necessary to start building Serverless Python projects. I hope that Cdev will be a valuable tool for Python developers who want to build and deploy serverless applications quickly and easily. Thanks for checking it out and looking forward to any feedback!