LaTeX is great for professional-looking typesetting, and it has the power to do just about any layout tricks you want, but, in practice, you'll be fighting an uphill battle if you try to trick it into doing something that someone out there hasn't already written a package for.
(I say this as a professional mathematician, who lives his life in LaTeX. It's fantastic for writing math, and trusting that all the kerning etc. will be handled properly. However, when I want any formatting tricks, even after 25 years I still have to turn to my local TeX guru, who more often than not says "you don't really want to do that with TeX.")
Not sure what formatting tricks you mean, but that doesn't seem quite fair. When I want to do anything unusual, I google my problem and almost always there's a question on Tex stack exchange (which is blessed with the participation of most of the experts in the subject) with answers giving several easy ways to do it, using packages I already have on my computer! And it's easy to make your own commands when existing ones don't do the job.
The canonical one is forcing image placements. Sure you can Google and get a result, but all of them are prefixed with "if you _realy_ wany to do this here's my preferred workaround, but you should let Tex do the type setting".
> When I want to do anything unusual, I google my problem and almost always there's a question on Tex stack exchange (which is blessed with the participation of most of the experts in the subject) with answers giving several easy ways to do it, using packages I already have on my computer!
Yes, exactly! As I said:
> if you try to trick it into doing something that someone out there hasn't already written a package for.
There's an incredible package library out there, rivalling CPAN, and I love TeX and won't speak against it; but, if you try to step outside the package library (or even if you try to compose packages in sensible-seeming ways), as is very easy to do if you try to view TeX as a general-purpose typesetter, it rapidly becomes clear that there's a lot of magic going on that those packages hide away (more or less neatly, depending on their maturity), and that is hard to reproduce on your own, or add to.
I would say the vast majority of business documents, proposals, contracts, etc are collaborative editing with others. I didn't mention it but basically Google Docs and Sheets rules the world with these given we have a 50 user grandfathered account. For contracts, end result is exported to PDF and signed with Xournal and sent to the client for countersignature.
Australia is quite different, but there's tax payer funded unis here paying their Deans over 1 million a year who claim they can't afford to pay people more than $40/hour casually to record video lectures for first year business statistic classes to be delivered to over 600 students/year across multiple countries. They've also spent millions upon millions moving their campus in to the city when they already own a really good campus 10 minutes drive from the city with lots of decent free parking around even for undergrads. They also announced this year that they're so poor they're going to cut 75% of either the classes or courses next year (not sure which). People who run tax payer funded institutions like that should be thrown in jail.
It frustrates me that companies like Microsoft claim to love and embrace open source these days, but what smaller up and coming projects with independent developers are they financially supporting? That's the kind of support of open source I'd like to see from large companies/corporations/enterprises!
How would the developers still be independent if they are supported by a big company? If they use the money in lieu of a day job they become de facto employed by the company, only with even less job security. If they don't use the money, why do they need it in the first place?
In fact, from the perspective of the bigco, there seems to be a thriving ecosystems for leftpad-style packages already even without additional money pouring in. Why subsidize it to become even bigger?
> How would the developers still be independent if they are supported by a big company?
Jack Dorsey has Devs he pays in BTC whose sole job is to contribute to Bitcoin Core development and nothing else [1], they have no affiliation to his companies other than that.
Also, he's an investor in LN labs who are technically their own thing led by Starkbot (Elizabeth Stark) [2].
So, it can and has been done.
Personally speaking, a lot of the 'how would it ever work...' questions that come up here that are thought to be seemingly impossible to solve have often been pilot-tested inside the cryptocurrency space to one degree or another, so if nothing else I hope most of you can find value in that 'us crazy people' are actually pushing the envelope in the edge-cases of innovation.
For example, because many of us have been proponents of UBI (from various source points, mind you) from either a pragmatic or an ideological standpoint, we've tried to see what verifiable widescale UBI deployment (in Iceland) would entail back in 2014; it failed, as many of us expected it would, but we tested hypothesis whose data could ultimately be used later to iterate and improve a system.
Developers don't need to work for a company for the company to sponsor or donate to an open source project. Yes there would be less financial security but it's better than no financial support at all, perhaps sponsors etc. would be open to making commitments about donating $x/month or whatever for 12-24 months etc., not too different to governments promising funding for specific projects for y period of time. I'd take more companies supporting up and coming open source projects as a first step though!
Everyone has costs for things like shelter, power, food, water and other necessities, there is a need for some form of income.
I certainly think they should fund projects based on quality, as your reputation for quality increases I would hope that your ability to bring in sponsorship would be higher, though it's also a shame that people need years of their own funding to break in to open source software development properly full time. In many ways, open source development is only for the privileged/rich.
If a dev is supported by just 1 company, then you're right, but if they're supported by many, a-la the Patreon model, then that can give them a lot of power.
I have no idea how a small developer could ramp this up, but for a larger project, the approach appears to be to form a foundation, and to give contributing companies a chair that's closer to the table.
One small example: Microsoft financially supported the developer who added C# support to the Godot game engine. Can hardly call that "small" and "up and coming" though.
Wouldn't surprise me, but the Windows fanatics jump on anyone who questions Windows embracing Linux/open source or who bring up Microsoft's business practices back in the day (especially in relation to how much people love Bill Gates today, plenty of people would do the same as Bill with that amount of money, though unsurprisingly not that many who are willing to engage in the type of behaviour required to amass that amount of wealth in the first place).
A certain amount of people invested in the community will still be willing to host simply because they crave the social contact with other members. But besides that, a lot of passionate travelers are keen to host on CS because contributing in this way makes it more likely that they themselves will be able to save money on accommodation and meet interesting people when they travel. So, COVID won’t dissuade everyone from hosting.
Is this your own opinion or, other than meticulously picking through couchsurfer forum posts, how does one gather the sentiment of such a large community of hosts?
Thanks for the feedback! Nift can certainly be used without any scripting (whether it be pre/post build scripts, injecting output from external scripts or its own in-built scripting abilities with n++/f++).
I do worry that things like Lua/ExprTk etc. might scare people who just need a basic static website generator, as I think Nift should still be one of the easiest to use for basic html/css/js websites.
One thing I hope I've succeeded at is ensuring the barebones of a project is quite basic (check out what you get if you run `nsm init-html` in an empty directory if you try installing). If you want you can easily just use Nift's functionality for injecting/inputting content from files at build time then just use basic html/css/js/etc. for your website, while also aiming to be able to integrate with basically any other tool you could possibly want.
It is quite a bit of work to set up things from scratch, but as you identified it's hopefully quite easy to set up templates/boilerplate to be replicated for other projects. In that regard Nift attempts to be unopinionated.
I am not quite sure what you mean by separating markup from content either? The templating system is extremely flexible with how you can lay your files out, inject content from basically wherever etc..
It started out as basically just a static website generator but has grown in to having quite a few things.
The primary goal of Nift is still generating websites but not just static ones (and at scale, can handle generating websites with millions of pages). For generating websites you can manage projects and generate them. The best way to learn about this are probably the tutorials (https://nift.dev/resources/tutorials.html) which will both point you towards template website repositories you can fork and clone to make websites with, but also initialise a basically empty project using `nift init-html` and give you an idea of how to manage, edit, build etc. a project (you could also use Nift for things like making research papers/books with pandoc, as a pre-processor for any programming language, etc.).
Nift has its own template language n++ to use in the template/content files used to build webpages (you can use it for generating css/scss/js/ts/etc. files as well), though you can also use other template languages combined with n++ as well.
Due to being a template language, doing any actual programming related tasks with n++ is a bit verbose, so using very similar syntax and essentially the same underlying code I added a scripting language called f++. The main purpose for adding f++ was for use with Nift as a website generator, but it works fine as its own scripting language as well, and the f++ REPL works very well as a shell extension (if one installs Nift, start the shell with `nsm sh` and you should be able to use it basically the same as your normal shell, but you also have a full type system, everything from f++, Lua embedded, ExprTk embedded for mathematical expressions, etc. etc.), for example see the other comment on this post from me with a link to an f++ script and a bash script where they do the same thing and the f++ script takes 3 seconds whereas the bash script takes 3 minutes!
If anyone is interested in learning more about Nift or having a play, feel free to email me (contact[at]n-ham.com).
GitLab is also faster at cloning than GitHub. Whenever I have to clone a bunch of website repos to update templates for my website generator the GitLab repos finish cloning first even though I start them last.
Nift can build all of a basic 100k page website in ~11s and do an incremental build in ~2.25s on my 2014 11" i5 macbook air running Ubuntu 18.04, it uses under 500mb memory building the same basic website scaled to 1 million pages.