[-] selawdivad@lemm.ee 2 points 1 year ago

Oooh! I've been waiting for someone to try to replace LaTeX.

[-] selawdivad@lemm.ee 2 points 1 year ago

I used Zotero all through uni, but I've recently discovered JabRef. Zotero probably has more features and polish, but JabRef has one killer feature: Your plaintext BibLaTeX file is your reference database. So you can version control and collaborate on your reference file with git. No export required.

[-] selawdivad@lemm.ee 3 points 1 year ago

But how do you authenticate to your secret manager? How do you prevent evil scripts from also doing this?

[-] selawdivad@lemm.ee 2 points 1 year ago
  • OpenTyrian (likely available in your package manager)
[-] selawdivad@lemm.ee 2 points 1 year ago

My favourite game was always hacking around in Wine to make games work. Once I got them working I lost interest and moved on to the next game... Now I don't have time to play games. :(

[-] selawdivad@lemm.ee 3 points 1 year ago

You can also type ZZ (uppercase, so hold Shift) to write and quit. But for all of the above you have to be in normal mode, so if it doesn't work, try pressing Esc first.

[-] selawdivad@lemm.ee 12 points 1 year ago

Reformed Christian. I was raised in a Christian family, and always believed in the basic concepts of God, heaven, hell, etc. But I mistakenly thought Christianity was about trying to be "good enough" for God until my mid teens. Around this time I realised that I couldn't be perfect, which was super distressing for a time. But then I read Ephesians 2:8-9 which says:

For it is by grace you have been saved, through faith—and this is not from yourselves, it is the gift of God— not by works, so that no one can boast.

This was a big relief, as it meant that I didn't need to rely on trying to be good enough for God. I just needed to accept God's free gift of salvation. That's the moment I would say I became a Christian.

Since then, I've had times where I've questioned it all, but I always come back to the resurrection of Jesus. I find the non-miraculous explanations of the resurrection account to be so implausible that it makes more sense to accept that it's a historical fact. And if the resurrection's true, then it makes sense to believe the rest of it as well.

[-] selawdivad@lemm.ee 9 points 1 year ago* (last edited 1 year ago)

Use RSS. Find good independent blogs which meet your standards of good open web content and subscribe to them. Some places to look:

Also, start your own website/blog and link to other websites and blogs.

[-] selawdivad@lemm.ee 2 points 1 year ago

Depends what you're trying to learn, and how much of a beginner you are. If you want to learn the shell, try the Software Carpentry tutorials:

If you know the basics, you might try honing your skills with CLI Mystery (murder mystery puzzle).

You'll probably want to learn how to use the following:

  • SSH
  • Command-line text editor. Choose one of the following:

The final tip is: It's usually better in the long run to spend 2 hours reading the documentation than 2 minutes searching the web. Reading the documentation helps you to understand the big picture, and gives you a much better foundation. Of course, if you're reading the documentation and don't understand something, searching the web is an OK way to figure it out.

[-] selawdivad@lemm.ee 1 points 1 year ago

It worked, but it was slow and dropped packets sometimes. I think the next team switched to Java. I met with them and walked them through the code and suggested they try a different approach. Hopefully they did!

[-] selawdivad@lemm.ee 2 points 1 year ago

One of the first real programs I wrote was a program to display telemetry data from a CAN bus. I was on the solar car team at uni, and we wanted to be able to view the data from the various systems live during the race. The CAN network was connected to a CAN-ethernet converter, which sent UDP packets over a wireless ethernet link to our lead car. I had no experience with networking, or UDP or CAN at all, but I had some documentation and a lot of free time, so I got to work.

Each device on the CAN network had a bit mask to identify it. For example, the bit mask for the motor controller might have been 0x1200. This meant that any packet starting with 0x12 belonged to the motor controller. For example, 0x1201 was one type of message, and 0x1202 another type, but both belonged to the motor controller.

There was specific logic for each device on the network, so you needed to first figure out which device owned a packet using the bit mask, then apply the relevant logic to decode the packet.

Looking back, I realise the correct way to approach this would be to have a list of bit masks:

0x1200
0x1300
0x1400

Then simply bitwise & any incoming packet with 0xff00, and lookup the result in the list of bit masks.

Not knowing better however, what I actually did was create a giant dictionary of every possible packet value, so I could lookup any packet and determine which system it came from. This was so repetitive that I had to make use of my newfound super-power -- vim macros -- to complete the 8000 line dictionary...

Excerpt from real code below:

{
    0x102:
    {
        'name':             'SHUNT_CMU_STATUS_TEMPERATURE_AND_VOLTAGE_1_2',
        'data':
        [
            'cell_0_voltage',
            'cell_1_voltage',
            'cell_2_voltage',
            'cell_3_voltage',
        ],
        'unpack_string':    'intle:16, intle:16, intle:16, intle:16'
    },

    0x103:
    {
        'name':             'SHUNT_CMU_STATUS_TEMPERATURE_AND_VOLTAGE_1_3',
        'data':
        [
            'cell_4_voltage',
            'cell_5_voltage',
            'cell_6_voltage',
            'cell_7_voltage',
        ],
        'unpack_string':    'intle:16, intle:16, intle:16, intle:16'
    },
}
[-] selawdivad@lemm.ee 1 points 1 year ago

Can I suggest duckdb? You can start out writing SQL directly on top of CSV and Parquet files. But then if you want/need to do something more complicated, you can import duckdb into Python, keep running the SQL you already wrote, convert it to a Pandas or Polars dataframe, transform it, then query the result in SQL.

view more: next ›

selawdivad

joined 1 year ago