AboutI’ll have the blockchain tacos, AI-infused cantaloupe, and agile shrimp with a garnish of quantum C-lantro. A towel is just about the most massively useful thing any interstellar hitchhiker can carry. That’s no moon; it’s a space station.
LocationFrogstar World B (Milliways)
Joined devRant on 12/11/2018
Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple APILearn More
Joel Spolsky wrote a great article about estimating the time it will take for dev work: https://joelonsoftware.com/2007/10/...1
Any other hams out there? Amateur radio geek here. Especially SDR (rtlsdr, gnuradio, NooElec TV tuner, DMR, etc.)
Me: Hey can you make another cup of coffee like this one for my friend?
Rust: Sure, but you know it's expensive, right? Why don't you just let your friend borrow your coffee?
Me: Alright, but I have two friends.
Rust: No problem, you can share it with as many friends as you’d like, but only one of you is allowed to drink it.
C++: Hey wait! I’ll gladly make a cup of your coffee for your friends! I’ll even let them share it! Heck, they can even share yours!
Rust: Hey C++, you know copying coffee is expensive.
C++: Of course I do, but he didn’t define move construction or assignment, so he implicitly wants a copy!
Me: [To my friends:] Hey, let’s just go over to the Python coffee shop.
Rust: [To C++:] Hmph. The baristas at that place will even let you declare that a muffin is a cup of coffee.
C++: Yeah, but wait till they try to drink it. I hear it can be quite exceptional....
Slightly modified from this comment on a Reddit post that I found humorous — only I probably made it much less funny: https://reddit.com/r/...2
Online tutorial pet peeves
My top 10 points of unsolicited ranting/advice to those making video tutorials:
1. Avoid lots of pauses, saying “umm” too much, or other unnecessary redundancy in speech (listen to yourself in a recording)
2. If I can’t understand you at 1.5 - 2x playback speed and you don’t already speak relatively quickly and clearly, I’m probably not going to watch for long (mumbling, inconsistent microphone volume, and background noise/music are frequent culprits)
3. It’s ok to make mistakes in a tutorial, so long as you also fix them in the tutorial (e.g., the code that is missing a semicolon that all of a sudden has one after it compiles correctly — but no mention of fixing it or the compiler error that would have been received the first time). With that said, it’s fine to fix mistakes pertinent to the topic being taught, but don’t make me watch you troubleshoot your non-relevant computer issues or problems created by your specific preferences (e.g., IDE functionality not working as expected when no specific IDE was prescribed for the tutorial)
4. Don’t make me wait on your slow computer to do something in silence—either teach me something while it’s working or edit the video to remove the lull
5. You knew you were recording your screen. Close your email, chat, and other applications that create notifications before recording. Or at least please don’t check them and respond while recording and not edit it out of the video
6. Stay on topic. I’m watching your video to learn about something specific. A little personality is good, but excessive tangents are often a waste of my time
7. [Specific to YouTube] Don’t block my view of important content with annotations (and ads, if within your control)
8. If you aren’t uploading quality HD recordings, enlarge your font! Don’t make me have to guess what character you typed
9. Have a game plan (i.e., objectives) before hitting the record button
10. Remember that it’s easier to rant and complain than to do something constructive. Thank you for spending your time making tutorial videos. It’s better for you to make videos and commit all my pet peeves listed above than to not make videos at all—don’t let one guy’s rant stop you from sharing your knowledge and experience (but if it helps you, you’re welcome—and you just might gain a new viewer!)16
On the first day of Christmas my true love gave to me—a few minutes to myself with a Rust programming book (don’t judge — I just started learning).6
Obligatory 666 post because I currently have that many ++s. Interesting mathematical and historical properties of this number: https://youtu.be/UkZqFtYtqaI1
“Lots of CS undergrad folks imagine their careers are going to be sort of a rockstar/ninja/superhero experience. ‘Just wait ’till the world can see what I can do!’. It has to be this way because, well, ‘I’m above average’, right? You expect long hours of designing and implementing complex algorithms (at least I did). Then you get your first job and WHAM! You get ‘schlonged’ with 20 years old code that appears to be the result of experimenting with hard drugs.”
—Krzysztof Szatan, “Why would you learn C++ in 2016?”, retrieved from http://itscompiling.eu/2016/03/...3
I thought I had seen some poorly named fields in tables. Then I discovered this Microsoft documentation for a table in SharePoint: https://msdn.microsoft.com/en-us/...1
A third party manages access to a web application I’m supposed to begin using. While accessible from the Internet, they whitelist IP addresses, so it rejects the login credentials if not coming from a whitelisted address.
I provided my external IP address to their support team but the application was not letting me in, so I called their help desk. A support technician said that my IP address was 10.x.x.x, a private IP address. I’m not on the same network as this application, so I did a quick check and realized they are reading my internal IP address from my X-FORWARDED-FOR (XFF) header (yes, my employer exposes this).
I explain to him that the application is incorrectly reading my external (connection) IP address and is instead reading my internal IP address from my XFF header. I also explain that it’s not a good idea to add a private IP address to their whitelist as it somewhat defeats the point as anyone can assign that IP address within their network and expose it via an XFF header.
After talking to numerous support personnel, I came to the conclusion that not a single support person on their team understands basic networking and private IP address ranges.
I finally just said, “Fine. Go ahead and add my internal IP address but keep in mind it will change a lot.”
He then proceeded to “explain” to me how my IP address is assigned by my ISP and should change very infrequently. I explained to him that the IP address their application is reading is actually assigned by DHCP inside my network, but I was clearly wasting my breath.4
I worked in the same building as another division in my organization, and they found out I had created a website for my group. They said, “We have this database that was never finished. Do you think you could fix it?”
I asked, “What was it developed in?”
He replied, “Well what do you know?”
I said, “LAMP stack: PHP, MySQL, etc.” [this was over a decade ago]
He excitedly exclaimed, “Yeah, that’s it! It’s that S-Q-L stuff.”
I’m a little nervous at this point but I was younger than 20 with no degree, entirely self-taught from a book, and figured I’d check it out - no actual job offer here yet or anything.
They logged me on to a Windows 2000 Server and I become aware it’s a web application written in VB / ASP.NET 2.0 with a SQL Server backend. But most of the fixes they wanted were aesthetic (spelling errors in aspx pages, etc.) so I proceeded to fix those. They hired me on the spot and asked when I could start. I was a wizard to them and most of what they needed was quite simple (at first). I kept my mouth shut and immediately went to a bookstore after work that day and bought an ASP.NET book.
I worked there several years and ended up rewriting that app in C# and upgrading the server and ASP.NET framework, etc. It stored passwords in plaintext when I started and much more horrific stuff. It was in much better shape when I left.
That job was pivotal in my career and set the stage for me to be where I am today. I got the job because I used the word “SQL” in a sentence.3
“Everyone is busy building stuff for right now, today, rarely for tomorrow. But it would be nice to also have stuff that lasts a little longer than that.... You don’t have to be a genius to write fast programs. There’s no magic trick. The only thing required is not building on top of a huge pile of crap that modern toolchain is.”
—Nikita Prokopov, “Software disenchantment”, retrieved from http://tonsky.me/blog/...5
Just remember, if someone ever makes a colony on Mars, you may have to support their timezone in your applications. And their day is longer, so a simple offset from UTC won’t do....14
“The problem with object-oriented languages is they’ve got all this implicit environment that they carry around with them. You wanted a banana but what you got was a gorilla holding the banana and the entire jungle.”
—Chris Scalfani, from https://medium.com/@cscalfani/...5
“Begin your onboarding and assimilation program.” Are new employees joining a company or the Borg? I guess it’s ok so long as the next line doesn’t say “Resistance is futile.”
D: “Did the attackers exfiltrate any data?”
M: “I can’t say for sure, but most likely based on—”
D: “—but did you find any undeniable evidence of it?”
M: “Keep in mind that the absence of evidence isn’t necessarily evidence of absence. There was very limited logging to begin with and the attacker erased artifacts and logs.”
D: “If there’s no evidence, then there was no exfiltration.”
M: “If a business doesn’t have cameras on its front door and then gets robbed, it can’t claim there was no robbery just because they didn’t video-record it.”
D: “That’s a poor analogy. Nothing’s missing here. I couldn’t care less if a robber made a *copy* of my money. That isn’t robbery.”
M: “... If the Titanic really hit an iceberg, then how come no pieces of an iceberg were ever found in the wreckage?”19
C: “Look, I agree that these are likely leading practices, but we really don’t need all that.”
M: “These aren’t even leading practices, these are the bare minimum practices to help ensure secure login sessions and that account passwords aren’t trivially compromised.”
C: “How do I put this...? You’re trying to secure us against the hacker. That’s a noble goal. But my only concern is the auditor.”
When /W4 in Visual Studio (cl) shows more (and more helpful) information than /Wall /Wextra /pedantic in gcc (MinGW)....
I was not expecting that....9