I'll have to look around and see if I can find that old site.
I do remember DA had some really great tutorials, and Pixeljoint was full of neat stuff to look at. Twitter was also a good place to check sometimes.
In a bit less mature vein, here's a 2D pixel sketch I made a while back that came to mind. I was trying to recreate the enthusiasm I had when drawing combat pictures as a kid.
When I taught art at the local college, I would sometimes give extra credit to students who tried pixel art, and I usually spent some time demonstrating how photoshopping could be done effectively and even quickly at the pixel level.
If you can work effectively with pixels (and maybe beziers in the vector world, not just the manipulation technique but the minimal-node style), you can pick up just about any graphics tool faster. I would even include 3D design tools in that.
It does not apply to most mainstream encryption methods. Most methods will allocate the sectors containing encrypted data, but you need to use the decryption APIs to access the data.
On the AoC website you need to provide solutions for each day in a given year to see the next day’s problem, so you can’t instantly see all the problems from a given year unless you’ve previously completed them.
You may be able to find the problems elsewhere on the net.
All problems are available as long as their day has come even while the event is running. But the part 2 of each problem requires solving part 1 first.
If you're looking for something to play with at the HW level, it can be overwhelming to know what to start with. Stick to Arm Cortex-M. That will get you the furthest the fastest IMHO. If I was to suggest one company -- even though they all have their strengths and weaknesses and niches, and I work regularly with several like NXP, ST, etc. -- I think Nordic Semiconductors does a very good job with their support forums, SDKs, tools, etc. BLE is also a very rewarding place to start since you can talk to your phone, laptop, etc., which is Nordic's niche.
A development board like the nRF5340 DK has a HW debugger on it out of the box (to program the MCU and debug programs), is reasonably priced, works cross platform, and packs a lot of processing and peripheral punch. Being based on the Cortex M33 it has a solid security foundation (TrustZone and TF-M), and works well with a first-class RTOS like Zephyr with open source networking and wireless stacks.
You'll find answers to common questions with this chip on their forums and online.
There are other options -- ST and NXP have many excellent MCUs and inexpensive dev boards -- but the nRF boards and the ecosystem around them make them a good choice to make a serious start and learning embedded, and they are one of the only vendors who reliably answer questions on their support forums. The nRF53 dev board brings a lot of value as a serious learning platform if you're getting started.
Like any niche, it's hard to know where to start and it also depends if you are more interested in HW design, or the firmware side of things. You need some knowledge of both since they overlap in many areas in embedded, but they are different paths.
Assuming you mean more writing firmware, the biggest thing to understand is that embedded is all about C. You'll absolutely want to learn the basics of C and properly understand pointers. A key part of C is understanding data types (signed, unsigned, float) and notations you rarely used in other fields like hexadecimal which is omnipresent in embedded. If you grew up learning C#, node, etc., you likely don't properly appreciate these fundamental types, and you'll need to learn those fundamentals, but that will come with learning C.
For books, I like Jack Ganssle's "The Art of Designing Embedded Systems". He does a good job of laying a solid foundation for planning embedded projects. It's opinionated, but you could do worse than start with his ideas.
And start with a professionally maintained foundation for your projects. Arduino is good for some people, but it won't scale and won't give you the skills you need professionally, and scripting languages like MicroPython won't help you later in life. Use a language (C) and platform you can go to production with, such as Zephyr RTOS, Azure RTOS, FreeRTOS, etc. It's more work and harder up front, but the investment will pay dividends and you'll learn good habits from the start.
The comment above is great advice overall, but I break with it on the last paragraph. I think most people in the "I don't know C or electronics, but want to get into electronics and firmware" camp should start with Arduino (or clones).
Not because it's great technically and not because the editor is great (frankly, it's awful). The reason I argue to start there is that they've made the first 15 minute experience stupidly easy and convenient and, as a result, it's become wildly common and popular and you can readily find Arduino-platformed examples for most of the basic electronics technologies. If you're the type to learn best when you can see glimmers of visible progress, Arduino gives you smooth on-ramp.
You will need to wean yourself from that reliance/training wheels at some point, but I think it makes the first 2 months 20x easier, especially if you're trying to learn datatypes, bit-packing, pointers, memory management, analog electronics, digital electronics, communications protocols, in-circuit programming, and everything else (PCB design?) all at once. Break it up a little.
I certainly don't disagree, and wrote many an Arduino library and drivers and tutorials myself.
As long as you eventually take the training wheels off, and know that Arduino isn't a path that leads to being able to create financially viable products, and it's a first step.
It won't teach you certain good habits, but it will perhaps get you hooked and motivated, which is useful in itself, and does give you the satisfaction of making motors whirr and LEDs blink quickly.
I really, really like The Art of Programming Embedded Systems but I think that (1) it's out of print now and (2) it has some dated advice (that was excellent at the time) that can send a modern programmer down the wrong path. OTOH, Jack has a mailing list: http://www.ganssle.com/tem/tem432.html that is current and very informational.
I agree that Arduino is not a good start if you intend to become a professional. Arduino works really well for the non-technical person who will never progress beyond the arduino ecosystem, and for the experienced embedded programmer who is well aware of its limitations. Beyond that, if your intent is to learn embedded systems professionally, pick up an ST Discovery development system (about $20 IIRC) and have at it. Although I worked for a company that standardized its embedded development on Nordic processors, I don't recommend them unless you need wireless in your project.
How do you handle backups with your instance? I have a simple bash script that sync the entire data directory to Backblaze and I'd love to hear easier or better ways to do this.
The one thing that gives me hypertension when self hosting a code repository is backups.
The hard drive of your server can fail at any time and when self hosting you are responsible for your backups.
This is giving me night terrors, especially when its on a cloud server and I don't have access to the hardware.
Currently, I'm running a cron task once per day executing a simple backup script that does the following:
Stop the Gitea container, copy the entire Gitea directory (including the docker-compose.yml and the data directory) to a backup folder, restart the container, sync that folder to a Backblaze bucket, delete the backup folder.
Restoring the backup is (should) be as easy as downloading the bucket from Backblaze and simply docker-composing it up.
I'm looking for other ideas advice that will help me sleep at night. Thanks!
For what its worth, another thing you might consider looking into is using RSnapshot [0]. RSnapshot helps me sleep at night. This will create multiple directories that are hard links to files that did not change, thus saving disk space and giving you multiple days or weeks of snapshots, in the even something was corrupted and you want to roll back at the filesystem level. Most questions one could come up about rsnapshot with are answered on Serverfault [1] There are many how-to sites [2] with usage examples. You can create snapshots locally or remote. On mac you can brew install rsnapshot.
Snapshots aren't a backup. However they do obviously have their merits too. Personally I'd recommend ZFS over RSnapshot and then make use of raidz so you have redundancy at the hardware level as well as at the snapshots.
You can do that with ZFS as well but that still doesn't make snapshots a backup. The backup is when you send those snapshots to a remote volume. If a backup isn't stored remotely it isn't a backup (it also shouldn't be mounted locally).
Yup, aware what ZFS could do. I was not going to suggest it since they are talking about a personal git server. ZFS likes memory, lots of it. Rsnapshot is a simple perl script that uses rsync. The backups and snapshots are wherever you point it to. Local, remote, both, 20 other locations if you are so inclined.
One of the advantages of systems like git is that you just need to clone and you have a complete copy of the original repository, you can synchronize with push/pull. No need to mess with backblaze and containers unless you want to back up your server configuration too. If you lose your server, just push your working copy on a new server. With enough people, losing data becomes almost impossible.
In fact you don't even need a server, just push/pull between your machines, a server just makes things more convenient.
Do you not have all your code locally as well? It seems like if your drive failed for a personal git host, you could just re-push everything back up to it.
Glusterfs Replicated 3 (1 arbiter/parity), put on top of zfs filesystems with checksumming.
Users/consuming services can Fuse mount over the network
Incremental backups of bricks (1 should be enough) to a mirror or spinning rust
Then all you need to worry about is offsite
If you really only need to solve for gitea, this is prob overkill but if you have more services putting stuff on disk it could be worth it. Works great for me.
I'm also recently starting to get into pixel art. Maybe you have some cool pixel art galleries or even tutorials you could share with me?
What's your favorite pixel art?