Details
-
AboutSoftware Developer
-
SkillsC/C++, C#, Java, Javascript
-
LocationToulouse, France
-
Github
Joined devRant on 2/7/2017
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
-
The ridiculous and shameful story of how simply "installing Windows" saved my hard drive from the garbage.
(Also update on https://devrant.com/rants/3105365/)
It started with my root partition turning read-only all of a sudden. Some quick search suggested that I should check the sanity of my hard drive, by running a SMART test, which failed of course. I backed up my data using ddrescue and ran a badblocks over the whole thing, which found around 800 unreadable blocks in a row. I was ready to bid farewell to my drive, but as a last resort, instead of the trash, I brought it to this place where they claimed they can repair the damaged hard drives by "surgery".
To my surprise, they returned my drive the next week, saying it is all well now, and charged me 1/8 the price of a new drive, with a refund guarantee if there was a problem in two days. There was a problem right there: I ran another SMART test which failed again, and also the faulty blocks were still unreadable! So I stormed the place and called for my refund, showing the failed SMART report. The only answer I would get from the staff was "Have you tried installing Windows?".
I usually try to be patient in such situations; I really don't like to declare publicly that "not everyone uses that stinky piece of rotten software you call an OS", but their suggestion seemed totally irrelevant! I got all types of IO errors all over the damn thing and they told me to install Windows. Why? Because this was the only test they would rely on. At last I managed to meet the "technician" there and showed him the IO errors: tried to read the bad sectors with dd and failed. He first mumbled somethings like "Have you checked the connector?" or "Are these the same blocks?", but after he ran out of bullshit, he said "Why don't you just install Windows first and see if that helps?" and I was ready to explode in his face!
"You test drives by installing Windows, just because it will make a nasty NTFS partition and probably does an fsck? If you shut your mouth for a sec and open your eyes you'll see this is a shit load of IO errors we got here: You can't install Windows, you can't even make an NTFS here, because it will try to zero-the-fuck-out the damn partition and it will face the same fucking IO error that I'm showing you right now in almost one single fucking system call!"
"I don't know this kind of test you are using. We have our own tests and they've passed successfully. So all I can do is to give you a Windows CD if you want."
"I don't need a Windows CD. I will just try to make an NTFS partition on the error spot and I will fail."
"Ok. Then call me when your done."
I was angry, not only because I felt they're just trying to avoid a refund, but also because I knew I've lost my drive. But just with hope that I could get my money back, I made a small partition over the error spot and ran `mkfs.ntfs` on it. I was ready to show the failure to the guy, but I looked more precisely and saw that "the filesystem was created successfully!" I was sure something is nor write. I then successfully mounted the new partition, write over it and read it again. I even dd'ed the blocks again, and this time there was no IO error. All of a sudden everything was fine.
I didn't know what happened. Maybe it just needed a write, while I'd just tried to read from those blocks. But anyway, I didn't called the technician guy again. I just thanked one of the staff there and said that my problem was solved. I then ran a successful SMART test and then restored my backup. Ridiculous like that.
I'm still not sure if my drive will continue to live with no more problems. I also have no explanation for what happened. (I appreciate any help on this https://superuser.com/questions/...) But I really like to see the look on the poor guy's face when he finds out that trying to install Windows just saved my ass!11 -
It took me almost the entire day just to outline the specs I need to write for the feature I just finished. Writing them next week is going to be arduous. Ugh.2
-
A plain computer illiterate guy rings tech support to report that his computer is faulty.
Tech: What's the problem?
User: There is smoke coming out of the power supply.
Tech: (keeps quiet for the moment)
Tech: You'll need a new power supply.
User: No, I don't! I just need to change the startup files.
Tech: Sir, the power supply is faulty. You'll need to replace it.
User: No way! Someone told me that I just needed to change the startup and it will fix the problem! All I need is for you to tell me the command.
Tech support: 10 minutes later, the User is still adamant that he is right. The tech is frustrated and fed up.
Tech support: (hush hush)
Tech: Sorry, Sir. We don't normally tell our customers this, but there is an undocumented DOS command that will fix the problem.
User: I knew it!
Tech: Just add the line LOAD NOSMOKE <nosmoke> at the end of the CONFIG.SYS. Let me know how it goes.
10 minutes later.
User: It didn't work. The power supply is still smoking.
Tech: Well, what version of DOS are you using?
User: MS-DOS 6.22.
Tech: That's your problem there. That version of DOS didn't come with NOSMOKE. Contact Microsoft and ask them for a patch that will give you the file. Let me know how it goes.
1 hour later.
User: I need a new power supply.
Tech: How did you come to that conclusion?
Tech: (hush hush)
User: Well, I rang Microsoft and told him about what you said, and he started asking questions about the make of the power supply.
Tech: Then what did he say?
User: He told me that my power supply isn't compatible with NOSMOKE.3 -
My 13yo brother started learning Haskell and latex on his own. When I was 13yo I learned C. I really want to see how his career path will go compared to mine3
-
To whoever is spending their entire botnet on ddosing my project: its working, you successfully took down a 25 line api running on a free heroku dyno, you can stop now.11
-
Java:
Primitive streams. Their need to exist is a monument to legacy failure.
VB.net
OrElse and AndAlso short-circuiting operators. The language designers were too fucking lazy to process logic, so they give specific keywords for those cases.
PHP
Random Hebrew error messages
JS
Eval. It can be used responsibly, but most of the times you see it it's because someone fucked up.
C#
Lack of Tuple destructuring in argument specification. Tuples were added, and pattern matching was added, and it's been getting better. The gear grinding starts with how Tuple identity assignment in arguments is handled. Rather than destructuring into the current scope, it coalesces the identity specification into a dot property of whatever the argument name is. This seems like an afterthought given they have ootb support for ignore characters.
Typescript
This will probably be remedied in the next version or two, but Tuple identity forwarding between anonymous scopes normalizes to arrays of union types, because tuples compile to typeless arrays. It's irritating because you end up having to restate the type metadata in functional series even when there is no possibility for any other code branch to have occurred.12 -
It looks like Olognion is shutting down due to the intersection of !money and !ads. I kind of feel like we could keep this site alive with a combination of a static site generation and/or some crowdfunding.
Thoughts?
https://twitter.com/theolognion/...
https://web.archive.org/web/...8 -
Subscribed to CBS all access just for Picard and Lower Decks. Made the mistake of clicking on the Comedy Central icon by accident.
Two minutes later: email ad in my inbox advertising the Daily Show and Comedy Central.
Fuck you CBS. Double fuck you Viacom.4 -
The solution for this one isn't nearly as amusing as the journey.
I was working for one of the largest retailers in NA as an architect. Said retailer had over a thousand big box stores, IT maintenance budget of $200M/year. The kind of place that just reeks of waste and mismanagement at every level.
They had installed a system to distribute training and instructional videos to every store, as well as recorded daily broadcasts to all store employees as a way of reducing management time spend with employees in the morning. This system had cost a cool 400M USD, not including labor and upgrades for round 1. Round 2 was another 100M to add a storage buffer to each store because they'd failed to account for the fact that their internet connections at the store and the outbound pipe from the DC wasn't capable of running the public facing e-commerce and streaming all the video data to every store in realtime. Typical massive enterprise clusterfuck.
Then security gets involved. Each device at stores had a different address on a private megawan. The stores didn't generally phone home, home phoned them as an access control measure; stores calling the DC was verboten. This presented an obvious problem for the video system because it needed to pull updates.
The brilliant Infosys resources had a bright idea to solve this problem:
- Treat each device IP as an access key for that device (avg 15 per store per store).
- Verify the request ip, then issue a redirect with ANOTHER ip unique to that device that the firewall would ingress only to the video subnet
- Do it all with the F5
A few months later, the networking team comes back and announces that after months of work and 10s of people years they can't implement the solution because iRules have a size limit and they would need more than 60,000 lines or 15,000 rules to implement it. Sad trombones all around.
Then, a wild DBA appears, steps up to the plate and says he can solve the problem with the power of ORACLE! Few months later he comes back with some absolutely batshit solution that stored the individual octets of an IPV4, multiple nested queries to the same table to emulate subnet masking through some temp table spanning voodoo. Time to complete: 2-4 minutes per request. He too eventually gives up the fight, sort of, in that backhanded way DBAs tend to do everything. I wish I would have paid more attention to that abortion because the rationale and its mechanics were just staggeringly rube goldberg and should have been documented for posterity.
So I catch wind of this sitting in a CAB meeting. I hear them talking about how there's "no way to solve this problem, it's too complex, we're going to need a lot more databases to handle this." I tune in and gather all it really needs to do, since the ingress firewall is handling the origin IP checks, is convert the request IP to video ingress IP, 302 and call it a day.
While they're all grandstanding and pontificating, I fire up visual studio and:
- write a method that encodes the incoming request IP into a single uint32
- write an http module that keeps an in-memory dictionary of uint32,string for the request, response, converts the request ip and 302s the call with blackhole support
- convert all the mappings in the spreadsheet attached to the meetings into a csv, dump to disk
- write a wpf application to allow for easily managing the IP database in the short term
- deploy the solution one of our stage boxes
- add a TODO to eventually move this to a database
All this took about 5 minutes. I interrupt their conversation to ask them to retarget their test to the port I exposed on the stage box. Then watch them stare in stunned silence as the crow grows cold.
According to a friend who still works there, that code is still running in production on a single node to this day. And still running on the same static file database.
#TheValueOfEngineers2 -
Parents were awesome. Super supportive, gave me every opportunity. They were open-minded loving people who eschewed personal vice and property to give us a start. They never once abused any of us, and in a family with three girls, we were encouraged to break the mould. We were shown that women could be more than just support to our spouses and baby factories, and more than part time labor in family enteprise.
Thusly my ascendance to a life as an engineer was assured and fully supported by these wonderful people whose folkright earnestness never once inhibited their progressive encouragement of our success as human beings, not just professionals.
And if you believe that, I have a bridge for sale in San Francisco you might be interested in.
I wrote on this topic before it was cool 😋
https://devrant.com/rants/2862837 -
2020 seems to be the year of the "dev who has never seen scale."
TypeA -> "Here's a reasoned explanation for a change I think we should make. Here is the current deficiency analysis, here is the desired resolution, here is the course of action and all calculations leading to the resolution + data. This will have x,y,z beneficial result according to our operational metrics."
TypeD -> "Those were words. Why do you need that? Change is bad, learning is worse. This will just slow me down, development speed is all that matters; there is no chance that a poorly considered/factored/checked design could ever require a ground up rewrite or fuck us utterly in the long term. Why do you make my life harder? We could x -> y -> zBUTI haven't done the math and I really don't see the benefit in x, so z is pointless. What even is scale?"
The consequences of the war caused by the ever-widening gap between engineers and developers is low key terrifying.12 -
A lot of people woke up "early" today (7:30am) just to preorder the new Xbox and brag about it...
I wake up at 5:30am each fucking morning and there is no console release. 😑9 -
Between plague and smoke, spending way too much time indoors. Localised co2 got pretty high in the office my husband and I share and opening the windows is dicey during giant spider season even before the wildfires.
So as a result, I'm starting a little indoor garden in each room. The succulent are going to be hydro, and the prayer and snake plant will get soil so I have some place to dump my coffee grinds other than the rose garden. In the next month or so we also want to set up some living moss panels to help control the nitrogen balance.
And of course, obligatory rpi sensor suite and irrigation is inbound as well. That'll be a shared project. 😸48 -
While reviewing a PR from one of our newer FE devs, I ended up spending more time than I would like mulling over its composition. The work was acceptable for the most part; the code worked. The part that got me was the heavy usage of options objects.
When encountering the options object pattern (or anti-pattern, at times) in complex scenarios, I have to resist the urge to stop whatever I'm doing and convert it to the builder pattern/smack them in the head with a software design manual. As much as I would like to, code janitor is one of the least valuable activities I engage in daily, and consistently telling someone to go back to the drawing board for work that is functional, but not excellent is a great way to kill morale. Usually, I'll add a note on the PR, approve it, add a brown bag or two on that sort of thing, and make attendance mandatory for repeat slackers. Skills building and catharsis all rolled up in a tiny ball of investing in your people.
Builders make things so much cleaner; they inform users what actions are available in a context; they tend to be immutable, and when done well, provide an intuitive fluent interface for configuration that removes the guesswork. As a bonus, they're naturally compositional, so you can pass it around and accumulate data and only execute the heavy lifting bits when you need to. As a bonus, with typescript, the boilerplate is generally reduced as well, even without any code generation. And they're not just a dumping ground for whatever shit someone was too lazy to figure out how to integrate into the API neatly.
They're more work in js-land, sure; you can't annotate @builder like with Lombok, but they're generally not all that much work and friendlier to use.9 -
Conversation between my husband and myself.
H: I ordered a game for the switch last week. It was delayed by USPS, and it looks like I got a partial refund due to it being late.
Moi: That's your mail privilege at work.
H: Did you really just make a mail pun? *Snerk*
Moi: This is why we work. ♥️5 -
This day I have received the most glorious news in e-pistolary form. For some years, I was suffering in support of a client who was, well, insufferable. My presence there paralleled the divine comedy in both essence and fact.
I opened the missive, expecting another plea to bail them out of whatever clusterfuck they found themselves in. Instead, what I found was something truly magical.
"Hey Human,
I hope this finds you well. I'm not sure if you remember a few years back, we were trying to decide between IBM Cloud and AWS. Well, after years of battling FF*, we're finally moving ahead with AWS. He failed one too many times to deliver anything visibly. After you left, there was no one left he could use to steal credit, ideas, and work.
FF is still pushing to have them use IBM cloud as a "warm backup" in the event "AWS fails." We will see where that goes.
I figured you'd like to know; you were the void in the wilderness for a long time. I don't want to think about how much time we could have saved if we had just listened.
PeeEm**"
This event represents a personal victory, albeit belated, over a few peoples' absurd amount of privilege. Towards the end, I was vicious about my contestation to the insanity of adopting a desperate hedge attempt-as-cloud offering from a failing company. Some examples:
// cloud 'strategy meeting'
Moi: What cloud platform are we looking at using?
FF: We're looking at IBM cloud and AWS as a second.
Moi: Why is that? I understand you're obligated to rep your offering first, but that decision doesn't seem to have the customer's best interest at heart.
FF: IBM cloud is a market leader; AWS isn't as good.
Moi: I see. I mean, that's the tech equivalent of the company's fleet management considering monkeys on tricycles as a strong competitor to service trucks, but I get what you mean.
// steering meeting
Director: Who can we look to as an example? Who is currently using the IBM cloud?
Moi: No one; they account for a single-digit portion of the actual cloud market. Their long game to sell you a "Hybrid Cloud," which means put some front end payload in a CDN, and buy n-frame units of IBM z servers for the DC with IBM gateway appliances acting as connective tissue. So it's not the cloud at all, really.
Director: How does it compare in cost?
Moi: It's generally 40% more expensive than other clouds, and it only goes higher as you option their software.
Director: What about Watson? I hear Watson is good?
Moi: It's a brand name. Most of the "Watson" product is just a facade on top of FOSS products like Spark, Hadoop, Elasticsearch, etc.
Director: Those were words. They sounded good. FF say it's good tho so we'll believe him because we're from the same city.
Moi: *deletes Director from LinkedIn*
Moral of the story: Never trust a vendor that only recommends their products.
*FF = FatFuck - an embarrassingly rotund individual whose girth is roughly equivalent to his height. He shit his way into an IBM architect position in his mid-20s purely due to winning the visa lottery. He had fake hair glued to his head for his wedding to hide his male pattern baldness; his arrange-married wife undoubtedly cries herself to sleep after sex.
**PeeEm - the then project manager, now portfolio manager of some satellite projects. An overall decent human being, capable.9 -
Only Jilano cares about this:
https://youtube.com/watch/...
Sped up a little bit, but hey, it has Mega in it, so I'm all good.4 -
Article in Seattle Times this morning detailing the "Legacy of Bill Gates Sr." who recently passed away.
I haven't read it, but I assume it's basically "Owner of the bill-gates-contrib repository."3 -
Local coffee shop/tech book store says what we're all thinking.
This is pretty on brand. They're my favorite local book store. If you're ever in town, definitely visit.
https://www.adasbooks.com/9 -
Having some thoughts as I sit here, trapped in the house by equal parts coronavirus and a layer of smoke drowning out the sun. The smoke is a bit of an annual thing; every year, some irresponsible jerk will go out and put their convenience and enjoyment over everyone else's quality of life.
It's a bit different this year since coronavirus has given people cabin fever. Those same people who lose their minds after weeks of isolation and suffering the indignity of wearing a mask headed out into the wilderness for recreation in record numbers.
The result is record wildfires.
Where I'm at, it's mostly coming from the eastern part of our state. The area is typified by being on the mountain range's dry side, more rural, less densely populated. Towns have burned, people lost their homes, millions of acres of land will likely burn before it's over. It happens every year; people pack up, head out into the wilderness, and cause devastation due to a simple lack of common sense or regard for the consequences of their actions.
On the west side, we see the fallout in the form of days without sunlight and abysmal air quality. We also see it in cost; we will unquestionably and without hesitation contribute to eastern recovery efforts. The western half of the state will cover almost all of the damage in both taxes and recovery aid. Our local ethos demands it.
The mountains form a kind of natural barrier, both cultural and environmental. The fact that few people cross the mountains by choice is symbolic of that divide. Those who enjoy greenery and lakes and thriving vibrant nature prefer the west, as we have them in abundance. People who have a strong appreciation for distance between themselves and other humans prefer the east, as it affords them cheaper land and few urban environments.
Here's to hoping people learn from this in 2021.17 -
.net 1.1 had the best documentation ever written. Microsoft spent an enormous amount of money and a dedicated team of skilled engineers just to write them. It was kind of a great time to be a developer, even though the technology is much better now. The current reliance on community docs doesn't hold up as well.2
-
"There's more to it"
This is something that has been bugging me for a long time now, so <rant>.
Yesterday in one of my chats in Telegram I had a question from someone wanting to make their laptop completely bulletproof privacy respecting, yada yada.. down to the MAC address being randomized. Now I am a networking guy.. or at least I like to think I am.
So I told him, routers must block any MAC addresses from leaking out. So the MAC address is only relevant inside of the network you're in. IPv6 changes this and there is network discovery involved with fandroids and cryphones where WiFi remains turned on as you leave the house (price of convenience amirite?) - but I'll get back to that later.
Now for a laptop MAC address randomization isn't exactly relevant yet I'd say.. at least in something other than Windows where your privacy is right out the window anyway. MAC randomization while Nadella does the whole assfuck, sign me up! /s
So let's assume Linux. No MAC randomization, not necessary, privacy respecting nonetheless. MAC addresses do not leak outside of the network in traditional IPv4 networking. So what would you be worried about inside the network? A hacker inside Starbucks? This is the question I asked him, and argued that if you don't trust the network (and with a public hotspot I personally don't) you shouldn't connect to it in the first place. And since I recall MAC randomization being discussed on the ISC's dhcp-users mailing list a few months ago (http://isc-dhcp-users.2343191.n4.nabble.com/...), I linked that in as well. These are the hardcore networking guys, on the forum of one of the granddaddies of the internet. They make BIND which pretty much everyone uses. It's the de facto standard DNS server out there.
The reply to all of this was simply to the "don't connect to it if you don't trust it" - I guess that's all the privacy nut could argue with. And here we get to the topic of this rant. The almighty rebuttal "there's more to it than that!1! HTTPS doesn't require trust anymore!1!"
... An encrypted connection to a website meaning that you could connect to just about any hostile network. Are you fucking retarded? Ever heard of SSL stripping? Yeah HSTS solves that but only a handful of websites use it and it doesn't scale up properly, since it's pretty much a hardcoded list in web browsers. And you know what? Yes "there's more to it"! There's more to networking than just web browsing. There's 65 THOUSAND ports available on both TCP and UDP, and there you go narrow your understanding of networking to just 2 of them - 80 and 443. Yes there's a lot more to it. But not exactly the kind of thing you're arguing about.
Enjoy your cheap-ass Xiaomeme phone where the "phone" part means phoning home to China, and raging about the Google apps on there. Then try to solve problems that aren't actually problems and pretty vital network components, just because it's an identifier.
</rant>
P.S. I do care a lot about privacy. My web and mail servers for example do not know where my visitors are coming from. All they see is some reverse proxies that they think is the whole internet. So yes I care about my own and others' privacy. But you know.. I'm old-fashioned. I like to solve problems with actual solutions.11 -
I was messing with my Ubuntu setup, and somehow, I broke it
Since I didn't have a recent backup, I decided to switch to Manjaro
I'm in love16 -
I rewrote my resume. It is getting shorter and shorter. Scary.
But I was thinking, that during interviews, I never get to ask the important questions. Like, I do need to ask a few things that are important for me. Those that are not written in their websites, and they will do their best to hide.
So I came up with a list of questions:
1. Do you pay for overtime work? what is the basis of pay? hours or work-module? how realistic are the work-modules?
2. Have you ever had issues with employees from minority groups?
3. How do you address employee's professional concerns? for example, about technological debt.
4. what's the policy for meeting and daily interruptions during brain-work? Are people ever forced to participate in meetings that could be summed up in emails? what's the company policy for initiating a meeting?
5. Who designs the software? Are the requirements always non-negotiable? do the direct developers have a say in design matters?
6. How close are job requirements (as advertised) to actual tasks I need to perform?
7. What's the company policy for motivating the employees?
8. How does the company deal with mental health issues? is it acceptable for people to take leaves due to mental health issues? Has anyone ever done it?
9. How does the company deal with individual needs for working methods and space? Specifically, how does that apply to meetings? Do you have company-wide meetings? How often are they? What's the impact on productivity? Can employees not participate? Do they have to have an excuse to not participate?
10. Do developers get to develop their skills during worktime often? Or is it a "do it in your own free time" kind of thing? Are there any resources available to those who want to develop their skills further? Is it included in the career planning and employee performance review?
11. Assume I work for your company for a year. What are the benefits I can potentially gain in a year from working here, aside from adding a line of work experience to my resume?
12. Does the company provide any form of free feminine hygiene products in the bathroom?
Any questions I should add?92 -
Recruiters that sent me (3 times) a straight plain job offer that begins with "before apply please check carefully if you satisfy all the requirements" so without even spent time to check if I'm the person they're looking for (I'm not) should get the fuck out of my inbox.
Are they fucking using a bot? They reached that level of uselessness?4 -
I'm the only one who keep receiving phishing emails about not existing Netflix subscriptions from evident scam email addresses on a daily basis?
I tend to have more of those than newsletters I never subscribed to.
Come on, man, at least try harder to steal my data or money.4