I'm a devops software engineer with skills in Python, Java, Javascript, Terraform and C.
You can email me sam@samsquire.com
Some highlights of what I am building: My blog is underneath this table. My code is usually Zero Clause BSD licenced unless it incorporates other people's code.
Project | Description | Link |
---|---|---|
Automated Assembly Program Synthesis (Python) | I implemented the A* algorithm and run it in parallel to do code generation to automate the synthesis of programs between states. | samsquire/sliding-puzzle-codegen-memory |
JIT compiler (C & machine code) Assembly expression compiler (Python) | An amd64/x86-64 JIT compiler for a Javascript-like language and a Python expression compiler | samsquire/compiler |
Interactive Document editor (Javascript, nodejs, Pouch, Ruby, Python) | An interactive environment for writing documents that are inter-referential | screenshots samsquire/liveinterface project samsquire/live-interface |
Pipelined Graphical Build server and GUI (React, Python, Kubernetes, Hashicorp Vault/Consul/Packer, Prometheus, Kibana) | A command line tool with GUI for bringing up environments with Terraform | https://devops-pipeline.com/ (homepage) samsquire/mazzle samsquire/mazzle-starter |
Register allocation (Python) | A register allocator in Python using a graph colouring and precolouring algorithm. | samsquire/register-allocation2 |
C Parser | An incomplete parser for the C programming language | samsquire/c-parser |
Multithreaded nonblocking barrier runtime (C) | A C program that runs tasks in threads without locks for high throughput | samsquire/assembly |
Multithreaded ringbuffer (C) | An multithreaded ringbuffer written in C inspired by LMAX Disruptor that sends messages between threads without locks. | samsquire/assembly |
Distributed pseudomultimodal (SQL/Graph/Document/DynamoDB-like) Database (Python, Flask) | A toy multimodal distributed database that uses Rockset converged indexes | samsquire/hash-db |
3-way text diff (Python) | A 3-way text differ based on Myers algorithm | samsquire/text-diff |
Eventually consistent replication protocol (Python) | A epoll based Python server that asynchronously replicates | samsquire/eventually-consistent-mesh |
Journal #1: 100 Ideas for Computing | A journal of ideas for computing | samsquire/ideas |
Journal #2: Another 85+ Ideas for Computing #2 | A journal of ideas for computing | samsquire/ideas2 |
Journal #3: An Extra 100 Ideas for Computing #3 | A journal of ideas for computing | samsquire/ideas3 |
Journal #4: Additional 100 Ideas for Computing #4 | A journal of ideas for computing | samsquire/ideas4 |
Journal #5: Ideas for Computing | A journal of ideas for computing | samsquire/ideas5 |
Blog: tech blog | A blog of thoughts | samsquire/blog |
Samuel Squire's personal tech blog
Ordering in a neural network is interesting.
I don't know if Ansible uploads code and runs it unrestricted by stdout/stdin streams connected by TCP or if the buffering of the network protocol in the way blocks Ansible from running code at native speeds.
Without thinking of graphical user interfaces, user experience designers should decide on the verbs that I can do with my account and provide these in an app, on a phone, live chat, or website.
When applying for jobs, it would be nice to apply through a centralised system that tracks our progress on each job at the same time.
Why is it that to get something done it requires a person to understand the steps and there's always a form that isn't digitised that needs scanning and sending?
Subscription payments, banks can do that
Taking payments should be easy
I wonder if it's possible to find unrepresented ideas in vector space and then map them to tokens? Rather than use a prompt to search vector space, generate interesting prompts from vector space that are unexplored, unrepresented by existing tokens.
I feel we need a unit test that tests that everyone has what they need and if a change would prevent that being true. Like a check list that prevents undesirable states from occurring.
Simple statements about what should always be true and the steps to take to reverse what is preventing something being true.
The /usr
directory in Linux.
Describe imaginary technology - hope someone builds it.
Linux, Postgres.
It's upsetting that good ideas fall by the wayside. Take the Java Virtual Machine for example. It runs everywhere! It solves cross platform for you, but there are very few develop desktop applications for it.
When thinking of new things you can either go deep or broad. If you go broad, you can cover a lot of shallow ground. If you go deep, you can learn insights that reveal new ground you didn't see before. In the computer industry, we learn new abstractions and build upon abstractions, but sometimes there is an idea where people go very deep and there is diminishing returns or the idea wasn't that good to begin with. People create kingdoms of what they understand and build upon what they understand as intuitive. We are all different in what we understand, at different levels of understanding.
In Haskell, we replace the the complexity of the concrete with the complexity of the abstract. Is it superior or just different?
The web feels very different from how it felt in the 2000s. People are split between different websites, mobile applications and different social media and social networks.
- RSS I see this icon a lot less frequently nowadays.
I am encouraging you to create a GitHub repository for the following topics:
- wants -
- blog
- society
- personal manifesto - how you plan to conduct yourself
Buying a product or service should feel good and feel satisfying, like you gained something of value, worth more than what you paid. Most websites don't have this property.
Would you pay for Google? Facebook? TikTok? People spend all their attention on these applications but not their money.
Going to a website should feel valuable. I remember when growing up I was on holiday and I helped a couple create a Hotmail account in the hotel computer room. It felt valuable to have a Hotmail account. I remember when Tripod and AngelFire were a thing, free webspace was a thing, it felt valuable.
How can you charge money before you've demonstrated value?
I don't like the Internet attitude that someone else should pay for it or that it should always be free. If something is free, you're relying on the donation or investment of someone else's time and resources. That's not sustainable.
There's a shelf life for free things and it's not forever.
On the internet, I feel people don't like monetization, it tends to deteriorate experiences. A mass of people represents a fire hose of users spending, attention and data: that is extremely valuable. It's just poorly directed at where it can do the most good. If you try harvest it, that disrupts it.
Everybody has costs. A very small website costs at least $3 a month. People enjoy using services for free and are extremely fast to abandon when the site or app begins to become non-free. That $3 website can handle at least 100 simultaneous concurrent users.
In the open source world, people expect open source developers to do what they want them to do, not allow the open source developer to do what they want.
Monetization makes things worse, but it doesn't have to.
Why are we building the same abstractions of packaging again and again, repeating the build process for slightly different operating systems?
High fidelity stereo was something many people were invested in but now it has become a niche hobby. The same is happening to desktop computers.
Businesses want someone with 15 years experience for something that has only existed for 10. The standards of Job Descriptions are very high. They represent a "T" shaped person, someone who is good at everything. Teams are asked what kind of person are they looking for and they get the perfect description of someone good at everything.
01/06/2023 When a language is insufficiently advanced for what you want to do, most devs push through
Each programming language ecosystem is limited in its size because of the amount of work that needs doing to support it. Each language brings its own orthogonals of interactions between its type system, garbage collection, the stack, semantics. It's easier to create a language than read the implementation of someone else's.
Callstack logging is awesome
https://callstacking.com/ is awesome
It must be obvious to others, but neural networks discover functions through relationships.
It would seem that everyone has their own way of thinking about problems and solving problems. We see many frameworks that are particular ways of looking at things.
- Java Applets didn't dominate the web, Flash did.
- REST and HATEOAS didn't work as intended - everyone implements REST differently and there is no standard client for browsing REST APIs. WSDL and Soap never gained the same level of popularity as REST.
- It seems UML is meant to make software readily and easily documentable and generatable.
- XML was a serialization format that would be standardised and everyone could use schemas to designate what data they accept and it could be validated. Even XML databases existed.
If you have no money coming in, how can you do things properly? You don't have resources to buy servers, rent servers.
The Amazon AWS strategy of adding services and standardising them on state of the art platform is really interesting. This model should be picked up by other big tech giants.
Large Language Models can transform and manipulate tokens meaningfully because they understand the relationships between vectors. They can explore vector space of concepts semantically.
Now we need to represent potential software models with a LLM and then be capable of transforming them. Imagine being capable of transforming your software architecture with a prompt?