1,613 karma · joined March 31, 2013
We are still far from where Servo or Ladybird are, but we are able to do a lot of neat things already: html5/css3 parsing works, we have a modular system that allows multiple backend renderers, sites are starting to look like sites instead of garbled text and we are in the process of implementing process isolation.
During this time, i tried to blog the experience, the planning and the things we've faced over time.
Happy to answer any questions!
So, here is the proof of concept: a browser engine for over 2 years in the making and we just got to the part where we connected a lot of moving parts into a single engine system. Rendered web pages are starting too look more and more like their intended view although we are still very far away to render everything as intended.
Our goal is to become yet another browser engine. Not the best, not the fastest, not the smallest. Just an alternative. We need more of them to keep the web open. We want our engine to be modular by design, meaning you are able to swap backend renderers, font systems, HTML/CSS parsers, render pipelines, and even the network stack if you want.
Right now, we are busy getting our process isolation system merged into our main engine so we can separate parts of the engine and confine them to the lowest possible security state.
On AI: yes, we do use and merge PR's generated by LLM's, provided all code is owned, understood, reviewed and tested. We are still formalizing this process, just like any other software project these days.
We are not as far as a Servo or Ladybird, and we don't pretend that we will ever reach that level, but we are hopeful considering that we never thought we would even come to this point. This also mean that we don't have all the organization, marketing, experience skills on building large software, so right now we are trying to get the word out for enthusiasts to join us and to make the project good enough to gain enough traction.
More information about the engine: https://gosub.io, and of course the GitHub repo: https://github.com/gosub-io/gosub-engine. You are always welcome to join us at the Zulip developer chat to say hi and ask questions.
I'm not taking about "chatgpt, write me an android clone, make no mistakes". But large software projects do not have to be a solely large player game anymore. I think that with much and much less resources, there can be new alternative phone os'es either or not even based on android.
The biggest issue is market share and lock-in where this problem falls into. But this happens in every monopoly that exists. The technical barrier not a technical problem anymore, its now a political one.
There are a lot of things that can (and will) go wrong when it comes to computers, life, work, holiday and cats. This project will send you disaster drills when you least expect it to see how well prepared you are. It contains tips and tricks and you can score yourself and match against others on your preparedness level.
I've set this up as a small weekend side-project for two reasons: first, because i fail too often when it comes to disaster prepping myself, and secondly, I was very curious to see if I could use LLM systems like chatgpt and deepseek to "generate" apps/sites. Turns out that it wasn't too bad, although i wouldn't fire my whole development team just yet.
I was surprised with the actual code that was generated (symfony7), and even though it sometimes got things completely wrong, i found that with some nudges in the right direction, it ultimately could figure things out well enough for me to incorporate. Although, without any (deep) knowledge of what I'm wanting to do, or symfony knowledge, i would not have been able to create this project.
So about the project: Suppose you lost your phone. How would you cope with this situation? What is your laptop failed to start up? Would you have backups? Have you tried to restore them? Do you have a plan on how to get back up and running quickly?
There are a lot of things that can (and will) go wrong when it comes to computers, life, work, holiday and cats. This project will send you when you least expect it a disaster drill with a scenario to see how well prepared you are. It contains tips and tricks and you can score yourself and match against others on your preparedness level.
Obviously we cannot write everything by scratch, but we don't know yet where we draw the line.. We like to keep things modular as possible so we can easily swap out the systems we use in favor of better ones in the future.
Yes, there are a lot of browsers out there where I can contribute to which would be more efficient. But that would result in just a few browsers instead of a lot of browsers. I'm all for the last one, as this would give people options.
This IS a pet project. I never told anyone otherwise. I would start writing it even when I wasn't fed up with the tech industry. But I get angry about not being able to do anything about anything. And this is my way of trying to do something about it. It's the best I can do.
I think this project will not result in an actual browser. That's not why i'm writing this. I want people to see my code, either laugh at it, or get some own idea's to make things better. For instance, I LOVE the whatwg site where the whole html5 tokenizer and parser algorithms are step by step described. This means it should be easy(?) enough for anyone to write their own html5 parser. What would happen if google and/or microsoft decide to create their own custom html5 (html5, ghtml) as a closed format? Who would be able to stop them when they have such a market share?
I want to start for scratch - BECAUSE i want to know more about the underlying technical challenges.
I seem to have a good amount of ideas, and the know-how to get projects up and running, but without the help of others everything those projects seem to be dead on arrival.
Now that I'm trying to focus more on monetizing projects, I seem to missing the people around me to deal with the sales, the marketing, the reachout to other and getting people enthusiastic about my next project. And quite frankly, I have no idea how to find them..
Yes, pinpoint can do more.. Will update
I will try to update and correct services as soon as I have more info (or somebody can provide it to me)
The examples are in XML because json is, (and I believe at this point), still not stricly an (accepted) hypermedia capable format, thus not adhering the HATEOAS constraint, and thus cannot be restful. But to be honest, I'd prefer JSON over XML anytime.
Please, if you have any idea's on how to improve the site, the whole idea was to set up a small set of articles which others could help out expanding. It turned out that not many people actually posted their idea's (or even complete posts), so what you see on the site is pretty much the same thing as 2-3 years ago. I'd love some more PR's on expanding with up-to-date technologies and techniques (even those who aren't truly restful)
4) According to Roy Fielding, you don't (you don't version your website), but you can add/change/delete your resource versioning. I'd (and many) prefer the accept-header for this, but there are as many different versioning systems as there are API's.
5: hypermedia / HATEOAS
6: sure. If it makes sense. Not everything is hierarchical, but things that are, do it.
7: 418
The reason for this was figure out myself how certain things should be done in a "restful" way. To be honest, truly restful is an utopia imho, but on a daily basis, I see many advantages (as well explained in Roy fieldings dissertation) about the restful setup in comparision to a non-rest setup.
Pragmatically, since I'm not building API's for HUGE system (and even if they are or will become so), it's still possible to use non-rest components (yes, even verb-like systems and url versioning like /api/v1/.
I consider rest to be like the pirates code: not so much a strict law, but more as a guideline.
Based on the answers of the assessments, we calculate how well a candidate would match the job on a technical level (you don't have to score well if a company is looking for a junior developer for instance), so it's not quite a pass/fail test like any certification.
We don't pretend to be a complete replacement for any technical interviews, to see if a person actually is compatible with the rest of a team etc, but it's a good way to quickly separate the "good" from the "bad" so you can spend your time saved on the actual potentially good candidates.
The assessments are still a bit focussed on "theoretical" knowledge, but we are adding more and more situational questions to the mix (when you get error X, what is probably wrong, how would you implement something like Y etc).
We are curious on how you like the platform, how a system like this would fit in your HR process (if at all), and if you want to seriously try it out, you can contact us for some credits for assessments.
We are just starting with mostly PHP centric skills (like different PHP versions, Symfony2 framework), but we are working hard to add HTML5/CSS3, javascript and jQuery to the portfolio as well.
Our goal is to move away from only the standard "knowledge" questions, but gradually moving to a more situation based system, where we ask people to respond to problems and situations arising when working with those particular skills. Also we like to add more and more intelligence to the system to figuring out what kind of candidate we are dealing with. Also we would like to build more "intelligence" into the assessment system, where we figure out the actual skill level based on a dynamic range of questions (so for instance, we start out with simple questions, move on the more difficult set questions each time you have questions correct)
I know there are many cultural differences between hiring people in the EU and the US. Especially in the Netherlands, it's not often you find that you need to work your way through many layers of interview rounds consisting of tests, phone interviews, etc. We have a more "we'll try and see how it works out" attitude I guess, as it's quite normal to have a 1-2 month probational period. That being said, figuring out a candidates potential BEFORE the hire saves a lot of time and money, especially when you have a range of potential candidates available.