It started out as being a means to send a video feed into OBS[1], which is how I rigged the webcam input, but as the project grew, it expanded to being a way for me to spin up desktop video and audio sharing in a browser, sorta like Zoom, etc. This let me run virtual movie nights with people remotely.
Whilst it's possible to use it via the 'create a room' interface, you can also do it all via URL parameters which I found much more flexible and robust. See here[2].
You create source and recipient URLs and then it just automagically makes it all work via WebRTC. I was able to for example make a source that captured my VLC window and sent out the video and audio, and then two destination URLs which received the source video and audio, but also sent their own audio to one another. This meant we could hear and watch the movie but also talk to each other via our microphones. All within browsers.
I've got no relation to this project besides thinking it's really awesome.
The things we could build if S3 specified a simple OAuth2-based protocol for delegating read/write access. The world needs an HTTP-based protocol for apps to access data on the user's behalf. Google Drive is the closest to this but it only has a single provider and other issues[0]. I'm sad remoteStorage never caught on. I really hope Solid does well but it feels too complex to me. My own take on the problem is https://gemdrive.io/, but it's mostly on hold while I'm focused on other parts of the self-hosting stack.
I used to find it rock solid, but around two years ago reliability tanked. I found myself regularly having issues with interfaces (a genuine Intel server-grade multi-port NIC) flip-flopping. About a year ago, I started having random issues with traffic no longer routing, out of the blue. Lately both issues seem to have gone away.
Right now the software update function dies half the time I try to run a check, with a long sqlite query string / error being dumped to the console. This has been going on for at least the last couple of months worth of releases.
About a year or two after install, reboots and power-offs stopped working. The system just hangs instead after printing out a message about USB, and I cannot figure out for the life of me what's wrong. It's a standard Dell SFF PC, nothing exotic, and had been working fine until a major release broke it. FreeBSD's documentation about ACPI is impenetrable, so I can't figure out what's going on.
Startups and reboots used to be lightning quick, with maybe a minute or less between the bootloader kicking off loading the kernel and interfaces/routing/firewall up and it giving its happy chime. These days the system spins its wheels for ages doing...something, not sure what.
I find the project pretty outdated and behind the times. The UI purposefully obtuse with terrible organization and field names and a lot of missing help text to keep their support/consulting biz strong.
They're really far behind on features. There's no application blocking, monitoring/diag is rudimentary, it has extremely limited backup functions (Google Drive and that's it, I believe), and even the DNS blocklist functionality is extremely rudimentary, with only a fixed list of really trashy, unreliably lists available to pick from (one of the groups they pull lists from has demonstrated extensive issues with QA, routinely including things like certificate validation servers in their blacklists.) They've also gone out of their way to make the Adguard Home plugin annoying and confusing to get working if you want to configure it as a proxy to unbound, which is needed if you want DHCP hostname records to work (speaking of which, DHCP leases are needlessly obtuse to mange.)
Their release process is wildly unsuitable for production network equipment. A 'major' release is immediately EOL'd as soon as the next major release comes out. Running 20.1 and need to stay on it because 20.2 breaks something or you want to wait for the dust to settle? Too bad. There's no security releases for older major revisions. And it wouldn't be so bad if each major release was followed by a number of "oops we fucked up...." point-point releases because their QA isn't very good.
The devs are sticks in the mud, too - mostly "franco." They bitched and moaned up a storm for YEARS about wireguard being "insecure" despite no evidence to back their claims, citing that as the reason for refusing numerous requests for integration, and even refusing code contributions from the community for it. They eventually caved. The wireguard plugin is still pretty meh and difficult to navigate unless you know wireguard well.
ARM support? Zero interest in even assisting community efforts, which have gotten impressively far with it, especially now that ARM support in FreeBSD got appreciably better in the last release or two. I suspect it's because they see it as a threat to their (grossly overpriced) hardware offerings.
The list goes on.
They forked pfSense (a good thing, the pfSense devs were being massive dicks) but seem to now be largely on "cruise control" and leveraging community goodwill.
I was a CS teacher for 8 years and the way I was able to hook like 85% of classes was I was introducing them to Hackits [1]. They all loved it because they use the web so much and this gave them the feeling of being able to look inside the matrix
This was also how I got into CS many years ago. The old tricks still work
However some, in particular Emily Oster, argue that the risk is negligible and that having an overly complicated set of steps for tired parents to follow is counter-productive:
How to freeze your work number (copied from reddit):
Create an account using one of your employers (old or new, it doesn't matter). If you have problems with this step, then skip to step 2 and ask the CSR for help with this.
Call the customer service at 866-222-5880 (FYI, it helps to call early in the morning when most people are asleep) Choose option 2 for "Report a problem..."
Tell the customer service rep (CSR) that you want to freeze your SSN on TWN. Verbally verify that this will keep 3rd parties from accessing the info. At this point, the CSR may try to direct you to the online form, but you need to be firm and say that you want to complete the process over the phone. If they still try to direct you to the online form, say that you will not be satisfied until the process is completed over the phone. I know this can be uncomfortable for some folks to challenge someone like this, but it's the easiest way.
At this point, the CSR will ask for personal information including your account name (created in step 1) SSN, DOB, address, email
The rep will send you a one-time code using the method of your choice (phone, text, email, mail). I chose text message. Tell them the code verbally over the phone
Congrats. Your SSN is now frozen on TWN, preventing 3rd parties from access without your authority. You will receive a confirmation email
Optional
8) If your CSR was friendly and helpful, ask to speak with their manager and give them a little praise. Pull a reverse-Karen
I prefer this method because it prevents you from having to mail or email any documents and you get instant confirmation and a case number to review your status. The whole process took like 10 minutes over the phone.
Not quite what you are asking for, but perhaps display-switch[0] can help. I'm too cheap to get a KVM which supports 2 4k monitors so I'm using display-switch instead. Works wonders.
As the blog post points out, this requires coordinating Wireshark's "(Pre-)Master Secret Log filename" / tls.keylog_file preference with you web browser's environment, so a while back I wrote a Wireshark Lua plugin that automates as much of this as possible. It pops up a window that lets you launch Chrome or Firefox with the SSLKEYLOGFILE environment variable set to the correct value: https://gitlab.com/-/snippets/2156054
I have some recommendations for you as an EE graduate, you can club Digital Circuits and Systems, Embedded Systems and Digital Hardware with one book in one continuous course with
the book Digital Design and Computer Architecture by Harris and Harris (A RISC V Edition will release soon in 2-3 months, buy that one)
For Electronic circuits choose Microelectronics by Behzad Razavi. Instead of Purcell go for "Engineering Electromagnetics with Ida", it is more intuitive.
And th first book you should start with is "Foundations of Analog and Digital Electronic Circuits"
Then you go for DDCA and Ida in parallel.
The list does give me head scrather, this is too broad to be ever accomplished. My recommendation to redo the list is first find out what piques your interest in EE, Digital hardware, analog hardware or control systems or embedded systems and try to have a self study focus in that concentration.
The way I see it with this plan you are setting yourself up for failure.
Edit:Removed the ditching recommendation as I see it relevant to OP's goals.
Android FRP is also bypassed by various tricks like this. (usually involving starting Talkback, going into help, there clicking on YouTube video, clicking something to open browser...etc)
I had the same perspective on these frontend technologies as a backend/ops guy, and it all finally clicked when it came to me that I just couldn't find a justification for why CSS was the way it was.
This was solved trivially by just reading the history of CSS. It was shocking to finally have made clear all of the quirks and weird aspects of CSS that always made it difficult for me to connect the dots and feel myself lost in a messy tangled up language.
For anyone wanting to try it, WireGuard with Algo VPN [1] to set it up on a server is a great combination. I found it quite easy to setup and use.
Algo has built-in support for various cloud providers, where, when you run it from, day, your desktop, it can setup the VPN server for you based on answers to some questions (with sensible defaults) and some information on connecting to the provider (like an API key, for example). You also get QR code images that you can use to install a VPN profile on your phone.
You can also run Algo from within a server and have it setup the VPN for you.
I did a bunch of work to make one of my hobby projects (https://pitchy.ninja) work off-line. The trickiest part was data synchronization between IndexedDB and the database on the server, managing and resolving conflicts if the app was used on multiple devices offline at the same time (then went online again.)
Although IndexedDB worked pretty well in the end, it is a very finicky database, with a really convoluted API. There's a whole bunch of corner cases that you need to handle, and some of these are non-obvious.
There are many. The Raspberries are great value for the money as video players, also because of the really good CEC implementation, but for everything else, and I really mean everything else, there are much better powerful or cheap, sometimes both, alternatives.
Take a look at this list which is being updated roughly twice a year, and don't miss the downloadable spreadsheet comparison tables.
Easily the Tiny Habits habit formation regime created by Stanford researcher BJ Fogg. A lot of the addictive design patterns you see in apps like Snapchat, Instagram, etc. are built off his research. Quite nefarious use of psychology for advertising/“engagement”, but the plus side is you can use the same strategies to build habits you want to build.
Step 1: Consider the habit you want to build, e.g. “I want to meditate 10 minutes every day”
Step 2: Make it the absolute smallest possible version of itself; so small that it requires zero motivation/willpower, e.g. “I want to close my eyes and take 3 deep breaths every day”
Step 3: Place this habit immediately following an existing habit, e.g. “After I brush my teeth in the morning, I will close my eyes and take 3 deep breaths”
Step 4: Do this activity, and after each time you do it, reward yourself with a small celebration. It sounds ridiculous but I literally just say “Victory!” and force a smile on my face. The small rush of good-feeling-chemicals will keep you coming back.
I’ve used this method to pick up daily meditation, journaling, and flossing (acquired simultaneously!) after years of struggling to pick up any one of them. The first two habits have been monumental in my ability to learn, take on stress, and improve virtually every one of my relationships.
A shameless plug for BJ because he’s a great guy: his book, Tiny Habits, happened to be released today (what a coincidence!). I haven’t read it but if this is remotely interesting to you, I’m sure it’ll be extremely useful and engaging. It’s on Amazon, you can find it!
Sidenotes:
* Don’t worry about the habit scale down, it will naturally grow over time into its fuller form. I spent a month of the year just flossing 1 tooth each night (ridiculous, I know!), then 5 months just flossing 1 row (better!)
* Part of the trick is finding a good habit to put your new habit after. You probably already have a lot more habits than you know, since the whole point of a habit is to be automatic.
I use wireguard for personal VPN on multiple servers, and to make things a bit easier for provisioning I wrote this simple tool: https://gitlab.com/vsviridov/wg-provision
I see a lot of cool Slack competitors. Including Keybase Teams. But raising $50M seems like a lot for an open source one!
It makes me hopeful that we will be able to raise that kind of money soon for our platform. We also have AGPL dual license. However, our goal is more ambitious: we built a platform (https://qbix.com/platform) to let ANYONE build their OWN social apps and plugins, and then let communities host them. Like Wordpress + Plugins but for Web 2.0 (think Facebook rather than blogs).
I imagine building a Slack competitor would take about a month of focused work. And then anyone would be able to install it, on one machine.
But, we spent all these years building the tech and doing security audits. What are your recommendations business-wise, to take it from here to getting funding like this? (Without compromising the vision.)
I've recently gotten into backpacking and learned that the most effective way of dealing with mosquitoes and ticks in nature is Permetherin. https://en.wikipedia.org/wiki/Permethrin.
It is intended for clothing and not the skin. The best way to apply it is to soak your clothes and let it dry. Spray on applicators are also available. Once it is dry, it is very stable and safe. It does breakdown with UV and washes, so it will need more applications. It is also available for sale and the pre-treated clothing does last through more washes.
Note: Permetherin is harmful to cats when it is wet so if you have cats at home, please read up more on it. Once it is dry, it is safe around cats.
missiveapp.com and conferenceBadge.com, my two startups, have both been rejected at the interview phase. Our yearly revenue for both now stands in the 7 digits. We are still just a team of 3 + 1 employee, 100% bootstrapped. Life is good. My advice, keep pushing!
Don’t worry if Rails is the right choice. You might love it or hate it, but regardless, you’ll learn things like writing tests and using version control.
http://staticding.org/ helps with those, the only thing I don't like about it is the overlay it puts on the screen and fades out. I forked the github repo to remove it.
Chromium Ungoogled repo [1] made it to the `top30` some days ago. I too have switched back to Firefox with the release of Quantum and have been very pleased.
Frankly, I am amazed every day that Ungoogled Chromium, Firefox, & DDG.co are as good as they are. (aka: slightly inferior to Google regarding product polish, but truly "good enough" 98% of the time - without selling my future data down the drain)
https://vdo.ninja/
It started out as being a means to send a video feed into OBS[1], which is how I rigged the webcam input, but as the project grew, it expanded to being a way for me to spin up desktop video and audio sharing in a browser, sorta like Zoom, etc. This let me run virtual movie nights with people remotely.
Whilst it's possible to use it via the 'create a room' interface, you can also do it all via URL parameters which I found much more flexible and robust. See here[2].
You create source and recipient URLs and then it just automagically makes it all work via WebRTC. I was able to for example make a source that captured my VLC window and sent out the video and audio, and then two destination URLs which received the source video and audio, but also sent their own audio to one another. This meant we could hear and watch the movie but also talk to each other via our microphones. All within browsers.
I've got no relation to this project besides thinking it's really awesome.
[1]: Used for streaming your computer online, e.g. on Twitch. https://obsproject.com/
[2]: https://docs.vdo.ninja/master/how-does-it-work