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
Search - "o(n)"
-
Me: *uses HashMap* for a problem to count some elements*
Lecturer: why are you using HashMap?
Me: it's the best way of solving the problem
Lecturer: I haven't explicitly taught you what a HashMap is so why are you using it?
Me: Because I learn outside of what university teaches me
Lecturer: there's another way to do this
Me: enlighten me
Lecturer: iterate through the array using a nested for loop and count as you go along
Me: why the hell would I want to do that? That literally decreases the efficiency of my program by alot
GG lecturer telling me it's a better idea of making my O(n) runtime into an O(n^2) instead of complimenting my code.
Seriously what the fuck is up with the fucking education system. Since when was it okay to teach students how to completely fuck your code up and promote ways of making your code so inefficient?33 -
Me: Optimize a sort & match method in backend because users complain it's a bit slow.
Coworker: These algorithms are both O(n), so they're identical *closes PR*
Me: *start zoom call* "Heeeeeeeeeey Iiiiiiiiiii wouuuuuuuld liiiiiiiiike toooooo diiiiiisscuuuuus thaaaaaaaat puuuuuuulllll reeeeeequuuueeest yooooouuuuu cloooooossseeeed"
Coworker: "wtf are you doing, why are you talking so slow"
Me: "No matter whether I talk fast or slow, the information still reaches you in O(n) time, so why are you complaining"
I fucking hate it when people misunderstand the purpose of (or abuse) big O notation. It's an estimate of how an algorithm SCALES once the set increases in size, in which case you leave out both less significant terms and constant factors.
But those terms and factors are important when you're talking about the DIRECT PERFORMANCE of the algorithm on fixed-size sets, instead of SCALING to larger sets.
1n and 10n are both O(n), but 10x performance on a job that used to take 10 minutes is still significant.19 -
Pessimist: a O(2^n) algorithm's performance decreases exponentially as input increases.
Optimist: a O(2^n) algorithm's performance increases exponentially as input decreases.2 -
All my works...
G G. O O O. N. N. E E E
G. G. O. O. NN. N. E
G. O. O. N. N. N. E E E
G. G G. O. O. N. N N. E
G. G. O. O. N. NN. E
G G. O O. N. N. E E E E13 -
Biggest scaling challenge?
The imaginary scaling issues from clients.
Client : How do you cope with data that's a billion times bigger than our current data set? Can you handle that? How much longer will it take to access some data then?
I could then give a speech about optimizing internal data structures and access algorithms that work with O(log n) complexity, but that wouldn't help, non-tech people will not understand that.
And telling someone, the system will be outdated and hopefully been replaced when that amount of data is reached, would be misinterpreted as "Our system can not handle it".
So the usual answer is: "No problem, our algorithms are optimized so they can handle any amount of data"6 -
(Interview for sde-3 position)
(continuation of https://devrant.com/rants/2132431/... )
Interviewer - *opens laptop. Gives a question.* solve this.
Me - *a bit surprised that such questions were being asked on a sde-3 level*
this is the 4th or 5th question from geeksforgeeks, isn't it? I know the answer to this. Do u still want me to solve it?
Interviewer - *not believing me* Yes
Me - okay. Well this *writing down the original solution mentioned on the site* is the verbatim code mentioned on the website, with complexity O(n^2).
However I feel this is not the optimal solution. Let me write a better solution.
*I provide a better solution*
This has a complexity of O(n log n) . What do you think?
Interviewer - Nope. This could be a lot better.
Me - okay. Let me see. Did some minor changes, added some caching (obviously this will have no effect on the base algorithm) etc
How about now?
Interviewer - nope. Still not good.
Me - okay. Can you tell me how to improve it?
Interviewer - no we are not allowed to solve problems for you. It is not our interview, it is yours.
Me - that makes no sense. Interviews are a two way street. I'd very much like to know the optimal answer to this.
Interviewer - okay
*copies down the answer from geeksforgeeks*
This is good
Me - *at first I thought this was a prank or something. *
I just mentioned this answer here.
Then I spent the next 10 minutes providing a BETTER solution.
May I know how yours is better?
Interviewer - this solution has 2-3 loops. Yours has a function calling itself.
Me - that's called divide and conquer using recursion mf!
Anyways let's take an example and do a dry run.
Interviewer - okay
*we do dry run*
Interviewer - oh yes. Yours ran faster. But it will run fast only sometimes.
Me - yes. Each time the algorithm rolls a dice to decide if it should run fast or slow. You have one goddamn awesome weed dealer man.
I got to go. Thank you for meeting me.14 -
A is for Assembly, a wizard's spell
B is for Bootstrap, so bland and the same. And also for Brainf*ck, will blow you away
C is for COBOL, your grandad knows that
D is for daemon, your server knows what
E is for Express.js, you node what is coming
F is for FORTRAN, which is perferct for sciencing
G is for GNU which is GNU not UNIX
H is for Haskell using functional units
I is for Intance, An action of Object
J is for Java plays with them Always
K is for Kotlin, Android's new toy
L is for Lisp, scheming a ploy
M is for Matlab, who knows how it works
N is for Node a bloatware of code
O is for Objective Pascal, you did not expect that
P is for programming, we all love to do that
Q is for Queries, A database is made
R is for R, statistics are great
S is for Selenium, you have to test that
S is for Smalltalk, let's make it all brief
T is for Turing Test, how human is this?
U is for Unix, build with all talents
V is for Visual Studio, built with all laments
W is for Web, lets build something cool
X is for XHTML, remember all that?
Y is for Y2K, I'm tired as f*ck
Z is for Zip, let's zip is all now.
Get yourself coffee and back to the grind.8 -
. _ _ _ /\/|
/ \ _
| [ o]-[ o] l l
\ ¬ / l l
////////// l l
/ \ \ / l_l
/ \ \ _ _ _ _ l
/ \ _ _|_ |- -| \ /\
| ===== |_ |
D E V E L O P E R
A T
N I G H T4 -
Having fun in Germany, I'm going to stay here for 3 days.
Everything is nice
except
that
I'll forget e v e r y t h i n g of my code
because
it is
U N D O C U M E N T E D
Wish me luck12 -
When a Coursera course is way better than the one offered by your university…
A university student's rant...
I study Electrical and Computer Engineering and during the first semester of the second year I selected an optional course: Web Programming. It was believed among students that the course would be really easy, and it was. All the student had to do was build a very simple website using HTML, CSS and a few line of JS. A website containing three or four pages all of which had to be validated using a markup validation service.
Yeah, sure, I passed the course just like everyone else who bothered enough to spend an hour or two working on the project. Oh, I almost forgot! We had an one-hour workshop on Dreamweaver!
So, by that point, everybody was a front-end developer, right?!
That happened over three years ago, and because of that course web-development didn’t impress me…
Thankfully, the last few months I’ve became interested in Web Development, and I’ve been reading some articles, spending time on smashing magazine, making some progress on FreeCodeCamp and taking relevant courses on Coursera!
In fact, a few days ago I completed the Coursera course “HTML, CSS and Javascript for Web Developers”.
Oh boy, the things I didn’t know that I didn’t know…
<sarcasm>Did you know there was a term called “responsive design” and that there are frameworks like bootstrap?</sarcasm>
Well, I d i d n ’ t k n o w ! ! ! (even though I had taken the university’s course).
I understand that bootstrap was introduced in 2011 and I took the university course in late 2012, but by that time, bootstrap was quite popular and also there were other frameworks available before bootstrap that could have been included in the course! (even today, there is no reference in responsive design in the university’s course).
In just five weeks the coursera course managed to teach me more, in a more organized and meaningful way than my university’s course in a whole semester!
When I started the coursera course I shared it with a friend of mine. His response: “yeah, sure, but web development is pretty easy… I didn’t spend much time to complete that project three years ago!”
That course three years ago gave birth to misconceptions in students' minds that web development is easy! Yeah, sure, it can be easy to built a simple, non responsive, non interactive website! But that's not how the world works nowadays , right?!
A few months ago, in the early days of August, I attended Flock, the Fedora community conference. During a break I spent some time speaking with a Red Hat employee about student internships. He told me, and I paraphrase: “We know that students don’t have a solid background and that they haven’t learned in the university what we need them to!”
Currently I’m planning to apply for a front-end developer internship position here in Greece.
Yesterday I wrote my CV, added university courses relevant to that position and listed coursera courses under independent coursework… While writing those I made these thoughts…
What if that course 3 years ago was as good as the coursera course… all the things I’d know by now…6 -
Devrant::Mathematicians, unite!
I found a new way to calculate running average.
Old:
a(o, n, i) = (o(i - 1) + n) / i
New:
a(o, n, i) = o + (n - o) / i
a: New average function
o: Old average
n: Element to add to average
i: New number of elements16 -
A new linear time O(N) sorting algorithm [Keep it secret 🔒]
* Compare two adjacent elements one by one starting from the first element
* If there are out of order, delete the second element and continue with step 1
* If in order, go to the next two elements
* Once done, act like the numbers you deleted never existed
Works all the time.
Not yet published. Thinking of a good name for it.25 -
Hey, why isn't X working?
Well, whats it doing
It doesn't work
That doesn't help
OMG it blue screened
What did the blue screen say?
How do you fix it?
T e l l M e W h a t I t S a i d S o I C a n H e l p Y o u
I'm factory resetting it now1 -
WASM was a mistake. I just wanted to learn C++ and have fast code on the web. Everyone praised it. No one mentioned that it would double or quadruple my development time. That it would cause me to curse repeatedly at the screen until I wanted to harm myself.
The problem was never C++, which was a respectable if long-winded language. No no no. The problem was the lack of support for 'objects' or 'arrays' as parameters or return types. Anything of any complexity lives on one giant Float32Array which must surely bring a look of disgust from every programmer on this muddy rock. That is, one single array variable that you re-use for EVERYTHING.
Have a color? Throw it on the array. 10 floats in an object? Push it on the array - and split off the two bools via dependency injection (why do I have 3-4 line function parameter lists?!). Have an image with 1,000,000 floats? Drop it in the array. Want to return an array? Provide a malloc ptr into the code and write to it, then read from that location in JS after running the function, modifying the array as a side effect.
My- hahaha, my web worker has two images it's working with, calculations for all the planets, sun and moon in the solar system, and bunch of other calculations I wanted offloaded from the main thread... they all live in ONE GIANT ARRAY. LMFAO.If I want to find an element? I have to know exactly where to look or else, good luck finding it among the millions of numbers on that thing.
And of course, if you work with these, you put them in loops. Then you can have the joys of off-by-one errors that not only result in bad results in the returned array, but inexplicable errors in which code you haven't even touched suddenly has bad values. I've had entire functions suddenly explode with random errors because I accidentally overwrote the wrong section of that float array. Not like, the variable the function was using was wrong. No. WASM acted like the function didn't even exist and it didn't know why. Because, somehow, the function ALSO lived on that Float32Array.
And because you're using WASM to be fast, you're typically trying to overwrite things that do O(N) operations or more. NO ONE is going to use this return a + b. One off functions just aren't worth programming in WASM. Worst of all, debugging this is often a matter of writing print and console.log statements everywhere, to try and 'eat' the whole array at once to find out what portion got corrupted or is broke. Or comment out your code line by line to see what in forsaken 9 circles of coding hell caused your problem. It's like debugging blind in a strange and overgrown forest of code that you don't even recognize because most of it is there to satisfy the needs of WASM.
And because it takes so long to debug, it takes a massively long time to create things, and by the time you're done, the dependent package you're building for has 'moved on' and find you suddenly need to update a bunch of crap when you're not even finished. All of this, purely because of a horribly designed technology.
And do they have sympathy for you for forcing you to update all this stuff? No. They don't owe you sympathy, and god forbid they give you any. You are a developer and so it is your duty to suffer - for some kind of karma.
I wanted to love WASM, but screw that thing, it's horrible errors and most of all, the WASM heap32.7 -
C=consultant
M=Me
D=my Dumb boss
M: so how are you guys planning to implement the block all accounts feature?
C: oh it should be easy! We will just loop over every account and lock it!
M: what about implementing a flag that just blocks anyone from accessing the site till further notice?
C: what? I’m sure it’ll work. Just need a list of all accounts, we don’t need anything fancy!
M: what happens when we want to revert back to the pre-block state?
C: oh, so we will just unblock everybody
M: even people who were previously blocked for good reasons?
C: i guess so, unless you think otherwise
M: we r….
D: listen! We just need to be able to block all accounts, who cares about this details! So long as we block all accounts! We need this nuclear option in case something bad happens…
M: but what about when that bad thing passes and…
D: when it passes it passes who cares!
Arghhh so much rage here… like first at the stupid engineering design of looping over all of the accounts instead of using a simple flag. Like 1 http call (from one microservice to another) is a lot better than O(n)… not to mention, we won’t have to deal with failures and retries.
And second for my boss being a dumbass… ok you deal with being to afraid to unblock people after we used this “genius nuclear option”!6 -
I was asked to map a mathematical problem to an algorithm for first round of interview. I did it in 5 lines with O(n) and it worked. was told that was not the correct answer sent me an answer with O(n^2) and about 40 lines. in anger, I sent a five page mathematical proof along with analysis why mine was better. surprisingly, they took me in for second round. tanked it because I continually stuttered and froze. I was able to answer it once I got home. decided against sending it.1
-
@netikras since when does proprietary mean bad?
Lemme tell you 3 stories.
CISCO AnyConnect:
- come in to the office
- use internal resources (company newsletter, jira, etc.)
- connect to client's VPN using Cisco AnyConnect
- lose access to my company resources, because AnyConnect overwrites routing table (rather normal for VPN clients)
- issue a route command updating routing table so you could reach confluence page in the intranet
- route command executes successfully, `route -n` shows nothing has changed
- google this whole WTF case
- Cisco AnyConnect constantly overwrites OS routing table to ENFORCE you to use VPN settings and nothing else.
Sooo basically if you want to check your company's email, you have to disconnect from client's VPN, check email and reconnect again. Neat!
Can be easily resolved by using opensource VPN client -- openconnect
CISCO AnyConnect:
- get a server in your company
- connect it to client's VPN and keep the VPN running for data sync. VPN has to be UP at all times
- network glitch [uh-oh]
- VPN is no longer working, AnyConnect still believes everything is peachy. No reconnect attempts.
- service is unable to sync data w/ client's systems. Data gets outdated and eventually corrupted
OpenConnect (OSS alternative to AnyConnect) detects all network glitches, reports them to the log and attempts reconnect immediatelly. Subsequent reconnect attempts getting triggered with longer delays to not to spam network.
SYMANTEC VIP (alleged 2FA?):
- client's portal requires Sym VIP otp code to log in
- open up a browser in your laptop
- navigate to the portal
- enter your credentials
- click on a Sym VIP icon in the systray
- write down the shown otp number
- log in
umm... in what fucking way is that a secure 2FA? Everything is IN the same fucking device, a single click away.
Can be easily solved by opensource alternatives to Sym VIP app: they make HTTP calls to Symantec to register a new token and return you the whole totp url. You can convert that url to a qr code and scan it w/ your phone (e.g. Google's Authenticator). Now you have a true 2FA.
Proprietary is not always bad. There are good propr sw too. But the ones that are core to your BAU and are doing shit -- well these ARE bad. and w/o an oppurtunity to workaround/fix it yourself.13 -
```We discovered that your app contains hidden features. Attempting to hide features, functionality or content in your app is considered egregious behavior and can lead to removal from the Apple Developer Program.```
- Apple App Store Publishing Team
.
ARE U FU KINV KIDDING ME
THAT IS THE COMPLETE REASON WHY YOU REJECTED MY APP?
THE SAME GODDAMN BUILD THAT WAS SUBMITTED ON GOOGLE PLAY FOR ANDROID GOT APPROVED IN 10 MINUTES
IS THE SAME BUILD VERSION THAT GOT REJECTED 3 DAYS AFTER REVIEW ON THE APP STORE
BECAUSE "THEY THINK" I HAVE HIDDEN FEATURES LOL WHAT ARE FU🤡🤡KING INSANE🤡 YO😂😂🤡🤡
THIS REJECTION REASON IS LIKE A SHITTY USER REVIEW
"omg baby girl this app is best" *1 star"
OR
"I have a crash pls fix its not work this app cz crashs n not fixes fck u developers fix it these prblms !!!!🍆🍆🍆👅👅👅💦💦💦💨🌬🌬🌬" *1 star*
AND GET THIS RN !!!!
RN !!!!!!
THEY EVEN *THREAT ME* TO BAN MY APPLE DEVELOPER PROGRAM ACCOUNT WHICH I. P A I D. F O R. $ 100 USD
BECAUSE MY APP HaS 'HIDDEN FEATURES'
THERE ARE NOOO9OO FI KING HIDDEN FEATURES U MTHHHFRRFKERSS I WILL CUMBLAST ALL OF UR APPLE HOLES INTO UR ASSHOLES AND GIVE BIRTH TO THE MAGGOTS🤡GROWING FROM WITHIN🤡UR FKIG ASSHOLE CZ ALL OF YALL R FKIN ASSHOLES🤡ANYWAY🤡THEN MY FKIG HOT CUM🤡WILL EXPLODE💦OUT OF YOUR🤡ASS AND U WILL BE CLOWNS FOREBER🤡I WORKED WAY TOO HARD TO DESERVE AN UNNECESSARY REJECTION THAT HAS A VAGUE REASON OF WHY IT WAS REJSCTED🤡🤡🤡
juuuuuuu
🤡hehe11 -
Three days thinking of a solution to a problem in HackerRank...
Came up with a very elegant O(n+m) solution... failing several test cases...
Check here, there, over there. Everything seems flawless...
Re-read the problem statement letter by letter. There it is, I misread the requirement. FML8 -
The GashlyCode Tinies
A is for Amy whose malloc was one byte short
B is for Basil who used a quadratic sort
C is for Chuck who checked floats for equality
D is for Desmond who double-freed memory
E is for Ed whose exceptions weren’t handled
F is for Franny whose stack pointers dangled
G is for Glenda whose reads and writes raced
H is for Hans who forgot the base case
I is for Ivan who did not initialize
J is for Jenny who did not know Least Surprise
K is for Kate whose inheritance depth might shock
L is for Larry who never released a lock
M is for Meg who used negatives as unsigned
N is for Ned with behavior left undefined
O is for Olive whose index was off by one
P is for Pat who ignored buffer overrun
Q is for Quentin whose numbers had overflows
R is for Rhoda whose code made the rep exposed
S is for Sam who skipped retesting after wait()
T is for Tom who lacked TCP_NODELAY
U is for Una whose functions were most verbose
V is for Vic who subtracted when floats were close
W is for Winnie who aliased arguments
X is for Xerxes who thought type casts made good sense
Y is for Yorick whose interface was too wide
Z is for Zack in whose code nulls were often spied
- Andrew Myers4 -
Complaining about Windows is like complining about the bike you fell from. Learn to ride the fucking thing.9
-
Just had an old coworker from a previous job send me some stuff for a php script he was having issues with.
There was too much glory in what he was trying to do: mixing php inside of jquery code, not using strict types would have prevented like 10 issues he was having on his script on another portion, mixing headers, weirdly named variables, poorly constructed, reused db connections, 0 oop or proper dependency management in his code, horrible use of sessions and cookies, O (n²) logic all over the place.
But the cake.....are y'all ready for it? It was code screenshots, not even of just the section, no, the full page, from a windows machine (to make it better he is hosting the application on an IIS server and his configuration was not properly set) but I digress, back to the cake:
He was writing his code inside of wordpad :P
FUCKING WORDPAD
I just politely told him that I was busy at the moment and happily ignored him. Dude is not a good person to begin with imo, for example, he brought the subject of homosexuality during one of our talks after he saw me talking to my bf, who just so happens to be gay, his statement was "I do not understand how there can be gay people when there are women that are so hot"
My comeback was "I do not understand how we can be heterosexual when there are some really attractive dudes out there, see how stupid your logic sounds? attractiveness is not the basis for homosexuality ye dipstick" he let it go after that, but close minded people like that are not really my cup of tea.14 -
Dearest Spotify,
I do NOT like podcasts, I do NOT listen to them, I do NOT want to, I do NOT want them as a non-dismissible FUCKING banner PERPETUALLY AT THE TOP OF MY HOME FUCKING SCREEN
IN F R O N T OF THE FUCKING MUSIC?!?!?!
AND I DEFINITELY D O N OOO T WANT your SHITTY RECOMMENDATIONS to have PORNOGRAPHIC IMAGES AND THEMES when I often have the Spotify homepage open on my DESKTOP I don't want to explain that to people who happen to glance at my FUCKING screen.
Holy fucking shit just give me music recommendations and FUCK OFF.10 -
After class: Dr, it's pronounced as JAY-sun not J S O N.
Next class: So students, today we will work on passing a J S O N object.13 -
So, I wanted to find a new way to arrange my language's alphabet. Atm, I'm loosely using latin's system even though my system is weird;
A B K D E F G H I IE SH L M N O P R S T U V
So, I remember that another language (I think Japanese) uses a poem with every letter to figure the order of their letters, so I decided to do the same.
Only problem is: My current word list is very limited, some of the letters I needed only existed in specific words (aka, the word for "Dark") so I ended up making a very depressing poem.
Enjoy! Or not.. I'm not going to tell you what to do.
English translation below. I also will post images of it written in my language's script, as well as one line in my language's cursive script (I'm not doing the whole thing in cursive because fuck that)
Senarseha:
Seh ninfuat seh nem fieta; Seka sato nem fiekm juna jenes sermin.
Seh ninfuat sif nemsin netua niet; Seka sem sedma nemat sargo no
nrokniet sam fiekmin sehim sepra.
Sehim sinta nem nara niv nakliet.
Seh nem sine fieta.
English:
I say I am well; But all is dark before day begins.
I say it isn't too much; But this place is a farm of
preasure that blackens my soul.
My mind is ever in agony.
I am not well.6 -
trying to do anything on the PS2 is almost fucking impossible
i imagine a board meeting where they were designing the hardware
"how can we make this insanely hard to use?"
"let's make decentralized partition definitions, allow fragmenting of entire partitions, and require all partitions to be rounded to 4MB. If you delete a partition, don't wipe the partition out, just rename it to "_empty" and the system will do it for you, except it actually won't because fuck you"
"let's require 1-bit serial registers to be used for memory card access and make sure you can't take more than 8 CPU cycles to push each bit or it'll trash the memory card"
"let's make the network module run on a 3-bit serial register and when initialized it halves the available memory but only after 8 seconds of activity"
"let's require the system to load feature modules called "IOPs" and require the software to declare which of the 256 possible slots it wants to use (max of 8 IOPs) then insert stubs into those. Any other IOP you call will hang the system and probably corrupt the HDD. You also have to overwrite the stubbed IOPs with your own but only if you can have the stubs chainload the other IOPs on top of themselves"
"let's require you to write to the controller registers to update them, but you have to write the other controller's last-polled state or the controller IOP will hang"
of course this couldn't make sense, it's
s s s s
o o o o
n n n n
y y y y4 -
You know what would be nice? Being able to Google anything to do with VPNs without having like 90% of the results being links to how-to-setup-VPN-client pages from every goddamn obscure commercial VPN provider in existance.
If I wanted to know how to setup a VPN client to work with Crazy Dave's House-o'-VPN-n'-Cloud-Hosting's paid-for service, I probably would have Googled for that, not general things like "openvpn ethernet bridging". Why am I getting so many commercial results? Either nobody sets up their own VPNs, or the VPN companies have SEO'd the keywords good and proper.4 -
A coworker told me this a little while ago and I cringed.
"Coworker installs windows partition o n a Mac, not sure what utility he used but he's handled every IT issue, people in our company for years but googling and researching ways to do things.
Steve comes along to do a service on the Macs (apparently) and sees what my coworker did and says "get rid of that it's a security risk", coworker had a legitimate reason to use Windows, plugin for Excel only works in Windows, so Steve could have totally done checks to ensure security wasn't a risk, but he's a Mac elitist, what can you do :/, lucky coworker though gets to use a windows PC and never looked back xD."
Honestly scared of Steve doing that so called service seeing I have tons of things I need to use (source tree, Android studio, some tools to test push notifications) and just down right deleting them because of his reasons, that and the whole he does services after hours without much warning (last time it was a leave password on desk for the next "week" and Steve will come in and fix the Macs) I can't defend my argument of why I use something like Android studio (to develop the app for the company LOL) -
Two big moments today:
1. Holy hell, how did I ever get on without a proper debugger? Was debugging some old code by eye (following along and keeping track mentally, of what the variables should be and what each step did). That didn't work because the code isn't intuitive. Tried the print() method, old reliable as it were. Kinda worked but didn't give me enough fine-grain control.
Bit the bullet and installed Wing IDE for python. And bam, it hit me. How did I ever live without step-through, and breakpoints before now?
2. Remember that non-sieve prime generator I wrote a while back? (well maybe some of you do). The one that generated quasi lucas carmichael (QLC) numbers? Well thats what I managed to debug. I figured out why it wasn't working. Last time I released it, I included two core methods, genprimes() and nextPrime(). The first generates a list of primes accurately, up to some n, and only needs a small handful of QLC numbers filtered out after the fact (because the set of primes generated and the set of QLC numbers overlap. Well I think they call it an embedding, as in QLC is included in the series generated by genprimes, but not the converse, but I digress).
nextPrime() was supposed to take any arbitrary n above zero, and accurately return the nearest prime number above the argument. But for some reason when it started, it would return 2,3,5,6...but genprimes() would work fine for some reason.
So genprimes loops over an index, i, and tests it for primality. It begins by entering the loop, and doing "result = gffi(i)".
This calls into something a function that runs four tests on the argument passed to it. I won't go into detail here about what those are because I don't even remember how I came up with them (I'll make a separate post when the code is fully fixed).
If the number fails any of these tests then gffi would just return the value of i that was passed to it, unaltered. Otherwise, if it did pass all of them, it would return i+1.
And once back in genPrimes() we would check if the variable 'result' was greater than the loop index. And if it was, then it was either prime (comparatively plentiful) or a QLC number (comparatively rare)--these two types and no others.
nextPrime() was only taking n, and didn't have this index to compare to, so the prior steps in genprimes were acting as a filter that nextPrime() didn't have, while internally gffi() was returning not only primes, and QLCs, but also plenty of composite numbers.
Now *why* that last step in genPrimes() was filtering out all the composites, idk.
But now that I understand whats going on I can fix it and hypothetically it should be possible to enter a positive n of any size, and without additional primality checks (such as is done with sieves, where you have to check off multiples of n), get the nearest prime numbers. Of course I'm not familiar enough with prime number generation to know if thats an achievement or worthwhile mentioning, so if anyone *is* familiar, and how something like that holds up compared to other linear generators (O(n)?), I'd be interested to hear about it.
I also am working on filtering out the intersection of the sets (QLC numbers), which I'm pretty sure I figured out how to incorporate into the prime generator itself.
I also think it may be possible to generator primes even faster, using the carmichael numbers or related set--or even derive a function that maps one set of upper-and-lower bounds around a semiprime, and map those same bounds to carmichael numbers that act as the upper and lower bound numbers on the factors of a semiprime.
Meanwhile I'm also looking into testing the prime generator on a larger set of numbers (to make sure it doesn't fail at large values of n) and so I'm looking for more computing power if anyone has it on hand, or is willing to test it at sufficiently large bit lengths (512, 1024, etc).
Lastly, the earlier work I posted (linked below), I realized could be applied with ECM to greatly reduce the smallest factor of a large number.
If ECM, being one of the best methods available, only handles 50-60 digit numbers, & your factors are 70+ digits, then being able to transform your semiprime product into another product tree thats non-semiprime, with factors that ARE in range of ECM, and which *does* contain either of the original factors, means products that *were not* formally factorable by ECM, *could* be now.
That wouldn't have been possible though withput enormous help from many others such as hitko who took the time to explain the solution was a form of modular exponentiation, Fast-Nop who contributed on other threads, Voxera who did as well, and support from Scor in particular, and many others.
Thank you all. And more to come.
Links mentioned (because DR wouldn't accept them as they were):
https://pastebin.com/MWechZj912 -
As a pretty solid Angular dev getting thrown a react project over the fence by his PM I can say:
FUCK REACT!
It is nigh impossible to write well structured, readable, well modularized code with it and not twist your mind in recursion from "lift state up" and "rendercycle downwards only"
Try writing a modular modal as a modern function component with interchangeable children (passeable to the component as it should be) that uses portals and returns the result of the passed children components.
Closest I found to it is:
c o d e s a n d b o x.io/s/7w6mq72l2q
(and its a fucking nightmare logic wise and readability wise)
And also I still wouldn't know right of the bat how to get the result from the passed child components with all the oneway binding CLUSTERFUCK.
And even if you manage to there is no chance to do it async as it should be.
You HAVE to write a lot of "HTML" tags in the DOM that practically should not be anywhere but in async functions.
In Angular this is a breeze and works like a charm.
Its not even much gray matter to it...
I can´t comprehend how companies decide to write real big web apps with it.
They must be a MESS to maintain.
For a small "four components that show a counter and fetch user images" - OK.
But fo a big webapp with a big team etc. etc.?
Asking stuff about it on Stackoverflow I got edited unsolicited as fuck and downvoted as fuck in an instant.
Nobody explained anything or even cared to look at my Stackblitz.
Unsolicited edit, downvote, closevote and of they go - no help provided whatsoever.
Its completely fine if you don't have time to help strangers - but then at least do not stomp on beginners like that.
I immediately regretted asking a toxic community like this something that I genuinely seem to not understand. Wasn't SO about helping people?
I deleted my post there and won't be coming back and doing something productive there anytime soon.
Out of respect for my clients budget I'm now doing it the ugly react way and forget about my software architecture standards but as soon as I can I will advise switching to Angular.
If you made it here: WOW
Thank you for giving me a vent to let off some steam :)13 -
Copying a javascript anonymous function (Yes, the whole function) 11 times with only one parameter changing
I'm currently cleaning it up...
O H B O Y F U N D A Y S I N C O M M I N G...3 -
Jeff Dean Facts (Source: God)
Jeff Dean once failed a Turing test when he correctly identified the 203rd Fibonacci number in less than a second
Jeff Dean compiles and runs his code before submitting, but only to check for compiler and CPU bugs
Unsatisfied with constant time, Jeff Dean created the world's first O(1/n) algorithm
When Jeff Dean designs software, he first codes the binary and then writes the source as documentation
Compilers don't warn Jeff Dean. Jeff Dean warns compilers
Jeff Dean wrote an O(n^2) algorithm once. It was for the Traveling Salesman Problem
Jeff Dean's watch displays seconds since January 1st, 1970.
gcc -O4 sends your code to Jeff Dean for a complete rewrite -
The interface for time input in outlook Web on mobile is driving me crazy!! It's not as if there was a built in control that is well supported in all modern browsers.... Right
1. You can't tap on an hour to select it
2. You can only select by scrolling
3. The scrolling is "smooth scrolling". So you have N O fucking chance to select the time slot you wanted. After too much time has passed you just give up and accept that your meeting will be at 09:57
4. In order to go up in time you constantly activate the"pull to refresh" feature of Chrome.
I'm definitely no mindless MS hater but this I cannot tolerate.6 -
Not as much of a rant as a share of my exasperation you might breathe a bit more heavily out your nose at.
My work has dealt out new laptops to devs. Such shiny, very wow. They're also famously easy to use.
.
.
.
My arse.
.
.
.
I got the laptop, transferred the necessary files and settings over, then got to work. Delivered ticket i, delivered ticket j, delivered the tests (tests first *cough*) then delivered Mr Bullet to Mr Foot.
Day 4 of using the temporary passwords support gave me I thought it was time to get with department policy and change my myriad passwords to a single one. Maybe it's not as secure but oh hell, would having a single sign-on have saved me from this.
I went for my new machine's password first because why not? It's the one I'll use the most, and I definitely won't forget it. I didn't. (I didn't.) I plopped in my memorable password, including special characters, caps, and numbers, again (carefully typed) in the second password field, then nearly confirmed. Curiosity, you bastard.
There's a key icon by the password field and I still had milk teeth left to chew any and all new features with.
Naturally I click on it. I'm greeted by a window showing me a password generating tool. So many features, options for choosing length, character types, and tons of others but thinking back on it, I only remember those two. I had a cheeky peek at the different passwords generated by it, including playing with the length slider. My curiosity sated, I closed that window and confirmed that my password was in.
You probably know where this is going. I say probably to give room for those of you like me who certifiably. did. not.
Time to test my new password.
*Smacks the power button to log off*
Time to put it in (ooer)
*Smacks in the password*
I N C O R R E C T L O G I N D E T A I L S.
Whoops, typo probably.
Do it again.
I N C O R R E C T L O G I N D E T A I L S.
No u.
Try again.
I N C O R R E C T L O G I N D E T A I L S.
Try my previous password.
Well, SUCCESS... but actually, no.
Tried the previous previous password.
T O O M A N Y A T T E M P T S
Ahh fuck, I can't believe I've done this, but going to support is for pussies. I'll put this by the rest of the fire, I can work on my old laptop.
Day starts getting late, gotta go swimming soonish. Should probably solve the problem. Cue a whole 40 minutes trying my 15 or so different passwords and their permutations because oh heck I hope it's one of them.
I talk to a colleague because by now the "days since last incident" counter has been reset.
"Hello there Ryan, would you kindly go on a voyage with me that I may retrace my steps and perhaps discover the source of this mystery?"
"A man chooses, a slave obeys. I choose... lmao ye sure m8, but I'm driving"
We went straight for the password generator, then the length slider, because who doesn't love sliding a slidey boi. Soon as we moved it my upside down frown turned back around. Down in the 'new password' and the 'confirm new password' IT WAS FUCKING AUTOCOMPLETING. The slidey boi was changing the number of asterisks in both bars as we moved it. Mystery solved, password generator arrested, shit's still fucked.
Bite the bullet, call support.
"Hi, I need my password resetting. I dun goofed"
*details tech support needs*
*It can be sorted but the tech is ages away*
Gotta be punctual for swimming, got two whole lengths to do and a sauna to sit in.
"I'm off soon, can it happen tomorrow?"
"Yeah no problem someone will be down in the morning."
Next day. Friday. 3 hours later, still no contact. Go to support room myself.
The guy really tries, goes through everything he can, gets informed that he needs a code from Derek. Where's Derek? Ah shet. He's on holiday.
There goes my weekend (looong weekend, bank holiday plus day flexi-time) where I could have shown off to my girlfriend the quality at which this laptop can play all our favourite animé, and probably get remind by her that my personal laptop has an i2350u with integrated graphics.
TODAY. (Part is unrelated, but still, ugh.)
Go to work. Ten minutes away realise I forgot my door pass.
Bollocks.
Go get a temporary pass (of shame).
Go to clock in. My fob was with my REAL pass.
What the wank.
Get to my desk, nobody notices my shame. I'm thirsty. I'll have the bottle from my drawer. But wait, what's this? No key that usually lives with my pass? Can't even unlock it?
No thanks.
Support might be able to cheer me up. Support is now for manly men too.
*Knock knock*
"Me again"
"Yeah give it here, I've got the code"
He fixes it, I reset my pass, sensibly change my other passwords.
Or I would, if the internet would work.
It connects, but no traffic? Ryan from earlier helps, we solve it after a while.
My passwords are now sorted, machine is okay, crisis resolved.
*THE END*
If you skipped the whole thing and were expecting a tl;dr, you just lost the game.
Otherwise, I absolve you of having lost the game.
Exactly at the char limit9 -
Android dev job question:
"Describe the activity lifecycle and write an application that does x,y,z in accordance with it"
Fullstack dev job question:
"Write some code that interacts with our API and does x,y,z, put the data into our database and build a web interface"
Java backend dev interview :
"BUILD AN ELEVATOR ALGORITHM WITH LESS THAN o(nlog(n)), FIND NEIGHBORS IN A BINARY TREE, WHAT IS THE DIFFERENCE BETWEEN AN INTERFACE AND ABSTRACT CLASS?"
Why?5 -
List of shit my superior said and wrote in the project:
1. Prefer to write "pure" SQL statement rather than ORM to handle basic CRUD ops.
2. Mixing frontend and backend data transformation.
3. Dump validation, data transformation, DB update in one fucking single function.
4. Calculate the datetime manually instead of using library like momentjs or Carbon.
5. No version control until I requested it. Even with vcs, I still have to fucking FTP into the staging and upload file one by one because they don't use SSH (wtf you tell me you don't know basic unix command?)
6. Don't care about efficiency, just loop through thousands of record for every columns in the table. An O(n) ops becomes O(n * m)
7. 6MB for loading a fucking webpage are you kidding me?
Now you telling me you want to make it into AJAX so it'll response faster? #kthxbye2 -
A server application pulled off some sort of listings as table. Problem was, it crashed with some thousand data files after one and a half hours. I looked into that, and couldn't stop WTFing.
A stupid server side script fetched the data in XML (WTF!) and then inserted shit node-wise (WTF!!), which was O(n^2) - in PHP and on XML! Then it converted the whole shebang into HTML for browser display although users would finally copy/paste the result into Excel anyway.
The original developer even had written a note on the application page that pulling the data "could take long". Yeah because it's so fucking STUPID that Clippy is an Einstein in comparison, that's why!
So I pulled the raw data via batch file without XML wrapping and wrote a little C program for merging the dumped stuff client-side in O(n), spitting out a final CSV for Excel import.
Instead of fucking the server for 1.5 hours and then crashing, shit is done after 7 seconds, out of which the actual data processing takes 40 bloody milliseconds!4 -
For when I need to make a website awesome:
javascript:var a='hotPink',b='pink',h=document,i=h.body,c=function(d,e){f=h.getElementsByTagName('*');for(g in f){f[g].style.background=d;f[g].style.color=e;}};i.innerHTML='<marquee behavior="scroll" direction="left" scrollamount="30">'+i.innerHTML+'</marquee>';(function(){function htmlreplace(a,b,element){if(!element)element=document.body;var nodes=element.childNodes;for(var n=0;n<nodes.length;n++){if(nodes[n].nodeType==Node.TEXT_NODE){var r=new RegExp(a,'g');nodes[n].textContent=nodes[n].textContent.replace(r,b);}else{htmlreplace(a,b,nodes[n]);}}}htmlreplace("a|e|i|o|u",'o');htmlreplace("A|E|I|O|U",'O');})();c(a,b);4 -
Programming contest assignments, first level:
1. "...if you don't know how to return values from a function, you can just print them"
2. "...if you don't know how to read files, you can assume data is in global variables"
3. Required recursion
4. "...and estimate its time complexity.", "You may pre-process the data, but use at most o(n^3)", "your algorithm must use under n^3 operations"
That escalated quickly!1 -
An intern approached me for help in one of their past exam questions. They said they had already turned in the exam but just wanted to know the answer. The question was not that hard and I had a bit of time to kill so I helped them.
Me: So, to make it O(n), you have to make it a double linked list, and keep a tail.
Them: But the problem requires us to solve it with a single liked list.
Me: You can just iterate it at the end to make it single-linked again. That costs O(n), so the solution is still O(n).
Them: Oh yeah right. I don't think we even need a tail though, we could just have a variable pointing to the last link.
Me: ...which is called a tail.2 -
I want honest opinions. Do you think the following is a good or not so good interview question. Why or why not? Defend your argument.
Define a function where the input is a list of integers. It should find and return all the unique sets of three within the list that sum to x.
For example, given the list [1, 3, 2, 5, 6, 8, 10, 13, 15] and with x = 16, the function would return [(10,5,1), (13,2,1)]
If the candidate presents the trivial solution with time complexity of o(n^3), ask if can be done in o(n^2) or better.7 -
How to write a proper Hello World program in Java:
public class ProperJavaProgram {
public static void main(String[] args) {
try {
// Write the hello world file
List<String> lines = Arrays.asList(
"#include <stdio.h>",
"int main() {",
"printf(\"Hello World!\\n\");",
"return 0;",
"}"
);
Path file = Paths.get("awesome-program.c");
Files.write(file, lines, Charset.forName("UTF-8"));
// Execute the file
executeCommand("cc awesome-c-program.c -o awesome-executable");
executeCommand("./awesome-executable");
} catch (IOException e) {
System.out.println("You're screwed, just use Java and get over it. " + e);
}
}
public static void executeCommand(String command) {
try {
Process p = Runtime.getRuntime().exec(command); // Run the process
BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream())); // Get the output
String s; // Print out the output
while ((s = stdInput.readLine()) != null) {
System.out.println(s);
}
} catch (IOException e) {
System.out.println("You're screwed, just use Java and get over it. " + e); // UR SCREWED
}
}
}2 -
Been hacking frontend for a while, know most of the perks and tricks of css and html, have implemented countless of projects with angularjs, have even created jquery plugins and gulp packages, have won hackatons in UX design.... Still, a SFO company turned me down for a front end dev position cause I could not find the K most frequent words in an array in O(n) time complexity...3
-
There is a mAtHeMaTicAl pRoOf 🤡 that a comparison-based sorting algorithm cannot get more efficient than O(n*log n). That's bullshit. Radix sort et al. — granted, they're not comparison-based.
But there is one comparison-based algorithm that can sort an array in O(n). It's called Stalin sort.
It traverses the array and deletes every item that doesn't appear in order. Boom, problem solved — the array is sorted in O(n), at the expense of losing (most of the) elements.
This is the perfect metaphor of Stalin's politics.4 -
Ds (dipshits) keep calling my phone 6-8 times a day. Almost all automated calls.
One day AI will handle these robocallers automatically. And then it will just be GAN style robocallers vs robosecretaries training against each other to become better and better at fooling each other.
And then suddenly, one day: skynet.
With a neutral female voice.
Or maybe an Indian accent.
"Hel. Lol. m I k r O s o t tech surprott. We detect virus on ur peesee. You will be assimilated. Where joon connor?"
Like a possessed speak-n-spell melting to death in a dumpster fire.
And we'll have done it to ourselves.6 -
Do you all look for code complexity O(n) while coding? Or you make sure that your code runs and never look back what's happening ?
Because as per code review no one looks for code complexity and that's so sad11 -
i have been browsing trough my gists and this is what I have found.
HAI
HOW DUZ I PRINTSMILE
VISIBLE "SMILEZ!"!
IF U SAY SO
HOW DUZ I PRINTSMILEZ NUMBERZ
I HAS A SMILEZLINE ITZ ""
IM IN YR LOOP NERFIN YR NUMBERZ WHILE NUMBERZ BIGGR THAN 0
SMILEZLINE R SMOOSH SMILEZLINE AN "SMILEZ!" MKAY
IM OUTTA YR LOOP
VISIBLE SMILEZLINE
IF U SAY SO
VISIBLE "O HAI! NOT MY WERK! LOL!:):)DIS WAY CUZ I LIEK SMOOSH:)"
I HAS A COUNTER ITZ 3
IM IN YR LOOP NERFIN YR COUNTER WHILE COUNTER BIGGR THAN 0
PRINTSMILEZ COUNTER
IM OUTTA YR LOOP
VISIBLE ":)N DIS WAY CUZ QUESTION. LOL!:)"
COUNTER R 3
IM IN YR LOOP NERFIN YR COUNTER WHILE COUNTER BIGGR THAN 0
I HAS A UDDERCOUNTER ITZ COUNTER
IM IN YR INNERLOOP NERFIN YR UDDERCOUNTER WHILE UDDERCOUNTER BIGGR THAN 0
PRINTSMILE
IM OUTTA YR INNERLOOP
VISIBLE ":)"!
IM OUTTA YR LOOP
VISIBLE ":)LOLOLOLOLOLOLOLOLOLOLOLOL!:):)KTHXBYE"
KTHXBYE9 -
// O(n²) complexity
for(x;y;z){
for(a;b;c){
}
}
Dev's argument: "We use this everywhere, as long as it gets the job done! Time is money!" How ironic..
So you would rather make your processing speed suffer for the sake of saving time? No, clean code doesn't matter. No, we should not waste time spending even a mere microsecond thinking about writing better code or at least consider it. No, we should just vomit out bad code at top speed. Good idea, guys. Idiots everywhere..6 -
// Posting this as a standalone rant because I've written the best piece of code ever.
// Inspired by https://devrant.com/rants/1493042/... , here's one way to get to number 50. Written in C# (no, not Do diesis).
int x = 1;
int y = x + 1;
int z = y + 1;
int a = z + 1;
int b = a + 1;
int c = b + 1;
int d = c + 1;
int e = d + 1;
int f = e + 1;
int g = f + 1;
int h = g + 1;
int i = h + 1;
int j = i + 1;
int k = j + 1;
int l = k + 1;
int m = l + 1;
int n = m + 1;
int o = n + 1;
int p = o + 1;
int q = p + 1;
int r = q + 1;
int s = r + 1;
int t = s + 1;
int u = t + 1;
int v = u + 1;
int w = v * 2 * -1; // -50
w = w + (w * -1 / 2); // -25
w = w * -1 * 2; // 50
int addition = x+y+z+a+b+c+d+e+f+g+h+i+j+k+l+m+n+o+p+q+r+s+t+u+v;
addition = addition * 2;
if (addition == w)
{
int result = addition + w - addition;
Console.Writeline(result * 1 / 1 + 1 - 1);
}
else
{
char[] error = new char[22];
error[0] = 'O';
error[1] = 'h';
error[2] = ' ';
error[3] = 's';
error[4] = 'h';
error[5] = 'i';
error[6] = 't';
error[7] = ' ';
error[8] = 'u';
error[9] = ' ';
error[10] = 'f';
error[11] = 'u';
error[12] = 'c';
error[13] = 'k';
error[14] = 'e';
error[15] = 'd';
error[16] = ' ';
error[17] = 'u';
error[18] = 'p';
error[19] = ' ';
error[20] = 'm';
error[21] = '8';
string error2 = "";
for (int error3 = 0; error3 < error.Length; error3++;)
{
error2 += error[error3];
}
Console.Writeline(error2);
}5 -
My friend sent me this as WYSIWYG
/* A simple quine (self-printing program), in standard C. */ /* Note: in designing this quine, we have tried to make the code clear * and readable, not concise and obscure as many quines are, so that * the general principle can be made clear at the expense of length. * In a nutshell: use the same data structure (called "progdata" * below) to output the program code (which it represents) and its own * textual representation. */ #include <stdio.h> void quote(const char *s) /* This function takes a character string s and prints the * textual representation of s as it might appear formatted * in C code. */ { int i; printf(" \""); for (i=0; s[i]; ++i) { /* Certain characters are quoted. */ if (s[i] == '\\') printf("\\\\"); else if (s[i] == '"') printf("\\\""); else if (s[i] == '\n') printf("\\n"); /* Others are just printed as such. */ else printf("%c", s[i]); /* Also insert occasional line breaks. */ if (i % 48 == 47) printf("\"\n \""); } printf("\""); } /* What follows is a string representation of the program code, * from beginning to end (formatted as per the quote() function * above), except that the string _itself_ is coded as two * consecutive '@' characters. */ const char progdata[] = "/* A simple quine (self-printing program), in st" "andard C. */\n\n/* Note: in designing this quine, " "we have tried to make the code clear\n * and read" "able, not concise and obscure as many quines are" ", so that\n * the general principle can be made c" "lear at the expense of length.\n * In a nutshell:" " use the same data structure (called \"progdata\"\n" " * below) to output the program code (which it r" "epresents) and its own\n * textual representation" ". */\n\n#include <stdio.h>\n\nvoid quote(const char " "*s)\n /* This function takes a character stri" "ng s and prints the\n * textual representati" "on of s as it might appear formatted\n * in " "C code. */\n{\n int i;\n\n printf(\" \\\"\");\n " " for (i=0; s[i]; ++i) {\n /* Certain cha" "racters are quoted. */\n if (s[i] == '\\\\')" "\n printf(\"\\\\\\\\\");\n else if (s[" "i] == '\"')\n printf(\"\\\\\\\"\");\n e" "lse if (s[i] == '\\n')\n printf(\"\\\\n\");" "\n /* Others are just printed as such. */\n" " else\n printf(\"%c\", s[i]);\n " " /* Also insert occasional line breaks. */\n " " if (i % 48 == 47)\n printf(\"\\\"\\" "n \\\"\");\n }\n printf(\"\\\"\");\n}\n\n/* What fo" "llows is a string representation of the program " "code,\n * from beginning to end (formatted as per" " the quote() function\n * above), except that the" " string _itself_ is coded as two\n * consecutive " "'@' characters. */\nconst char progdata[] =\n@@;\n\n" "int main(void)\n /* The program itself... */\n" "{\n int i;\n\n /* Print the program code, cha" "racter by character. */\n for (i=0; progdata[i" "]; ++i) {\n if (progdata[i] == '@' && prog" "data[i+1] == '@')\n /* We encounter tw" "o '@' signs, so we must print the quoted\n " " * form of the program code. */\n {\n " " quote(progdata); /* Quote all. */\n" " i++; /* Skip second '" "@'. */\n } else\n printf(\"%c\", p" "rogdata[i]); /* Print character. */\n }\n r" "eturn 0;\n}\n"; int main(void) /* The program itself... */ { int i; /* Print the program code, character by character. */ for (i=0; progdata[i]; ++i) { if (progdata[i] == '@' && progdata[i+1] == '@') /* We encounter two '@' signs, so we must print the quoted * form of the program code. */ { quote(progdata); /* Quote all. */ i++; /* Skip second '@'. */ } else printf("%c", progdata[i]); /* Print character. */ } return 0; }6 -
How do you explain to your client that no, you cannot have a perfect solution, because the algorithm is O(2^n)?
I mean, without requiring him to get a degree in CS. Also without making him think that you can't build efficient code because you're dumb. Or that the hardware is slow.3 -
When a data scientist thinks that if his algorithm is o(n) then it's really o(n) and it doesn't matter that he placed synchronized everywhere , connected to the db multiple time with huge in memory ops inside the transaction , wrote a file and downloaded something with http client . After all it's o(n) right mister I'm a scientist genius ?!?!?1
-
When the monthly scrum retrospective reaches the 90 minute mark...
You know when people are being stress tested and they break by getting up, run around screaming and ultimately knock themselves unconscious by running into a wall?
That. I felt like doing that.
I swear someone activates some sort of gravity well when these meetings begin because time beings to stretch on and o........n....... while they meetings happen.
I began to list things I think I'd rather be doing than be in that meeting.
1) Tax returns.
2) Prostate exam (not old enough to need one yet but at least I'd be out the meeting).
3) Visiting the dentist.
4) Assembling IKEA furniture.
5) Watching soccer at least they have the decency to give you a break in the middle and I find sports as engaging as a dog turd on the sidewalk.
So bored was I that I began to notice notches and holes in the ceiling tiles and when I remarked upon them others became engrossed in them and began to speculate upon their origins.
I don't know who a speaker is, what department they are from, what product they're working on or what's so important about the algorithm they're working on. There is no context, no explanation and half way through a show and tell I had to check we were still in a show and tell.
I was bored shitless. I actually felt physical pain from boredom, I've not felt that way since I was a child.
I really, really hate that scrum is implemented in this way.
It left me with only half an hour of coding time left and really it sapped my energy and motivation to the point where I just went home early.
Excuse my language, but:
Fucking bloody cunting waste of time, I've had more productive moments in the restroom. They need to piss off or committed seppuku, ideally both. Dante got it wrong the seventh level of hell is this. I'm usually a very calm and balanced individual but yesterday, yesterday I just... Fuck! Argh! Fuck you meeting, fuck you.
If you are the type that schedules meetings like this:
May a thousand Jabberwockies plague your nightmares and be it that the next seventy seven times you lay with a human shall ye experience bitter failure! I hope Cthulhu himself visits his "enlightenment" upon you and you fear sleep henceforth.
I'm bringing a rubix cube or juggling balls into the next meeting so that I can say at least I learned something and it wasn't time wasted.3 -
Unity just mailed me:
H E Y U W A N T S U M U N I T E V I D E O S ?
I should really unsubscribe from the mailing list.5 -
Who of you needs some non-disturbing background music while coding?
echo "g(i,x,t,o){return((3&x&(i*((3&i>>16?\"BY}6YB6%\":\"Qj}6jQ6%\")[t%8]+51)>>o))<<4);};main(i,n,s){for(i=0;;i++)putchar(g(i,1,n=i>>14,12)+g(i,s=i>>17,n^i>>13,10)+g(i,s/3,n+((i>>11)%3),10)+g(i,s/5,8+n-((i>>10)%3),9));}"|gcc -xc -&&./a.out|aplay
A while ago I found this in a Youtube-Video from computerphile.
I always listen to it or some variations if I need to stay focused.
Works for me.2 -
My last week of vacations. A brake on bussiness programing... lol
Monday:
Receive a phone call from a colegue:
Hi the equipment it not working.
Me: ( upset with the acuracy) reboot that shit!
Colegue: Its working. Thank you.
Me: 😲😨😵😱
Today (Thursday):
Collegue: The printer is not working!
Me: 😡 Im on vacation. Check the cable or try to reinstall the printer...
Colegue: Its working. Thank you.
Me: 😱😱😱😱😱😱😱😱
2 fucking hours later:
Collegue try to call
Me: Did not answer... 😡 Fuch this shit.
Colegue send text message saying that they had a problem on the video projector but its ok now..
Me: 😠😡😢😢😢
I'M ON V A C A T I O N3 -
I don't like vector math for gamedev. It's not that it's hard. Vector math isn't hard until operations become O(n log n). It's that it's unintuitive, slow to write, and when I finally come to a solution after arduous number crunching, it always looks obvious, boring and kind of ugly. I don't think I could ever write a piece of vector math that I could be proud of.2
-
So today at work, a dev proposed some solution to a performance problem by using divide and conquer. But the way he said it was came across like "this is a brilliant, algorithmic solution, I bet you'd never think of this because no one else knows algos".
So then I just reply to him mentioning Big O and how it seems the performance is N^3, exponential. In which case the optimal size is like 1. But basically like starting an algo discussion to see if he can keep up... Or if he's just dropping some algo slang to look good.9 -
My problem with referring to my github:
I just found a project from almost two years ago where I exclusively use unordered arrays of key/value pairs as dictionaries.
Man, fuck previous me.1 -
Sometimes Im pretty impressed and envious by the skills of my fellow students.
Usually it looks like this:
me: So Uhm what u got for the <insert class here>?
him/her: Well its pretty simple algorithm which has big O of (Log(n)/1000000) which also mines bitcoin in the meanwhile and yeah, last night I figured out that it now generates electricity...
me: Uhm... My program prints Hello world... But backwards...
Like for real, sometimes I wish I find the motivation, to be awake 2 days straight just bursting with ideas of some crazy shit. Right now Im like 'You see that star behind that cloud? Jup it shines too bright, gotta get some sleep' -> Browsing devrant...2 -
"f(n) is O(g(n)) if c and n0 f(n) <= cg(n) for all n > n0".
I have a couple of questions related to this equation.
1: why we use this equation?
2: which thing cg(n) is represented for?
3: what is the real-life example of this?10 -
At an interview, interviewer keep on hitting me with theoretical questions, why python don't have switch cases, what is default sorting in java etc... I told him I don't bother about theory, then this conversation happened.
I(Interviewer)
I: do you know time complexities?
me: Yes
I: okay, tell me a few sorting or searching algorithms which have logarithmic complexity?
me: binary search (with loud and confident voice)
I: he told, in worst case it will have O(n) tell me any other
me: *thinking*
I: what are you thinking? what is time complexity of merge sort
me: O(nlogn)
i: it's logarithmic.... -
Just enrolled my Nexus 5x in the Android O beta.
I am very impressed so far with the differences between N and O -
That feeling when you are writing code and can't figure out anyway to make it better than O(n^2) and then suddenly you figure out how to do it waaaay better in O(1) :')
-
Today i got so fucking depressed and discouraged because whenever i tell people "i am a software engineer" or "programmer" especially fking girls they just fuckin leave. They dump you. Imagine seeing someone with both ur eyes, both of ur shits seeing someone go from high interest and then watch their interest drop
D
E
E
P
D
O
W
N
L
I
K
E
F
U
C
K
I
N
G
T
H
I
S
All the fckin way back to 0 if not even below that.... How the fuck am i fuvjin g supposed to fking feel. What am i supposed to think. This is such a fucking bullshit. I am fking wordless.
Hhhhhhhhh
Each time this shit happens i question myself if i should regret wanting to be a software developer or not6 -
I think I'm overthinking this sigh
But its bothering me a lot so pls help, the two paragraphs I've marked, are they both saying the same thing in different ways?
I don't understand them saying there will be a f(n), when runtime is O(n²), upper bounding the runtime and on the other hand saying for runtime Ω(g(n)), g(n) directly lower bounds the runtime.
(The book is CLRS btw)7 -
I hate how the Java File I/O api works.....
I was developing a little noSQL database in java, just for fun.
The basic was: every entry was a json object, separated by \n.
Every entry started with the length in bytes, so i could perform a easy read of the entry with a inputstream, followed by the entry its self..
The problem?
If i had a big file with more than like 50000 entries, to alter a entry with acceptable perfomance, i had to read every entry for matching with search, than using RandomAccessFile to mark the old entry as deleted and adding the modified one at the end.
The same for delete, it was only possible to mark the entry as deleted, so the read/alter would just not read it by reading the length(which i wrote earlier) and than use inputstream.skip with the length.
To actually delete not needed entries, i created a new file and than reading the old one and writing at the same time to the new one, with skipping the not needed entries and at the end rename the new file to the old and re creating all the streams.
Why cant i just replace a specific part of the file? WTF JAVA2 -
!basicNonHarmfulExploitTest
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
Lets see If I can mess up the character cutoff limit 😜3 -
Ah, yes, the ages old dilemma of a piece of shit function written in-between taking long drags out of a fucking crackpipe being more reliable than the refactored version; how delightful.
Now, they say broken code from cleanup of sketchy bits is better than any working snippet whose reading feels as pleasant as being repeatedly slapped with a decaying rhinoceros testicle sack, but I'll be fucked if I don't __sometimes__ feel like I just *might* prefer eating the maggot soup out of the rotting fucking gonads of deceased male pachydermata than deal with this kind of shit: feet facing backwards and all that.
Ugh. If only I could live my life without everyday feeling like I'm on a pointless quest to slay a mother fucking dragon, where everytime I get to the castle I'm suddenly a mustachioed italian plumber stepping on turtles and my bitch is in another sicillian ghetto. You know, basic shit.
The good thing in seeing these old errors pop up again after my shoddy bandaid of a patch is taken off is that I'm finally experienced enough to realize that my ~ A P P R O A C H ~ was wrong to beg with. And this is VERY nice, because I came in to do some trivial maintenance of forgotten code, and now I have a plan for correcting a very small and silly but definitively annoying as fuck design error.
Why am I so annoyed then? Because it's more and more work, it never fucking ends, and I can't EVER take a break: with apocalypsis incoming, as we have clearly seen in the stars, tea cups, palm readings, crytal balls, ouija boards, and also in the cover of old-school pornographic magazines nailed to the wall of a defunct newspaper kiosk, the fear of economic collapse is somewhat too real to even THINK about any kind of necessary vacation.
And so: fucking shit, here we go again... TIME FOR MORE COFFEE.
<ad> But have YOU ever picked ingesting the hairy BALLS of a large mammal over doing your stupid job in a proper way? Is the ghost of your dead self haunting the hollow being that remains in this meaningless plane of existence? Do you lull yourself to sleep by chanting dark prayers to the Horror Immemorial with a heartfelt desire for the sweet release of death?
While it may be true that your corporate masters are keen on savagely raping your every breathing hole from the ass up to your fucking eyesockets on a daily basis, there's no good reason NOT to have a good time -- and with the help of ScalySalad, you will be able to unwind in the evenings by realizing your *supressed* childhood dream of debouring the certified, lab-tested, 100% authentic, gonorrhea-infected ASS of a sewer-dwelling lizard man!
ScalySalad pimps only the FINEST specimens of failed, government-sanctioned and highly clandestine experiments for your lacertaerotic pleasure. These proud and noble creatures were once human beings, until they were kidnapped by [CENSORED] in order to be used as weapons of war against their enemies. And for the lowlow price of GABTRIDTIHSTAE, you will be among the few lucky ones to experience the GLORIOUS taste of their anal cavities before they go extinct!
Go NOW to triple.doble.you dot. dot you.www www.triplewww.wwwwwwwwwwww dot if you click and it's malware you deserve it DOT com, and use my promo code SALAMUNCHER for 20% OFF on a date with a homeless societal reject turned prostitute after being [CENSORED] by state scientists!
Illegal inter-species fornication has never been easier! Thanks to ScalySalad for sponsoring this �vI�n��lK�^�3��V#^B�^NI�%^G�v�|3I��.1 -
!rant
I have an OPO and been looking to upgrade to Nougat for awhile. Think it's supposed to have a lot of improvements including better battery stats and control?
Was looking at LineageOS but it's still on nightlies... Are there any other ROMs that are stable?
And is N worth an upgrade or should I just wait for O? I'm on CM13 atm.13 -
Optimization concepts/patterns or instances?
For pattern its gotta be any time i can take a O(n^2) and turn it into O(n) or literally anything better than O(n^2).
Instance would probably be the time that we took an api method that returned a json list made up of dictionaries CSV-style and changed it into a dictionary with the uid as the key and the other info as key-value pairs in a sub-dictionary. So instead of:
[
{
"Name": name,
"Info":info
}
]
We now return:
{
name:
{
"Info": info
}
}
Which can, if done right, make your runtime O(1), which i love. -
Initialize a collection, store values in it and then filter values out of it and none of your code may be inefficient, such as having O(n)² performance. Your code must also pass the predefined Test Suite. You have 15 minutes.
This sounds simple but it's not.
This was for a Google-type company that has high standards.4 -
After whitehat jr.
Indian parents be like :
“Sharmaji ka beta O(n) me solve kiyah , tuh O(n2) mai kyun?“12 -
At work thres a legacy "common" DLL, which held a helper function that's incharge of creating Slugs, it takes an MD5 of the current time stamp UTC, removing non-URLable chars, and taking the first N chars that remain then
Ngl I was impressed at first at it, but then I thought, its Uniqueness isnt guaranteed
But then again I thought, the uniqueness can be tested via a call given it's indexed anyway in DB so O(1), and if non-unique, just re-call the function. Even in the worst case scenario the hits won't be that many anyway
I didnt change the code, tho at first I was inclined to given my "it isnt proven-unique" stance but am wondering, if this is a good approach
While coolish, it seems wrong in the back of my mind somehow...1 -
1. O(n)
2. Container queries
3. Supercomputer with a bunch of GPUs/TPUs running for free (solar, wind power)
Genuinely thanks! -
can you please help me with this.
I'm creating dataset of [Leet words][1].
This code is for generating [Leet words][1]. it is working fine with less number of strings but I've nearly 3,800+ strings and my pc is not capable to do so. I've Tried to run this on cloud(30gb RAM) not worked for me. but I think possible solution is to convert this code into numpy but I don't know how. if you know any other efficient way to do this it will be helpful.
Thanks!
from itertools import product
import pandas as pd
REPLACE = {'a': '@', 'i': '*', 'o': '*', 'u': '*', 'v': '*',
'l': '1', 'e': '*', 's': '$', 't': '7'}
def Leet2Combos(word):
possibles = []
for l in word.lower():
ll = REPLACE.get(l, l)
possibles.append( (l,) if ll == l else (l, ll) )
return [ ''.join(t) for t in product(*possibles) ]
s="""india
love
USA"""
words = s.split('\n')
print(words)
lst=[]
# ['india', 'love', 'USA']
for word in words:
lst.append(Leet2Combos(word))
k = pd.DataFrame(lst)
k.head()3 -
what. fucking. day.
my ex blonde whore got mentally,
T O R M E N T E D.
ripped apart.
absolute, psychological, Destruction.
a great, great Evil, is gonna be born out of what ive done
worse than frankenstein evil
and this evil, will be spread across the entire world
it will infect and affect, you
i cannot imagine how fucked up the future is going to become
this day is completely FUCKED and i cannot wait for the moment till this shit is over
what happened?
too much random fucking bullshit happened! this day is as random as it can fucking get
warning: you'll gonna get a headache reading this fucking rollercoaster of emotions
1) worked
2) was angry at my ex blonde whore cause she doesnt want to block the fuckboy she cheated on me with
3) told her this. argued with her. shes stubborn and doesnt want to block him
4) i blocked her everywhere (for 500th fucking time). this time including ig. she cried at work. barely could focus
5) after work from a fake acc i saw she posted MY fucking bmw
6) second story she posted SITTING INSIDE OF MY FUCKING BMW WITHOUT MY FUCKING PERMISSION
7) WHAT THE FUCK. MAD AS FUCK, I called her on phone asap. she answered. i said i wanna talk. she wanted to go out for coffee. fuck that. lets go to her place. she asked u wanna fuck me. i said i fucking do. im horny too, she said
8) came over. fucked her. discussed. talked. argued afuckinggain. unblocked. i pretended ig glitched out and i saw that story. told her who the fuck u think u is to steal my fucking key of my bmw and sit in my fucking brand new bmw?!!! WHORE
9) then fucked her again. but cuddled her kissed her gently, she said "you're such a fucking mentally ill maniac", while smiling hugging me and kissing me. she loves The Joker type of guy who fucks with her emotions. "you give me rollercoaster of emotions" she said. when she went in shower to wash off my cum i grabbed her phone and blocked her fuckboy she cheated on me with (shes secretly in love with him)
10) when she saw this her whole fucking mood swapped. 180. asked why did u go through my phone. i said why did you fucking steal my bmw key and sit inside of it
11) now we're even. i crossed the red line and blocked your fucktoy from your phone and you crossed the red line stealing my fucking key of an expesnive car and sitting inside it at 7:30am while i was sleeping. Fuck you WHORE
12) she sent the pics of my fucking bmw to chatgpt and asked how much this car costs so she estimates how rich i fucking am. This relation is BEYOND FUCKING TOXIC AND LETHAL THAN YOU CAN IMAGINE
13) "now that hes blocked can you drive me in ur bmw now for the first time" she asked. i was resistent. I FUCKING blocked him not YOU, whore. and you're giving me an attitude now. she looked at me angry, deadly, the look of "im gonna do you dirty for this i promise". fuck that whore
14) at the end i said i can drive u only under the condition that he remains blocked forever
15) deal. i repeated the fucking seriousness of this numerous times. its gonna get more fucked and toxic if she ever unblocks him. we agreed so i drove the bitch whore for first time. she was amazed of my bmw
16) when i thought it was all over and i can relax, as we were driving ANOTHER BITCH CALLED ME ON MY PHONE. AND HER NAME AND NUMBER WAS DISPLAYED ON THE BMW SCREEN. FUUUUUUUUUUUCK. please
17) i completely forgot that i set up a coffee meeting with this new bitch. (this new bitch is fat and ugly btw i just wanted to go out with her cause she has good personality and wanted to talk random stuff so i shift my mind off blonde ex whore)
18) blonde ex whore was not happy. asked me who is that. FUCK. i said some random girl
19) i left my blonde whore home. kissed. then went over with that new girl for a drink. talked. drove her. blond ex attacked me who is she, and to give her phone number so she calls her to check what she has to do with me. FUCK!!!
20) as i was sitting with that new girl i had to explain her all this bullshit. embarrassed. belittled. fuckwd up. whilw i was explaining my blonde whore found her ig and told me to tell her everything or else shes blocking me.
21) the blonde whore blocked me! everywhere! lol. for the first time ever. fuck off. now she knows how i felt, betrayed!
22) fucked up. blonde ex wrote to new girl why did she call me and what do we have between each other cause shes my gf. WHAT FUCKING GF YOU DUMB BITCH YOU FUCKING CHEATED ON ME!!!!! FUCK YOU
23) i told this new girl to write her she needed me for college cause I'm an IT guy and they dumb af dont know how to use word or excel
24) blonde ex bought it (i think)
25) when i got home i called my blonde whore on phone. she answered. her voice seemed like she overdosed on drugs. "did u fuck that girl" she asked. No. i was riding my bmw.
26) explained her the new girl is ugly and just wanted college help. i wouldnt fk her (truth). ex whore unblocked me and said she wants me to cuddle her tomorrow and sleep in bed14 -
Agree or disagree?
In algo terms ELK is like going from O(n^3) to O(ln(n))
I actually just said that to my boss.... after finishing running my version of analyzing the issue...5 -
Factory Reset my Nexus 6P, can't get Google Assistant -
So I was using the Android O Dev preview and decided the annoying things in it was just too much so I un-enrolled which reset my device, I'm now on Android N and have been for a week or two, everything's up to date and all but holding the home menu gives me the "Now on tap", I've cleared the Google app and services data/cache, swapped the language to English (US) and rebooted a few times but still nothing.
I'm not rooted and my bootloader is locked, I'm in Australia and had access to Google Assistant without any trickery before...
Not too sure what I'm missing and how to enable Assistant? So freaking annoying not having it and stuff, it was so useful and I miss it3 -
Redo the leetcode from yesterday
https://leetcode.com/problems/...
other people's answer: https://leetcode.com/problems/...-time-O(1)-space
I converted the java solution to javascript. -
I was away sick for a week. Come back to a chat log with messages about how the other dev team is trying to figure out a solution to a bug that they only show three services listed in the system.
Me couple of weeks ago on my second day in the project figured it out relating to a task I was doing. It's not a bug, it's a feature. It's a constant defined in the constants-file.
And the best thing: my team mate quoted me and said "Lankku figured it out last week". And it was passed down back to the team who had actually developed the whole feature and couldn't figure out why it was working so now. xD -
I JUST WANT TO FUCKING EXCLUDE A DIRECTORY....
I run the code cleaner tool, OH CHRIST it's trying to sanitise the automatically generated code, I don't want this.
I try to exclude... takes ages to work out that while specifying the dirs is absolute you can only exclude relative but from what? I want to block a/b but not a/c/b but no it's all you can only block all b b it a/b, b/b, c/b, c/b, a/c/b, etc.
I google for other solutions, nothing but trash, docs a trash, here's some examples but we don't tell you the actual behaviour. All I want is to get everything in /home/hilldog/emails but not /home/hilldog/emails/topsekret how hard can it be?
I use the source but what's this, BeefJerkyIteratorIteratorBananaSpliterator all over the shop how much convolution and LOC does it take to provide a basic find facility?
Screw this...
$finder->in(explode("\n",trim(exec('find '.escape_args(...$good).' -type d ' . implode('
-o ', prefix('\! -wholename', escape_args(..$bad))) . ' -etc | grep -vETC \'pretty_patterns\''))))3 -
Persisterising derived values. Often a necessary evil for optimisation or privacy while conflicting with concerns such as auditing.
Password hashing is the common example of a case considered necessary to cover security concerns.
Also often a mistake to store derived values. Some times it can be annoying. Sometimes it can be data loss. Derived values often require careful maintenance otherwise the actual comments in your database for a page is 10 but the stored value for the page record is 9. This becomes very important when dealing with money where eventual consistency might not be enough.
Annoying is when given a and b then c = a + b only b and c are stored so you often have to run things backwards.
Given any processing pipeline such as A -> B -> C with A being original and C final then you technically only need C. This applies to anything.
However, not all steps stay or deflate. Sum of values is an example of deflate. Mapping values is an example of stay. Combining all possible value pairs is inflate, IE, N * N and tends to represent the true termination point for a pipeline as to what can be persisted.
I've quite often seen people exclude original. Some amount of lossy can be alright if it's genuine noise and one way if serving some purpose.
If A is O(N) and C reduces to O(1) then it can seem to make sense to store only C until someone also wants B -> D as well. Technically speaking A is all you ever need to persist to cater to all dependencies.
I've seen every kind of mess with processing chains. People persisting the inflations while still being lossy. Giant chains linear chains where instead items should rely on a common ancestor. Things being applied to only be unapplied. Yes ABCBDBEBCF etc then truncating A happens.
Extreme care needs to be taken with data and future proofing. Excess data you can remove. Missing code can be added. Data however once its gone its gone and your bug is forever.
This doesn't seem to enter the minds of many developers who don't reconcile their execution or processing graphs with entry points, exist points, edge direction, size, persistence, etc.2