• 4 Posts
  • 143 Comments
Joined 3 years ago
cake
Cake day: June 8th, 2023

help-circle
  • It looks like they ginned them up from relevant specs they stuffed in and and the model’s latent knowledge of QEMU VirtIO and the absurd GPU-managed system architecture that is the Pi.

    The models have seen several IP stacks before, plus many copies of the Linux, BSD, etc. source trees.

    It’s not actually hard to write a network stack, just tedious.

    At some point in the USB keyboard/mouse code the model has loudly proclaimed PRINTF NOT ALLOWED, in the style it does when overcompensating after its obvious mistakes are pointed out to it for the third time. So I suspect that part might be implemented by brute force.

    Unfortunately, the talking horse’s OS hasn’t bothered with syscalls and lacks any notion of memory protection, and has a terrible userspace API which e.g. puts waiting for a ping response entirely in kernel.

     * Programs call kernel functions directly - no syscalls needed.
     * Win3.1 style!
    

    Usually people don’t manage to produce an entire operating system without knowing why this is a bad idea.






  • I think NeHe might still have tutorials on this, in C/C++. You probably want to be using OpenGL for acceleration and maybe the old fashioned immediate mode/fixed function stuff where you call functions like “We are drawing triangles now” and “here is a vertex” and “that vertex is blue”, and you can put off taking over the pipeline with your own shader code until later.

    You still might be letting the library/gpu do most of “the maths” because I think you mostly hand it transformation matrices and points and it sends them to screen space. If you take over the vertex shader then your shader code does that.

    You want to write a vector and matrix math library with 3-vectors and 4-vectors and 3x3 and 4x4 matrices, and add and multiply operations, and matrix inversion. The 4th dimension lets you make translation in 3D a linear multiply operation because you keep 1 in there and your matrix to represent a translation mixes that 1 into the other position coordinates to translate.

    You also probably want to learn linear algebra enough for that to make sense.

    And then on top of that you want to build a scene graph library where objects have parents they move with. And then your renderer loop will walk the scene graph node tree and push each object’s transformation matrix and draw it and do its children and then pop the transformation matrix off again.










  • If you need X months to build this product out so you can sell it, and after that Y months to become profitable so you can support yourself, you need to work out what your expenses are going to be for those months in total, and collect that much money. If nobody is going to invest it in your project (and if they did, I wouldn’t recommend taking it, because professional investors are the natural foe of the entrepreneur), you need to come up with that money yourself, which means you need to save it. Basically, you need to plan to retire for a few months.

    You need to look at the money you make and your expenses again, and you need the difference to be enough so that you can save up for the project in a reasonable amount of time.

    If that math doesn’t work, you need to change those numbers: the expenses need to be lower, or the amount you get paid needs to be higher. If you’re a programmer with a lot of experience, you should be being paid noticeably more than twice what a human needs to survive, so saving up for N months of eating pasta in a studio apartment in the middle of nowhere doing your project should only take 2*N. months of eating pasta in a studio apartment in the middle of nowhere doing your job. If you’re not making that much, your current job is underpaying you, so try unionizing, demanding a raise, or finding a new job to work at a bit before starting your project full-time.

    You can also look at options like grants (which are usually available for open-source work, but which might be able to help you end up with some sort of FOSS-based consulting outfit or open-core ecosystem), or going to grad school and turning your project into a research/thesis project done in collaboration with an advisor, or convincing your employer to let you work part-time so you can put in more hours on your project without needing to plan to have zero income.

    But, as other commenters have noted, building out the MVP is not really determinative of whether your business plan will actually work. So whatever you do, you will want to make sure you don’t have no plan for if the sales don’t start rolling in at month X+Y as you’d hoped, and you want to make sure you give enough attention to the business development and sales work that is probably actually most of the problem.



  • Maybe your idea of what a “basic” tool should be is dramatically different than mine. I’ve never really used anything other than the open source tools (GIMP/Inkscape/Kdenlive/etc.). I don’t expect a “basic” tool for graphic design or video editing to have any templates genuinely useful to a professional. I expect automatic background removal for an image to be at tech-demo quality and require a lot of manual cleanup, and to be in general impossible in video. I expect chromakey to work terribly unless my scene is lit professionally. It looks like you could do 2D tweening animations in Synfig, but I don’t know how one would do “motion graphics” in anything. (I guess you mean that animated infographic-of-text style stuff? Maybe by making each word and animating it manually in something?)

    So it sounds like you’re reaching for what are actually highly advanced tools without a lot of competitors, which may be “simple” to use and produce simple-seeming results where things “just work”, but which are themselves very complex. I’ve seen stuff coming out on YouTube now where title text is embedded in the scene, and moves with one object and has some other object pass in front of it. It’s undeniably slick, because the words are “just there” in the scene, and I can see why you’d want to deliver that to a client. But I’m also sure the tech behind it involves a team of highly paid devs, a lot of proprietary code, and probably some beefy ML models, and so nobody’s going to actually be able to use that technology for real, outside of fancy-subscription-world, until someone organizes a huge push to try and clone it. If you don’t pay the subscription, you indeed can’t feasibly deliver that thing to a client who’s asking for it.

    But the good news is that you don’t need those tools for “basic creativity”. You can do “basic graphic design”, in terms of coming up with an idea for somebody’s logo or something, on a napkin with a tube of lipstick. You can draft things to professional quality with pen and paper if you have practice.

    The other good news is that working within constraints will improve your creativity. Your tools and their limitations necessarily inform your artistic output. If everybody else is working in AfterEffects End of History Edition, they’ll all be making samey art that looks like what that tool makes. If you act out whatever was going to be in the motion graphic with condiments out of your fridge and edit the footage together in Windows Movie Maker, I guarantee you the result will be interesting. Will it be what every client wants? Of course not. But somebody out there wants what you can deliver.

    I have no idea what you’re subscribing to for “market research” or what kind of “platform” is “speeding up” your “SEO” or “brainstorming”. If you’re a one-artist operation, you don’t need a platform for market research and SEO optimization, you need to track down your sales leads artisanally, one at a time. You personally will never be the top Google result for “graphic design”, so don’t try. You need to write your own copy, without help (and honestly you shouldn’t think of it as “copy” anyway; you just want the speeds and feeds for your services and a portfolio of your work). And if you do somehow need to brainstorm marketing ideas, you’ll need to do it the slow way, because you indeed don’t have the budget to pay to speed it up. But that doesn’t mean it can’t be done, or even that it’s infeasible.