Details
Joined devRant on 4/26/2018
Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API

From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
-
@jestdotty Without consent.. strange.. Shouldn't it be protected?
-
https://youtube.com/watch/...
Virtua Cursor 4!
(jk) -
I read this as: "Made coffee stay awake for work"
lmao.
Rule: never consume coffee in the afternoon
It is now recommended to beat coffee by getting enough sleep and splashing your face with some cold water regularly, as well as taking a walk regularly, followed by the difficult task of restoring your biorhythm. Do not give into the emotions. :O -
By using the virtual cursor and other screen reader commands, developers can simulate the user experience and identify accessibility issues before deployment."
Backstory of 'virtual cursor':
Normal cursor: In most applications, the cursor is a visual indicator (text caret, mouse pointer) showing where you are and what you can interact with.
Problem: Many applications and web pages don’t expose all their content or structure to the system caret or mouse pointer in a way that’s accessible. For example, you can’t tab to every element, or the logical reading order isn’t obvious.
Solution – “virtual cursor”: Screen readers create their own simulated cursor in a virtual buffer that represents the page or UI’s accessibility tree.
It acts “as if” there were a real cursor traversing the page, but it’s generated virtually by the screen reader.
-> 'virtual' means: 'not formally recognized'/simulated.
/3 -
To use the virtual cursor in VoiceOver, press and hold Ctrl + Opt while using the Left or Right arrow keys to navigate.
In NVDA, the virtual cursor is moved with the Up and Down arrow keys, reading one line at a time.
This testing approach is particularly valuable for verifying that descriptive image alt text makes sense in context and for ensuring that all content is properly announced by the screen reader.
It also helps identify issues such as missing alt attributes, improperly structured links, or form controls without associated labels, which can hinder navigation for screen reader users.
For example, a link without an href attribute will not receive keyboard focus, causing it to be skipped entirely.
/2 -
I understand this is a linguistical problem between developers and testers and it is understandable.
I looked up what it means and so:
"Virtual Cursor Test
Virtual cursor testing is a method used to evaluate how screen reader users navigate and consume web content, focusing on the experience of reading non-focusable elements like plain text, images, and headings.
This feature is built into screen readers such as VoiceOver and NVDA, allowing users to move through content line by line, which is essential for testing the accessibility and logical flow of a webpage.
/1 -
@BordedDev That sounds like a plan!
-
It is, it is. Mostly I try to keep my sanity through it all and I try to find the least shitty shithole. lmao.
I hope you do well in your (side) endeavors. Brewy brewy!
P.S.: I get knocked down, but I get up again, and you're never gonna keep me down! -
@jestdotty
Yes, imperative, where missing code means not working the way you intended. You're only supposed to spell everything out in such imperative languages. ;p
---
Gimme DevRant coins for it. jk. I am innately a hard worker.. for what I care about. And I of course have empathy. :) -
@jestdotty // final ranting
Ahem, alright. Procedural, as far as I know is that it follows a top-down approach and packages code into procedures/functions/methods.
Composition:
Object A is made out of Object B, which in turn is independently pluggable into it - plug n play
example: car composed of wheels and parts
relationship: HAS-A
Inheritance:
Object A cannot exist without Object B or is not easily detachable
example: Bird is Animal, or: Checking Account is Account
relationship: IS-A
I sound like my professor. lol.
Back to you:
Ownership, hm, yes, I read about it for Rust. Yes, I learned JS to be 'it acts like a duck but isn't a duck', or if we want it more funny: "JS tries to be Starbucks but is just a regular cup of coffee". I do like the prototype, pros and cons. Yes, relatable and frustrating.. the missing features. Time to polyfill? Heh. Heh. -
@jestdotty // explanationz, part 2
example of imperative:
allocate memory for x
allocate memory for new function
move pointer to new function
assign function name to be drawSquare at address 0x000008c
move pointer next cursor location
assign value 0 to x
assign value 100 to x1
assign value 0 to y
assign value 100 to y1
reset cursor back to 0
execute line function
end function
// got lazy, some steps may be missing but you get the point
example of declarative (system decides, not you):
INSERT INTO SQUARE(x,y,x1,y1) VALUES (0,0,100,100)
// You are just saying you want a square with said coordinates, you are not telling every precise step
(ffs I hate this type of programming in a way, lmao) -
@jestdotty // explanationz, part 1
// disclaimer if you already knew this stuff, I tend to over-explain
Okay, I will briefly provide a definition for those words:
Concurrent:
- happening at the same time without negative side-effects, no race conditions, semi-parallel processing
Functional:
- functions-based (of course you know this one)
Generic:
- fit for most common purposes (web, desktop, networking, hardware,...)
Imperative:
- You state and exclusively decide how the instructions are to be written - kind of like assembly. You decide everything low-level (unlike the declarative SQL). -
@jestdotty Yeah.. Java can get boring with its strait jackets. I remember the new Boston from my early programming days as well. :)
Java was technically not my first.. My first was BASIC (fun! colorzzzzz. ok lol), then LOGO, then.. err.. Delphi, then Pascal, then Java.
In college, however, they started out with C but I got credit transfers for that class so I missed it. I'll pick up on that sometime. They also touched COBOL.. yuck.
Yes, it's about the patterns with Java.. although that limits you and you have to understand programming and concepts itself to go further. -
Now, to try and answer your question - presumably you already know - Rust is (according to wiki):
Concurrent, functional, generic, imperative, structured
From AI:
It seems it favors composition over inheritance for loose coupling and does not want to be pure OO because that can be brittle. Its imperative model makes for safer code because you have to precisely think about what you write and hidden costs aren't abstracted away (e.g. GC).
Rust seems to be semi-functional, imperative, procedural, compositional and performant. -
while(jestdotty.isMentionRust) { self.interestInRust++;
}
It seems Rust would be hard for me as I still don't master Java itself, for example, and Rust would expect me to be able to handle low-level things. -
@cafecortado Hahaha.
-
I read this in a book I'm reading on JS (Eloquent JavaScript). It says that there has to be balance and it's also situational.
If the code is easy to read in both efficient and elegant solutions, then pick the efficient version.
However, programs are often complex, making it helpful to trade in some efficiency for elegance. It is also mentioned you shouldn't add extra stress to your mind worrying about efficiency when you already have a complex system to worry about.
The approach the book recommends is: start writing the easy and correct version. When you notice it's too slow, then refactor. When a problem is easier to solve with efficiency, it is better to use that. -
Of course you can't rate everything as a red flag, though I understand. I would say: trust your gut and always think more before you act. Let people win your trust first instead of giving them trust first hand. Your gut is there evolutionarily, having trained your brain over decades with good and bad people, now being able to spot when someone seems 'off', so I would go by that.
Fitness, gym? Well.. I wouldn't have a guy and a girl do gym together because they guy gets pumped with testosterone and endorphins, which exacerbates the process.
Think of a way to set your boundaries. Just say you don't want to hang out in a neutral way.
Hope it works out. -
Zorry to hear.
Guys catch feelings pretty easily, yes.
Well yes, jestdotty, you are interesting.
There's always sleazy guys like this and in my experience it's those wearing-cap-backwards frat types.
Of course you have the choice to say no to hanging out. People aren't always like this.
You can blink, sure, but if you blink a few times in succession, a man's going to think you're flirting.
Aside from that, of course you didn't mean it literally.
Let's analyze a bit more. So he gets magnetized to you because you are too interesting. Then this may mean he is not interesting and he is looking to hang around you just to fill his own void. It's possible.
People get married because they just decide so and they are serious about it. They're not in the flaky state. Good married people stand firm on their ground. -
10-minute stand-up break, tiny 20-minute nap, 1 hour of fun.
-
@NaturalStupidiy They would be a whole lot more efficient than managers! At startups, my experience has been:
manager: "uhhh ask me later :D"
manager: "uhhh I'm busy rn"
manager: "uhhhhmmmm ask the other guy"
Sigh -
I amz depr3ssed.
-
@BordedDev Probably not. I am bugged by it as well, but it's to introduce the concept itself without yet introducing the ++ shortcut (which is introduced a few paragraphs later in the book). lol
-
@D-4got10-01 OoooOoooh. Nice work. :)
-
@D-4got10-01 I S T Q B, find out what it means to me. Meh. Well, thank you for your positive attitude. And yes, I get tired. lol
-
@D-4got10-01 Good catch. That is correct. My mistake. :D
-
@Hazarth It doesn't help me because I'm naturally bad at logic. Haha.
-
@Lensflare In the chapter of conditional constructs, the author wanted to illustrate a program that would do something useful vs. just outputting a value. It also has to do with the concept of a program's environment (bound variables), illustrating that the variable outside the loop is aware of itself inside the conditional expression as well as outside of it. He used this 'convoluted' example as a teaser for a later chapter where he explains things more in-depth.
And of course, a good programmer knows to use the right tools for the right scenarios and not just blindly use loops.. that's.. for true beginners. -
I thought 'bug' was synonymous for 'boo' until I saw the code editor... lol.
-
@kamen Yes, the seemingly very simple things can get annoying. For me a scratchpad with live values works best as well. It's like a computer program; if you only output values and then do nothing with them, the program forgets them.
For me it's enough practice as well as a deep dive in a strong foundational theoretical background which really helps put things together. map and reduce intimidated me as well a few years ago but now they're a bit more understandable. Analogies help as well. I noticed during my internship that my code got much cleaner after reducing all the loops to single statements. :)