u/daymi
daymi
daymi
Orthodox easter was from 3 May 2024 (Good Friday) to 6 May 2024 (Easter Monday) this year.
I'm in Larnaca and there was an awesome huge easter fire with a lot of people in attendance. And a lot of fireworks and explosives.
I actually quite liked it.
daymi
I use zerocopy. It's nice.
The model is that zerocopy::LayoutVerified is something that is both a u8 slice AND a specific struct.
See https://docs.rs/zerocopy/latest/zerocopy/struct.LayoutVerified.html
Basically:
use zerocopy::LayoutVerified;
use zerocopy::U32;
use zerocopy::byteorder::LittleEndian;
#[derive(zerocopy::FromBytes, zerocopy::AsBytes)]
#[repr(C)]
struct Header {
a: U32<LittleEndian>,
}
fn main() {
let buf = [1u8,2u8,3u8,4u8];
let (header, remainder) = LayoutVerified::<_, Header>::new_from_prefix(&buf[..]).unwrap();
println!("Hello, world! {:#x}", header.a.get());
}
daymi
https://www.mieterschutzwien.at/232/mundlicher-mietvertrag-vollig-rechtlos
Mir wurde das so erklärt, dass der Mieter einfach behaupten kann, es sei ein mündlicher Vertrag gewesen. Im Zweifelsfall war darin enthalten, dass keine Befristung der Mietdauer festgesetzt wurde ("im Zweifelsfall für den Mieter").
daymi
Wieso? Es ist in AT eher ein Problem wenn Du KEINEN Mietvertrag aufsetzt--dann gilt nämlich der gesetzliche Default und das hieße der Mieter dürfte für immer drinbleiben.
daymi
Hmm, why is it not [[...; 8]; 8] ?
daymi
Right now, you have all the power. There is a massive shortage of capable software developers. Don't forget that in the meeting.
daymi
Mein Problem ist einfach: wenn ich kündige, muss ich einerseits noch 3 Monate da arbeiten und andererseits macht sich das natürlich ultra schlecht im Lebenslauf nach so kurzer Zeit zu wechseln
Wenn sie Dich rauswerfen schon. Aber wenn Du kündigst brauchst Du halt einen guten Grund. Und den hast Du.
(Später kannst Du damit auch früh rausfinden, ob neuer Arbeitgeber dann auch so Arschgeigen sein würden)
Probezeit ist ja dazu da, damit beide Seiten rausfinden, ob sie miteinander können. Ihr könnt nicht. Was soll daran falsch sein, wenn Du jetzt gehst?
Wenn Du unbedingt willst kannst Du auch die Stelle ganz aus dem Lebenslauf weglassen. Niemand sagt dass da alle Jobs drinstehen müssen.
und die würden mir bestimmt das krumm nehmen und
versuchen mir mit dem Arbeitszeugnis eins reinzuwürgen :/
Das ist illegal (zumindest in Österreich). Sollten sie das machen -> Anwalt.
Ich mein entscheiden ob Du gehst oder nicht musst Du selber. Aber ich kann Dir nur sagen das was Du da beschreibst ist die Anbahnung eines Burnout. Ich hatte einen als ich jung war. Hat ca. 5 Jahre gebraucht um mich psychisch wieder geradezubiegen. Do not recommend. Und wofür bitte?
Würd ich mir nie wieder antun.
Wenn Du willst, versuche zuerst Grenzen zu setzen was Deine Arbeitszeit und Dein Arbeitspensum betrifft. Immer schön schriftlich (E-Mail) Chef am Laufenden halten. Arbeitszeit nach Vorschrift. In DE und AT gibt es übrigens verpflichtende Arbeitszeitaufzeichnung und gesetzliche Limits. Sollten diese überschritten werden und der Staat das mitbekommen, hat die Firma ein Riesenproblem. Also immer brav Zeit buchen (korrekt! So wie es real ist).
daymi
Now i think to learn a new langage more middle-level, and Rust seems really attractive to me. I dont know if for pedagogical reason it will be preferable to begin by a little bit of C and C++ before to fully go on Rust ?
A little C (as in K&R C book) doesn't hurt--if just to show you what it would be like so you don't want to touch it again.
C++ is unnecessary to learn for Rust imo (C++ is basically a scrappy version of Rust--so waste of time).
Personally, I'd do some simple C programs (with string processing) and then do the same program in Rust.
Just read a string from the command line in C, parse it to an integer in a custom function and return that. Then create a string that contains some text AND the integer. Return that from a function. Use it in the main program.
Try to actually do all the error checking (check return value of printf, how to tell whether atoi failed etc).
daymi
If she's that talkative about her ex then she's probably not over him. So you avoided a lot of time wasting here.
daymi
Am physicist. It was a lot of studying. Maybe like 3 to 4 hours a day (weekday) total (including homework). I don't think I could have passed any of the courses otherwise. The lectures were ultrafast and very on-the-surface. I don't think any human can learn that fast. I took my girlfriend to an "easy" one of them and she was like WTF you can follow this? Nope, I can't. I learn the rest later.
That said, there are a lot of "filler" university studies that don't require you to do this at all. The easiest one is geography--those people basically didn't do anything at home. I have friends who did it and they themselves say that :)
daymi
Ding ding ding. We have a winner.
daymi
Now I'm second guessing a lot of things and wondering if I did make a mistake. It's still so fresh and it just happened so I'm worried It'll blow up in my face one day.
Please. Everyone has an opinion, especially about the sex life of other people.
People are not all the same. They don't have the same values, they don't have the same goals, they don't even feel the same even if the exact same stuff happens to each.
Can you still be in a happy healthy relationship after bringing in a new person for a night of pleasure?
Sure.
A friend of mine and his gf and me had a threesome. They are still going strong. I'm still friends with him. (years later)
In the end it mostly depends on the self esteem of the involved parties. You trust yourself and each other? Everything is A-OK.
And you already stated that you are still going strong. So there is no problem.
First time sex with a new person is often awkward at first. Need to calibrate. Also it's easy to overload a person (both literally and figuratively) if you gang up on them. Your feelings can change from moment to moment. Definitely need to communicate a lot.
Do you want to do it again? With experience it gets better.
daymi
How come some packages when installed are run from the command line, others from an appimage, and others from a ./start_whatever_software file.
Because of differing views on how to get the dependencies (i.e. if your program wants to open a .zip file, where does the functionality to do so come from etc).
In the end it all boils down to trust.
Linux usually has "distributions". A distribution is a collection of packages (for example all on the same DVD) that someone made sure actually work together.
If you install a package from your distribution, you just specify its name and then the system will automatically resolve and also install dependencies (and dependencies of those and so on). All the parts will be cryptographically signed, someone reviewed everything to make sure it doesn't have any viruses and so on.
There are a LOT of different distributions to choose from--but as a user you can only have running one distribution at a time (examples of distributions are: Debian, Ubuntu, Red Hat, SuSE and so on). Some distributions use different package formats that are incompatible to other distributions. End user GUI software developers found it to be a pain in the ass to support all of them.
Therefore, some people started making container formats which contain EVERYTHING needed for a specific application in a format that is universal. AppImage is one of those, for clients. Docker is the same thing, for servers. With those, as a developer, you make everything once and it will work. But you are basically ignoring most of what a distribution had set up. That might be fine, it might not--depends on your use case.
The "./" is when you want to execute a program that's in the current working directory. For security reasons, that's not the default in Linux (think of what would happen if there was a program called ls in your current working directory).
Why do certain programs come in different forms while in windows it’s all exe.
Windows basically ignored the dependency problem for several decades--most software installers would just copy all required DLLs into their program directory and call it a day (so basically AppImage). That's why their installers are like 3 GiB for one program or something ridiculous like that. Nowadays, they do have appget which does something similar to what a Linux distribution would do if you asked it to install package xyz.
daymi
Personally if i could go back to my early days and focus on 3 languages I d go Rust/Javascript/Python.
I agree. That's the best combo.
daymi
It s incredibly unfair in this community to downvote someone anytime you feel like the comment half criticizes Rust.
I agree. I don't like using the downvote button as "I disagree". Echo chambers are no good for anyone.
But let’s grow up here, Rust is a great safe language but a crappy developper will still make crap software with it
I agree.
and it won t be any better than using C/C++
Unfortunately, I disagree. It will be better. There are entire classes of errors that cannot make it into the program--really bad customer-life-altering (to put it mildly) errors. If they are replaced by errors you can find in 3 minutes instead of 3 weeks in production and are immediately apparent instead of totally obscure, that's enough.
Of course it's not a replacement for actually being good as a developer.
But actually being good as a developer doesn't mean you don't need Rust. I've seen what kind of things Rust can flag--I had never seen static analysis that good before. You WILL overlook those otherwise.
Getting used to Rust makes you a much better C++ programmer, funny enough.
few Rust CVE are still memory problems and they concern the std crate, so even good developers can mess things with a great language
Yes, engineers would always have to qualify everything one says. Almost nothing is really 100%, or 0%. But it just reads real bad to have like "statistic A says 70% there with preconditions B C D E F, therefore with probability X it follows that if G H and I then 60% acording to statistic Q ..." and would have made me run the other direction if I was a new learner :)
But yes, with unsafe code (which new learners should not use at all), you can still create memory problems. After all, a lot of things are inherently unsafe in hardware. So Rust is definitely not allowing you to skip becoming a good dev. But it's helping you become one.
P.S. Thanks for the list of Rust CVEs. I'm gonna be worriedly checking our stuff O_o.
daymi
... jetzt gerade gibts aber student loan forgiveness in den USA.
Ich finds immer wieder interessant wieviel Halbwissen über das Studieren in den USA herrscht. In Realität bekommen viele ein Scholarship und bezahlen gar nix. Ein Nicht-US-Bürger-Freund von mir hat in den USA ein Full Ride Scholarship bekommen und studiert jetzt zwei Jahre Master komplett gratis dort, ohne Kredit.
In den Nachrichten/komischen Dokus sind dann dort natürlich die Leute, die Unterwasserkorbflechten für 15 Jahre studiert haben auf Pump und immer schon den Student Loan fürs sau rauslassen verwendet haben und danach--wenn die schöne Zeit vorbei ist--mit den Schulden dasitzen. Tja, so ist das. Die Rechnung kommt immer.
Wenn man neben des Studiums als Student-Visa-Bezieher dort ordentlich arbeiten dürfte wär ich selber den Master machen dort. Weil auf einer europäischen Uni ist nämlich das Studium nicht nur "gratis" (steuerfinanziert) sondern auch die Qualität schlechter--und das Prestige sowieso.
daymi
Static analysis tools
Unfortunately niche. But I agree, cppcheck and PVS-Studio are awesome.
Memory safety problems are logic problems. Why would one right code that goes beyond an array bound? Bad logic.
Ok, but C++ specifies that anything goes in this case and does not fail (or, is not guaranteed to fail). That is bad, especially for learning.
Yep, valgrind is very useful indeed. Basically mandatory to get anything to not leak in C--especially when the average program is handling an error. So much bad or non-existent error handling. Sigh...
I've seen enough bad code in my life to believe firmly that if the bug count is not likely going to be decreased merely because one switches to a different language.
I agree. But that's not the case here. He's a new learner, there's no switching.
I think in the case of a new learner the upside of a compiler that is your friend and does not go "ha ha I'm not gonna tell you anything about the bad stuff that's gonna happen with that" is worth it.
The problems will just surface in other areas
I agree. And that is preferrable.
because generally these kinds of mistakes are due to either bad coding practice or sloppy coding.
Well, who knows why.
I'm definitely not saying that Rust über alles or anything, but it is a vast improvement to what was the state in embedded--even in areas where one would think people knew better than to make those mistakes.
And many C++ defaults are bad--it's hard to avoid memory unsafety problems there.
I'm still using both C++ and Rust, and there's just no comparison.
daymi
That said, if one's coding skill is so poor that this is a problem, I'm sure the rest of the logic is likely flawed. In short, I don't accept "safety" as an argument for selecting a language.
Microsoft has a recent statistic that 70% of all their CVEs are memory safety problems[1], which would not be possible to make with Rust. Logic errors basically aren't happening at all.
I remember when I was like you. "me? I don't make those mistakes after 20 years in the industry". Yes, yes I do. So many.
Try porting something big you wrote in C++ 1:1 into Rust, and look at the compiler errors. I did. Haunting.
[1] https://msrc-blog.microsoft.com/2019/07/16/a-proactive-approach-to-more-secure-code/
daymi
the areas i want to potentially aim towards are robotics, embedded, AI, or OS development
is rust a good choice for me based on this info or would you suggest something else?
Depends on when.
Right now, Rust is only starting to get used in industry.
Both embedded and OS development are Rust's primary strengths, and a lot of those teams in US tech companies are switching or already did switch to Rust (Google, Facebook, Microsoft, Amazon etc)--for obvious reasons (C or C++ are so much less safe--no one wants to do C++ in embedded after he saw Rust, ever again). But the smaller companies did not switch, and might not for a long time, or ever.
Most of embedded is C and some of it is C++. No Java.
As far as I know, Rust is not used at all in robotics and AI.
Source: Am embedded developer and am working with those teams there, on Rust.
But since your degree will take you some time, I would still recommend learning it. The funny thing is that Rust is basically C++ done right. So learning and using Rust you'll learn a lot of stuff useful for C++. C++ just doesn't have any safeties, so get used to slicing parts of your leg off accidentially.
i think python may be complementary to some of those areas and i will be learning it as well
Most definitely. For anything science or AI related you will need Python. Hell, most of the mainstream AI libraries are in Python. Robotics, well, so-so.
note: Java is a total waste of time for any of the fields you listed.
open the right doors
Right now, C (and some C++)
daymi
As someone who had to deal with douchenozzles like them, that was not wrong.
It's either tell the best friend to shut up, or leave the place yourself (with the GF of course) (or both).
All other choices would be you not respecting yourself--and why would they drop it then?
Now her best friend tried to make everyone slot you as the creep and/or harasser for no reason, and that's just not okay. Make no mistake, she knew what she was doing.
P.S. Do not use her word "ogle" for what you did. "Being enamored" maybe.
daymi
Is it a bank? They can tell, BUT it's usually to prevent people from stealing data, insider trading etc. They don't give a fuck otherwise. But it could still be flagged by automated systems.
Just ask them (even if you already used your personal device).
In my case, there was even a intranet web interface to request "personal device access" and I did and I interacted with no human in the process (did not need to justify it). Now in the clear.
It's very likely they have a personal device policy anyway (but you might need to install their weird program on your personal device), what with all the work-from-home-due-to-corona.
daymi
Like what the hell are you guys doing?
They're probably not using uBlock (or whatever adblocker).
PSA: If you don't have an adblocker, the internet sucks (and/or mines crypto on your computer).
I have a laptop from 2014 and no intention of updating before AMD Zen3 laptops come out (another year...). And I work as a professional programmer on it. It's ok and web browsing is very fast on it--WITH uBlock.
Are you guys trying to run 50+ tabs on a laptop meant for using excel at best? Is it like 10-20 years old?
Because I was curious: Looked it up--the average age of laptops people in the USA have is about 4 years old.
daymi
Function pointer spiraling notation:
int quux(int (*ope[4])(int, int)) {
return ope[3](4, 5);
}
So bad. I mean I can do it but what the hell were they thinking?
Overloading the semicolon for weird extra meanings:
for(x=0;x<3;++x) and
if (1 == 2) printf("yes"); else printf("no"); first semicolon is so weird.
struct foo {....}; semicolon is mandatory. Error message if semicolon is missing is totally inscrutable. I know why they do it, but still...
If you want to sequence A B and C, it's A;B;C; including the final semicolon. Why?! What kind of weird binary operator is this? I know, C standardized it in this way and then it totally makes sense--but looking at it from first principles it's totally weird.
The * dereference operator is a prefix operator. Why not postfix? Would be a lot less weird (and is a lot less weird in languages which do it)
The pointer-* is either part of a type (not really--see below) or part of an expression (not to mention that it could be confused with the * of multiplication). Types and expressions are supposed to look different imo. They don't in C, at all.
int *a, b declares a as a pointer to an int and b as an int. Why is the "pointer to" not part of the type declaration type part now? This is just weird.
I mean I got used to it over the 20-odd years I program in C--but boy does it have weird syntax design decisions. (the semantic problems are much worse, of course)
Also, trigraphs. Not even once.
daymi
Bis letztes Jahr war ich noch Alleinverdiener, seit Januar hat meine Frau ebenfalls ihren ersten richtigen Job (zwei Mal Studium gewechselt, aber jetzt hat sie es zum Ziel geschafft).
diesen tollen Dunstabsauger direkt beim Kochfeld
Das ist gar nicht so gut--schließlich geht die heiße Luft nach oben, und dort ist das Ding dann aber nicht. Wir haben uns dagegen entschieden bei der neuen Küche.
"Willst Du dir mal nicht einen richtigen Job suchen?"
Was ist mit IHR? Sie kann einen "richtigen Job" suchen für sich. Emanzipation und so.
Antwort "Sorry, aber du bist der Mann im Haus, nicht ich"
Sexismus.
Wir haben jetzt auch eine Eigentumswohnung in Aussicht für 500.000 Euro in der Nähe von München.
Wieso?! Kannst Du Dir das leisten? Bei Geld verstehen Banken keinen Spaß. Soll heißen Du wirst das jetzt 30 Jahre abzahlen oder so. Jeden einzelnen Monat.
Und eigentlich wollten wir nächstes Jahr mit der Kinderproduktion starten.
Es ist Deine Entscheidung--aber ich rate Dir das nicht zu tun.
Ich kann für mich nur sagen, ich mag meinen Job, meine Selbstständigkeit und den Kundenstamm, den ich mir aufgebaut habe. Ich bin zeitlich sehr flexibel, habe mein eigenes kleines Büro und mein eigenes Reich. Ich bringe monatlich meine 3500 Euro (+ Leasing-Auto) aufs Konto und ich bin nicht gestresst, sondern immer noch glücklich. Ich will das nicht für 500 oder sogar 1000 Euro netto mehr im Monat aufgeben.
Solltest Du auch nicht. Wenn Sie das Geld haben will kann ja SIE das machen.
"Brudi, deine Frau ist eine Goldgräberin / geldgeil"
Das war sie vorher nicht, jedenfalls nicht offensichtlich. Aber als sie gesehen hat, wie andere aus unserem Kreis leben, und sie sich etwas naiverweise denkt, dass wir das ja auch haben könnten, ist wohl bei ihr irgendwo eine Sicherung durchgebrannt.
Naja, wenn sie es nicht verstecken würde wärs ja eine schlechte Strategie.
Nein, wirklich, Menschen sind manchmal gierig und neidisch und darauf basiert der Großteil der freien Marktwirtschaft. Aber wenn sie gierig ist auf das Geld (bzw den Lifestyle) dann kann sie ja auch was dafür tun und nicht die Königin spielen. Ich finde das schon respektlos.
Yes, but how many professional photographers do you see using a $5 throwaway camera? None? I see.