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
![](/static/devrant/img/pipeless-devrant-banner-white.png)
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
Search - "logical question"
-
Would you like to smile for 10 seconds? Read this short story:
*Story begins*
During World War II, numerous fighter planes were getting hit by anti-aircraft guns. Air Force officers wanted to add some protective armour/shield to the planes.
The question was "where"?
The planes could only support few more kilos of weight. Mathematicians were called for a short consulting project.
Fighter planes returning from missions were analysed for bullet holes per square foot.
They found 1.93 bullet holes/sq. foot near the tail of planes whereas only 1.11 bullet holes/sq. foot close to the engine.
The officers thought that since the tail portion had the greatest density of bullets, it would be the logical location for putting an anti-bullet shield.
A mathematician said exactly the opposite; more protection is needed where the bullet holes aren't - that is -around the engines.
His judgement surprised everyone. He said "He said We are counting the planes that returned from a mission. Planes with lots of bullet holes in the engine did not return at all".
Moral: Not everything that counts can be counted, and not everything that can be counted, counts.
Source: From the book -
"How Not To Be Wrong", by Jordan Ellenberg.4 -
Okay, story time.
Back during 2016, I decided to do a little experiment to test the viability of multithreading in a JavaScript server stack, and I'm not talking about the Node.js way of queuing I/O on background threads, or about WebWorkers that box and convert your arguments to JSON and back during a simple call across two JS contexts.
I'm talking about JavaScript code running concurrently on all cores. I'm talking about replacing the god-awful single-threaded event loop of ECMAScript – the biggest bottleneck in software history – with an honest-to-god, lock-free thread-pool scheduler that executes JS code in parallel, on all cores.
I'm talking about concurrent access to shared mutable state – a big, rightfully-hated mess when done badly – in JavaScript.
This rant is about the many mistakes I made at the time, specifically the biggest – but not the first – of which: publishing some preliminary results very early on.
Every time I showed my work to a JavaScript developer, I'd get negative feedback. Like, unjustified hatred and immediate denial, or outright rejection of the entire concept. Some were even adamantly trying to discourage me from this project.
So I posted a sarcastic question to the Software Engineering Stack Exchange, which was originally worded differently to reflect my frustration, but was later edited by mods to be more serious.
You can see the responses for yourself here: https://goo.gl/poHKpK
Most of the serious answers were along the lines of "multithreading is hard". The top voted response started with this statement: "1) Multithreading is extremely hard, and unfortunately the way you've presented this idea so far implies you're severely underestimating how hard it is."
While I'll admit that my presentation was initially lacking, I later made an entire page to explain the synchronisation mechanism in place, and you can read more about it here, if you're interested:
http://nexusjs.com/architecture/
But what really shocked me was that I had never understood the mindset that all the naysayers adopted until I read that response.
Because the bottom-line of that entire response is an argument: an argument against change.
The average JavaScript developer doesn't want a multithreaded server platform for JavaScript because it means a change of the status quo.
And this is exactly why I started this project. I wanted a highly performant JavaScript platform for servers that's more suitable for real-time applications like transcoding, video streaming, and machine learning.
Nexus does not and will not hold your hand. It will not repeat Node's mistakes and give you nice ways to shoot yourself in the foot later, like `process.on('uncaughtException', ...)` for a catch-all global error handling solution.
No, an uncaught exception will be dealt with like any other self-respecting language: by not ignoring the problem and pretending it doesn't exist. If you write bad code, your program will crash, and you can't rectify a bug in your code by ignoring its presence entirely and using duct tape to scrape something together.
Back on the topic of multithreading, though. Multithreading is known to be hard, that's true. But how do you deal with a difficult solution? You simplify it and break it down, not just disregard it completely; because multithreading has its great advantages, too.
Like, how about we talk performance?
How about distributed algorithms that don't waste 40% of their computing power on agent communication and pointless overhead (like the serialisation/deserialisation of messages across the execution boundary for every single call)?
How about vertical scaling without forking the entire address space (and thus multiplying your application's memory consumption by the number of cores you wish to use)?
How about utilising logical CPUs to the fullest extent, and allowing them to execute JavaScript? Something that isn't even possible with the current model implemented by Node?
Some will say that the performance gains aren't worth the risk. That the possibility of race conditions and deadlocks aren't worth it.
That's the point of cooperative multithreading. It is a way to smartly work around these issues.
If you use promises, they will execute in parallel, to the best of the scheduler's abilities, and if you chain them then they will run consecutively as planned according to their dependency graph.
If your code doesn't access global variables or shared closure variables, or your promises only deal with their provided inputs without side-effects, then no contention will *ever* occur.
If you only read and never modify globals, no contention will ever occur.
Are you seeing the same trend I'm seeing?
Good JavaScript programming practices miraculously coincide with the best practices of thread-safety.
When someone says we shouldn't use multithreading because it's hard, do you know what I like to say to that?
"To multithread, you need a pair."18 -
Question!
I am 26, and recently diagnosed with autism. An incredibly late diagnosis due to my absolutely amazing ability to keep everything internal.. It has caused my countless headaches and heartaches over the years and its good to finally understand what it is thst makes me how I am...
I am also aware that IT goes hand in hand with autism due to our thought process being so 'logical' and our acceptance of failure is.... Er... Not the best. But we also have the stubborness/determination to keep going, learn what it is we did wrong and improve upon it.
So my question really is, are many of you on the spectrum also? If so, are there any coping strategies that you can share with me/everyone who reads this?
By coping I don't mean just dealing with it, but I mean in the workplace. I've never had a job formally in IT because I never did any qualifications in it. Rebuilt my first pc at age 7 and been hooked since.
I have always been a mechanic because again, logic reasons.
I'm currently in contact with an organisation here in Norway called 'Unicus' who are specialised in employing people on the spectrum, specifically in the IT sector... Have any of you heard of them? They seem promising to me
Thanks for reading guys and please feel free to delete this if this really isn't the place for it, I just feel that within this community there are more of us and I would like to open the door for communication16 -
One of classmates presented an idea of children tinder as her final project. (To find friends, not...you know..)
So, after a pretty logical question how they're going to prevent it from turning into a platform for kidnappers, they said 'I don't know, not my problem, tinder doesn't do it, Facebook doesn't, it's not my sphere of responsibility. And as a developer I cannot guarantee anything, why are you asking me this you're wrong'
Bravo.
P.s. idk why both of my latest posts are about tinder lol13 -
As a person who takes a lot of tech interviews everyday, here are a few thoughts
1. You DON’T need to know everything, it’s okay to say you don’t know things. Trust me, we know when you’re lying
2. Rule of thumb, the more the number of questions, the more we like you
3. We don’t mind you saying what you’re thinking when we ask a logical question. It might help us understand your approach to the problem and guide you.
4. Don’t google during telephonic interview, your stutter tells us the truth9 -
That moment when you've tried everything and nothing works and the only logical thing left to do is post a question on stackoverflow;
&wait;
&obviously rant on devRant while you wait;5 -
Someone mentioned being frustrated with people who answer "either/or" questions with "yes". I figured out why. They are not human. They are a robot and their processing of language is failing.
A simple question:
Q: The car is red or the car is green?
A: Yes
Breakdown:
The car is red. Yes, True
The car is green. No, False
The car is red OR the car is green.
True OR False
True || False = True
True = Yes
So they dissected the language like a computer treating "or" as a logical OR. This proves they are a robot pretending to be human. They failed the Turing test.7 -
a very polite recruiter in linkedin after our connection asked me why i choose this kind of career. I answered this and i hope i did not ranted a lot :)
i was trying to figure out what profession would make me more happy than others. I was always felt comfortable with computers, i was installing cracked games, exploring folders to paste the cracks etc. later in school when i learned the first algorithms like bubblesort i was knowing that i liked it. I also like working in silence while searching for solutions. That is the first part, the second is that i made a search about what industries would give me a safer future and international opportunities without having to be stuck in my country only. By working and getting more experience i felt in love with my job and trying to learn everything i missed and give to my boss or customers professional results with quality. I like it as a lifestyle, it combines a magic feeling of spells with the logical procedures of science. So why not? it combines all my loves together: creative thinking, technology, mental work, internet, music at the workflow, job demand, opportunities, and money! I hope i helped you my friend i am at your service for every question you have :)11 -
I have been debugging for like hours trying to figure out the cause an unknown bug spoiling my UI by making my elements overlap.
I'm working on a Unit Converter that takes kWh and then converts to mWh. (Logical Conversion: 1000 kWh = 1 mWh).
Just an easy shit i thought, using Javascript I just passed the dynamically generated kWh value to a function that takes maximum of 6 chars and multiply it by 0.001 to get the required result but this was where my problem started. All values came out as expected until my App hits a particular value (8575) and outputs a very long set of String (8.575000000000001), i couldn't figure the cause of this until i checked my console log and found the culprit value, and then i change the calculation logic from multiply by 0.001 to divide by 1000 and it came out as expected (8.575)
My question is that;
Is my math logically wrong or is this another Javascript Calculation setback?13 -
Question: tl;dr: looking for an open source bug tracking tool, or one that's affordable for small freelancers.
I'm working as freelancer with a client on a project and currently all the bugreporting/feature request/information/discussions/and other stuff happen by Telegram (not my first choice but hey, you know clients).
It happend twice, that I forgot about the specs of a feature we discussed briefly, because there was to much going on and I wasn't able to find it. So the next logical step would be to get a bugtracker.
So far my favorite would be http://www.redmine.org/
Does any one of you have good or bad expirience with it? Would you recommend something else, if so what and why? Other stuff I should consider?6 -
Killing people is bad. But, there should be a law to allow killing people who don't write proper unit tests for their code. And also those "team leaders" who approve and merge code without unit tests.
Little backstory. Starts with a question.
What is the most critical part of a quoting tool (tool for resellers to set discounts and margins and create quotations)? The calculations, right?
If one formula is incorrect in one use case, people lose real money. This is the component which the user should be able to trust 100%. Right?
Okay. So this team was supposed to create a calculation engine to support all these calculations. The development was done, and the system was given to the QA team. For the last two months, the QA team finds bugs and assigns those to the development team and the development team fix those and assigns it back to the QA team. But then the QA team realizes that something else has been broken, a different calculation.
Upon investigation, today, I found out that the developers did not write a single unit test for the entire engine. There are at least 2000 different test cases involving the formulas and the QA team was doing all of that manually.
Now, Our continuous integration tool mandates coverage of 75%. What the developer did was to write a dummy test case, so that the entire code was covered.
I really really really really really think that developers should write unit tests, and proper unit tests, for each of the code lines (or, “logical blocks of code”) they write.20 -
Question to the Americans here..
Just out of interest.
How many of you know the metric system?
I feel like as a dev you need to know it to communicate with the rest of the world on the same level. But I meet so many Americans that have no clue how metric even works.. (as if it was less logical than imperial 😄)
No offense, just truely curious..10 -
A bit late.. and not much about how to learn to code..but more of a figuring out if the kid has a right mind set to do so..
If the kid is not the type to question everything, not resourceful, not a logical/critical thinker, gives up easily and especially if not interested in how things work then being a dev is most probably not for them.. they can still persue coding, but it will end badly..
From my experience, people who have a better education than me, but lack those skills turned out to be a crappy dev.. not interested in the best tool to complete the tasks, just making 'something', adding more shit to the already shitty stack.. and being happy with that.. which of course is not the best way to do things around here..or in life!!
Soo.. if the kid shows all that and most importantly shows interest in learning to code.. throw him the java ultimate edition book and see what happens.. joke!
There are plenty of apps thath can get you started (tried mimo, but being devs yourself it's probably not so hard to check some out and weed out the bad ones) that explain simple logic and syntax.. there is w3schools that explains basics quite well and lets you tinker online with js and python..
so maybe show them these and see what happens.. If it will pick their interest, they will soon start to ask the right questions.. and you can go from there..
If the kids are not the 'evil spawns' of already dev parents or don't have crazy dev aunties and uncles, then they will have to work things out themselves or ask friends... or seek help online (the resourceful part comes here).. so google or any flavour of search engines is their friend..
Just hope they don't venture to stack overflow too soon or they will want to kill themselves /* a little joke, but also a bit true.. */
Anyhow, if the kid is exhibiting 'dev traits' it is not even a question how to introduce it to the coding.. they will find a way.. if not, do not force them to learn coding "because it's in and makes you a lot of moneyz"..
As with other things in life, do not force kids to do anything that you think will be best for them.. Point them in direction, show them how it might be fun and usefull, a little nudge in the right direction.. but do not force.. ever!!!
And also another thing to consider.. most of the documentation and code is written in english.. If they are not proficient, they will have a hard time learning, checking docs, finding answers.. so make sure they learn english first!!
Not just for coding, knowing english will help them in life in general. So maaaaybe force them to learn this a bit..
One day my husband came to me and asked me how he can learn.. and if it's too late for him to learn coding.. that he found some app and if I can take a look and tell him what I think, if it is an ok app to learn..
I was both flattered and stumped at the same time..
Explained to him that in my view, he is a bit old to start now, at least to be competitive on the market and to do this for a living, but if it interests him for som personal projects, why not.. you're never too old to start learning and finding a new hobby..
Anyhow, I've pointed out to him that he will have to better his english in order to be able to find the answers to questions and potential problems.. and that I'm happy to help where and when I can, but most of the job will be on him.
So yeah, showed him some tutorials, explained things a bit.. he soon lost interest after a week and was mindblown how I can do this every day..
And I think this is really how you should introduce coding to kids.. show them some easy tutorials, explain simple logic to them.. see how they react.. if they pick it up easily, show them something more advanced.. if they lose interest, let them be.
To sum up:
- check first if they really want to learn this or this is something they're forced to do (if latter everything you say is a waste of everybodys time)
- english is important
- asking questions (& questioning the code) is mandatory so don't be afraid to ask for help
- admitting not knowing something is the first step to learning
- learn to 'google' & weed out the crap
- documentation is your friend
- comments & docs sometimes lie, so use the force (go check the source)
- once you learn the basics its just a matter of language flavour..adjust some logic here, some sintax there..
- if you're stuck with a problem, try to see it from a different angle
- debugging is part of coder life, learn to 'love' it4 -
There’s an interview question that i was asked years ago, and I’ve sometimes thought about it but haven’t still figured out an answer. The question is as follows.
You’re working on a project for a client and there’s 15 minutes until it should be delivered, but the solution is not finished yet. What do you do?
The only logical thing I thought of was to just contact the client and tell them it’ll take some more time, but at the same time, telling them 15 minutes before the deadline seems like a sign of bad planning and time management. And it’s probably not realistic to finish everything in 15 minutes. What woold you guys do?4 -
Generally have great experience with our management.
I work at a scale-up, so I've had some run-ins with the founder shifting priorities too often in the early days, but he's got enough notion of tech to understand when we're telling about the why(not)s of what we can and can't do
A while back we got a product owner/manager/scrum master and he's great too. I've had times when he put pressure on making deadlines when it was really not helping, but overall great guy with a lot of empathy and respect for his team.
But recently I've been starting to feel like we (the dev team) are getting more and more excluded from the decision-making process of the features & designs that we're going to be working on. We used to have a say in what we felt like was a good idea for a feature or a design, but it feels to me like we don't get asked that question any more of late...
Not sure if I'm imagining it, or overreacting to a logical (possibly positive?) evolution in our development workflow... -
Please excuse: This is my first step into python. So consider this a beginners question:
https://github.com/paradonym/...
This forked script checks a twitter page for words and sends a mail (probably using .qmail) to the owner.
If I execute this python:
"[$USER@$HOST uberspace-downtime-notify]$ python fetch.py
Traceback (most recent call last):
File "fetch.py", line 11, in <module>
import html
ImportError: No module named html
"
Similar errors are fixed in this github commit https://github.com/datalib/... - but that's a more complex script and I don't quite get where the imported module is needed (on a code basis - on the logical basis all is clear)
Any idea for a guy with his first steps into python and back into programming languages since some years=5 -
update on this
https://devrant.com/rants/1617751/...
My first interview was kinda okay, I think I'm not in the mood to join them as well. They have to create a web app and they are considering Angular and React but they're more favorable to Angular which I haven't used yet.
Second went pretty well as per my expectation, those guys using React, Vue in which I'm more interested and they seemed friendly to me. Instead of stupid questions (tell me about yourself bla bla bla), they asked the only logical question which was more related to work and my experience. In the end, they asked me about my salary expectations and joining period, and I'm feeling positive about it.
Now I've to wait for next week to get a response from both interviews.1 -
Im completely stuck in this, might just have been gotten mad and it's real simple.. butncould anyone help me write an sql select statement that would solve this issue ?
Problem statement and examples are on the picture :)
Thanks in advance!
(Data not the actual data needed but resembles structure im trying to do)10 -
A philosophical question about maintenance/updating.
There is no need to repeat the reasons we need to update our dependencies and our code. We know them/ especially regarding the security issues.
The real question is , "is that indicates a failure of automation"?
When i started thinking about code, and when also was a kid and saw all these sci fi universes with robots etc, the obvious thing was that you build an automation to do the job without having to work with it anymore. There is no meaning on automate something that need constant work above it.
When you have a car, you usually do not upgrade it all the time, you do some things of maintance (oil, tires) but it keeps your work on it in a logical amount.
A better example is the abacus, a calculating device which you know it works as it works.
A promise of functional programming is that because you are based on algebraic principles you do not have to worry so much about your code, you know it will doing the logical thing it supposed to do.
Unix philosophy made software that has been "updated" so little compared to all these modern apps.
Coding, because of its changeable nature is the first victim of the humans nature unsatisfying.
Modern software industry has so much of techniques and principles (solid, liquid, patterns, testing that that the air is air) and still needs so many developers to work on a project.
I know that you will blame the market needs (you cannot understand the need from the start, you have to do it agile) but i think that this is also a part of a problem .
Old devices evolved at much more slow pace. Radio was radio, and still a radio do its basic functionality the same war (the upgrades were only some memory functionalities like save your beloved frequencies and screen messages).
Although all answers are valid, i still feel, that we have failed. We have failed so much. The dream of being a programmer is to build something, bring you money or satisfaction, and you are bored so you build something completely new.13 -
2 weeks+ ago I made a PR into our codebase containing sample refactor that streamlined a significant portion of code. Also, I did refactor only on two handler packages (for MVC folks, that's Controller) as proof of concept, to figure out how convinient / logical the part would be for everyone.
We have rule of 2 approvals for merge (for 5 team members)
While writing refactor, it obviously blown up a lot of unit tests, but still coverage was fairly poor (that stuff was rushed, there was back than no time for unit tests). After my refactor I spent couple of days writing tests that hit fairly sweet (comparatively) coverage. (I managed to bump coverage from low 20s to high 80s, and have less code for tests)
I got first approve pretty much immidietely, other team member was on vacations, and 2 of them forgot.
We generally try to close PRs fairly quickly (usually same day kind of deal), but that one was just.. hanging in there. So I pinged everyone to re-check it to greenlight it but of course, loo and behold, merge conflicts arised. I ended up fixing actual logic (just some method signatures changed, not a big deal) and ran the units.
So, one of that handlers got quite a few of edits, and guess who is pretty much rewriting unit tests for second time now...
Dude, sometimes I question why tf I even bother with these tests... Feels like sabotaging my productivity, especially with bullshit like that3