Fun fact not only to captchas monitor your input but also can analyze how you input it. If you mouse moves in a perfectly straight line if all your key presses are precisely spaced, you are probably not human.
Sure two additional cases not that bad, now just keep adding them up. Like anything security related it’s not 100% perfect you just have to make it annoying to break.
No. Security through obscurity is bad security, but it’s still an additional layer. And since there’s literally no way to 100% ensure that a machine is being controlled by a human, there’s literally no other way except saying “fuck it” and not doing any security at all.
They were used as example heuristics by Google marketing when they launched the checkbox reCaptcha. They were just simple to understand things for marketing purposes, but in reality Google checks many different signals and isn’t based on mouse movements. But people keep repeating the example from the ad.
I recently held a science slam about this topic! It’s a mix of the first computer scientists being mathematicians, who love their abbreviations, and limited screen size, memory and file size. It’s a trend in computing that has been well justified in the past, but has been making it harder for people to work together. And the need to use abbreviations has completely gone with the age of auto completion and language servers.
At some point, they even collectively decided that not having to write a multiplication dot is more important than being able to use more than a single letter for your variables. Just what the fuck?
Bruh how large should our notebook pages be? Also how should we speak about the equation? What if the terms should be represented in a matrix? What if mathematical functions e^x, sin, ln etc. are present? Would you write sine of e^(velocity of the particle B) ? Notations are necessary for readability
Welcome to Greece! No, not our modern Greece, the old timey write philosophical questions into the dirt with sticks and argue with your best homies about it kind of Greece!
Want to compute something? Hope you got all your steps in linear order so you don’t have to remember too much in between other steps!
/s (but not really so I totally am on your side, original formulations of math problems are a pain…)
I don’t know what to tell you. They obliterate readability for me.
I also genuinely believe these shorthands hinder access to research for the 99.9% of humanity who are not experts in the given field. Obviously, you do need to understand the context to use a formula correctly, but that also becomes harder when everything is written with hieroglyphs.
In university, I had to assess this paper. It took me 3 weeks to decipher that alien language, and it doesn’t even say anything particularly riveting.
To address your points:
I’m hoping that at least published math can be typed out with full names.
I’m not opposed to local aliases. E.g. if the point is that some values in the matrix are negative and others not, then absolutely write “with air_resistance as ‘a’, the catapultation matrix is { a, -a, -a, … }”.
I don’t actually want to introduce spaces into variable names, that’s just an example I randomly found online. I was rather thinking e.g. sine(euler^velocity_b).
Bonus point: You can reasonably type it on a computer, because you don’t need Greek letters and subscripts anymore.
Btw i am all for local aliases. I see them most of the times.
i.e, [equation], where a = area of the surface, v= velocity,…
But without short codes it would be a pain to write and remember. Some of the shortening like del operator really reallh simplifies the original expression with better showcase of physical meaning, but looks alien to people who don’t know. But we can’t stop using it since it makes everything else difficult for people in that area
You only have to define it once in a document, book, whatever. Also, it’s not like you’d ever need to do this for handwritten notes, only for a wider audience, or if you intend for something to be read by not just you.
No one is suggesting you don’t use symbols, just that you define them, and not assume the reader uses the same symbols as you. Which, so often, they don’t. (How many different ones have you come across just in highschool and uni. I came across multiple)
I’m no physicist, but surely there is a huge range of symbols for the same thing, especially the more niche you get.
I’m not a mathematician, but I agree with you because this is precisely how one would abbreviate repeating terms in a paper (e.g. The Museum of Modern Art (MoMA) and the Metropolitan Museum of Art (The Met) are both located in New York, New York (colloquially, New York City, or NYC). While MoMA has an art collection of about 200,000 pieces, The Met houses 1.5 million works of art.)
What OP is talking about is readability, so in a situation where you’re taking your own notes and have your own set of defined symbols, full words aren’t necessary.
I personally lost all interest in math because there are way too many opinionated or non-standard symbol definitions
I personally lost all interest in math because there are way too many opinionated or non-standard symbol definitions
That seems like a strange reason to quit math since most symbols are pretty well agreed upon, and maths has little to do with the actual notation either way.
I should’ve said “anything math-heavy,” but even then, it seems like switching fields or applications of math requires understanding a new definition of the same symbols, and a lot of that could be avoided with words.
I mean, if you get into any real depth with math, you are going to reach a point where you can’t use conveniently use words to describe the symbols being manipulated.
As an example for the math I am doing literally right now, I very much prefer using C^+^R compared to “semi circular arc in the upper half of the complex plane with radius R”, or M^+^(f(z)) which means “Maximum of the magnitude of the function f(z) over C^+^R”, which if I were to write out in full, would just become a clusterfuck.
Also you still wouldn’t be able to get rid of symbols because some symbols are placeholders and straight up don’t have any meaning in natural language. This occurs often in physics as well, not just pure maths. For example, the laplace transform of any function is written as a variable of “s”, but “s” doesn’t have a clear meaning (at least as far as I know).
Thing is, you usually define all your variables. At least we do in engineering (of physical variety, rather than software).
Mostly because we can’t expect everyone reading the calculation to know, and that not everyone uses the same symbols.
Not explaining each variable is bad practice, other than for very simple things. (I do expect everyone and their dog reading a process eng calc to know PV=nRT, at a minimum).
Just like (in my opinion) not defining industry specific abbreviations is also bad practice.
But Nah, I think assumed knowledge of PV=nRT is fair in context, since if you don’t know what it is, you’ll only be reading the conclusion, not getting into the weeds of a calculation document.
I’m not going even going to be explaining if I have a column that’s says volumetric flow rate, with V=m/ρ. If I give mass flow rate and density (with units, of course), and use these extremely common symbols, and someone doesn’t understand, then they have no real business getting to this level of detail anyway.
I do agree that in most cases not defining your variables is bad practice, but there is some nuance, depending on the intended audience and how common a formula is, and the format of whatever it is you’re writing.
So, in the end you just do assume everyone to know the “common sense” one-letter notation for everything. Well, not everything, but the essential ten thousands of entities for sure /s
This sounds like No true Scotsman fallacy to me
I find it a bit contradicting to the very point you made about defining variables. If anything, one might be some home-grown genius that has real business getting into details but only ever used Chinese characters as variables
Understand your frustration with how I’ve communicated my position, sorry about that:
My justification for the examples I’ve given is there still needs to be other context, is based on complexity of the equation, and the intended audience of that equation.
An example of me not explaining a very simple equation would be perhaps a table of various cases:
| — | mass flow (kg/hr) | density (kg/m³) | Volumetric flow (m³/hr), V = m/ρ | | Case 1 | blah blah | blah blah | blah | | Etc. | … | … | … |
Realising now that markdown tables don’t seem to work 😅, hopefully this is still clear.
It may be a touch better to put variable symbols in the other columns, but:
You still have the final answer (the purpose of my report, I’m not writing a thesis here)
It should be plainly obvious by the units, and the fact those are the previous two variables, to someone who has the ability to understand (and is the intended audience of that little equation)
As a recent example for this, in a data sheet I recently prepared, I literally just put a * in the references column and said “*calculated from other data sheet values” for the volumetric flow rate, because the intended audience would know how to do that, and the purpose was for me to communicate how that value was determined.
Me putting in the V = m/ρ in the hypothetical example I gave above is a just a little mind jog for the reader.
Where more complicated equations are used, of course these are properly referenced, usually even with the standard or book it’s come from.
I’ll redefine my position to: Clearly define all variables, unless it’s abundantly obvious to your intended audience from context.
My intended audience of the conclusions or final values are the layman. My intended audience of everything else is someone with a very basic chemical engineering understanding.
Your last point is a strawman:
I find it a bit contradicting to the very point you made about defining variables. If anything, one might be some home-grown genius that has real business getting into details but only ever used Chinese characters as variables
Because I’m writing in English, for an English speaking audience, and there is no such thing as a home-grown genius getting into my area because it’s a legal requirement that they have an honours degree. Even still, the two assumed knowledge equations I mentioned, which I would only not reference with sufficient context, would STILL be recognisable with totally random symbols.
| mass flow (kg/hr) | density (kg/m³) | Volumetric flow (m³/hr), 容 = 质/密 | Yup, a bit odd in an English context, but with the units information (always mandatory, of course) completely understandable.
First of all, thank you for a thoughtful response, I was too snarky, sorry about that.
TL;DR: guess I’m just upset that there is no objective way of measuring how much knowledge is required, and trying to read everything from sources list would take forever.
Yeah, the last point is sort of a strawman, although I meant it not to highlight that explanations should be given in terms that the reader is used to, but rather that the reader may have quite arbitrary amount of prior knowledge.
I agree that there probably should be some shared context, what bugs me is that people tend to vary a lot in what amount of context is considered to be required. And more than once have I met papers that require deciphering even if you have some context and kind of come from the field they are written for. I used to think that this is our of malice to make reproducing their work harder for others, but maybe it was just an assumption of much larger shared context.
Tables markdown work in some clients, afaik, but I don’t remember which, and even if I saw it or imagined it
No worries friend, no hard feelings and appreciate the engagement!
Yeah, agree it is a bit wishy washy in terms of gauging how much explanation to include ¯_(ツ)_/¯
I suppose (in my opinion) the mindset should be: include as much explanation as possible, without it being cumbersome.
I personally err on the side of over-explanation and have had some senior engineers give me feedback that it’s too much. Still learning for myself how much is too much.
Totally agree though, that there are many cases where people leave things out as assumed, when it’s not really reasonable to do so.
A side-thought on specificity: one of my biggest pet peeves is when people list pressure with the units of kPa, when they really mean kPag. In industry, you are rarely talking in absolute pressure (other than for pressure differences) and people then get lazy/don’t know/assume it’s fine to do something like: set point 100 kPa (when they mean 100 kPag). It isn’t fine though, because at lower pressures atmosphere counts for a pretty large percentage of the absolute value.
I mean, it was rather physics that was worse in this regard.
Mathematicians do define their variable quite rigorously. Everything is so abstract, at some point you do just need to write down “this thing is a number”. Problem with maths folks is rather that they get more creative with their other symbols. So, “this thing is a number” is actually written as “∃x, x ∈ ℝ”.
But yeah, in the school/university physics I experienced, it was assumed that you knew that U is voltage, ρ (rho) is density, ω (omega) is angular velocity etc…
At one point, I had to memorize six pages of formulas and it felt like every letter (Latin, Greek, uppercase, lowercase, some Fraktur for good measure) was a shorthand for something.
I should specify when I say physical engineering I just mean chemical, mechanical, electrical, etc. (not software), rather than physics in theory/academia.
I guess engineers are applied physics (in a particular area each), and we need to distribute our deliverables to people who aren’t necessarily experts in every discipline.
It just also makes sense to always define variables.
It’s so funny because I’ve never seen voltage defined as U, and not V haha, proving how if you’re going to have an equation, you’d better define everything, there’s so many reused letters!
U is definitely standard for a difference in electric potential in Europe. Thought to come from “Unterschied”, difference. V refers to electric potential, which as wikipedia says so wisely, should not be confused with a difference in electric potential. Which North American notation does. At least it’s not PEMDAS…
In another thread I admit I didn’t explain my position here well enough. I would only not explain this equation given sufficient context (e.g. I’ve shown all those variables in a table, and my intended audience is people familiar with basic chemistry, which I’d expect would be everyone reading the report for this particular example, since this is high school chemistry, and the topic of all reports I work on is chemical engineering.)
People can read the conclusions if they’re not familiar with chemistry, and for the detail, they’re not my intended audience anyway.
Generally I still hold the position that you should define variables as much as possible, unless it’s overly cumbersome, given your intended audience would clearly understand anyway.
In context this simple equation is obvious even if you change the symbols, as long as there is sufficient context to draw from.
Using full names like that might be fine for explaining a physical rule, or stating the final result of some calculation - but it certainly would be cumbersome and difficult for actually carrying out the calculations. In many cases we already fill pages with algebra showing how things can be related and rearranged to arrive at new results. That kind of work would be intractable with full word names for the variables, partially because you’d be constantly spilling off the end of the page trying to write the steps; but also because having all that stuff would actually obfuscate what you are trying to do - which is algebra. And during that process, the meanings and values of the pronumerals is not as important has how they interact with each other. So the names are just a distraction.
For setting up an equation, and for stating the final result, the meanings of the variables are very important; but during the process of manipulating the equations to get the result you want the meanings of the letters are often ignored. You only need to know that it is something that can be multiplied, or inverted, or subtracted, or whatever. Eg. suppose I want to rearrange to get the velocity. I don’t care that I’m dividing both sides by the air density times the drag coefficient and the area… I’m just dividing ρCA, which is an algebraic blob whose interpretation can be saved for some other time.
This is absolutely true, but it still seems to me that we’re throwing the baby out with the bath water when we just stick to extremely terse symbols for everything regardless of context.
Reading articles would be so much easier if they used even slightly longer names – thankfully more and more computer science articles do tend to use more human readable naming nowadays, at least.
Sure, longer names make manipulation harder a bit more annoying if you’re doing it by hand, but if you do need to manipulate something you can then abbreviate the terms (and I’m 60% sure I’ve seen some papers that had both a longer form and a shorter form for terms, so one for explaining shit and one for the fiddly formal stuff)
Of course using terse terms is totally fine when it’s clear from the context what eg. ∆x means.
Yep, that’s what it usually boils down to. However, I think a slight approach shift for basic materials could be useful, where introductory books / papers / … write out formulas. That makes it easier to understand the basic concepts before moving onto the more complex stuff. It should be easy to create such works, as they are usually created digitally, and autocomplete is available. Students can and will abbreviate those written outs words by themselves (after all, writing is annoying), but IMO reading comprehension is the key part that can be improved.
Also, when doing long formulas that you want to eliminate members of, writing stuff out can be a nightmare.
It’s been really holding me back in learning coding. I felt pretty comfortable at first learning javascript, but as I got further the code was increasingly hard to look back to and understand, to the point I had to spend a lot of time understanding my own code.
Does it truely matter after the code has been compiled if it has more full words or not?
It matters as soon as a requirement change comes in and you have to change something. Writing a dirty ass incomprehensible, but working piece of code is ok, as long as no one touches it again.
But as soon as code has to be reworked, worked on together by multiple people, or you just want to understand what you did 2 weeks earlier, code readability becomes important.
I like Uncle Bobs Clean Code (with a grain of salt) for a general idea of what such an approach to make code readable could look like. However, it is controversial and if overdone, can achieve the opposite. I like it as a starting point though.
Did you know that in the first version of php, each function name would be hashed to lookup the code to run it? And the hashing algorithm was: the first letter. So all the functions started with a different letter.
It’s not. PHP used to use the function length as hash buckets, so by having evenly distributed lengths the execution time was faster. No idea where GP came up with that.
GP specifically talked about the first version of PHP, sounds like it was just a dummy implementation as they were working on PHP, that then later got replaced with a proper implementation :)
And with a bit of namespacing and/or object orientation and usage of dots, it becomes perfectly readable.
There are also camel case and underscores in other languages…
BTW: How on earth should a newcomer know that the letter “n” in that word stands for number without having to google it? The newcomer could even assume that it’s a letter of the word string… And even, if you know that it stands for number, it’s still hard for me to understand what it means in this context… I actually had to google it… But that’s probably some C++ convention I don’t know about, because I don’t program in C++…
C is a little older than namespacing and object orientation. C++ wasn’t even a glimmer in Bjarne’s eye when these conventions were laid down.
And yes, having to google it is part of the design. Originally C programmers would have had to read actual manuals about this stuff. Once you learn the names you don’t really forget so it works well enough even now for ubiquitous standard library functions.
And yet, C was an ergonomic revelation to programmers of the time. Now it’s the arcane grandpa that most youngsters don’t put up with.
How on earth should a newcomer know that the letter “n” in that word stands for number without having to google it?
By looking at the difference between strcpy and strncpy. Preferably, though, you should simply learn C before writing C.
The gist of is is that strcpy takes a null-terminated string and copies it somewhere, while strncpy takes a zero-terminated string and copies it somewhere but will not write more than n bytes. strncpy literally has exactly one more parameter than strcpy, that being n, hence the name. If n is smaller than the string length (as in: distance to first null byte) then you’re bound to have garbage in your destination, and to check for that you have to dereference the pointer strncpy returns and check if it’s actually null. Yay C error handling.
In retrospect null-terminated strings were a mistake, but so were many other things, at some point you just have to accept that there’s hysterical raisins everywhere.
If n is smaller than the string length (as in: distance to first null byte) then you’re bound to have garbage in your return destination
Wha? N is just maximum length of string to copy. Data after dst+n is unchanged.
In retrospect null-terminated strings were a mistake, but so were many other things, at some point you just have to accept that there’s hysterical raisins everywhere.
Sure but that means the part before that is garbage because you have a null terminated string without terminator.
Or at least that’s how I see it. If your intention isn’t to start and end with a null-terminated string you should be using memcpy. Let us not talk about situations where CHAR_BIT != 8 that’s not POSIX anyway.
Even better, just avoid doing string manipulation in C.
I remember liking it 10 years ago. Now, it’s not only way worse: it simply got surpassed by all the markdown note-taking apps (Joplin, Logseq, …) and xournalpp (or even rnote).
Yea… Microsoft has a history of doing this a lot… their “concession” to being a large software developer is that each version of an app seems to have an entirely different team that develops independently from the other platform versions (the best you can say is that they occasionally borrow good features from one another).
I recently got forcefully switched to “New Teams” at work which is a strict downgrade and doesn’t support half the shit the browser app (which, as a reminder, is a weird Frankenstein of calendar and email) supports. It also absolutely bombards users with unnecessary notifications that need to be individually muted.
Never have I appreciated Google more than when I was forced from GSuite to SharePoint, Teams, Outlook, Visio, etc…
I love how new Teams doesn’t even have a contacts list for chat anymore, it’s just your most recent chats. And if you search for someone, any recent group chats with that person show up first so you may still have to scroll to find that person’s chat. Oh, and we store documents on Teams so if I want to switch between looking through the document repository and chat I still have to do a whole bunch of clicks between the two.
I don’t fault them for when my project manager tags @everyone on the group chat with an important message saying “good morning and happy Monday” though. I wish I were kidding.
I like how the teams team wasted hours making a new notification popup system instead of using the default system on the user’s os. They wasted time to just make a worse thing that’s also buggy. If users send too many messages at once, you end up having notification popups stacking on top of each other until it completely fills your screen.
Microsoft doesn’t know how to make/manage/deploy software at all. They are clueless to their own products and the problems THEY cause, and their information the public is ALWAYS outdated and a convoluted mess of bullshit…but it’s somehow out fault for not knowing
Nowadays there are some really annoying CAPTCHAs out there, such as:
“Click over the figures that are upwards/downwards” and various rotated bears
"Rotate the figure until it matches the given orientation" and a finger pointing to some random direction, as well as rotation buttons that don’t work the way you would mathematically expect them to work
"Select all the images with a bicycle until there are none left" and the images take centuries to fade away after you click them
"Select all the squares containing a bus" and there are squares with the very corner of the bus that make you wonder if they are considered as part of “squares containing A bus”
“Fit the puzzle piece”, although this is the least annoying one
In summary, the CAPTCHAs seemingly are becoming less of a “prove you’re not a robot” and more of an forced IQ test. I can see the day when CAPTCHAs will ask you to write down a Laplacian transform for the solution f(x) to the differential equation governing the motion of a mass considering the resistance of air and aerodynamics, or write down a detailed solution to the P versus NP problem.
No, CAPTCHAs these days track mouse movements and other factors. They make you second guess if something should be included because, as a human, that’s going to be something you do. And it’ll be obvious from both that hesitation and your squishy, inaccurate mouse movements that you’re a human.
They can’t without the given permission from the browser to do so. While they can indeed track the mouse, when they try to access mobile motion sensors (I’m considering a CAPTCHA inside a webpage being accessed through a mobile browser such as Firefox mobile or Chrome for Android), they need to use an HTML5 API that, in turn, will ask the user for permission, something like “This site wants to use sensor motion data. Allow or block?”
Sony has the most annoying ones, which are designed to prevent people from submitting tickets. They’ll show you like 10 dice, and ask what they add up to. They make you solve like 16 of them before they let you continue. Shit should be illegal.
Rhowch, cwtch, mwyn have to be Welsh. Classicly Welsh sounding words, and mbrsrtowcs, strxfrm can’t possibly be Welsh. Source: my welsh uncle taught me to pronounce Welsh place names.
Wcstold, wcsoll wmffre could be either but sound really weird as Welsh to me.
I love the Welsh, but holy shit that’s not what those letters are supposed to be for. They and the Irish just made a bunch of shit up when they started to standardize spelling. It makes me understand how Russians feel when Westerners use Cyrillic letters improperly.
It’s easy. W is a vowel in Welsh. It sounds similar to ö in German and it can be modified as ŵ to elongate the sound such as in the word dŵr which means water.
Wrwgwai or Wcrain (for example) are the natural way to spell those countries using the Welsh alphabet. Its a highly phonetic language believe it or not.
Yeah, I’m Welsh myself. I just wondered how somebody who struggled with Wmffre / Humphrey would do with the whole Wrwgwai thing. Some English speakers get it immediately others get a headache thinking about it.
I get that, and i also understand that English shifted it’s vowels compared to similar languages. But aside from French, my American brain can kinda figure out how to pronounce Germanic and Romance languages, whereas languages such as Welsh and Polish seems to have applied completely different rules to the Latin alphabet than everyone else.
So, you’ve got no issues with “g” being sometimes kinda “h”, “j” being same kind of “h” always, “h” not being a sound a all, “d” sounding like “th”, and “z” sounding like “th” but another “th”, not the one for “d”. Oh, and “c” sounding either like “k” or like the latter “th”
I know some people that claim that everyone should use Latin alphabet, because you then know what things sound like, but that is the most bullshit take I ever heard. I guess that knowing how to write letters helps, but it looks like every other language pronounces those letters different, and English makes extra effort to pronounce different even the same things
I prefer names like these to names that are common words. Even the name of the language is annoying because the letter C isn’t exactly uncommon in other contexts. I can’t blame the people who named the language because they did it long before search engines were a thing, but what excuse do people now have?
programmer_humor
Newest
This magazine is from a federated server and may be incomplete. Browse more on the original instance.