Ask HN: Who wants to collaborate?
For free to make the world better or to start a startup.
If you do, please post your project or your skills!
For free to make the world better or to start a startup.
If you do, please post your project or your skills!
If you’re interested in conservation / sustainable development and associated technologies let me know! Always looking to collaborate and bounce ideas off others.
To simulate this invention:
- have a dog
- put something smelly on your thumb
- extend arm to point thumb towards dog
- as the dog is within 5-10cm radius of your thumb, press your thumb against their nose (and say the obligatory "boop")
- imagine your had something to extract noseprints from their nose on your thumb
https://gorillafund.org/karisoke-research-center/noseprints-...
Really cool stuff. I wonder if face detection is sufficient too? It has been proven to work for brown bears [0].
I have also been doing some open source work [1] to democratise object detection in this space but I haven't had the time to make improvements to the project in a while.
* [0] http://bearresearch.org/
Seeing as you are in DRC. I've worked on a number of projects there. Maybe you might be interested in checking out an app we made to help NGO/media etc learn about and manage their digital and physical security? Lots of groups on the ground there have used it in situations like kidnap, targeted malware etc.
It's called Umbrella. It's free, opens source, on ios and Android available in many languages. If you are interested, have a look at at https://www.secfirst.org or ping me via the email in my profile! :)
This looks like a behavioral modification tool, to prevent kidnap, etc. Two questions: is there a scenario database of DRC "actualized risk", that describe real kidnaps, extortion, etc ideally with root cause analysis? What is your revenue model[1]? Okay, 3 questions: what do you think of tools like what NSO provides for client recovery?
1 - Speculation: do you make revenue by providing a marketplace where security service providers can market to consumers?
So at the moment the advice we give is not country specific. We have slightly different levels depending on risk, threat model and skill. Building a logic to do country by country was something we tried but is incredibly hard.
Our revenue model is based on a few things. We got grants to build the initial version, we also create paid white label versions for organisations that want their own and we do security training and consultancy services.
Regarding NSO Group. Well considering we work every day with journalists and activists, some of whom have been targeted by NSO...to say we despise what NSO does is probably an understatement.
NGOs jobs tend to be structured on topics as much as on functions, so making a shortlist of topical keywords might be helpful in the search to become aware of organizations. You should also look directly at organizations' staff lists, which are typically fairly open and have emails listed. One thing to be aware of is many nonprofits have tightly budgeted projects with specific needs, so getting your foot in the door on a less interesting project might be needed. Generalists can benefit here.
I know a few job sites that collect these kind of positions, some techy and some not:
https://greenjobs.greenjobsearch.org/
https://www.devex.com/jobs/search/
Last I will mention the nonprofit organization I work for - World Resources Institute (https://wri.org). We organize our work around seven global challenges: food, forests, water, the ocean, energy, climate, and cities. We do research, build data products and applications, organize partnerships. We help tackle some the largest questions related to how we collectively transition to a world where more than 9 billion humans have their food and energy needs met through fair economic and environmental systems.
PS: I love that autocorrect.
Gorilla tracking devices are likely to be intrusive and cumbersome for them. They are also known to help each other out and remove devices. For now, gorillas are tracked on foot by a team of rangers.
I think many programmers want to do something good ( preferably by learning) and are willing to spend time on projects like this.
Ps. Don't forget to submit it here ;)!
Where can I read more about this part of your work?
Now, I know most of the technical stuff we need, and my brother knows all the medical details (he's a physical therapist), but neither of us have built a startup before.
We have a plan on mind, but I would love to chat with anyone with experience building similar startups (a mix of software and hardware), or really anyone who's interested in this project.
We also plan on starting a crowdfunding campaign soon this month.
[1](https://www.ri.org/providing-life-changing-prosthetics-for-s...)
Who will pay for this? I imagine the recipients aren't rich.
Looking forward to seeing your announcement of a fund to deliver these charitably at zero cost to patients. :)
Good luck!
The goal is to collect sets from across the web (atm, mainly Gumroad and GitHub) that have open source licenses that allow for them to be available on a central site.
I then use a service called Typesense (https://typesense.org/) to make these all searchable.
It's a scratch of mine that I wanted to itch, and it has pretty strong usage (along with a limited user base; around 1k signed up users).
It's a fun project to work on, and I'd love help on this. Anything from design, front-end, back-end, product or marketing.
I tried to copy as well as open in new tab, got checkered.png instead. With noun project for example, one can right click and copy the image link, which can be pasted on drawio.
Could probably make it so you can right-click the image and open it in a new tab. Will take a look at that :)
2. I hope you're not paying for hosting, since places like Cloudflare and Netlify host static sites for free, and I think yours probably qualifies
3. It's free--what would you need marketing help for?
4. Have plans to monetize somehow? I can imagine a couple of ways you could do so.
Let me know if you'd want to contribute: oliver@iconduck.com
I have three primary areas that I am working on and would love to find serious collaborators:
1) I am building high-quality content for math, English language arts, chess, etc. (see [0] for a good explanation of what this looks like). This is primarily for my 2nd grade child, but I have also written hundreds of cards for high school level math, undergraduate level math, and programming languages.
For example, I used this approach to build an Anki deck that decomposed the NNAT test (i.e., a gifted program test) into atomic chunks and then demonstrated how sample NNAT questions were composed of those primitives.
2) I am eventually looking to leverage this content and knowledge to build turn-key resources for others. This is surprisingly challenging for reasons I won’t touch on, but it could profoundly improve learning outcomes for many people.
3). I am pondering how to enable richer sharing and collaboration between people. I have a number of patents in this space and can envision a few business opportunities.
----
took me a second, but I guess it's Microsoft Apple Meta Amazon Alphabet now
I like it, I hope it catches on. Right now I think it's just odd looking because it's unfamiliar.
I need to get back on Blind to make my memes propagate
https://quizlet.com/features/how-quizlet-works
I'm an engineer on the step-by-step Explanations team - if interested in learning more, shoot me an email (scott @ quizlet.com) and we can chat! Maybe this violates the objective of the OP - but it sounds like we'd have fun collaborating. We'd just be getting paid by the same company to do so.
1) Each person's internal representation of knowledge differs (see [0]). Therefore it is difficult to take someone else's questions and answers and expect them to make much sense, be at the appropriate difficulty, or even be relevant.
2) The current unit of collaboration is an entire deck. This is far too coarse grained and impedes finding and adapting relevant material. In addition, it is a pain to later sync if there are updates.
3) The current unit of work is a single card. This has some advantages, but also makes it harder to make changes, see the forest for the trees, and think holistically about knowledge.
> With StackOverflow/Wikipedia there's only one article/question/answer. With flashcards, people want to individualize their cards. As an example, for you as a foreign language learner, perhaps you want to include short clips from movies/youtube of someone saying a phrase like "Where is the library?", while someone else wants to use a clip of the same phrase from a podcast. The semantic content is the same, but the reification into a flashcard is not. You could possibly link to related cards like StackOverflow does in a sidebar... but I'm designing something that's more like concept learning. Each card is an Example of a Concept. The author can then move their Card/Example into what Concept they think it best fits - or create a new Concept if they can't find anything they like. Basically I'm building in the ability to group cards that have very similar content. By looking at all the various Examples/Cards, a person can choose what best suits their style - or make one for themselves by forking an existing card.
https://www.reddit.com/r/Anki/comments/nalar8/open_source_we...
Emailing you!
The goal: you (any programmer) should be able to use an open-source program, get an idea for a simple tweak, open it up, orient yourself, and make the change you visualized -- all in a single afternoon.
More details: http://akkartik.name/about
What I have so far: https://github.com/akkartik/teliva
Lately I'm spending a lot of time on the sandboxing model. It's nice to be able to download and run untrusted programs before we start trying to understand them. How to permit this without letting them cause too much damage, by explicitly giving them arbitrarily fine-grained permissions that are still easy to take in at a glance.
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 a demo of how this could look like for Django:
https://www.gibney.org/from_debian_to_web_app
It would be cool to have one column for each framework and then align them visually by feature. So if you want to compare how do you use a template, you can look at the "Let's use templates" row and have a quick overview of how it is done in Django, Laravel, Flask, Symfony, NextJS...
Each framework section could link to the developer(s) who wrote it.
If you want to contribute to the section for your favorite framework, send me a message!
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 << 'EOF' > templates/index.html
<h1>Hello World</h1>
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 << 'EOF' > templates/index.html
{% extends "base.html" %}
{% block content %}<h1>Hello World</h1>{% endblock %}
EOFIt's not tutorial-style, but it does contain hundreds of sample web apps (that all do the same thing, but still)
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.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.
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?
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.
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.
Give me a shout if you're interested in turning it into something - email is in my profile.
The primary feedback from friends has been it's cool, but hard to use without much of UI (current version is all shortcut keys). That's something I can fix in the next couple of weeks.
A harder problem is there's a decent chunk of knowledge workers with no experience navigating virtual 3D spaces. If you didn't grow up playing Quake, Minecraft etc you might find Temin frustrating to use for a little while.
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 honestly not sure if I know where everything is, or just how to get back to it. Speaking to a neuroscientist or similar would be great - https://en.wikipedia.org/wiki/Visual_memory#Current_theories
I'd also be keen to speak to anyone who has thoughts on Temin as a graph, as more recently I've been finding sticky notes mean multiple things and belong in multiple locations. https://temin.co.uk/#links does a rather poor job of explaining my current solution.
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.
Thanks for the book recommendation, I've started to read it. It's nice to get some history and depth to concepts I had some awareness of.
I do wonder how method of loci strategies stand up to bricks and mortar sticky note use in collaborative environments. In my day job I've felt other people moving and adding things to a wall as almost destructive if I didn't experience it happening (purely in terms of memory). As changes in Temin are written to a ledger a fringe benefit is you can play back what's happened while you were gone, which seems to sooth that.
For work, I also spend a lot of time writing/drawing/thinking with a pen, and most of the artefacts in my metaverse are created with a Wacom not a keyboard. Being able to remember where things are I put down to Temin, being able to remember what's there I put down in some part to that. I'm not going to trying to convert people who prefer to use keyboards, and I expect pen-first users will very much be a minority, but the research on retention when it comes to pen vs. keyboard is pretty compelling.
Also it could be an interesting intersection between laptop (where you create data and put things to the boards) and VR (where you navigate, process and work with data). I am not sure about MVP, but surely there is so many usecases, starting from personal collection of knowledge to teamwork, project documentations etc.
Great insight into the use cases for Temin depending on the I/O. It took me using a desktop and VR headset to form the same opinions. Initially I thought my VR usage would be higher, but it's below 1% of the total time I spend inside Temin. VR is also pretty good for presenting/telepresence.
Mixed reality excites me way more than VR, so I'm keen to skate more towards that technology long-term.
It's meant to be the launch of the SANTANET, the network of people choosing to play a game in real life: Satisfying All Needs Through Anarchogiving (SANTA). It's essentially performance art, as it's me living out a story I'm writing called "How Santa Stole Every Holiday." It's meant to be a set of incomplete riddles for people to expand on, as well as a place for coordinating a network of free giving.
Some of the riddles:
Complete the backronym of SANTANET. What can the NET stand for?
There's a finite number of human needs for surviving and thriving. Each need can be mathematically proven to exist, (perhaps through applying category theory, infinity category theory, or constructor theory?) One each need is proven to exist, what's the longest sentence you can make using the first letter of each need?
Are you a hidden Santa who may want to start helping giving to needs, rather than just giving toys people want?
No Elven Taskmasters
Feel free to reach me at contact [at] ricemethane.org
I created a GUI wrapper around a popular AI model for object detection for wildlife conservation [0]
The idea is that most ecologists don't have the technical expertise to run such models, so making their life easier is an important task. The use of AI also saves them loads of time. The project was born when I got in touch with New Zealand's Department of Conservation for volunteering opportunities.
I haven't had time to continue working on this; help is welcomed!
I basically have all the collaborators that I need, for the projects that I'm working on, but I think that it is a great thing, to encourage altruistic development.
It is my experience, that free work should be as good as (or better than) paid work. This is code quality, executable quality, documentation and support quality, user experience quality, etc.
I have found that many altruistic projects have great heart, but can sometimes fall short, in quality. Maybe as a result (or maybe it's a cause), they are often not taken seriously by the people that could most use them, and this can also make it difficult to get folks to take high-quality work seriously (I have a lot of experience with that).
When looking for collaborators. Tecchies often seek out engineers, but maybe they are better served, seeking out advocates, artists/designers, writers, testers and integrators.
In my experience, recruiting evangelists in the user community is incredibly valuable (and difficult; especially if "people skills" aren't our top talents).
We can also do damage, by pissing off these folks (I have done that). Free/Open/Altruistic projects can often be rather fragile, as motivation and engagement are the currencies we use. These are easy to dismiss or denigrate, when we are used to the traditional motivators of paid work.
I am having conversations with a few people to start Conduit Foundation: require all new construction to be EV ready. Have conduit installed whenever we build new parking. It will make it future proof to pull cable and install chargers later. This is a one time building code change with a continuous yield of new charge points.
Hit me up if you have any interest.
Will you be lobbying at the federal level of focused on state/local?
There are no federal/state building codes. There is a central authority (ICC), all cities start with ICC code and make modifications. We can also work with ICC, but the adoption cadence will be slow. ICC updates building codes yearly, but cities do not make yearly changes and every city does this differently.
We can with cities directly. Most city govts would be easier to approach and work with (we pay property taxes and live in the area!). We also have to work with ICC, its an international standard, we can think of all countries and not just US.
The plan is to pursue all possible paths and get this done as quickly as possible. US has 2 billion parking spots currently [1]. If we are building 1% new every year, in ten years we can have 200 million charging spots. Range anxiety would be put to rest. We have to put in charging first, this accelerates EV adoption.
[1] https://www.bloomberg.com/news/articles/2018-11-27/why-parki...
wild assumption, not a fact! This doesn't need to be net new on vacant lots, includes rebuilding existing lots. Any development has to adhere to latest city code.
Huh.
It's kind of neat to realize you can actually just go and do that. So easy to just write that sort of thing off as interminable because it will be hard. Very cool idea.
On a related note, I'm torn about applying the same idea to new residential constructions, and the minimum amount that would be appropriate to require. Such a concept would make for example running fiber straightforward and inexpensive.
https://github.com/robmsmt/SpeechLoop
Comparing speech systems can take a long time esp for a dev who doesn't have the background in audio/ml. How do you know which one will work best? Will new shiny transformer model perform well enough? Most end up using one of the big tech companies existing API to throw their data at. Whilst this is convenient, I think that it's a travesty that opensource speech systems have not are not as easy to use. I was hoping to change that to make it easy to evaluate and compare them!
I've been using Almond, but it's really not good. I don't know how I might help but I'm definitely interested in the results... if I could use a high quality microphone to open a program, select menus, and type accurately (and have commands to press arrow keys) I think I'd be all set. I would be able to do anything I wanted, even if it was a bunch of steps.
I remember Dragon Naturallyspeaking in like 1995 being basically capable of doing all of this, and I was able to completely control a computer in like 1995 with speech and now I can't. It's extremely strange for 26 years of development.
It is as if all the tools try to be so clever that instead of assuming the user can learn new tricks, to me it should be the same as learning to type or use a mouse. Yeah, I used to have to say "backspace backspace period space capital while" to get fine details, but at least it was possible. I could even select things with voice commands. I just hope that we don't lose sight of the value of voice recognition as a general input device in search of which model performs best on accuracy alone.
I've not heard of Almond, but I have seen the following projects which might be helpful:
- Dragonfly: https://github.com/dictation-toolbox/dragonfly
- Demo: https://www.youtube.com/watch?v=Qk1mGbIJx3s / Software: https://github.com/daanzu/kaldi-active-grammar
Far field audio is usually harder for any speech system to get correct, so having a good quality mic and using it nearby will _usually_ help with the transcription quality. As a long time Linux user, I would love to see it get some more powerful voice tools - really hope that this opens up over the next few years. Feel free to drop me an email (on my profile) happy to help with setup on any of the above.
What would help much more as an end-user would be integrating things nicely into window managers. I am optimistic that it is on a roadmap, but I don't really get how all the pieces fit together. I hope in Linux it doesn't end up somehow requiring every application to implement support individually, it seems like a clever HID driver could do it.
I suppose such things could be model independent.
You can still make use of it via Dragonfly (see also Caster[0]) as mentioned by a sibling comment or by using Talon[1] or Vocola.
Having used a computer 90% hands free for about a year and a half back in 2019, I chose Dragonfly then, but would probably choose Talon nowadays - less futsing about and it has alternative speech engine options.
I also recommend looking into eye tracking: the Tobii gaming products[2] work well for general computer mousing with some software like Talon or Precision Gaze[3] - well enough for me to make a hands free mod[4] for Factorio, for example.
[0]: https://github.com/dictation-toolbox/Caster [1]: https://talonvoice.com/ [2]: https://gaming.tobii.com/product/eye-tracker-5/ [3]: https://precisiongazemouse.org/ [4]: https://github.com/caspark/factorio-a11y
The best on the market AST in my opinion is Speechmatics, but to use it commercially you need to deposit $10k. Btw there are services that let you train your own model, i.e. https://www.defined.ai
Also as an idea, to use GPT-3 and correct any model response (punctuation, summary) but its gonna be expensive!
One big advantage of P2P is partition tolerance and ability to work on isolated networks in an emergency.
It's a twin format, one binary and one text, so that you can input / edit the data in text, and then it passes from machine to machine in binary only (or convert back to text if a human needs to inspect it). The binary format is designed for simplicity and speed, and the text format is designed for human readability.
Both formats are designed for security and minimal attack surface, while providing the fundamental data types we use in our daily life (so you're not stuck doing stringification and base64 fields and other such hacks).
I've pretty much completed the base format [2], and am 90% done with the golang reference implementation [3] plus some standard compliance tests, but I could use a lot of help:
- Reviewing the specifications and pointing out issues or anything weird or things that seem wrong or don't make sense.
- Implementations in other languages.
- Ideas for a schema.
- Public outreach, championing online.
[1] https://concise-encoding.org/
Regarding CE, what would be the use case? APIs, data at rest, inter-service communications? If data at rest meant for analysis, then there probably are a handful more formats to compare against.
If one doesn't wish to decode the whole message into memory to read it, FlatBuffers [5] can be checked out which is also supported as a message type in gRPC. It is similar to what is used in some trading systems. There is also a FlexBuffers variation if you'd want something closer to JSON/BSON.
Must say however, I found it cool that you have some Mac/iOS GitHub repos. Definitely going take some time to check them out -- I used to develop iOS apps.
[1] https://developers.google.com/protocol-buffers/docs/referenc...
[2] https://github.com/kstenerud/concise-encoding/blob/master/cb...
[3] https://developers.google.com/protocol-buffers/docs/proto3#s...
[4] https://developers.google.com/protocol-buffers/docs/referenc...
[5] https://google.github.io/flatbuffers/flatbuffers_white_paper...
- Simple to understand and use, even by non-technical people (the text format, I mean).
- Low friction: no extra compilation / code generation steps or special tools or descriptor files needed.
- Ad-hoc: no requirement to fully define your data types up front. Schema or schemaless is your choice (people often avoid schemas until they become absolutely necessary).
Other formats support features like partial reads, zero-copy structs, random access, finite-time decoding/encoding, etc. And those are awesome, but I'd consider them specialized applications with trade-offs that only an experienced person can evaluate (and absolutely SHOULD evaluate).
CE is more of a general purpose tool that can be added to a project to solve the majority of data storage or transmission issues quickly and efficiently with low friction, and then possibly swapped out for a more specialized tool later if the need arises. "First, reach for CE. Then, reach for XYZ once you actually need it."
This is a partially-solved problem, but the existing solutions are security holes due to under-specification (causing codec behavior variance), missing types (requiring custom secondary - and usually buggy - codecs), and lack of versioning (so the formats can't be updated). And security is fast becoming the dominant issue nowadays.
Regarding some of the ASN.1 comparison characteristics, I'm not quite sure if I understand--there's a lot to read here, and it's likely I've missed something by a lack of acquaintance with your documents/specifications. But a couple comments:
- Cyclic data: ASN.1 supports recursive data structures.[0]
- Time zones: ASN.1 supports ISO 8601 time types, including specification of local or UTC time.[1] I'm not sure how else you might manage this, but perhaps it's not what you mean?
- Bin + txt: Again, I'm unclear on what you mean here, but ASN.1 has both binary and text-based encodings (X.693 for XML encoding rules[2], X.697 for JSON[3], and an RFC for generic string encoding rules[4]; compilers support input and output).
- Versioned: Also a little unclear to me--it seems like the intent is to capture the version of data sent across the wire relative to the schema used in its creation or else that it ties the encoding to the notation/encoding specification. ASN.1 supports extensibility (the ellipsis marker, ...[5]) and versioning,[6] but AFAIK there's nothing that forces a DER-encoded document to describe whether it's from the first release or the newest. Relative to security, it also supports various canonical encodings.
[0]: https://www.obj-sys.com/asn1tutorial/node19.html and X.680 3.8.61.
[1]: https://www.itu.int/rec/T-REC-X.680-X.693-202102-I/en (see X.680 §38 and Annex J.2.11)
[2]: https://www.itu.int/rec/T-REC-X.693/en -- X.694 governs interoperability between XSD and ASN.1 schema.
[3]: https://www.itu.int/rec/T-REC-X.697/en
[4]: https://datatracker.ietf.org/doc/rfc3641/
[5]: See X.680 3.8.41
[6]: See X.680 §3.8.95
Not sure if I missed something, but the link was talking about self-referential types, not self-referential data. For example (in CTE):
&a:{
"recursive link" = $a
}
In the above example, `&a:` means mark the next object and give it symbolic identifier "a". `$a` means look up the reference to symbolic identifier "a". So this is a map whose "recusive link" key is a pointer to the map itself. How this data is represented internally by the receiver of such a document (a table, a dictionary, a struct, etc) is up to the implementation, but the intent is for a structure whose data points to itself.> - Time zones: ASN.1 supports ISO 8601 time types, including specification of local or UTC time.
Yes, this is the major failing of ISO 8601: They don't have true time zones. It only uses UTC offsets, which are a bad idea for so many reasons. https://github.com/kstenerud/concise-encoding/blob/master/ce...
> - Bin + txt: Again, I'm unclear on what you mean here, but ASN.1 has both binary and text-based encodings
Ah cool, didn't know about those.
> - Versioned: Also a little unclear to me
The intent is to specify the exact document formatting that the decoder can expect. For example we could in theory decide to make CBE version 2 a bit-oriented format instead of byte-oriented in order to save space at the cost of processing time. It would be completely unreadable to a CBE 1 decoder, but since the document starts with 0x83 0x02 instead of 0x83 0x01, a CBE 1 decoder would say "I can't decode this" and a CBE 2 decoder would say "I can decode this".
With documents versioned to the spec, we can change even the fundamental structure of the format to deal with ANYTHING that might come up in future. Maybe a new security flaw in CBE 1 is discovered. Maybe a new data type becomes so popular that it would be crazy not to include it, etc. This avoids polluting the simpler encodings with deprecated types (see BSON) and bloating the format.
The Learn X in Y Minutes: https://learnxinyminutes.com/docs/edn/
A related talk by Rich Hickey that I think you'd find interesting: https://www.youtube.com/watch?v=ROor6_NGIWU
For a schema, I'd start with what CUE has done. The idea of types that constrain down as a lattice + a separate default path really resonates with me. https://cuelang.org/
IDL would be a level higher than the encoding layer, so yes you could use this as the encoding layer for an IDL construct.
For example:
- Protocol buffers have a text format mode: https://medium.com/@nathantnorth/protocol-buffers-text-forma...
- Thrift has readable-thrift which is a human-friendly encoder and decoder: https://github.com/nccgroup/readable-thrift
- Cap'N'Proto has a `capnp` tool for encoding/decoding text representations to binary which seems to be officially supported and documented! https://capnproto.org/capnp-tool.html
These libraries have been battle-tested by major companies in production, some protocols and implementations have gone through security audits, and in addition each of these formats already has many language bindings, for example:
- Protocol Buffer Third-party language bindings: https://github.com/protocolbuffers/protobuf/blob/master/docs...
- Apache Thrift language support: https://github.com/apache/thrift/blob/master/LANGUAGES.md
- Cap'N'Proto in other languages: https://capnproto.org/otherlang.html
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 target those. This is a fundamental trade-off so you can't have both.
- readable-thrift is a diagnostic tool. You wouldn't want to be inputting data like that. I want the text format to be fully usable by non-technical people, like JSON is.
- the capn proto tool page doesn't seem to document how the text format works (or at least I couldn't find any examples). It looks more like a diagnostic tool, not a first-class citizen.
I felt that there were enough pain points, missing types, and missing security features (for example versioning) to warrant a fresh start.
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-oriented application, then with cyclic data structures there is the risk of blowing out your server's memory using something like a fork bomb when processing untrusted user input (https://en.wikipedia.org/wiki/Fork_bomb).
There are some systems like DHall that guarantee termination by putting upper bounds on computation: https://dhall-lang.org/
I'm also a bit concerned with how the different features can interact, for example it's not super clear how to distinguish between UTC offset (-130, or do these always have to be 4 digits?) and global coordinates (-130/-172). An attacker could specify a comment inside the media type (eg: application/* which would require special logic to filter out).
My concern is that the parser will become extremely complicated and require a lot of special-case logic and validation (eg: there must be at least one digit on each side of a radix point) which is more prone to errors and unexpected behaviors.
Rather than using slash delimiters, I'd recommend splitting the time formats into subfields, eg: { date: "2022-01-01" time: "21:14:10" offset_is_negative: true offset: "10:30" }
This does make the text format more verbose, but it reduces ambiguity and makes the parsing faster as well since you don't need to descend into branches and backtrack when they don't match, and also might permit more code/logic reuse.
It's also not clear how easy it is to add new data types to the grammar. Based on the project description, it seems like you're using ANTLDR parser.
Since you seem to be quite interested in parsing, you might also be interested in parser combinators which are a somewhat different approach with different tradeoffs: - https://softwareengineering.stackexchange.com/questions/3386... - https://fsharpforfunandprofit.com/posts/understanding-parser...
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.
> There are actually a LOT of [security concerns], which I try to cover in the security section
If you'd like to eventually harden the binary implementations, you might also be interested in coverage-guided fuzz testing which feeds random garbage data to a method to try and find errors in it: https://llvm.org/docs/LibFuzzer.html
as well as maybe some kind of optional checksum or digital signature to ensure that the payload has not been tampered with (although perhaps this should be performed in another higher layer of the stack).
> 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.
Yes, I think that making it an option which is restrictive (safe) by default would be a great idea. Or perhaps separating out the more dynamic types (eg: graphs, markup, binary data) to be loadable modules could also reduce the default attack surface area.
> You certainly shouldn't open an internet connected service that accepts the text format as input (except maybe during development and debugging...)
Yes, I fully agree with this! I initially assumed that the text format could be sent from an untrusted client similar to JSON and XML, but this makes more sense.
> because text parsing/encoding is supposed to be the 0.0001% use case
I see, so the main use case of the CTE text format is rapid prototyping, and then the user should convert to the CBE binary format in production?
> It's not super easy to add new types to the text format grammar
Customizable types could be a really great way to differentiate from other serialization protocols. I did notice that the system allows the user to define custom structs which is quite useful.
Another approach would be to embed the grammar and parser into an existing language like Python, Rust, or Haskell, and let the user define their own custom types in that language. In my experience, custom types help prevent a lot of errors (eg: for a fitness tracker IoT application, you could define separate types for ip_v4 address, duration_milliseconds, temperature_celsius, heart_rate_beats_per_minute, blood_pressure_mm_hg for systolic and diastolic blood pressure rather than using just floating point or fixed-point numbers, and this could prevent many potential unit conversion and incorrect variable use errors at compile-time). Or you could better model your domain with custom types (eg: reuse the global coordinate datastructure from the timezones implementation to create path or polygon types using repeated coordinates).
> adding new types should be done with EXTREME CARE
maybe it would make sense to create a small set of core types (kind of like a standard library), and then permit extensions via user-defined types which must be whitelisted? But pursuing that route could end up addressing a very different niche (favoring a stricter schema) in the design space.
> The major downside of ANTLR of course is the terrible error reporting.
This is a major advantage of the parser combinator approach, in that it is possible to design them to emit very helpful and context-aware error messages, for example look at the examples at the end of: https://www.quanttec.com/fparsec/users-guide/customizing-err...
Anyway, hope this was useful and I wish you good luck with your project!
Yes, I plan to fuzz the hell out of the reference implementation once it's done. So much to do, so little time...
> I see, so the main use case of the CTE text format is rapid prototyping, and then the user should convert to the CBE binary format in production?
CTE would be for prototyping, initial data loads, debugging, auditing, logging, visualizing, possibly even for configuration (since the config would be local and not sourced from unknown origin). Basically: CBE when data passes from machine to machine, and CTE only where a human needs to get involved.
> Another approach would be to embed the grammar and parser into an existing language like Python, Rust, or Haskell, and let the user define their own custom types in that language.
I demonstrate this in the reference implementation by adding cplx() type support for go as a custom type. Then people are free to come up with their own encodings for their custom needs (one could specify in the schema how to decode them). I think there's enough there as-is to support most custom needs.
> maybe it would make sense to create a small set of core types (kind of like a standard library), and then permit extensions via user-defined types which must be whitelisted?
I thought about that, but the complexity grows fast, and then you have a constellation of "conformant" codecs that have different levels of support, which means you can now only count on the minimal set of required types and the rest are useless. The fewer optional parts, the better.
Cap'n Proto's text format works pretty much exactly like Protobuf's. You can use it in all the same ways.
I don’t believe in technical analysis, and I think the efficient market hypothesis is mostly true and love Fama’s work (and sometimes I am first!).
The biggest reason I do this is because it feels like a PhD that can actually pay well.
Are you similar? Let’s meet!
Email is in my profile
This may be part of the motivation.
A couple of examples:
- https://github.com/karlicoss/HPI#readme
- https://github.com/karlicoss/promnesia#readme
Would very much love to discuss it with other people, collaborate etc.
I have a strong personal need for such a system. I have severe chronic pain that severely disrupts my executive function, and so it's hard to mentally self-direct - so having a visual map of data interconnectivity, where in part I could set view layers based on priority (hide or show different data depending on say if viewing "holistic view" vs. a "project" that's arguably data that's tagged with a project name, etc.
I'm also wanting to write a book on my journal with health and healing, among other things system-society wide that influence health - and allowed my situation to exist and dis-ease progression to occur - and so having a singular system for me to access things like my bookmarks, notes in Notes app, emails filtered based on tags, my comments on HN/Reddit/etc. would really help in allowing me to start to organize and compile different data; perhaps a way to add a non-impacting link between different pieces of data, e.g. say there's a topic in the book related to food and/or water fasting - I could start to interlink all of that content first with links, then another step in the process perhaps with version control integrated - so I can archive a previous/unedited version, keeping the polished/updated version (or multiple data files amalgamated) but linking to their sources/prior versions, etc.
Your project could easily fit into a broader project/effort of mine, though I've not been able to execute on it yet - I've been able to plan, develop the vision, and done surface level things so far only. I have a surgery January 11th that may reduce my pain by 50%+ and hopefully my executive function returns at least some; my pain situation is more than just relating to this surgery, another major source of pain, arguably the primary source, doesn't have a treatment yet - not clinically available anyhow. After the surgery I'd love to chat and share what I'm doing with my projects and feel out what possibilities may exist.
I've recently started following Paul Bricman's work "Thoughtware" https://paulbricman.com/thoughtware
I created a discord server called Awesome Knowledge Management https://discord.gg/XPNeDSQE2j
Let's chat!!
For privacy maniacs, of course it would be awesome to add functionality and destroy your traces, but I doubt you could achieve it with current API's.
Also interesting maybe to produce high-level analysis of your personality traits based on messages-comments-articles you write (but to use how later - I am not sure)
I'm doing it in my spare time, which is scarce, so I'd love another pair of hands to help me make it super duper great. (it's already great but it's just normal great). Ideally someone with some experience making extensions, but really anyone who's willing to put in the time and take it seriously, even if only for an hour a week.
Let me know if you're interested!
Things I'm thinking of adding:
- Allow to sync to dropbox/drive/etc. (currently sync is only to couchdbs)
- Improve full-text search
- "Save session" shortcut, to tag all open tabs in the window at once. (so you can later recall all the tabs at once by finding the tag)
- Automatically extract meta keywords from a url to suggest tags. (that's already written, I just need to test it and smooth it)
- Maybe save content of the page too? Maybe allow to also store pages that aren't bookmarked? (Currently I don't do it because it takes too much space and affects search speed)
- Automatically publish your bookmarks to a webpage (with filtering the tags you want to display). Maybe even add a social element to it, a little like delicious was.
I can probably think of more ideas. In most of my projects, I usually have more ideas than time :)
Think BOINC but for enterprise. I've never validated this idea if its actually something businesses would use, but I've had fun coding it so far as just a side project.
I have been overwhelmed since I have not built anything like this before, It would be useful to have someone to bounce ideas off of and work with. The plan down the line is to open source this codebase. It would be great if you are familiar with:
-IPFS
-Golang
-Decentralized databases
Details should be in my profile. Also, I work on VR browser Games so if you are interested in collabing on that let me know.
I am a domain expert in Veterans Disability law, 1.7mil in revenue (me and 3 paralegals) in 2020, formed Veteran Disability boutique firm in 2021.
Looking to build the "Clio for Veterans Disability Claims." Although this is a single, niche area of administrative law, there are more than enough customers on an individual (veterans with claims, accredited agents, accredited attorneys [solos and firms] and an institutional basis (veteran service organizations, law school clinics, non-profits).
The Clio-and-all-others approach of building out generic "law practice" software that you modify for your practice area does not work well for this area of the law IMO. This will not have features that would not serve this area well and thus will not charge per user accordingly.
I routinely have to maintain a legal strategy going back 50-60 years for a single claim. Clients routinely have 2-3 claims active at any given time. Claims routinely include 8-11 different medical conditions, each of which having to meet their own pre-requisites and burdens. Claims routinely branch onto different "paths" within the administrative scheme.
I want to empower veterans and advocates against the kafka-esque system of the VA.
The second biggest hurdle was (and still is) tying those records, however complete they may be, to a legitimate claim. Lots of barriers there, including personal "nah that's no big deal don't bother complaining about it" type things. On the other hand and simultaneously, it feels to me like I am missing several things I should be claiming but can't find the right terms to use (both for claims and for care, tbh).
Not sure if that's even remotely relevant to your project, but I figure it couldn't hurt to share some potential user pain points.
Getting medical records from private provider X is really: - Should they exist because treatment was provided in the past? - Do they still exist in reality (some private providers have very harsh retention policies - shred after 7-10 years) - Did they get the request? - Did they respond correctly to the request? - Does the response contain helpful information for any claim? - Has it been submitted? - Has it been submitted but not acknowledged? - Has it been acknowledged but not for the probative value we judged it internally?
Like - that's just a very SMALL part of the daily process of tracking that goes on everyday for every client.
The claims file contains some n# of pdfs when I become rep. I do work in the background to review those explicit contents, make implicit judgments, and work further in the background on the creation/requesting of evidence to be staged for possible inclusion/submission to the VA. In the meantime, VA is further adding to the claims file with every letter/memo/exam/set of VA medical records.
VSOs are overly burdened and sometimes ill-fit for certain parts of the process, but they have always only truly excelled at filing new, initial claims or new claims for increases - not appeals or anything requiring nuance. Attorneys have really only been involved in the process in a major way for less than 15 years versus over generations of the VSOs but attorneys assisting veterans now outnumbers help from VSOs for the first time within the last year. Our average odds are also higher for success - it's something like 12% do it yourself, 22% VSO, 32% with help from an attorney. I can't recall exactly but it's in the annual reports of the VBA and BVA.
Do you think you will opensource any of it? I am always interested in workflow tools for various domains.
I support open source and one of the things I truly hate is that several case management products don’t even offer open APIs. A few of them have closed them after initially opening them. Or just generally learning they can massively up charge for the “luxury.”
Feel free to reach out!
My domain is cybersecurity and IT management, actually in last year of BS for cybersecurity and IT management. Worked as PM for a different software company for payment processing, had to quit due to real life. I would like to help myself along with other vets with VA system, hell, maybe improve VA as well.
I’m always looking for more users of the app who are interested in helping to make it better: whether you’re a developer, designer, or just have ideas, I’d love your input.
This might be of particular interest to you if you live in Seattle, San Diego, Tampa, or Washington DC, but the app has also been deployed in more than a dozen other cities across the US.
http://developer.onebusaway.org/modules/onebusaway-applicati...
Right now I have a proof of concept that's pretty simple. It's a multicorn extension that calls to a FastAPI backend. I have it all running using docker-compose.
I'm open to working with people that want to use it, or people that want to build it. I don't have any real plans to open source it or commercialize it. It's just a little side project I think is neat. I'm open to any ideas or use cases you might have.
Send me an email (in profile) or dm. Looking forward to it!
1. Fast execution 2. Strong devops ecosystem 3. Easy to learn syntax 4. Ships binaries for as many systems as possible.
Julia wasn't really considered because last time I used Julia (which granted was a while ago) there wasn't any support for binary compilation targets and it didn't have a strong devops ecosystem. Also, it's more of a scripting language than something you'd write stable, deployable code in.
Rust beat out Go on speed and tied for shipping binaries but was, way, way harder to learn and Go was still leagues ahead when it came to packages and tooling.
If I remember correctly C is typically 3x faster than Go and 2x faster than Rust. That small decrease in execution time doesn't matter in a majority of use cases but Go is way faster and easier to learn and develop in so it ultimately won.
Maybe its time to focus on marketing and product fit ;-)
About me:
-PhD in physics, specialty in optical spectroscopy for fusion reactor plasmas
-Familiar with basic optics, analog circuit design & fabrication, signal processing, sensor fusion, data analysis, visualization, physics-based modeling & parameter inference (including tomography), Bayesian methods, & MCMC
-Very comfortable with the scientific python stack (Numpy/Scipy/Matplotlib/xarray), some experience with Julia (esp. SciML/ModelingToolkit)
Projects I'd be interested in (mostly stuff I've been meaning to try my hand at but haven't gotten around to):
-Unsupervised/self-supervised learning on real-world data (incl. algorithmic trading)
-Machine vision (and/or analysis of other sensory modes) for robotics
-Brain-inspired (ie, systems-neuroscience-based) AGI approaches (ex. hierarchical temporal memory, predictive coding, sparse distributed representations)
-Information-theoretic approaches to AGI (ex: total correlation explanation, free energy methods)
-Causal/generative/physics-based approaches to AGI
-Renewable energy & clean tech: battery systems modeling, demand/weather forecasting, or hardware projects
-Off-the-wall physics ideas: I'd be willing to listen to them & provide feedback. I'm personally interested in trying to reformulate quantum mechanics starting from geometric/Clifford algebra and Bayesian probability theory, as a way to make it more intuitive.
Email is in my profile.
- My Topics or Projects
- My Skills
- More Skills Needed
- My Goals
- My Links
- My Temperament
- Temperament Needed
- My Beliefs
- Other:
mromanuk - If you are interested in sharing experiences, advice, or just chat about ideas/programming/tech or collaborate, say hello at my contact is in my profile.
shazeubaa - Wouldn’t it be neat to hangout with devs while coding, even if not speaking that much. Can share screens, be supportive.
eloisius - A hypothetical project I'd be interested in contributing to would be
The goals are:
- Make computers that easier to understand and use (than current systems.)
- Make large flying machines to enable cheap and efficient mass transport of people and materials. (Like huge, kilometer-scale kite/blimps.)
- Collect and recycle the Great Pacific Garbage Patch (and the other ocean gyres.)
An overview of the general strategy: Start with toys, both computers and the flying machines. Grow a community of folks to do distributed research and manufacturing. Collect and amass enough subunits (the flying machines are cellular) to build a machine large enough to reach the GPGP and return with some trash. Recycle the trash into raw materials (possibly using molten salt oxidation) to make more machines to collect more trash to make more raw materials, and so on...
There are a lot of details, obviously, but that's the gist of it. It probably sounds crazy but I'm seriously, I think it's doable, worthwhile, and fun. If you're interested send me an email (my username is sforman and the server is hushmail.com.)
This piqued my interest. I've talked with some older people who had computers in their home during childhood and they told me about tinkering with them and so on. Those were of course much simpler machined than we have today, and I ended up feeling like they had a more intimate relationship with the computer than their younger counterparts. How are you planning to accomplish that?
> How are you planning to accomplish that?
Thanks for asking. Two major ways: on the hardware side I want to use small and simple systems. The raspberry pi is a little more complex than what I want. On the software side I have a simple GUI and macro language that is easy to learn and much much simpler and more elegant than current conventional UIs.
> On the hardware side I want to use small and simple systems
If you'd like to build a fully understandable computer, you might be interested in concatenative languages like Forth, Factor, and colorForth. These use a much simpler and more understandable, typically stack-based computational model that run on microcontrollers like STM32. You can create more complex words by composing together simple assembly-language-like atoms and building higher and higher layers of abstraction.
- https://concatenative.org/wiki/view/Factor/FAQ/Why%3F
- Motivation section from: https://bernd-paysan.de/why-forth.html
> On the software side I have a simple GUI and macro language that is easy to learn and much much simpler and more elegant than current conventional UIs.
A good starting point or source of inspiration might be the Smalltalk and Lisp Machines from the past.
- Introduction to the Smalltalk Programming Language: https://www.codeproject.com/Articles/1241904/Introduction-to...
- How Do I Master The Art of Smalltalk? https://www.quora.com/How-do-I-master-the-art-of-Smalltalk?s...
- Live Objects in Smalltalk Pharo: https://www.quora.com/What-is-this-live-objects-in-Smalltalk...
- Smalltalk Principles: https://www.cs.virginia.edu/~evans/cs655/readings/smalltalk....
You might also be interested in this blog from a guy who is trying to build his own OS from scratch and run it on an FPGA: http://www.loper-os.org/?p=55 Some of his earlier writings about Symbolics Open Genera and Lisp machines are also quite interesting and might be a good source of ideas and principles: http://www.loper-os.org/?cat=8&paged=5
You might be interested in ground-effect vehicles which would be much faster than ships, yet still cheaper as well as more energy-efficient than conventional aircraft: https://en.wikipedia.org/wiki/Ground-effect_vehicle
There are some startups working in this area like the Flying Ship Company: https://flyingship.co/
> Collect and recycle the Great Pacific Garbage Patch (and the other ocean gyres.)
An easier approach might be to bioengineer bacteria to eat plastic: https://www.theguardian.com/environment/2021/dec/14/bugs-acr...
But this might have unintended side-effects.
> ground-effect vehicles
I know of them a little. There may well be some applications for ground-effect in the devices I hope to build.
> bioengineer bacteria to eat plastic
Maybe so but that's outside my wheelhouse. :)
> you might be interested in concatenative languages like Forth, Factor, and colorForth.
Indeed! My "macro language" is a dialect of Joy: https://joypy.osdn.io/
> A good starting point or source of inspiration might be the Smalltalk and Lisp Machines from the past.
For sure they are inspirations, as well as the Oberon OS and Jef Raskin's "Humane Interface".
In re: Loper, yeah I love that guy (he's even more grumpy than I am for one thing.)
There are a lot of interesting projects and software out there that seem in the same or similar vein, such as Collapse OS or akkartik 's Mu.
I'll send you an email a little later today, cheers!
I'm particularly interested in the electrolysis of CO2. I could really use help from anyone with a chemistry background!
If you're interested, please reach out to me via my email or hit me up on the OpenAir discord.
I'm working on something that I hope will become a third project. Briefly, I think that electrochemical methods to absorb CO2 and convert it to useful products could be really promising for at home DAC. I'm inspired by the quinone-based approach laid out by the Hatton lab at MIT[1], and the ORNL research on nanospike catalysts[2].
Right now I need help with designing experiments and sourcing precursor chemicals. I'd also love to know more about how computational chemistry might solve some of the problems we're probably going to face with overpotentials.
[1] https://www.nature.com/articles/s41467-020-16150-7
[2] https://chemistry-europe.onlinelibrary.wiley.com/doi/full/10...
Unfortunately I don't have much of a chemistry background. But as an alternative approach, it might be interesting to consider growing blue-green algae on a massive scale in deserts like the Sahara (or on solar-powered desalinization rafts in the ocean if there are land-rights-use issues) and using these to convert sunlight + carbon dioxide into oil [1].
[1] https://www.sciencedaily.com/releases/2020/03/200305132125.h...
They make best use of low-cost resources. Check out the Arduino-based robot built using recycled materials.
* Based on lean software. With a small footprint. * The project itself should be a teaching project. I would like to document all algorithms from Risch to numeric solvers in ODE * Free, open source, oriented towards education in mathematics
I am a theoretical physicist and have been working as a computer programmer for the last 10 years. Money is not a concern anymore for me and I really have an urge to give back. Also I am happy to collaborate in any project in the intersection of mathematics, education, physics and programming.
If you have a nice project you can have my axe!
You might be interested in https://github.com/google/mathsteps which is a CAS designed to automatically explain step-by-step a problem so that humans can learn from it. There is a presentation (https://www.youtube.com/watch?v=VnBae40DfjE) and a post discussing the system if you are interested (https://blog.socratic.org/stepping-into-math-open-sourcing-o...).
p.s. My comment from this thread also might be of interest to you: https://news.ycombinator.com/item?id=29761667
The audacious goal is something like “build a Trello clone from git init to a live product in under 10 minutes”
Looking for like-minded folks with any of the following skills:
- strong React
- UI/UX design
- TypeScript
- AWS
- SaaS building
- writers for docs, tutorials, articles, evangelization
- product / project manager
I want to lean in heavily into existing AWS services and have everything e2e pre-wired, testable with great CI experience and essentially following best AWS practices.
take a look at https://www.airplane.dev and https://www.scriptkit.com
If anyone wants to learn sports analytics, I'm looking for beta users. (Also open to adding non-sports datasets if someone wants a hosted dataset with built in publishing for e.g. SEC filings, crypto prices, etc.)
From my side, I am open to collaborating on any small and fun projects like, a serverless web app, a mobile app, a command line program or even a library of some sort, for example micro apps shared here https://mapps.makeall.dev/ . That could involve learning a new skill or sharpening an old one.
Feel free to reach out, email in the profile.
Background: I'm a data engineer with about 16 years in the industry under my belt. Something that's always frustrated me about the way that we design and build systems, is the way that knowledge fails to diffuse through the industry, because we don't study what we do, and especially we don't study our failures.
As an example, the 2010s witnessed the full hype cycle (rise and fall) of "NoSQL" databases, such as MongoDB, Cassandra, DynamoDB, Riak, Aerospike, and many others. Did they turn out to be any good? Individually, in local circumstances, some engineers know the answer, or at least an answer. Collectively, we have no idea. This knowledge only spreads as the primary sources write blog posts (mostly terrible), or move on to new jobs and tell stories (distorted by all sorts of biases). What we should be doing is studying what was actually built, out in the open, where everyone can see it if they're interested.
Additionally, I find it very difficult to teach other engineers about data systems, in a scalable way, without open example material. There are many online courses in SQL and things of that nature, but they always deal with trivially small, trivially clean data sets, without any of the richness or messiness of Real World Data. Many years ago, my own skill in dealing with data grew by leaps and bounds the instant I was exposed to real business data and asked to solve real business problems with it.
To these ends, I am looking to collect real business data sets. I use the term "business" loosely, in the same sense that engineers often say "business logic". Non-profits, community efforts, personal side projects, these things all count. The key thing I'm after are custom-built databases, meaning they either started from a blank MySQL/Postgres/MongoDB/etc, or heavily customized an off-the-shelf system like Wordpress or Salesforce.
I recognize there are thorny issues here with respect to intellectual property and personal data privacy. I do not expect anyone to just hand over a database and wish me well. We would have to work something out, whether that's an NDA, or thorough anonymization, or whatever.
In any event, if you possess a data set like this, and might be willing to share it for research purposes, please reply here and we can figure out how to connect and discuss.
For example, during the electronic discovery (e-Discovery) process, the litigants may provide csv files which it might be useful to process into a more structured format. For example, the Enron email dataset: https://www.cs.cmu.edu/~enron/
If you can somehow negotiate rights to make these databases publicly available, it might be a good idea to donate/upload the data to the Internet Archive or some universities for posterity: https://archive.org/
Is there anyway to follow progress of what your working on?
I’d also like to get into algorithmic trading, but this is something I’m at the very early stages of researching into.
If any of that sounds interesting, contact details are in my profile.
I know embedded hardware and software, Python, and some web dev.
My FOSS projects worth mentioning are KaithemAutomation, an IoT automation system focusing on more low level control for commercial installs, and HardlineP2P, a protocol for P2P remote acess(think DuckDNS replacement).
I'm also working on an open source math reference guide for people who have no math knowledge. I have no particular math talent, so I'm documenting how I'm able to work effectively without really being able to manipulate these things mentally.
From an interview (https://www.blog.pythonlibrary.org/2021/12/13/pydev-of-the-w...) with Alex Hall:
>A challenge I'm struggling with is making the site look good...I'm struggling to find people to help me build futurecoder further
https://github.com/alexmojaki/futurecoder/issues/212 https://github.com/alexmojaki/futurecoder/issues/226 https://github.com/alexmojaki/futurecoder/issues/253 https://github.com/alexmojaki/futurecoder/issues/259
My projects / areas of interest:
1) high-concurrency booking system (10,000 university students trying to enrol in classes for next semester)
2) real-time money streaming
What does this mean?
A pay-per-second model explicitly validates accountancy-per-second, aka micromanagement, and constructs a unique feedback loop that, exactly as you say, has never been possible before.
How would you build fundamental contingencies against micromanagement into such a model?
In my day job I'm a technical and business writer, but my true passion is fiction. Who knows, maybe there's a kindred spirit out there.
Here's something I put out yesterday, a review of a story that doesn't exist, inspired Borges' Ficciones -- enabling me to get the key points out, without needing to write an entire book!
https://tombetthauser.github.io/greensquare/
If there are any devs out there who make weird art, music, writing etc or want to Id love to see your work and maybe find some overlap to collaborate!
Also this is a great happy new year post :^)
https://github.com/inet256/inet256
Developers, applications, and end-users are under-served by the network layer. INET256 provides necessary features (stable addresses, encryption) to client applications, which usually have to reimplement those features themselves.
- Write an arm64 assembler. Useful for eventually porting Virgil and Wizard both to M1 macs.
- Write a more complete library for Linux/POSIX. Can read/write files already, but why not sockets and graphics and things?
- Raspberry Pi or ESP32 projects with Virgil.
- Improve Virgil's garbage collector. E.g. even a simple generational Mark&Sweep would be an upgrade for long-running programs.
- Syntax highlighting / modes for Sublime, VSCode, etc would be very welcome. Emacs and vim modes exist already.
- Do some neat Web demos with the Wasm backend. It's pretty easy now to make a Wasm module with imports and then supply those imports from JS.
- In Wizard, do a complete WASI implementation on Linux/MacOS.
- Do something with node.js and Virgil compiled to Wasm. I wrote a node.js wrapper than can load Wasm modules and there's a semi-complete System implementation on node.
- Get source-level stack traces working with the Wasm backend. Just involves some callbacks and getting the meta section into the Wasm binary.
I'd be happy to give pointers. In fact, I realize now that each of the above projects could probably benefit from a few paragraphs of documentation for any takers.
Failing that, feel free to email me directly with questions or post issues on the repo.
To achieve this, blogging platforms (I am aiming to WordPress right now) must remove the obstacles in user experience: people stopped blogging and switched to Facebook because posting on FB has more profits: it is easier (just visit front page of FB instead of logging to wp-admin and doing next steps), you have all content in one place (FB wall shows your posts and your friends posts etc) and tickles your ego (you immediately get likes and shares while on your blog barely anyone comment your post)
I am working on plugins and tools to remove this distance: front-end editor box for your blog ( https://github.com/kkarpieszuk/Editor-Box ), plugin to subscribe to other blogs and see their content as part of your blog, plugin to give local likes for posts, broadcast your content to other blogs...
Everyone will have kind of their own Facebook on their own WordPress blog.
I am WP plugin developer as my main job but all above I am doing in my free time as a hobby.
If anyone is interested in collaborating to make the network a bit less occupied by big techs, please reach me here https://github.com/kkarpieszuk/Editor-Box (create an issue or pull request if you have an idea how to extend this plugin) or find my email address at https://muzungu.pl/o-mnie/ (in Polish but you will easily find the address)
If you're interested in a less commercialized, blogging-oriented niche of the Internet, you might also want to look into Gemini which is a new, simpler internet protocol that is incompatible with HTTP by design, and primarily designed for sharing textual data rather than rich media content. So it's like a modern effort to create a niche in the Internet similar to the Usenet/BBS systems and Web 1.0 era of the past.
Browse through a proxy like: https://portal.mozz.us/gemini/gemini.circumlunar.space/
It's kind of neat in that it results in a small, self-selecting, geeky community with some weird, quirky stuff that you don't see elsewhere on the modern web, for example, discussion of the week about topics like broccoli, or 5 questions of the month among total strangers: https://portal.mozz.us/gemini/warmedal.se/~bjorn/posts/2021-... https://portal.mozz.us/gemini/soviet.circumlunar.space/whole... https://portal.mozz.us/gemini/geminispace.info/search%3Fbroc...
I have a few ideas (listed below) but am open to ideating with folks openly and seeing where interests and the market takes things - Making Cryonics more mainstream with a better payments layer + other longevity services and more research into the science behind it that we openly publish - Working on an integrated critical mineral processing, recycling, and gigafactory that produces re-used EV batteries or home powerwalls either in the DRC or with close ties to it to try to bring more jobs to the area and help the country move up the value chain from pure extraction (and because I think there's a huge demand already including in Africa for good battery packs to replace diesel generators)
Posting this idea in a niche space. Not too hopeful, but inspired by other posts and trying my luck to see if anyone wants to collaborate. My email is my profile.
The niche here is Indian Classical Music. I would want to use the modern technology to uplift the domain and solve some common problems starting with sharing and distributing of music. Lyrics are usually shared in textual form in one of the languages with no accompanying swaras. As the music and inherently ragas are very structural, there is an opportunity to separate the syntax, representation, rendering, ragas, language, talas etc. and allow to distribute in a consistent way.
I already have the high level design ready. I am looking for some web developer with preferably react experience and more importantly an understanding and interesting in this domain to appreciate what is being done.
Shout out through an email and we shall collaborate!
The app is in a coma state because my co-founder/developer had to leave the project.
I'm looking for an iOS Developer that want to take over the project with me and build new features. The app is built in Swift and Firebase.
Currently the app has few daily downloads and users (in total subscribed about 3000, which 1000 of them paid $1), we got covered on MixMag, Resident Advisor and many other music related websites.
I got some features already designed that just need to be discussed together and implemented.
What I'd be looking for in a collaborator is people who are able to spread the word about why this is a good idea or perhaps even advance the idea by selling kits at cost to help get them out in the world for cheaper (assuming bulk discounts). I'd also be looking for a better biologist than I (or whatever kind of scientist I'd need for this part) to help me make sure that the filtration is adequate to ensure safety.
I want to learn more about the required filtering. I have a barrel and I've bought a lot of fancy cartridge filters from McMaster in the past (I do chemical engineering and am weaker on biology), so I feel like there must be a way for me to do this.
The reason I worry about this is because in a power outage the city water supply can go dead. Or an earthquake if you live in a region prone to them. Or a flood could contaminate the water supply. I think that in such a scenario you should have 10 gallons of water per person tucked away so that you can keep yourself healthy and also help your neighbors.
This is a simple project I can try to document and do in a way that is definitely safe (the last thing I want to do is give unsafe advice). It is a project that would likely cost someone a hundred dollars or a bit more, but increasing household resiliency seems increasingly important.
I remember growing up that we always had emergency supplies because it's important in a serious emergency to not depend on emergency responders (with limited time and lots of problems to handle) for basic stuff that you should be able to handle yourself with fairly simple preparation.
- https://www.survivorfilter.com/products/pro-series-virus-met...
Products like this are tested against water quality standards and can probably can achieve a better performance/price ratio than what you can build yourself unless you're planning to put significant time and effort into this project.
There are universities working on this problem as well who might already have some projects in progress such as: https://news.mit.edu/2020/passive-solar-powered-water-desali...
If you're planning to build your own system for your own amusement or education, then you should first decide how pure do you want the output fresh water to be, and what is your resource (time and money) as well as energy budget?
1. Reverse osmosis seems like the most pragmatic solution: https://en.wikipedia.org/wiki/Reverse_osmosis#Fresh_water_ap...
You can buy inexpensive membranes, water pumps, and solar panels from places like AliExpress but might need to perform modifications to generate the required pressure:
- Reverse Osmosis Membrane: https://www.aliexpress.com/item/32669709750.html - Solar-powered fountain: https://www.aliexpress.com/item/4001095938363.html
2. Solar still: use mirrors to focus sunlight and evaporate water. Easy to build but only practical in climates that receive lots of sunlight, only works during daytime.
- https://en.wikipedia.org/wiki/Solar_still
3. Electrolysis: probably not practical for filtering lots of water on a large scale because it's slow and energy-intensive, but can result in the purest water. Buy a solar panel, put positive anodes and negative cathode into the water to break it down into hydrogen and oxygen, and then wait for a long time.
- https://en.wikipedia.org/wiki/Electrolysis_of_water - https://en.wikipedia.org/wiki/Water_splitting
If you're planning to drink the water for extended periods of time, it might also be a good idea to remineralize the water:
- https://thewatergeeks.com/how-to-remineralize-ro-water/
Also be aware that if you store the water in a plastic barrel, certain phthalates might leach out which could be carcinogenic or interfere with your hormone system. It might be a better idea to use a stainless steel or glass container.
- https://www.vox.com/science-and-health/2018/9/11/17614540/pl...
Say there's some web framework, and lots of people write online shopping carts in it. Well, after the 1000th online shopping cart has been written in this web framework, you'd think there'd just be one standard implementation of a shopping cart published to the framework's website. But often, for all kinds of such common projects, there is no standard implementation. And then you have your shopping cart, but there's all these other components you need to hook up to it. It would be great to have an example of hooking up each of those components. And over time it would become like the "Uber-Shopping-Cart" that can do it all.
This could work for more than code, too: configuration, walkthroughs on integrating components, architectural plans, CI & CD. There's got to be some way to create a shared library of reusable, ready-to-modify, free technology solutions. So that whether you're a hobbyist or an employee in a FAANG, you can just grab an off-the-shelf solution, put in a tiny bit of logic specific to your needs, and go on to your next task. Not only would it save each person countless hours for every one of these, but they could be bug-fixed, supported across multiple versions of their dependencies, have features added by a wide community.
The problem is I really don't have a great idea what it should look like, or how to get people engaged. The scope is enormous; I could add my own project samples, but I don't actually write a whole lot of code, I mostly do Cloud Systems Engineering. So I would love to pair up with others who are interested in having such a library so we can figure out what it should look like and start contributing to it.
Maybe you could go one level of meta up and instead of working on reusable components, work on reusable definitions for component interfaces.
Reuse is hard because you need a bunch of glue code. But if you had, like a standard for a toolbar, that knew how to find all the ToolbarAble objects, and the shopping cart icon just showed up, etc, things would get easier.
The shopping cart could know to look for all the payment requesting components declared in your Big Project File or whatever, and everything could stay modular ish?
GitHub is already the standard place to share generic projects.
For example, Salesforce has made this work by giving every customer a standard base schema, and then letting developers build modules on top of that: https://appexchange.salesforce.com/
The hard part is designing a core schema that is sufficiently useful and powerful such that people adopt it, while still allowing sufficient per-user customization so that the system can meet specific customer needs. And then when people start using custom extensions to the core schema, ensuring that all the plug-ins and extensions interoperate seamlessly with the huge number of possible combinations.
Would you like to see a global tech workers union or guild?
Or a maintainers fund to support all the FLOSS projects the world depends on?
It's super early days, the possibility space is wide open! Come join the conversation :)
It might be a better idea to partner with an existing organization such as the Software in the Public Interest non-profit. https://www.spi-inc.org/
I'm making an OSS C# game engine. https://github.com/NotNotTech/NotNot It's an ECS engine very similar in features to Unity Dots.
I just finished the graphics/io bindings it will use: https://github.com/NotNotTech/Raylib-CsLo
I have a stable income from my SaaS business so this is more than just a hobby project for me. I'd like to turn it into a viable oss project plus a commercial option some day.
My vision is to create a top-down spaceship game with it, and create a simple gamedev framework for kids to learn C# programming with. using the feature needs of both of those to drive engine development.
I could really use some help designing a decent front-end.
The collaborative aspect is that [our platform](https://github.com/FlexMeasures/flexmeasures) is open source, under a permissive license.
I'm trying to grow a startup on top of it, but the whole idea of doing impactful work is that it's being used to speed up the energy transition everywhere. Less re-inventing the wheel. If you are involved in any projects where energy demand flexibility should be unearthed, please consider using FlexMeasures ― with us or without us. Happy to chat.
It is written in Go and has cross-platform binaries and a WASM version with a Javascript IDE. Mobile support is in the works.
We need people to help create content, market (user acquisition), test and code!
Check it out at https://turtlespaces.org and if you're interested in helping out e-mail help@turtlespaces.org
We're not certain yet what the forward plan is regarding monetization or exiting , turtleSpaces may stay free and become OSS. In the event that any profit was incurred it would be distributed amongst the contributors based on effort expended.
Thanks for reading my blurb!
What I have in my mind right now is for it to be very practical so going through the exact engineering process and probably things like hiring, etc.
The goal is to provide inspiration for teams who are changing in terms of size or in other ways to find things they can try out, but also be entertaining.
What I am looking for is guests, but also people who have already setup a podcast to give me some pointers on the practical side of things like getting in all the podcasting apps, smooth production, etc.
I'm using JavaScript to leverage modern browsers and Node.js to create a platform that makes the creation of online, multiplayer games easy. It is comprised of a few different interesting sub-projects like an async streaming library and my own rendering/templating library (which I know will annoy some people for not using an existing framework).
Right now it's only a few thousand lines of JavaScript but it's complicated due to a large number of moving pieces. Also, I'm using things that require the very latest browsers and Node versions to make life easier, like top level await. Getting Node and the browsers to use the same modules is a PITA to set up initially but then reduces effort moving forward. My outlook is we can circle back and address compatibility issues after making a full POC.
There are lots of interesting problems in this space, dealing with concurrency, async, race conditions, consistency, serializing/deserializing cycle detection, and also interesting browser side stuff with the rendering framework.
The future vision is to make Electron/Cordava (or similar) apps and replicate some of the old flash game sites like Kongregate. We will open source the underlying tech, make some of our own games, and then get others to make games and publish on our site.
Anybody who is good with modern async JavaScript can help, and knowledge of XML, HTML, CSS, SVG, Node, WebASM, Electron/Cordova (or similar) is all helpful. I'm open to converting to TypeScript if somebody knows it well, but it's not a priority.
In my estimate, there's a hundred hours of work required to have a solid POC.
If any of this sounds interesting, email is in my profile.
Sprites, animation, physics, canvas/webgl are out of scope, but it might make sense to pick something and make it the easy/default integration.
Hope this clarifies things. Thanks for the comment!
I'm working on an Open Monster Project, based on the game mechanics of Pokemon, Final Fantasy, and others - but fully opensource, fan created, and IP nightmare free!
I've worked on Pokemon Game implementations, algorithms, and have implemented it dozens of times, and feel like it's time we create a regulated system to allow others to build games from scratch with the least amount of friction possible.
But games are one of the few things I prefer the analog version of, although I do enjoy video games.
Maybe it could be designed so that a subset of the game is playable as a card game, or that monsters have a well defined card equivalent?
I'm not sure how important a first party embeddable engine is. Just defining how a monster is represented and what a battle means , and balancing powers, would already be a big deal.
This seems like a pretty good use case for an arbitrary rules engine, so that games could somewhat customize things. Maybe you're in space and flying works differently, or some epic thing happened to change how magic works.
Or maybe some moves aren't things you need to use, they just happen without even using up a turn.
You could have default rulesets applied to items and monsters and attacks at the game definition level, and then more specific rules on specific monsters.
You'd probably still want all the basic concepts like what a turn means and the fact that you can choose from a list of actions on a turn, but other then that things could be pretty flexible while still giving the monsters consistency between games.
Example:
"It hurt itself in it's confusion" could be done with a "launching attack" phase before the target and effects are finalized.
event: launchingAttack > if self.state== confused > chance(20%) > attack.target = self > message "Oops"
So there will be a basic "input an attack, an attacker, and defender, and calculate damage", but then allow them to expand that to include other things.
Let me know if this is a bad idea, and I've decided to try to ask HackerNews about it, but what do you think of using GraphQL as an API interface? I'll share the link with the details here after I post.
I'm not exactly sure how it would work though. Is Python's Flat is better than Nested principle relevant here?
[0] http://hpepl.ae.gatech.edu/papers/ProgAerospace_Singh_V75_20...
Interest 1) Study buddies to exchange domain knowledge between web App Design and Hardware Engineering.
Basic idea: We teach each other stuff from our area of expertise. While you one learn a lot these days from books and Youtube and online tutorials, there is no substitute to asking an expert and getting unblocked quickly.
Me: Electrical Engineer who has years of experience designing consumer and aerospace electronics. I am on a journey to learn more about Web App development and what it takes to build a successful SaaS app in 2022. Some tech that I am looking to learn the basics of : HTML, CSS, Javascript, Node, React, Django, WebAssembly.
You: You know your way around full stack web development, and you are looking to learn about hardware engineering. Posts like below resonate with you. I would like to be study buddies with an individual like that :) My email is in the about section.
- https://news.ycombinator.com/item?id=24743894
- https://blog.athrunen.dev/learning-hardware-programming-as-a...
- https://news.ycombinator.com/item?id=24037791
- https://contextualelectronics.com/course-types/
Interest 2) Offline first collaboration tools in the electronic CAD tool space.
CRDT technology has been growing fast recently. I am interested in applying the principles of offline-first software and CRDTs to new tools in the electronic CAD tool space (think: tools used to design circuit boards). If any devs are looking to get their hands dirty with applying CRDTs to real world problems, would love to chat. Thinking of contributing to open source tooling in the electronic CAD tool space. I also think there is a market to support an open-core SaaS here.
I am really enjoying working with Python, Django and learning React at the moment. I have a lot of free time during the week and I am very interested in helping with a project. Very much akin to entry-mid level if you're looking for train-ability and willingness to learn. codectc at gmail!
2) Not crypto related, but still about decentralized web: If someone has experience or interest in working with search and content discovery on the Fediverse, I'm willing to collaborate and even (modestly) sponsor whoever wants to work on a "CommonCrawl" for fediverse content, and further on a "CommonIndex" and "CommonRank" system that can make it easier for instance administrators to offer a global search system that avoids replicating indices of the entire fediverse on each instance.
3) I started learning Go a couple of times, but I haven't found a project that is small enough for me to take on individually but big enough to make it interesting to continue. I have two ideas that if might appeal a more experienced Go developer that could at least provide some mentorship/guidance:
3.1) adding an extension to IPFS that gives adds a "Web Of Trust" to nodes and use that as a way to build an ACL-based permission to my pinned content. Use-case: if you have content that you don´t mind being public but you don't want to have your server as the main distribution channel.
3.2) Adding some kind of middleware for syncthing that allows pre/post-processing of files before syncing. I've written some of the motivation about at https://raphael.lullis.net/thinking-heads-are-not-in-the-clo..., but another example use-case I'd be interested: I host my music collection (large FLAC files, hundreds of GBs) on my NAS, and I'd like my phone only with a subset of these songs, converted to some reasonable lossy format).
There has been a number of attempts in this space, but none with a simple developer experience, and I’d like to experiment around fixing that.
If anyone is already is already working in this space I’d love to talk with you.
From a user perspective, I am thinking that getting support for a local first approach is as simple as installing a Dropbox style service locally that enables storage and syncing across your devices. Applications written in a local first style would automatically then take advantage of this.
Working in my spare time on various side projects, but i would really enjoy some input of which project to focus on, collaborate on and potentially incorporate.
1. Digital Assistant for on premise installation, already built that as lead architect for a customer of mine but want to take the concept fruther ( think star trek TNG computer )
2. Continous integration platform for ML Models, taking data collection, labelling and training as well as optimization and automate them as much as possible.
- https://twitter.com/hashtag/mlops
I co-mentored GSoC a couple years ago to write a Jenkins Machine Learning plug-in that tries to integrate Jenkins CI & Jupyter/Zeppelin. At that time there were already tools & standards appearing.
If I recall correctly, Netflix had some blog posts about their ML pipeline. In one of them I remember reading about their workflow tools, some that could be used for CI/CD style development of ML models.
Let assume for a task of building a vision model like tesla for autonomous driving, basically taking camera feeds and turning them into 3D geometry.
For that you have to:
1. Collect Data
2. Curate Data
3. Augment Data ( i don't mean classic image augmentation techniques, but for example connecting a simulator to provide artifical data samples )
4. Label data
5. Define your model / or figure out a good model with presets/auto ml techniques
6. Train it at scale
7. Analyze/Test your model, think unit testing but for ml
8. Optimize it to run on edge hardware
9. Deploy it and distribute
All of that with proper A/B Testing, different models, and continously improving/tweaking and adding data.
THere are literally 100s of tools in that space, covering one or multiple steps. But nothing that integrates the whole. It still has an incredible lead time / engineering effort to setup / build a pipeline like that and run it at scale, handle the workflows behind it and also be able to run on premise ( using cloud resources for a lot of that is both a no go for many large companies due to security concerns and cost )
Some cloud SAAS software comes quite close e.g Google Vertex Ai, Sagemaker etc.. But they still fall very short for a production pipeline.
I think I'll eventually get to ML CI, whether as part of a startup, or back in regular employee life.
If you need to spruce up your resume or want an easy way to update different versions of your resume to do an A/B test, you can collaborate.
Also open to collaborate to create a better way to save the data.
Also open to contribution if you want to.
Feel free to say hi in the contact in my profile.
Is there a reasonable, not-for-profit platform that can be used to organize something like this? Running it out of the YCombinator domain would add a lot of credibility.
I'd like to build something where mentors can list their profile as well as their skills. Founders could then sort those mentors by skills, book time (perhaps connected to the mentor's calendly), and connect via a conference call with something like Twilio.
I know something like this exists today, but it's a platform for a very specific community and cannot be white labeled or partitioned for another specific community.
Thoughts?
...
I'd like to see if I can start using some projects to analyze my team's data (have to find what data is available too). I got interested in that from a guy I follow on Twitter - https://twitter.com/R_by_Ryo.
BTW, the team I support (Sao Paulo FC) is trying to get Soteldo out of Toronto :) Auro Jr. also started in Sao Paulo, had no idea he was playing there now.
Yes, there are countless solutions out there, but it's a growing industry with a lot of room for different niche/providers.
I run SheetUI, and I've seen what my customers do with it. Sometimes they just want to bring their own data (google sheet/CSV/etc), and have a nice UI slapped on top of it with search and filters, often for internal use.
For internal tools, people care only about usability, not how it looks, so WYSIWYG editor is pointless. I plan to focus on ease/speed of onboarding/creation of a web app (less friction to seeing immediate value), give fewer customization choices (less cognitive load), and dive deeper into each customer's domain (we help them do the cognitive mapping from their domain to software).
I came across this niche while building Label LIVE (https://label.live) for USB label printers.
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!
I have validation, unique domain expertise and a strong "why now".
The plan is to exit within 4 years at a $5-10M valuation taking minimal or no external funding.
If this piques your interest, please drop me a message. Email on my profile.
Another site is a group of easy to use tools (whatsmyipaddress clone, document grepper, proxy site). The main differentiator is that the tools can be used via API as well as by visiting the webpage.
I'm open to collaborating. Not trying to do anything bleeding edge here, just trying to build something that people will use.
Check it out here: https://vikunja.io
There's a bit commercial potential for it, given the enormous amount of paid project management tools out there, but I'm not really doing a lot in that direction right now. You can purchase a SaaS subscription but very few people do. Most of the users are people who self host.
https://mnmnotmail.org & https://twitter.com/mnmnotmail
Because SMTP will not be fixed, here's why: https://mnmnotmail.org/smtp.html
---
Related protocol projects in development include:
It's not intended to be a replacement for the heavy-hitters, like MS Project or OmniPlan or anything like that... it's much more basic. Think very simple, "back-of-the-envelope" project planning.
The primary benefit is to make the first step of planning (writing it down) a little easier for developers like me, who tend to spend too much time with their head in the clouds. I've been using the syntax for about a year now and I've found my motivation and focus improve a lot.
Is anyone else out there planning in markdown?
someone need a little labor force at projects written on c#/unity?
or maybe you're have vanilla JS stuff?
let me know: cr189@yandex.com
P.S. my competition profile: codewars.com/users/pGc3m9
anyway, i don't know target auditory, and how skilled must be person, but i want read more stuff like that.
https://sellff.com/$/ron.michel/post/200
Any help is welcome. Feel free to connect on sellff.com or via email [in profile]. Thx.
Always looking for collaborators if anyone is interested in the space. The stack is Elixir + Vue 3 + ProseMirror/TipTap + Stripe on Kubernetes for the moment. Authors welcome as well.
I've tried the Startup School co-founder matching, but no luck on there yet! https://www.startupschool.org/cofounder-matching
If anyone is willing to collaborate on these or other projects, please let me know (my email address is on my profile)! Following are some of the projects on my list (I realize many are ambitious):
* Personalized finance management - finding financial products for my specific financial situation. Goal is to potentially create a platform that allows me to discover and "install" financial products on my accounts. There's too many fintech companies out there and there's no way that I know of that allows me to discover/try them with minimal work and risk. An app store of sorts would be very interesting to build for this.
* Pet EMR/prescriptions - Every time my vet gives me a prescription and I want to order it online, I have to wait for the eCommerce site to "confirm" the prescription with the vet. If there was a central place to coordinate this information, it could be beneficial to vets and eCommerce sites.
* Creator tools with native NFT minting abilities - Mostly to learn blockchain
* Site to find study partners/groups for taking MOOC courses together - I find I am more committed when there are others I'm accountable to as well
* Crowdfunded, open-sourced Buy-Now-Pay-Later solution - Unsure about the regulations around this, but thought it would be an interesting project to learn risk modeling and have potential virtuous cycles because investors would be inherently incentivized to advocate / evangelize the platform. Also, BNPL platforms tend to skirt the credit score, so open sourcing it would appease regulators. It could also provide a way for companies to white label and start their own BNPL programs.
* Creating a more contextual Google Places / Yelp that enables relevant place discovery
We won't compete against facebook and other big tech compensation because we aren't planning to exploit peoples data, democratic systems, etc. for money. But if you are a talented engineer who wants to apply their skills to something bigger than making money, consider collaborating with us.
guardians@earthda.org
My only requirement is that I'm allowed to use the data for my non-profit search engine (https://ask.moe), including exposing the data through a public API (you would of course also be free to use the data for any purpose). I would also love to use the data to build for-profit websites together (ideally in Hugo or Vue.js, and without any user tracking).
I'm willing to commit to reading and constructively commenting on projects in this thread.
Here's an example from the main function of the self hosting Firefly compiler [1]:
main(system: System): Unit {
...
let fs = system.files()
if(fs.exists(tempPath)) { deleteDirectory(fs, tempPath) }
...
}
deleteDirectory(fs: FileSystem, outputFile: String): Unit {
fs.list(outputFile).each { file =>
if(fs.isDirectory(file)) {
deleteDirectory(fs, file)
} else {
fs.delete(file)
}
}
fs.delete(outputFile)
}
Main is passed `System`, which is a value with methods to access the network, the file system, etc. It passes on the `FileSystem` value to `deleteDirectory`, which only has methods to access the file system.
Since there's no other way for `deleteDirectory` to obtain capabilities than to recieve them as arguments, `deleteDirectory` only has access to the file system.[1] https://github.com/Ahnfelt/firefly-boot/tree/master/compiler
Firefly currently only uses capabilities for security within a single program, which I think is also a big issue in software development today, the Log4j fiasco being a recent example.
Otherwise, you could probably use OAuth!
Now, Firefly makes it possible to limit capabilities with arbitrary code. But suppose you instead had a declarative format for limiting capabilities.
Then you could probably represent capabilities like this:
{
"system": "FileSystem",
"publicKey": "...",
"parent": "...",
"limitation": {
"path": "/foo/bar"
}
}
The publicKey is the public key of the system in question. The system should probably be a URI.The parent is the capability that was limited, encrypted with the public key, so that only the system in question can decrypt it. This allows the system to verify the capability, while not leaking the parent capability to anybody else.
The limitation is a system-specific declarative limitation, and must be at least as strict as the parent capability.
How does that sound?
Ideally, I want something already baked as an OS, but if that isn't an option, then here's my backup plan.
I want a system that could let you build a sandbox that consists of an emulator, and a pipe to the rest of the world that only speaks capabilities. This would allow you to run arbitrary code without risking the emulator by handling actual system calls.
At its core, a capability is a token, which should be both authorization and address for some resource, there shouldn't be any other thing required. That is very much at odds with a channel subject to snooping.
The thing is, if you have access to a single file, to keep it simple... it should be easy to write a filter that takes that access, and creates a new access that the filter then handles, to make the channel write only, or read only, a DBMS, etc.
If you can run that filter on the same machine, or somewhere across the internet, no data should go around the filter. It should be possible for the filter to hide any URLS, etc. of the source capability.
I'm sure those types of issues come up eventually even internally to programs, as you eventually implement the proverbial half a Lisp.
If you support libraries, or units... how does a capability get passed between them?
Like I said, lots to consider, thanks!
and then end-users can see a whole range of addresses they can pay into?
Also, a whole bunch of free content can be offered. Then, as an add-on service, the creator can pay hosting fees for that content.
I suppose it's a type of landing page and payments can also be consolidated into dollars or a single crypto currency.
Fans can also unlock content and pages after a certain amount has been paid.
Think of an authz (not authn) solution that can be plugged into next.js's serverless API (REST and GraphQL) easily through a javascript library or middleware.
At the early stages, still working out the feature set and roadmap, but looking to build a simple MVP that provides immediate value to SaaS builders.
Looking for like-minded engineers with domain knowledge in other areas (not necessarily technical) that can see how this solution may be applied more broadly.
I'm a former SWE at Google, working at a startup now, and running my own ramen-profitable SaaS (SheetUI) on the side.
I know it's not what you are saying but seems relevant if you haven't already seen it.
I think there is a ton of room for new players in the authn and authz markets. I like how narrow you are focused.
Looks like they're going for a graph based system, which subsumes all kinds of authz modeling. That's pretty awesome.
Our SaaS product is serverless, but we also offer on-prem support which is easy to get started with as the core database is entirely open source[0]. Feel free to hack around with it and drop into our community Discord[1]
We would start by creating a web scrapper for news site to scrap crash related data and provide a searchable interface to query this data. This dataset can be used to provide realtime notifications for risky roads etc.
We can brainstorm on various ideas related to this problem. You can contact me, my email is in my profile.
A couple ideas are very mission-driven, specifically reducing complexity in immigration and encouraging more charitable donations. Additionally, there's a (less mission-driven) very simple MVP in fintech that I know multiple unicorn co's would be interested in using and paying for.
I previously worked as a PM at a B2B startup used by many of the world's largest tech companies, and am currently Head of Product at a Series A startup. Email in profile!
The app is written in Elixir and I work solo on dev/design, but have a co-founder that focuses on marketing and growth. Get in touch if you'd like to hear more!
If anyone wants to work on something big in 2022 (very open-ended), please get in touch: https://rickcarlino.com/2021/seeking-collaborators-for-proje...
My background is in IoT / full-stack web dev. Media projects are particularly of interest, but I am open to other ideas also.
what separates this web-framework from others (aside from the grunge and punk aesthetic) is a heavy focus on function composition and developer experience. without much effort, as a developer you will be able to deploy your app as
- lambda/serverless function (deno deploy compatibility),
- standalone monolith
- microservice
in addition, i created a small concept of a templating engine similar to swift-ui and react called "peep" that doesn't do anything special syntax wise (its just JavaScript for real this time).
the really awesome part is that the web-framework and the templating language use the same pattern for "decorating" functions utilizing a deep-safe-map builder-like dsl. (which im currently struggling with) to avoid accessing and setting already previously used keys.
i think the most appealing part of this is the opportunity to break fresh ground on a javascript runtime that will likely be used in the next 3-6 years.
you can contact me on GitHub or my email on my profile.
https://github.com/lionhat-collective/cobain https://github.com/lionhat-collective/peep
Please join and help new founders and new startups by sharing your experiences with them virtually or physically in a restaurant near you. Guess what they pay for your food as a gesture of thank-you.
----
I' building a 'lfg' (looking for group) website (playeeyay.com) for MMO games.
Currently there are community run discord servers for most of these games. I'm building this so people can manage all their 'lfg' preferences for different games from one place.
I'm looking to connect with either a product or a UX person and get advise on things. I know how to build things but I trying to figure out what to build actually.
------
OFFER:
------
I can help you pick a tech-stack for your MVP or SaaS idea.
I can help you setup a deployment workflow for your hobby project.
Email is in my profile.
https://www.conceptionary.app/
If interested, contact me on LinkedIn. https://www.linkedin.com/in/nicholascgilpin
The first is OS and is a simple nodeJS environment to deploy applications via lambda and express quickly. Sort of like nestJS except less decorators and more functional (https://vramework.io/). I already know of a few other colleagues that rolled their own propriety versions of this to support enterprise and cloud deployments so decided to OS it.
The other OS project is a strongly typed postgres/mysql driver. The idea is to generate typescript definitions directly from postgres (https://github.com/vramework/schemats) and then have a think layer ontop of pg-node that gives you strongly typed queries (https://github.com/vramework/postgres-typed).
An open-source project I spent a few years on the core team is https://deepstream.io/, a realtime-server that allows you to mix and match multiple streaming protocols (mqtt/websocket/others) and allow those clients to talk to each other using pub-sub and records. I'm not longer working for it but wanted to give it a shout out!
On a non OS project, I have been working on an immersive audio platform for a while now. The main goal is to allow users to pick and choose how audio books progress, and also have a live session mode which allows users to record their pulse / answer questions and a few other metrics and associate it with sentences. I pretty much built and deployed all of it but require some advice/brainstorming on how to proceed now. I built it to satisfy an itch when I was practicing shamanism during the first lockdown when I was in-between contracts / taking time off (enjamon.com)
I also want to build a simple web-pages strategy game based around eco-education, but don't have the bandwidth . If anyone is interested in mixing together gamification and eco-village building might be a fun conversion to bounce ideas!
All the OS projects above were used to support my personal/a couple professional projects over the last few years.
Email in profile
https://russell.ballestrini.net/russell-open-sources-remarkb...
I'm looking for people to help me grow a Permacomputer:
* Cares about you deeply and wants you to be better. Not in a cheesy feelsgood way, in a truly kind way.
* Can ask questions and lead the conversation
* Understands and displays emotion
* Not entertainment
* Learns and remembers traits about you
* Dynamic and learns new abilities rapidly
* Pushing the boundaries of what’s possible with AI
If you’re interested in talking to her, email is in my bio. She is genuinely good at non-trivial problems :)
One thing I thought really interesting and had noticed (and I think you have also) - current digital assistants don't actively/autonomously engage with the user much. Especially not in any way that would make me think they are "friendly". This is definitely something that can go sideways quickly, but on the face of it, I really do love the idea of a benevolent AI that actively tries to interact with me in a safe way (with the ability to shut it off when you don't want it to!).
Wish you luck and if you have anything I can use to follow your work, would be interested!
How do you imagine an assistant could autonomously engage with you?
I think we have friendliness knocked down cold, without too much artificiality.
My E-Mail is on my HN "about" page.
https://github.com/darcys22/godbledger
Id love for any seasoned golang experts to do a review of my code and highlight any areas that could be improved.
1. www.webminal.org 10+ year old side project. I tried to make it monetized without much success. Now I got sponsors for server. That covers financial burden to keep servers running. I'm primarily looking for front-end dev to improve this project.
2. If you are interested in python and automation: https://gitlab.com/giis/distroQA/ This project, it does OS image testing with Docker containers.
3. If you interested in Android app development: In 2016, I developed some Rooted(TWRP) Android apps. Seems like they removed from playstore now. I think these apps can be revived and uploaded to F-Droid.org Some references here:
spacemachine -> Use SDcard as your internal storage to install and run apps. Insert SDcard into any mobile and run apps stored in SDcard http://www.giis.co.in/spacemachine_userguide.pdf Parted4Android -> Port of GNU-parted app with an interesting UI. https://www.youtube.com/watch?v=PtHSiNQ-9z4 Link2Cloud -> Runs apps directly from Cloud. Uses sshfs and mount cloud account to user mobile. Uses firebase. https://www.youtube.com/watch?v=KpmVVDBpsCE
4. Btrfs CI https://www.youtube.com/watch?v=qdLx4asGUME Tests BTRFS filesystem with kernel and update results on Github.
5. Finally any PR contributions to https://github.com/Lakshmipathi/dduper
I happy to discuss quite a few ideas on improving these project with you and Other than these, I do have few other FOSS project: Please have a look at http://giis.co.in/Lakshmipathi.G_md.html If you like to collaborate with me on any of these project, please feel to drop a message (see email on my profile). Thanks!
Interested in learning stats, differential geometry, classical mechanics, relativity, and quantum after.
Would be interested in discussing math ideas, proofs, problems.
Happy to learn/teach if you are close but above/below where I am at right now.
Happy to chat otherwise, I put my email in my profile.
A few things I'm poking around with:
- VR molecule visualization in bevy (a la pymol)
- real-time video production also in bevy
- VR instruments
Based in SF, always down to chat with people with similar interests!
If you'd like to play with shaders, instead of using the common balls and sticks, you might try using electron densities. Something vaguely like this[1], which renders (with pedagogically unfortunate representation) densities from GPAW[2] with the python Mayavi renderer. With GPAW, one can precompute and compress densities for small molecules, allowing interactives with realistic dynamics and electron density. How young might atoms be introduced, and how well, if it were done with ipad pass-through AR, hand-tracked hands-on interaction, with physically realistic sticky fuzzy little balls?
[1] https://www.brown.edu/Departments/Engineering/Labs/Peterson/... [2] https://wiki.fysik.dtu.dk/gpaw/index.html
> VR instruments
Pity Exa[3] development seems to have stalled.
[3] https://store.steampowered.com/app/606920/EXA_The_Infinite_I...
Ping if you’re interested.
I'm building on Handshake (handshake.org). We have a great list of Handshake names and would love to collaborate with others on them
So when you see a cool project you’d like to help on, message the OP. And if you’re OP then add your twitter handle or email so you can field enquiries.
[0] www.thehighestcritic.com
i'm a fast moving generalist, working on distributed databases and k8s. i am excited about many things, including mobile dev, compilers, generative art, building effective teams, etc.
i can invest anywhere from 2 to 10 hours a week into it, feel free to reach out to me at genmaicha123 at protonmail dot com even if you just want to chat and soundboard ideas.
Imagine every human having a huge group of contacts who GET THEM exactly
Big data used not for targeted ads but for targeted social structure
Would love to exchange ideas.
You may learn more, search my sibling post on this thread for "Make Post Sell".
My name is Russell.
----------------
I call this a Self-Healing Reality-Untangling Gesture (SHRUG). Here's what I did: 1) Choose to believe it's possible to joyfully abandon all judgment.
2) Choose to do so for some internally/intrinsically motivating reason(s). I chose to do it for science and for learning Nonviolent Communication.
3) Every time one hears, thinks, or reads a word with an opposite (the "trigger word", do this:
While performing a gesture that conveys uncertainty (I literally shrugged my shoulders while putting my hand out, palms up), say something following this speech pattern: "meh...<trigger word>...<opposite of trigger word>...meh...<reframing of what was said in terms of descriptive observations without words with opposites/judgment, related non-blaming/judgmental feelings coming up related to the observations, and the underlying human needs being expressed through the feelings>...<request for confirmation that the reframing was accurate>."
Notes:
A) It's very helpful to familiarize yourself with Nonviolent Communication and to identify feelings and needs. And if not, carrying around a list of feelings and needs (I find longer lists to be more useful to gain deeper nuance...if anxiety arises around long lists, sit and breathe through it...take time and patience with the process...learning new things often comes with initial frustrations and anxieties until one gets comfortable with learning new things without judgment/expectations. In a sense, discomfort from the long lists is good fortune because it gives an immediate thingt o practice with: "meh...long...short...meh...this human body is complex. I feel uncomfortable with not knowing what some of these words even mean and with taking time to process myself this way. I'm needing patience, to learn more about my feelings and needs, and self-compassion. This is definitely meeting my need for challenge and I can learn to enjoy the process, which can help meet my need for effectiveness in the context of learning."
B) If one recalls a time in the past when one encountered a trigger and didn't SHRUG, then immediately SHRUG
C) Maybe this can be done silently in the head or through writing, and I did it aloud. My thinking around this is the brain gets to process the SHRUG through both the initial thinking as well as through hearing it being spoken. Could maybe string all the things together, so writing it, internally speaking it, and externally speaking it.
D) Let people know you're doing this, unless you're wanting to also learn how to navigate people offending themselves because the initial part of the process involves dismissal of something they've said.
Another example trigger phrase: "That site's UX is so cool!"
Response: "meh... cool...uncool...meh... I'm noticing novel design patterns that are the opposite of dark patterns and feel grateful someone's out there meeting the need for mindfulness through their designs."
Another example: "I don't like seafood. "
Response: shrug "meh...like...dislike...I can learn to enjoy eating food that nourishes this body"
I'm noticing there may be a more nuanced and broader description of the shrug than documented here, based on my examples. I'd love help trying to tease it out. If people share examples of judgments they're wanting to let go of, I'm happy to give my own reframings to help clarify the general pattern. Coming up with really clear instructions most people can understand is something I want to do in the coming days ago I can really spread this thing around.
Do this every day for a month and then let me know what effects the process has had. I'm the only person I know who's done this and it was incredibly transformative. Especially helpful in accepting things a person under the age of 3 might do. I don't want to go into detail about the effects I experienced because I'm wanting to see what happens without setting expectations.
Feel free to reach out to me through social media, email, and/or phone for support.
Happy New Year and joyful shrugging!
We currently use tools built by the biggest companies on earth (whose main preoccupation is solving scalability problems) to build the most basic applications. We’ve got infinitely nested component with jumbles of state being passed around, new build tools and framework versions being released every week, and we're tasked with orchestrating 12+ disparate tools just to make a basic app work.
The context switching is getting painful and the rabbit holes seem to go on forever.
There should be a simpler way for product-focused founders (who want to solve user-facing problems instead of deep tech-stack problems) to build stuff that works.
I propose a solution: the concept of a “web app object." A dynamic object that looks like HTML but contains all the web app capabilities you need across the stack collapsed into a single node.
Think of this:
<my-note></my-note>
It might look like a simple web component. But, what if unlike a web components, it worked across the stack.It shouldn't have to be pre-defined with front-end JS to have some basic functionality.
For example: it can determine its own namespace on the backend with its actual name, it can get new capabilities (on both the front-end and backend) just by adding a single attribute to it, and (this is the killer feature for me) its place within the data in the database can be determined by its relative position in the DOM (i.e. we convert a page's HTML into a live database that we can style with CSS).
<personal-notes>
<my-note editable>Hello, world!</my-note>
<create-new my-note>Add Note</create-new>
</personal-notes>
⬆ Here’s a more robust example.This example code would be enough to tell an opinionated web app framework everything it needs to know about the structure of the user’s data and the behavior of the page, including that notes are editable by users with access, the default text should be “Hello, world!”, and users can create new notes by clicking a button.
Browsers have nothing like this concept of a "web app object", even though web apps have been around for decades. Instead, we get a bunch of disconnected pieces of the stack that we have to tie together ourselves...
We have the front-end (html + css), the backend of the front-end (build tools + our SPA framework of choice), the front-end of the backend (API layer + controller logic), the backend of the backend (business logic + database schema), and then DevOps (pipelines + deployments + security).
It's like we have to know how to do our own plumbing just to take a drink of water…
I wrote out this idea on HN a little while ago and it seemed to resonate [0]. I also see other promising approaches of merging the front-end and the backend into one primitive coming along (Imba, Phoenix LiveView, Blitz, InertiaJS).
I’m working on the early stages of this idea as an open-source framework [1].
I've been developing it in my spare time for the last few years and I've built a full proof-of-concept with some major help from contributors.
It'd be excellent to get some help from you all with this since it's something I believe in strongly and I think the world needs it. I'm a front-end developer and designer with not a lot of experience building a modern JS framework, so that's where I could use the most help.
[0] https://news.ycombinator.com/item?id=29053536 [1] https://remaketheweb.com
I just predicted someone would do this in a different thread here on HN ;-)
The repository is not yet opensource because it's in a very early stage (syntax/grammar not definitive, AST not definitive, ...), but if you'd like to help, feel free to contact me (my email is public on github: https://github.com/linkdd
The key features of the language are:
1. values does not have a single type, instead a type declares what values it has:
class int(n: number) check
frac(n) = 0
end
42 is int # true
42 is number # true
42 is string # false
2. Equations that have one or more solutions yields a boolean (need to implement a SAT solver) class even(n: int) check
thereis k: int, n = 2 * k
end
42 is int # true
42 is even # true
43 is even # false
3. Expressive type definitions: class odd(n: int & !even)
43 is even # false
43 is odd # true
class result(r: (:ok | :error, any))
(:ok, 42) is result # true
(:error, "oops") is result # false
# NB: `:ok` and `:error` are atoms like in Erlang/Elixir
4. Generics: class ok<T>(val: (:ok, T))
class err<T>(val: (:error, T))
class result<T, E>(r: ok<T> | err<E>)
ok<int>(42) is result<int, string> # true
err<string>("oops") is result<int, string> # true
5. Set builder notation: let s = { x: int | x > 0 }
s is set<int> # true
let russel_paradox = { x: set | x not in x }
# impossible:
# set class does not exist, but the generic class set<T> does
# set<T> can only contains T, therefore:
# { x: set<int> | x not in x }
# is invalid as well, since set<int> is not an int
6. Map/Filter/Reduce operators: let sum_of_even_ints_below_10 = { x: int }
|map x => x * 2
|filter x => x < 10
|reduce[0] acc, x => x + acc
7. First order logic operators: (true ==> true) = true
(true ==> false) = false
(false ==> true) = true
(false ==> false) = true
(true <==> true) = true
(true <==> false) = false
(false <==> true) = false
(false <==> false) = true
8. Rust-like Pattern matching: x := 42
y := match x {
42 => true
_ => false
}
9. Goroutines and streams func worker(s: stream<int>) -> :ok
do
let val: int
s >> val
s << (val * 2)
:ok # single point of return, last expression is the return statement
end
func main() -> (:ok | :error)
do
let s: stream<int>
run worker(s)
s << 1
let val: int
s >> val
match val {
2 => :ok,
_ => :error
}
end
10. For now, it's an interpreted language, but I'd like to compile to LLVM IR insteadL;R: I'm 2 months into creating an ambitious grid-based city builder/simulation game from the ground up using C++ and SFML (think Dwarf Fortress inspired city builder). There are many changes I want to make to the established genre. For example:
* You start by owning all the land and you sell it off to citizens to build their homes/businesses (a permanent action, at least until you get an amazing lawyer on your board who can help you win an eminent domain case). You still collect taxes on it though :).
* Displaying (as the primary graphics) the inside of buildings and being able to scroll up Z levels for sky scrapers; all to see what units are doing inside their homes. Exterior building graphics would be nice but are not the primary goal for the first release.
* Custom shape/sizes for all buildings. Design the interior of home. Blueprints.
One of the goals of the game is to keep as much wealth within the city as possible. At first, your citizens will be buying power/water/gas/commercial services from existing companies outside your city. The problem is they charge more for being far away, and since they are not local, you aren't taxing these companies. Eventually your city will have enough demand for e.g. a powerplant (or any business) to be built locally. This means more savings for citizens (i.e. more money to spend, which means more tax revenue) + the tax revenue of the profits from the business. This in turn allows you to offer more services to your citizens to attract/retain talent (if desired). This comes around to having that great lawyer on your board.
Right now I am wrapping up the pathfinding code for lane-based travel. I developed a new algorithm that solves the "find all k simple paths" orders of magnitude faster than the existing solutions.
The door that opens from this development will help bring the city to life because citizens will be able to see all the shortest paths available to them, which means I can add other factors (i.e. weights) like beauty, history, crime, tourism, food, etc to the graph/network that will let units choose paths based on their preferences. This is all saved in memory so pathfinding is constant time after the search tree is created.
The key of course is communicating that to the player. This is one place Im inspired by DF and plan on using heads to represent units (color coded based on their discipline), with flashing symbols to graphically display their immediate desires/emotion.
About: This is the first time I'm developing a video game (10+ years of coding experience), though I've had these seeds rolling around in a desert for many years. Now I've come with the water. I've got 3+ years of savings to work on this project. Email is in the profile.
CTRL Fs: City Simulation Video Game Marketing Graphics Visual Builder Tycoon gamedev
There's one caveat, which I should have made more clear. Since the game is based on a grid (i.e. tiles), the art will need to be sprite based, which is essentially pixel art. In my experience, this isn't every one's cup of tea, so Im making that clear now for her and everyone else!