i’m pretty sure my neighbour’s dog is going to announce a new ai assistant any day now
i’m pretty sure my neighbour’s dog is going to announce a new ai assistant any day now
Also, if you remember enjoying hacking, maybe pick that up again? There’s a massive shortage of security engineers at all times.
First of all, you can totally do it! The field is massive, but also full of very bad programmers, and seeing how you were able to write a coherent text of three paragraphs, that already puts you ahead of the curve. Determination and perseverance is key.
I would suggest to play to your strengths. Java is still Java. Most of the progress since the 1990s was in the libraries and tooling, which only recently have become passable. The language itself also evolved somewhat, but there’s nothing that you won’t pick up in a couple of days of working with it.
Start with [1], work through all the boxes that are unfamiliar to you, practice a little on a pet project, or an open source project, and you’ll land a job in no time.
You likely have a mental model of Subversion, so what I would suggest is to try to forget as much of it as possible first, as Git is very different.
Take a tutorial that is aimed at Git beginners, e.g. [1]. This will help you start building a new mental model as well as get first practical experience.
After that, read the official docs starting wtih the object model[2]. The reason why many people struggle to get into git, especially after using other VCS, is that it was built from the ground up, without much regard of the established conventions and terminology. Linus Torvalds once mentioned that he used his experience designing file systems when developing git.
So the object model of git is very simple, but also not intuitive. However, once you understand it, everything will start making sense, including the xkcd you’ve linked.
[1] https://gitimmersion.com/ [2] https://git-scm.com/book/en/v2/Git-Internals-Git-Objects
I didn’t use yaml much while it was gaining popularity, and therefore didn’t pay much attention. But this article really made me pay attention and now I distrust anything that uses yaml in any capacity.
https://ruudvanasseldonk.com/2023/01/11/the-yaml-document-from-hell
yes, calling it a heist specifically is extremely colourful in the wrong way
wait, you’re actually using encrypted email? Is it for work or you use it with friends/family too?
I’ve never received an encrypted email in my entire life.
One of the best TV sci fi franchises ever.
I switched to Proton from Express when the latter was bought out by Kape.
Proton works perfectly so far for me. Their desktop software was a bit meh, but they’ve since improved it. Otherwise I have no notes.
Ah yes, that’s Android for ya.
Nice article!
You seem to be missing the word “by” in the table introducing threat T04. Also, the threat summary table uses ✅ and ❌ in a way that was counterintuitive to me: initially I thought ✅ meant the encryption approach protects against the threat.
A bigger issue IMO is how you describe email encryption in transit as a matter of fact, but according to Google transparency report[1] there are still domains that do not support in transit encryption, and, what’s worse, when you send an email you can’t tell if it will be encrypted or not.
[1] https://transparencyreport.google.com/safer-email/overview?hl=en
The T in “ninja” is silent. Silent and invisible.
They call Japan itself “Nihon”, so what do they know… /s
Is that a real problem? I’ve never considered that a python package manager should be or could be faster.
To be fair, I don’t use python professionally.
DCSS[1] would alone probably take five years to master.
Dwarf Fortress (although I haven’t really played it myself yet).
And, of course, Factorio, that with existing mods has probably enough content for the rest of my life.
There are two ways to create a resume today. One option is to use a resume template, such as an office/google doc, and customize it according to your needs. The other option is to use a resume builder, an online tool that allows you to input your information and automatically generates a resume for you.
Using a resume template requires manual formatting work, like copying and pasting text sections and adjusting spacing, which can be time-consuming and error-prone.
Me just using LaTeX[1] with hundreds of templates[2] with no formatting problems for 18 years now…
I would argue that having distinct match
and search
helps readability. The difference between match('((([0-9]+-[0-9]+)|([0-9]+))[,]?)+[^,]', s)
and search('((([0-9]+-[0-9]+)|([0-9]+))[,]?)+[^,]', s)
is clear without the need for me to parse the regular expression myself. It also helps code reuse. Consider that you have PHONE_NUMBER_REGEX
defined somewhere. If you only had a method to “search” but not to “match”, you would have to do something like search(f"\A{PHONE_NUMBER_REGEX}\Z", s)
, which is error-prone and less readable. Most likely you would end up having at least two sets of precompiled regex objects (i.e. PHONE_NUMBER_REGEX
and PHONE_NUMBER_FULLMATCH_REGEX
). It is also a fairly common practice in other languages’ regex libraries (cf. [1,2]). Golang, which is usually very reserved in the number of ways to express the same thing, has 16 different matching methods[3].
Regarding re.findall
, I see what you mean, however I don’t agree with your conclusions. I think it is a useful convenience method that improves readability in many cases. I’ve found these usages from my code, and I’m quite happy that this method was available[4]:
digits = [digit_map[digit] for digit in re.findall("(?=(one|two|three|four|five|six|seven|eight|nine|[0-9]))", line)]
[(minutes, seconds)] = re.findall(r"You have (?:(\d+)m )?(\d+)s left to wait", text)
[1] https://docs.oracle.com/javase/7/docs/api/java/util/regex/Matcher.html
[2] https://en.cppreference.com/w/cpp/regex
[4] https://github.com/search?q=repo%3Ahades%2Faoc23 findall&type=code
“Monitor J-Wave Tokyo, 81.3.”
False. Everyone can opt out of Facebook.