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 - "cart"
-
Anyone else used Stack Overflow for many years without ever asking or answering a single question?21
-
A former colleague made an online shopping app. Boss wanted to promote him to Senior Developer when he still working with us.
14 days ago another colleague checked the code and told the boss that it's ready for production. No one asked me because everyone in the company thinks am the stupid developer of them all.
So what happened?
Well the total value of the cart was being over to payment gateway using a hidden field. Well you know the rest of the story.
The client has sued our company for this issue and boss came running to me and asked me to check if it was our fault or something else.
I checked and found the hidden value where the total value of cart was being stored and send over to payment gateway. The following is the conversation between me and the colleague who checked the code:
Me: So you checked the code and everything was okay?
Him: Yes, all good.
Me: Did you see this hidden field where the total value of cart is being passed to the payment gateway?
Him: Yes
Me: Why didn't you fix this?
Him: What's there to fix?
Me: Well someone can temper the value and let it pass to the payment gateway.
Him: No, they can't we are using https
Me: I' am done with you
He has Masters in software engineering and has few security certificates.25 -
My CEO: "So! You are the new guy we hired to design and manage the implementation of our new state of the art super-duper fancy ERP solution with badass Business Intelligence systems to grow our company which already spans over several localities across the county, that has to live for at least the next 12-15 years?
Please remember that the Windows Server in the rack in the basement needs replacement soon, and that our new fancy solution must not in any way utilize cloud-technology or SaSS! I don't like that! I think it's a scam! We store everything on premises, own our infrastructure and we buy our software...Because I think that is best!"
Me: "So... let me get this straight: You want me to build you a one-off, concept sports car that can outperform a Lamborghini using only plywood, duct-tape and a donkey cart?"
He walked off... I may need a new job next week!14 -
Boss: Give me unrestricted access in the system.
Me: It's dangerous. You might break something.
Boss: I'll be careful.
Me: *gives access*
This happened 2 years ago. Now every week he deletes something he shouldn't and break a module for him or for the clients using our system.
Just woke up in a rant email saying that "oUr OnLiNe StOrE DoEs NoT wOrK". Well, that's because you have delete the Cart configuration for all the clients you dumbass. What the fuck were you thinking when you deleted that?16 -
My sister in law got me this guy for Christmas after I told her about devrant!
She found it in a rubber duck shop in Amsterdam.
Best sister in law!11 -
My dream is to build a shopping cart for web stores that doesn't fucking suck.
Seriously Bigcommerce, Shopify, Magneto, etc. All of you can eat bag of dicks and burn in hell for ever.
I don't care what languages you fancy, all of their stacks are a pile of shit, monkey patched together with popsicle sticks and duct tape and it all falls apart with high concurrency.
All their greasy haired sales teams will throw all manners of horse shit at the poor bastards who are trying to run a business so they can pad their commission checks... "High availability", "scalable", "reliable", "Increased conversation rate"... Lying dick fucks, all of them! I am calling them the fuck out on that snake oil they're all peddling.
The only thing worse than their shit APIs is the shit documentation and the shit support that accompanies them.
Support of these platforms are pretty much all the same, sure mayhaps one has 24*7 phone support and another closes at 9 or some shit like that, either way the only people they put on the phone are monkeys that will freeze up and say "I'm not a developer so I can't help you"... Guess what, "Eric"! I didn't ask if you're a fucking dev! I'm calling because one of your devs fucked up and I need you to tell him to unfuck it so I can get the fuck on with my day!
Their app/plugin market places are shameful to say the least. The overall quality of software is somewhat dire and it's mostly dominated by oversees developers who speak English about as well as the language they're developing with (not very well usually).
I could go on until I hit the character limit but I'm gonna end it here by saying, all shopping carts suck and they should burn for eternity in the depths of hell so that a savior can free all developers from this agonizing torment.9 -
Please make an entire webshop with animated shopping cart in react + redux within a week 👍
We will then reject you for the position and thank you for rewriting our tech stack for the frontend 😂 K THX BAIII11 -
So, some time ago, I was working for a complete puckered anus of a cosmetics company on their ecommerce product. Won't name names, but they're shitty and known for MLM. If you're clever, go you ;)
Anyways, over the course of years they brought in a competent firm to implement their service layer. I'd even worked with them in the past and it was designed to handle a frankly ridiculous-scale load. After they got the 1.0 released, the manager was replaced with some absolutely talentless, chauvinist cuntrag from a phone company that is well known for having 99% indian devs and not being able to heard now. He of course brought in his number two, worked on making life miserable and running everyone on the team off; inside of a year the entire team was ex-said-phone-company.
Watching the decay of this product was a sheer joy. They cratered the database numerous times during peak-load periods, caused $20M in redis-cluster cost overrun, ended up submitting hundreds of erroneous and duplicate orders, and mailed almost $40K worth of product to a random guy in outer mongolia who is , we can only hope, now enjoying his new life as an instagram influencer. They even terminally broke the automatic metadata, and hired THIRTY PEOPLE to sit there and do nothing but edit swagger. And it was still both wrong and unusable.
Over the course of two years, I ended up rewriting large portions of their infra surrounding the centralized service cancer to do things like, "implement security," as well as cut memory usage and runtimes down by quite literally 100x in the worst cases.
It was during this time I discovered a rather critical flaw. This is the story of what, how and how can you fucking even be that stupid. The issue relates to users and their reports and their ability to order.
I first found this issue looking at some erroneous data for a low value order and went, "There's no fucking way, they're fucking stupid, but this is borderline criminal." It was easy to miss, but someone in a top down reporting chain had submitted an order for someone else in a different org. Shouldn't be possible, but here was that order staring me in the face.
So I set to work seeing if we'd pwned ourselves as an org. I spend a few hours poring over logs from the log service and dynatrace trying to recreate what happened. I first tested to see if I could get a user, not something that was usually done because auth identity was pervasive. I discover the users are INCREMENTAL int values they used for ids in the database when requesting from the API, so naturally I have a full list of users and their title and relative position, as well as reports and descendants in about 10 minutes.
I try the happy path of setting values for random, known payment methods and org structures similar to the impossible order, and submitting as a normal user, no dice. Several more tries and I'm confident this isn't the vector.
Exhausting that option, I look at the protocol for a type of order in the system that allowed higher level people to impersonate people below them and use their own payment info for descendant report orders. I see that all of the data for this transaction is stored in a cookie. Few tests later, I discover the UI has no forgery checks, hashing, etc, and just fucking trusts whatever is present in that cookie.
An hour of tweaking later, I'm impersonating a director as a bottom rung employee. Score. So I fill a cart with a bunch of test items and proceed to checkout. There, in all its glory are the director's payment options. I select one and am presented with:
"please reenter card number to validate."
Bupkiss. Dead end.
OR SO YOU WOULD THINK.
One unimportant detail I noticed during my log investigations that the shit slinging GUI monkeys who butchered the system didn't was, on a failed attempt to submit payment in the DB, the logs were filled with messages like:
"Failed to submit order for [userid] with credit card id [id], number [FULL CREDIT CARD NUMBER]"
One submit click later and the user's credit card number drops into lnav like a gatcha prize. I dutifully rerun the checkout and got an email send notification in the logs for successful transfer to fulfillment. Order placed. Some continued experimentation later and the truth is evident:
With an authenticated user or any privilege, you could place any order, as anyone, using anyon's payment methods and have it sent anywhere.
So naturally, I pack the crucifixion-worthy body of evidence up and walk it into the IT director's office. I show him the defect, and he turns sheet fucking white. He knows there's no recovering from it, and there's no way his shitstick service team can handle fixing it. Somewhere in his tiny little grinchly manager's heart he knew they'd caused it, and he was to blame for being a shit captain to the SS Failboat. He replies quietly, "You will never speak of this to anyone, fix this discretely." Straight up hitler's bunker meme rage.13 -
Boss: A client has reported that he can't add products to the cart he gets redirected to "empty cart page" on safari or edge not sure, can you check it out?
Me: Yes
later...
Me: It's working on safari and edge but not on IE, I get that exact same problem on IE.
Boss: ok don't mind about IE
Me (inside) I've lived long enough to hear that YEAH !!!
Goodbye my old friend IE hahaha :D4 -
A common scenario strikes again today:
- Blocked on a problem at the end of the day
- Tell my wife I'm headed home
- Inspiration strikes
- time flies by coding in the zone
- realize I'm super late
- run out the door like a crazy person1 -
Background: I'm not drunk yet, BUT I'M WORKING ON IT.
okay.
I just finished a second sprint on my React app. The first was to build a merchant onboarding flow. The second was to do substantial cleanup as I learned more about react/redux, and to create a "supply order" flow -- basically purchasing marketing materials and services. I finished that in a week, and I'm pretty proud. api-guy wanted it done in a day. i laughed. he probably could have, but it would have been a copy of the code in a new repo with some lines changed.
ANYWAY. it's all done and It's super pretty and works amazingly well. It has both the onboarding flow and the ordering flow, with a nice pop-out sidebar for navigation, namespaced actions, etc. Everything is pretty clean. I even added a cart to the ordering (despite everyone telling me not to) because wtf, what if someone wants to order TWO items? dumbasses. So I made that. it's sexy.
Anyway, it's all done and shiny and fancy and wonderful and I'd *love* to share screenshots if only it didn't give away where I worked. :<
... but the point of the rant!
After the first sprint, I made a copy of the repo so I could rework it and add more functionality without touching the original. (Hey! That's what a branch is for, right? Why didn't I branch it up?
well, read on)
I knew we were going to have multiple separate flows for this app: onboard, ordering, merchant tools, admin tools, support, etc. So, I wrote its server portion (the webpack builder + http server) so it would serve the same app at whatever url the user hit, and set a cookie containing that host+url. This allows the app to serve different content (basically showing/hiding content) based on the URL and future login roles. If someone hits /order, it would hide everything but the order flow. If they're a merchant, it would show all the merchant views plus ordering, etc.
tl;dr This way I can use the same codebase for multiple sites, drastically simplifying development, branding, and what have you. This new app could obv also be a drop-in replacement for the original onboarding project because of the above.
HOWEVER. this apparently isn't good enough for api-guy. He's terrified that adding/updating future components will affect all the existing content somehow.
so.
now we have three repos for basically the same codebase. 1) onboard aka "surfboard", 2) ordering, 3) merchant tools, aka "ferrari" (the "future" app).
Except.
1) "surfboard" is a very old version of the code. 3) "ferrari" is also old, since 2) "ordering" has newer content in it now.
... and somehow this is better?
fuck if i can figure out how.
His reasoning is "well, you won't be touching surfboard or ordering for 6 months, so now you don't have to worry about it." Sure, except, you know, it'll be a pain in the ass in 6 months now when I have a crapton of code and branding to redo. ffs.
Oh. We also have three Heroku pipelines for these three repos. for the same codebase.
and now you know why i'm drinking.undefined idiocy fucking hell fuck this noise api guy i'm just gonna replace everything later this codebase is as dry as the friggin ocean7 -
FUCK YOU TICKETMASTER AND YOUR SHITTY WEBSITE.
Why can't you process my request during an EXPECTED WINDOW OF HIGH TRAFFIC?!
DO YOU EVEN LOAD BALANCE, BRO?!
I missed my chance to buy some Hans Zimmer tickets for the ONLY time I've ever seen him listed in my city. I had the tickets in my cart, but it errored out upon checking out. Then, every other attempt to search for tickets resulted in an error.
GET YOUR SHIT TOGETHER!!!!
One day, Hans... One day I will see you. 😢14 -
Since GoDaddy was calling me frequently to buy domains I've added to my cart, I added another domain
'dontcontactmetobuythisdomain.com'5 -
Night before flying internationally includes the following checklist:
- check VPN works, can access frontend sites and hit the backend
- git push4 -
This morning I kept falling back asleep after the alarm went off, drifting in and out of a dream about programming.
My wife finally said "no more sleeping".
Still mostly sleep, I replied very confidently "you can't sleep in a sandbox!".
I was dreaming I was in a code sandbox. Obviously sleeping is not allowed.
Jeez, my head has been really full of programming since this conference. (One of the talks was on codesandbox). -
Best part about the covid19 manufactured crisis?
Liquor stores deliver. Worst part about liquor stores delivering? Needing to use their shoddy websites.
I've been using a particular store (Total Wines) since they're cheaper than the rest and have better selection; it's quite literally a large warehouse made to look like a store.
Their website tries really hard to look professional, too, but it's just not. It took me two days to order, and not just from lack of time -- though from working 14 hour days, that's a factor.
Signing up was difficult. Your username is an email address, but you can't use comments because the server 500s, making the ajax call produce a wonderfully ambiguous error message. It also fades the page out like it's waiting on something, but that fade is on top of the error modal too. Similar error with the password field, though I don't remember how I triggered it.
Signing up also requires agreeing to subscribe to their newsletter. it's technically an opt-in, but not opting-in doesn't allow you to proceed. Same with opting-in to receiving a text notification when your order is ready for pickup -- you also opt-in to reciving SMS spam.
Another issue: After signing up, you start to navigate through the paginated product list. Every page change scrolls you to the exact middle of the next page. Not deliberatly; the UI loads first, and the browser gets as close as it can to your previous position -- which was below that as the pagination is at the bottom -- and then the products populate after. But regardless of why, there is no worse place to start because now you must scroll in both directions to view the products. If it stayed at the very bottom, it would at least mean you only need to scroll upwards to look at everything on the page. Minor, but increasingly irritating.
Also, they have like 198 pages of spirits alone because each size is unique entry. A 50ml, 350ml, 500ml, 750ml, 1000ml, and 1750ml bottle of e.g. Tito's vodka isn't one product, it's six. and they're sorted seemingly randomly. I think it's by available stock, looking back.
If you fancy a product, you can click on it for a detail page. Said detail page lists the various sizes in a dropdown, but they're not sorted correctly either, and changing sizes triggers a page reload, which leads to another problem:
if you navigate to more than a few pages within a 10 or so second window, the site accuses you of using browser automation. No captcha here, just a "click me for five seconds" button. However, it (usually) also triggers the check on every other tab you have open after its next nagivation.
That product page also randomly doesn't work. I haven't narrowed it down, but it will randomly decide to start failing, and won't stop failing for hours. It renders the page just fine, then immediately replaces it with a blank page. When it's failing, the only way to interact with the page is a perfectly-timed [esc], which can (and usually does) break all other page functionality, too. Absolutely great when you need to re-add everything from a stale copy of your signed-out cart living in another tab. More on that later. And don't forget to slow down to bypass the "browser automation" check, too!
Oh, and if you're using container tabs, make sure to open new tabs in the SAME container, as any request from the same IP without the login cookie will usually trigger that "browser automation" response, too.
The site also randomly signs you out, but allows you to continue amassing your cart. You'd think this is a good thing until you choose to sign in again... which empties your cart. It's like they don't want to make a sale at all.
The site also randomly forgets your name, replacing it with "null." My screen currently says "Hello, null". Hello, cruft!
It took me two days to order.
Mostly from lack of time, as i've been pulling 14 hour shifts lately trying to get everything done. but the sheer number of bugs certainly wasted most of what little time i had left. Now I definitely need a drink.
But maybe putting up with all of this is worthwhile because of their loyalty program? Apparently if you spend $500, you can take $5 off your next purchase! Yay! 1%! And your points expire! There are three levels; maybe it gets better. Level zero is for everyone; $0 requirement. There are also levels at $500 and $2500. That last one is seriously 5x more than the first paid level. and what does it earn you? A 'free' magazine subscription, 'free' classes (they're usually like $20-$50 iirc), and a 'free' grab bag (a $2.99 value!) twice per month. All for spending $2500. What a steal. It reminds me of Candy Crush's 3-star system where the first two stars are trivial, and the third is usually a difficult stretch goal. But here it's just thinly-veiled manipulation with no benefit.
I can tell they're employing some "smarketing" people with big ideas (read: stolen mistakes), but it's just such a fail.
The whole thing is a fail.8 -
Let me tell you a story.
Our company has a homegrown monitoring solution. Keeps track of our deployments and alerts us when something is broken. Really nice for the most part, except a little issue where we get up to 25 alerts PER DAY that our PRODUCTION ENVIRONMENT IS DOWN. Including weekends.
With this many false positives, we quickly learn to ignore the alerts and miss real incidents.
So we approached this team, remember its our own tool, and told them about the problem. Turns out it is a known issue. And here's the kicker: they aren't planning on fixing it!
It gets better. Rather than fix this glaring issue, their solution is to make ANOTHER ALERT that lets us know the monitoring is misbehaving.
To recap, we can now expect to get up to 25 false positive alerts per day that our production is down, followed immediately by more alerts that the monitor is broken, which means we can ignore the previous alert.
As our PM said when he heard this: fuck that noise. We are escalating the shit out of this!7 -
!rant
Dear dfox and trogus,
Is it possible to arrange a secret santa kind of duck gift sharing campaign once a year? Not necessary need to be a xmas campaign. We can wait until you update the shopping cart process with the feature 😬
Each user can buy ducks for other users. You can contact the recipients for the address if you don't have yet and do the delivery.25 -
I'm such an idiot.
Spilled water on my MacBook today. Not that much water, but the cup landed right in the middle of my keyboard.
Worst part is I was gaming with my sister and didn't want to stop. So I wiped it off and shook it out a bit and kept playing. A bit later the screen started flickering and eventually went black.
Finally my brain turned on and I switched it off, shook out some more water, and set it up to dry. Just hoping it's not too late.
At least the drying setup recommended by the internet is pretty hilarious looking.
Now we play the waiting game. They say 72 hours before turning it on again. Seems a bit extreme. Will there still be moisture evaporating 3 days later? Not sure I can wait that long to see if it's toast.
Such an idiot.14 -
Programming Languages are Like Cars:
Assembler: A formula I race car. Very fast but difficult to drive and maintain.
FORTRAN II: A Model T Ford. Once it was the king of the road.
FORTRAN IV: A Model A Ford.
FORTRAN 77: a six-cylinder Ford Fairlane with standard transmission and no seat belts.
COBOL: A delivery van. It's bulky and ugly but it does the work.
BASIC: A second-hand Rambler with a rebuilt engine and patched upholstery. Your dad bought it for you to learn to drive. You'll ditch it as soon as you can afford a new one.
PL/I: A Cadillac convertible with automatic transmission, a two-tone paint job, white-wall tires, chrome exhaust pipes, and fuzzy dice hanging in the windshield.
C++: A black Firebird, the all macho car. Comes with optional seatbelt (lint) and optional fuzz buster (escape to assembler).
ALGOL 60: An Austin Mini. Boy that's a small car.
ALGOL 68: An Aston Martin. An impressive car but not just anyone can drive it.
Pascal: A Volkswagon Beetle. It's small but sturdy. Was once popular with intellectual types.
liSP: An electric car. It's simple but slow. Seat belts are not available.
PROLOG/LUCID: Prototype concept cars.
FORTH: A go-cart.
LOGO: A kiddie's replica of a Rolls Royce. Comes with a real engine and a working horn.
APL: A double-decker bus. It takes rows and columns of passengers to the same place all at the same time but it drives only in reverse and is instrumented in Greek.
Ada: An army-green Mercedes-Benz staff car. Power steering, power brakes, and automatic transmission are standard. No other colors or options are available. If it's good enough for generals, it's good enough for you.
Java: All-terrain very slow vehicle.10 -
*spends a long time crafting a huge eBay post (we're moving)
* tries to drag and drop first picture
* page navigates to the picture without warning
* loses everything
WHYYYYYYYYYYYYYYY
WHEN DRAGGING A PICTURE INTO A WEB PAGE I NEVER WANT TO NAVIGATE TO A PAGE WITH JUST THAT IMAGE. WHY NO WARNING BEFORE LEAVING THE PAGE. WHY DON'T YOU SAVE TEXT LOCALLY. WHY DOES THE WEB SUCK SO HARD. AAAGGGHHHH.
* feels better
* starts over7 -
Netflix, why is your loading spinner so horrible!
Do you know what a percentage is??? 99% means you are ALMOST done. Just a tiny fraction to go. I should not see 99% for seconds or even minutes on end. Much less after the first 98% took only a couple seconds!!
Stop the lies!!!5 -
My company's build engine is like a shopping cart with two fucked up wheels. Yeah, it works if you pop a wheelie with it...but should you really have to?
-
Motherfucking website style JavaScript rant ahead.
Just tried to register some travel tickets, at FlixBus. Of course alternatively I could go for a train but those would be more expensive. So yeah.
Turns out that the website loads JavaScript from 20 domains including 3 required CloudFront ones (those are the most annoying because it's not possible to tell by the domain what it would be doing). But alright, I'll take it. Web 3.0 amirite?
So I go and find myself a nice bus, add it to my cart.. oh shit it's the wrong one. Change some parameters, hit return.. well guess what. Turns out that in all their JavaScript glory they couldn't implement that much. Awesome!
Go to another site to get another ticket for my travel back, only to find out that while they couldn't implement return, their webdevs are apparently skilled enough to get a giant boner on blinking "(1) Almost ready!" in the site's title, when changing to another tab and there happens to be stuff in the cart. Do you really think I care about that shit! Don't distract me and let me get my shit done!!!
So, to all you webdevs who would pull something like this and wank on it too. Guess what motherfucker. That purchase got cancelled through the power of JavaScript wank, because there's no way I'm supporting that dystopian junk. Guess what, when people shell out money at your shitty online shop, they may want a quarter-ass decent UX too. And no notifications or any of that wank, you hear me?
But yeah fucking Web 3.0!!! Give me a fucking break.8 -
My new fitbit reminds me take 250 steps each hour. When I do stop and take a walk, I find it helps my productivity, and I feel better. However, I'm not good at keeping to it.
It's always the same story.
"Quiet you, I'll get up and walk once I finish this one thing".
...
Another hour goes by.
If only I could keep to my own convictions.4 -
I spent more than an hour trying trying to debug why two functions were always returning undefined. I even put in conditional breakpoints and executed the statements to confirm the logic was correct.
I forgot return.4 -
I think my productivity at work seriously went up when I discovered this site with custom noise generators. Blocks out my coworkers, and I can pretend it's raining all the time. Perfect for coding!
http://mynoise.net/NoiseMachines/...2 -
Companies emailing you about a product in your cart is annoying as fuck.
If I wanted it, I'd have bought it whenever I fucking put it in my cart. Don't email me everyday telling me it's there16 -
These moronic idiots wrote a scientific paper, and did not bother explaining the acronym they've used. 😐
https://sciencedirect.com/science/...
How am I supposed to know which fuckin CART it means? Huh? Who the fuck told you that was acceptable? Also fig 3 can get fucked too.
Your approach seemed interesting for all of two whole fuckin seconds before you fucked it with your unscientific explanation of your results in SIXTEEN FUCKING DIGITS after zero. Fuck you and fuck this and fuck that. Am I clear?
... The straw that broke the camel's back. 😑14 -
Upwork Job post:
I want a small website where you can post product images with title, price and descriptions. It should have a search functionality like amazon. The users must be able to add products it in their cart, post reviews and buy from there. I want it to integrate with PayPal and other payment methods. And yes, i want to be able to write blog post too.
Budget; $50
XD6 -
So when I was working for a web dev shop, one of the clients asked us to have a drop down of all the different combinations you can have for street types to appear on the address form of their shopping cart. So stuff like "Street", "St", "Drive", "Dr", "Lane", "Ln" etc. We told the client that it wasn't possible since the possible combinations and how some street don't all end with a type.
But the client was adamant about having this so we ended up building a section in the administration section to allow the client to add any new street type to a database table that will populate the dropdown.1 -
Coding has given me the ability to turn my favorite hobby into a career. This in turn gave me the chance to take jobs in three countries so far (US, Germany, UK). So, I can explore the world with lovely wife while doing something I'm really passionate about and constantly learning. It also allows me to relate more to my dad, a software engineer of about 30 years who got me started when I was a kid.
In short, coding changed everything for me.
PS: I met my wife in intro to CS, though she's not a developer. -
Allright, so FIRST I have to create an *ORDER* and only then create a *CART*.
Cuz why would anyone want it to make any sense..4 -
After being live multiple years supporting only Safari, Firefox, and Chrome, one customer wanted IE support. After taking a close look at the usage numbers, and discussing with us front-end devs, our product guy shot it down. Pop the champagne!2
-
When your company buys a third party solution and you spend all your time emailing them about bugs in their system.
Seriously, I even sent you the exact line of the bug in your JavaScript with a suggested solution, and deployed a new stack with your latest (broken) fix so you can test out that solution. Then you email back saying it is fixed but it is clearly still broken. If I email you a fixed version of your file will you deploy it? OMG!1 -
I used to work for a company that had a main website and a lightweight app. LW app was distributed to partners and added to other sites using an iframe.
Someone decided a requirement was to retain the shopping cart for anonymous users. Some dev thought the best way to do that was to issue auth cookies to anonymous users.
The auth cookie issued by the LW app was actually for the main site. A few users for LW app decided to just come to main site to make a purchase. Since they already had an auth cookie (issued from LW app), they were never prompted to log in, create an account, or use guest checkout on the main site. They were still able to complete their order and we had their shipping address, but we didn’t have their email address so we couldn’t contact them about their order.
Customer service had no way to email customers if something went out of stock or if there was a product recall. CS would have to call these customers and ask for email addresses. Good luck getting anyone to answer or return a call nowadays. Customers were asking where their confirmation email was. The admin website was polluted with “users” that had the placeholder email for non-logged in users.
This happened because of a combination of an understaffed and overextended engineering department. Of course when something goes bad it’s going to be bad. -
Working on a side gig - an online clothing store - just finished implementing the cart logic, need to set up both PayPal and mobile money payments plus make sure the whole UI is responsive - fucking images! This is all needed by tomorrow... I haven't slept since Monday, just getting back home from a long day at work and did I mention that the client is also expecting to see a custom blog that I haven't even begun working on...
Fuck12 -
The Linux Kernel is propably the best working example for open source.
Personally I had the most exciting experiences with open source games, like Super Tux Cart, OpenTTD, 0 A.D.
Once I watched a streamer playing OpenRCT2, but the Twitch integration server, which allows to have the names of the people in chat appear in the game, was offline. Because the game is open source, I was able to have a look at the API, write my own server in a couple of hours and share it. Was a really funny stream then!
Wine is a great project, too. I really like the idea that people cooperate with each other to bypass commercial limitations and on this way be able to play their favourite games on a free operating system. -
So ok here it is, as asked in the comments.
Setting: customer (huge electronics chain) wants a huge migration from custom software to SAP erp, hybris commere for b2b and ... azure cloud
Timeframe: ~10 months….
My colleague and me had the glorious task to make the evaluation result of the B2B approval process (like you can only buy up till € 1000, then someone has to approve) available in the cart view, not just the end of the checkout. Well I though, easy, we have the results, just put them in the cart … hmm :-\
The whole thing is that the the storefront - called accelerator (although it should rather be called decelerator) is a 10-year old (looking) buggy interface, that promises to the customers, that it solves all their problems and just needs some minor customization. Fact is, it’s an abomination, which makes us spend 2 months in every project to „ripp it apart“ and fix/repair/rebuild major functionality (which changes every 6 months because of „updates“.
After a week of reading the scarce (aka non-existing) docs and decompiling and debugging hybris code, we found out (besides dozends of bugs) that this is not going to be easy. The domain model is fucked up - both CartModel and OrderModel extend AbstractOrderModel. Though we only need functionality that is in the AbstractOrderModel, the hybris guys decided (for an unknown reason) to use OrderModel in every single fucking method (about 30 nested calls ….). So what shall we do, we don’t have an order yet, only a cart. Fuck lets fake an order, push it through use the results and dismiss the order … good idea!? BAD IDEA (don’t ask …). So after a week or two we changed our strategy: create duplicate interface for nearly all (spring) services with changed method signatures that override the hybris beans and allow to use CartModels (which is possible, because within the super methods, they actually „cast" it to AbstractOrderModel *facepalm*).
After about 2 months (2 people full time) we have a working „prototype“. It works with the default-sample-accelerator data. Unfortunately the customer wanted to have it’s own dateset in the system (what a shock). Well you guess it … everything collapsed. The way the customer wanted to "have it working“ was just incompatible with the way hybris wants it (yeah yeah SAP, hybris is sooo customizable …). Well we basically had to rewrite everything again.
Just in case your wondering … the requirements were clear in the beginning (stick to the standard! [configuration/functinonality]). Well, then the customer found out that this is shit … and well …
So some months later, next big thing. I was appointed technical sublead (is that a word)/sub pm for the topics‚delivery service‘ (cart, delivery time calculation, u name it) and customerregistration - a reward for my great work with the b2b approval process???
Customer's office: 20+ people, mostly SAP related, a few c# guys, and drumrole .... the main (external) overall superhero ‚im the greates and ur shit‘ architect.
Aberage age 45+, me - the ‚hybris guy’ (he really just called me that all the time), age 32.
He powerpoints his „ tables" and other weird out of this world stuff on the wall, talks and talks. Everyone is in awe (or fear?). Everything he says is just bullshit and I see it in the eyes of the others. Finally the hybris guy interrups him, as he explains the overall architecture (which is just wrong) and points out how it should be (according to my docs which very more up to date. From now on he didn't just "not like" me anymore. (good first day)
I remember the looks of the other guys - they were releaved that someone pointed that out - saved the weeks of useless work ...
Instead of talking the customer's tongue he just spoke gibberish SAP … arg (common in SAP land as I had to learn the hard way).
Outcome of about (useless) 5 meetings later: we are going to blow out data from informatica to sap to azure to datahub to hybris ... hmpf needless to say its fucking super slow.
But who cares, I‘ll get my own rest endpoint that‘ll do all I need.
First try: error 500, 2. try: 20 seconds later, error message in html, content type json, a few days later the c# guy manages to deliver a kinda working still slow service, only the results are wrong, customer blames the hybris team, hmm we r just using their fucking results ...
The sap guys (customer service) just don't seem to be able to activate/configure the OOTB odata service, so I was told)
Several email rounds, meetings later, about 2 months, still no working hybris integration (all my emails with detailed checklists for every participent and deadlines were unanswered/ignored or answered with unrelated stuff). Customer pissed at us (god knows why, I tried, I really did!). So I decide to fly up there to handle it all by myself16 -
I've been lurking around this place for months now and never found a reason to make an account. Well, now I just did.
I was browsing freelancer.com looking for projects and I found one. Guy wants a website for booking seats, with a shopping cart and whatever. At the end, he mentions the only restrictions are we can't use ajax and json.
I made a bid explaining that the very site he was on(the freelancer website) made more then 25 ajax requests when loading a page, and that most if not all of them were transferring data in json.
I'm wondering what do they need that many requests for, but that's already another issue.
Now I'm curious to see if he answers back7 -
ESET Antivirus is a strange animal. On one hand, it seems reasonably well written, because unlike Norton or F-Secure, it doesn't subject your computer to death by constant disk access and 100% CPU load for 10 minutes when you start it.
On the other hand, when I clicked the link in the mail about renewing licenses and filled out the form, I was not redirected to a page where I could enter credit cart details.
Instead, I got message that some representative would get back to me in 1-2 work days. Eh, what? It's a digital product for f***'s sake. Now, I suppose they'll send me a hand written letter (written using a quill, no doubt), delivered by a bloke riding a horse and wearing a tricorn.
Well, at least ESET virus definition updates are pushed on the internet, and not sent out on 5.25" diskettes.3 -
I watched nvidia gtc keynote today. Most of stuff was about how amazing their gpu is and how much processing power we need, oh really?
Self driving cars are most idiotic way to implement rail way system on top of complicated road traffic system from last century.
The real problem is and always was problem of last mile. We don’t do shit about it, just trying to reinvent same stuff by complicating things.
I started wondering if it would be cheaper to just put small electric golf cars on railroads next to highway with automatic parkings next to cities. We could then slowly replace highways with railroads and even stack rails on top of each other.
You just drive to parking with golf cart and it hops you to railroad with auto chargers. Traffic is predictable so you know exact hour when you hop out and can drive last mile to target destination. So fucking simple yet we need fucking computer and tons of scientists to solve problems we created by bringing idiotic movies ideas to life.
Well most of stuff we try to automate is done so shitty way that it’s in fact complicate.
Fortunately it’s not my problem.18 -
Framework propagator clowns often tell me dOnT rEiNvEnT tHe wHeEl 🤡
Bitch, F1 car wheel and shopping cart wheel are not the same. I will reinvent the wheel every time, and it will be perfect for the job.7 -
When you make a mistake and try to fix it, but you can't remember how to spell amend...
git commit --ammend
error: unknown command `amend'
git commit -ammend
[branch-name] mend
Huh?
git log
commit #
mend
Created a new commit with message 'mend'. Now to clean this all up and go get some sleep!2 -
I bring you all another gem from my computer science course, this time from my OOP class.
The first assignment we made for this class was a simple CLI shop, where you would have basically three main classes:
- A Product class that you extend to create different types of products.
- A Cart class that manages a list of products (basically an ArrayList<Product>) and has some useful methods
- A CLI class to display a simple interface to the user and call methods on a Cart.
Basic OOP stuff, so far so good.
Then for our second assignment the teacher asked us to make Cart a generic class, where you would say Cart<Bagel> and you would only be able to put bagels in it. This makes absolutely no fucking sense, this is not a good use case for generic types since
1) you would never limit your customer's cart to one type of product at compile time.
2) in Cart, you have to cast the generic type to Product to extract any information from the product, like when getting product prices to calculate the total price, so might as well use a fucking ArrayList<Product>
I'm just saying what he's asking us to do has (to our fictional shop's business logic) absolutely no advantage over subtyping.
Also, why the fuck teach generic constraints when you can just tell your students "just cast T to Product", right?
Like fucking hell, couldn't you spend like 10min to come up with a decent assignment that actually teaches generic types the right way? ffs
And just so no one can say "but wut simple assignment would you give to teach students generic types?", here's a simple and much, much better alternative: implementing your own ArrayList. Done. Can't get much better than that, it's a legit use case and teaches you the basics.
Sorry man, you're a great person, you really are, but you suck as a teacher.3 -
Possibly the start of a very bad adventure: I'm helping my brother-in-law set up a website for a business he'd beginning with his wife. I'll be needing to provide him a simple cms & shopping cart that he can manage. No payments as we want to just use PayPal so as to avoid having to actually manage user data & credit card information.
Wish me well....
Also advices appreciated cause otherwise, I'm gonna use a simple Drupal or WordPress site with like 1 theme and 0 plug ins.4 -
!rant
Super awesome day today.
1. Got up early to do a risky production deploy and it worked!
2. Three PRs approved before lunch.
3. Got some time to continue learning scala.
4. Coffee and cupcakes with some refugees and discussed work as a software engineer.
5. Tried virtual reality for the first time. Really fun.
6. Helped prepare our goals for this quarter and present them to the department.
7. Department meeting had free local craft beer and pretzels.
8. Went bouldering after work and flashed a 6c.
9. Curled up with my wife watching Netflix.
I really love my life sometimes.5 -
Me: *adds a shiny new graph to our foos web app showing player ratings*
Fred: Can I please have a button to see just my scores?
Me: *adds "JUST FRED" button*
Fred: perfect, thanks4 -
PSA: negate your tests and make sure they fail!
I have what I thought was a weird and slightly paranoid habit. When I write tests sometimes just as a sanity check negate the assertion to make sure the test fails and isn't a false positive. Almost always fails as expected.
But not today! Turns out I had forgotten to wrap my equality check in an assertion so it would always pass. It freaks me out to imagine pushing a test that always passes not just because it doesn't do its job, but could also obscure a bug and trick me into thinking it works differently than it does. Broken tests are the worst!
But it pays to be paranoid. -
Years ago, one of my friends in college was taking an intro to CS class. He asked me for help on one of his assignments. It was a simple Python program, but it wasn't running as expected. I go in figuring it will be easy to fix. But everything looks exactly right. An hour later I'm tearing my hair out! It isn't even entering the function although it's clearly called. I'm beginning to feel very self conscious, as a CS major who can't even debug a 15 line program for a friend.
Then it hit me. This is Python. I used an editor macro to convert all indentation to tabs, lined them up, and it ran on the first try. Turns out, he had somehow ended up with a mixture of tabs and spaces.
I'm not sure what the takeaway is, but I think he got a surprisingly honest introduction to the life of a developer...2 -
So random thought.
How many ducks do @dfox and @trogus have laying around their houses?
I was just looking through the store, adding a duck and a stress ball and maybe a hoodie to my cart. I then realized that each item has a real photo or two attached to it.5 -
I get why my prick friend wanted me to get this app - shit's lit my brothers.
Half mad because of this social-distancing shite, especially when I do go out and get to see Apocolypse Survival Barbie stacking her cart with enough bread and frozen products to feed a legion.4 -
You know that feel as a developer when you add a feature to someone's existing project and you see a shitty code. well this has to be one of the shittiest code I have seen.
select_patient:function(patient)
{
console.log(patient)
this.select_patient_index = 0;
var pending = patient.Pending;
var USER_ID_Patient = patient.ID;
var prescription_ID = patient.Prescription_ID;
if(prescription_ID == null) prescription_ID = 0;
patient.Pending = pending = parseInt(pending);
patient.Prescription_ID = prescription_ID = parseInt(prescription_ID);
patient.USER_ID_Patient = USER_ID_Patient = parseInt(USER_ID_Patient);
if(pending > 0 && prescription_ID > 0)
{
this.select_patient_index = this.list.indexOf(patient);
$('#patientContinueModal').modal('show');
return false;
}
$scope.prescription.set(patient,null);
return false;
}
Also the guy has a space in his url.
xxxxxx.com/shopping cart !
My first instinct is to poke my eyes, find the developer (if we can call him that and shove it up his ______)1 -
I get home today and my wife says:
"Just finished some chores and really want to play stardew valley, but the computer has been updating for an hour!"
Windows 10 anniversary update strikes again.3 -
So I am a Junior Dev in this small company. We have different tasks for the current sprint so I don't care what my teammates are doing. Then came the integration of our works, where a Mid Dev was assigned to create a Carting/Basket service. As we are integrating, I noticed that we are passing data to his service as is. We are passing the price, item name, etc. on his API. I asked him why the fuck are we not passing the IDs of the items instead. He didn't understand what I'm saying and instead defended his work. I showed him how I was able to manipulate the total amount of items I added to cart. He wasted almost 6 days of developing. Ughh.3
-
When coworkers built the shop to allow adding items to cart via url query parameters-_-
/shop/?itemNum=1234&Qty=4
..what?4 -
When you offer to help out a fellow coworker on the top priority feature he is developing and he just sends you the branch and stops working on it.undefined one way to avoid merge conflicts paired programming would be more efficient welp guess it's mine now happy to help2
-
!rant
We were finishing another sprint of our grocery shop site at school and it was time for a demo.
There we are, showing our work before the other students. Our teams have a healthy habit of always checking each other not to leave some stoopid mistakes in the final versions, so everybody always regExes and validates THE SHIT out of every input field, both in the view and on the server side. But this one team found out that sometimes it's not enough.
Like every team, they're asked to buy a negative value from their shop. The guy clicks through the process, buys exactly -1 of a banana. He clicks the button to purchase and the site returned "Added banana to the cart!" and we're like "haha n00bz". But someone asked them to show the cart and everyone stopped immediately.
There were 9999 bananas in the cart.
Turns out the member responsible for purchase validation made it add 10000 if the quantity of a bought product was negative.
To this day I can't understand why he did that. xD4 -
Tl;dr: I'm a shitty PHP programmer, but even a shittier JS programmer.
I made a whole image upload system which has an elaborate login/sign up facility, checks the dimensions of an image, it's size, checks if it's broken, compares it to previous uploads to prevent duplicates, take comments, sorts them per user and stores it efficiently in a db and accesses it using PDO, not mySQL, displays it as a gallery, and even lets the users transfer images amongst them.
But I can't make a simple shopping cart in js.
Why? Just, why?3 -
I've been working on the ecommerce website from hell for over a year now. I should have heard the alarm bells when the studio who were running the project took a month to pay my deposit but still expected me to start working, but I explained that I wouldn't start without some form of security and they were cool with it, so I carried on.
It started off as a simple build with simple products, no product variations etc and a few links on the designs which appeared to lead to external links, and checkout and cart pages were nowhere to be seen. It wasn't a big money job so I just build them in as plain and straightforward as I could, in line with how the rest of the site looked. They then changed their mind about how they wanted these to look, and added loads of functionality to the site throughout the build, so by the end of the line, the scope of work had completely changed. I also had loads of disagreements in terms of design and useability, as their designs straight-up weren't going to function otherwise, plus every round of changes meant that I had to prolong the job further and fit it around work for other clients.
Fastforward a few more months and I get sent a really angry email with some of the client's complaints, including one that raised an issue with the user journey, and the finger of blame was pointed at me. The user journey had been a part of the designs from the start, and this was never raised as an issue for A WHOLE YEAR. They then said that it had to go live on Monday (three days after they sent email with these huge new structural changes). I told them I could no longer work on the project but was happy to waive the rest of my fee (3/4 of the total fee, when I had essentially completed the site, minus 2 minor bugs), so they could find another developer in the limited time they had. At first they refused to hire another developer, claiming that it would be too expensive, which made no sense, as for a few minor fixes and out of scope additions he could get paid a wage that would have otherwise paid for the majority of the work I had done on the site. I stood my ground and finally they found someone, so I sent over all of the files and database to their new developer and asked him to give me a heads up when I could remove the staging site from my server. The next day, I received an email from the studio asking me to fix some bugs the developer was requesting I fix so he could carry on with the site. They were basically asking me to work more, for free, to enable him to walk off with the majority of the money and do less work. They also forwarded a suuuuuper shitty, condescending email from him, listing all the things he thought was wrong with the site (he even listed 'no favicon' although they'd never supplied a graphic for this). He also wrote a paragraph at the bottom EXPLAINING MY JOB TO ME and telling me:
I get the feeling you like to write Javascript, while being one of the easiest languages to learn, it can also be one of the hardest to master. While I applaud you for writing Vanilla JS, it looks like you have a general problem with structuring your application.
Not sure if I'm being oversensitive here but it felt so patronising, and i couldn't even go for an angry walk to get it out my system because of social distancing lol.
Let a girl quarantine in peace!!!!!!2 -
Everytime you tell yourself "This time I'm going to make them stop putting the cart before the horse again!!! No more forced shit implementations!!! NO MORE ! I'm strong!!"
The last hour in the next week:
- Selinux: off
- Firewall: Any-Any
- Application data: Everything installed on OS disc.
- Documentation: At best, someone remembers the server supposed-to-be dns record
- Service Accounts: Your domain admin account and sysadmin for databases.
- Patching: DON'T EVER THINK ABOUT IT..AND NO REBOOTING! I have set very important runtime variables.
- Backup: Maybe someone else will set this up.
- Monitoring: Not needed since clients will create tickets if system fails.
- Production Status: vague at best. Sort of silently transitioned to production.
- Handover status: Probably, but I quit before the project closed.
! -
I want to buy a beer for everyone who developed the mobile pass app. Just breezed through immigration and customs without waiting in the 1 hour+ line. Technology wins. Cheers!1
-
We've been using private GitHub repos as a distribution method for our personal npm packages at work for years.
I finally got sick of it and did the work to publish them to artifactory yesterday. Today, I worked out the remaining kinks, fixed the CI builds, and wrote a wiki page explaining the change with step by step migration instructions and sent it around to the rest of the devs. And it's working great!
I feel simultaneously like a hero for finally getting this fixed and an idiot for putting up with it for so long.
Also thankful for my devops friend who helped a bunch.1 -
Just moved countries and started a new job at an awesome company, which is so great I have nothing yet to rant about.
Oh here goes: almost three weeks with no internet at home and no end in sight.2 -
In the country where I live the national railway company just replaced their perfectly functional (old looking) site with a new one. It looks very nice until you start using it. Reloading the page logs you out. Adding a saved passenger before was filling two fields and ticking and save now you go to profile then select it using 15 clicks then save and then you can't pick it when buying tickets you must add it all again (used to work before). The list of trains matching your criteria used to be a fairly compresses table so you could see a lot of trains without scrolling also showed info on them. Now it only shows departure arrival and time. Also each table cell has 4x font size padding and is float right with around 20% of left side being taken by a menu. Information about the trains' journey is still shown but not in full detail. After you put the ticket in the cart it only shows you basic information and there is no full info before checkout. Also now you can't pick which seat you want yours next to.
So then what did they fix compared to the old? Now you can buy tickets for trains that are late like if that's gonna make everything easier... They also fixed that now you don't need two accounts if you want to use the mobile app (which by the way broke after the update in every possible way).
So the question is: why the fuck do we need so much eye candy if the product becomes unusable in the end? -
Was hiring a front-end dev once. Job ad was for basic html/css and graphic design skills. Perfect part-time job for intern or high school kid to get their feet wet. Boss sits in on interview and after I asked all the necessary questions related to position, boss starts asking him programming related questions similar to my position. (php, Mysql, apis, managing vps, custom shopping cart code )
Way to drop a bomb on a kid who is potentially interested in working here. -
(Part 1/2?)
Ohhh my god am I furious and this one's a gem.
Also I'm gonna namespoil all of the entities in my post. If this is against rant rules I'll reframe it.
So the story starts over an year ago. Me, being in a bad place, where I couldn't do a job due to external issues, wanted to try out an internship. Thought I could pull off a 5 hour shift and then attend to my problems.
THE INTERNSHALA ARC:
I apply to a bunch of applications on Angel, Internshala and Indeed.
I was contacted by a few handful of these places. One of them was called "ARCHITECTA SOFTWARE SOLUTIONS". These guys had arranged an online aptitude test for me which I promptly took.
I looked up this company and they seemed like a pretty okay big firm from the outset but didn't have many reviews on Glassdoor and likes of such. (first red flag). Post aptitude test, I was quite sure I fucked up and wouldn't get further contact. Surprisingly, a person from the company sends me his Whatsapp number over chat and asks me to save it. The message is worded like a bulk email (Starting with Hello everyone!!) which I thought was quite odd since the interaction from these platforms has always been a person-to-person contact for me. Since Internshala showed that only around 40 people applied for the position I was quite intrigued but attributed this to my lack of exp in internship operations.
THE WHATSAPP ARC:
I was contacted by the number on WhatsApp saying that they'd be interested in moving forward and I gave them my work experience details.
The person sends me over a development assignment to complete within a few days. The assignment consists of massive scope of details. I'm talking production level concept and implementation. Asks to me implement a custom emotion detection CV model (worded as "emotion camera" lmao), generate a 3d model (specified nowhere and expects to implement a mono-ocular system for the curious) and deploy it over AWS with a website to go along with it and also host that. The website should contain a VR ("360 rotatable") view that can explore the depth-map ("not worded as depth-map") of the face. My first assumption was that they had picked this work up for outsourcing and didn't bother to chip off parts so as to create an assignment out of it (I know very optimistic).
So I shoot it at him on WhatsApp asking which parts of the assignment should I do?
Him: So, which parts CAN you do?
I thought of it as an HR thing.
Me: I could do most of it but given the time-frame of the assignment and my applied position as a web developer it is perhaps out of scope for my application.
Him: Don't worry about the assignment. You can submit when you complete the whole assignment.
I was visibly angry over the stupidity of this man.
Me: This task is a Full-Stack + CV + VR task. It will take over two months to get working. Am I supposed to work on it for that long for an assignment?
Him: Okay just do the basic functionalities like add to cart. But also try to do the camera thing before next week.
At this point I'm sure that they are having trouble handling an eager client and they're offloading work to interns. So I do only the backend and minimal frontend and submit the assignment (a 2 day job done over a weekend).
Nothing. Empty. No messages since then. I tried sending in a Whatsapp message on the application and how to proceed. Then, if I could get to know if I have been rejected. Nothing.
And all this time I can clearly see the account is active as it pushes pretentious motivational quotes over it's Whatsapp status.3 -
Things you should not say on your last day of work:
If I broke it, I think it would be pretty obvious. -
Just attended my first conference and it was awesome! So many new ideas, but also tired and overloaded. Can't decide if I should code tonight, go to bed early, or just do something mindless.1
-
Did anybody buy .dev domain from Google? Their website was quite slow yesterday and somehow I managed to add my first name .dev to the cart. But in the last screen I got stuck with "Registering this domain" message. I closed tab after an hour. Today it is still under pending domains. But if I search for the availability, it says exact match is available. Should I be worried?8
-
I had an interesting mystery the other day. I work in the UK, but I'm working remotely from the US for a while. First day, I made some changes, ran the tests and they failed. Weird part was the failing test was for a component I hadn't touched. I took a closer look, and realized it was a date off by several hours. The test was checking that a passed in date appears in the output. But it was creating the date by parsing a string. The library I was using defaults to local time, but the component uses UTC. So, I had inadvertently created a unit test that only passes when run from UTC. But I had never noticed before because my work is in that timezone. Yikes!
-
Corona shows that certain webshops were bought up cheaply and can't handle large loads. The fact that my shopping cart constantly crashes, the website itself crashes, flips between logged in and logged out, state is constantly corrupted and.. every so now and then I get 500 server errors, yeah, clear signs of no load balancing policy.
Everyone is raping the shopping sites right now.
I hate cheapskates. -
This was at my first job, a site that sold magazine subscriptions during the dot com boom.
Times got rough during the bust. First sign, free snacks disappeared. Everyone started worrying, and checking fuckedcompany.com to see if we were on it. One day everyone's machines shut down, and someone walks around saying company meeting in the cafeteria. My Russian coworker asks if I have a screwdriver so he can liberate his hard drive. Go to the meeting. Most of the company is being laid off immediately. You have to hang around having interviews with your boss to see if you still have a job. I don't.
2 weeks later they call and ask if I'd like to come back. Turns out trying to run with 1 programmer wasn't working out for them. I go back.
First problem we try to tackle - the shopping cart is slow. We put in a hack SQL file to delete carts older than 1 week. Gets better. Then gets slower again. Rinse and repeat 2 times. Finally digging through the source in the perl folder (not what the main site was in) we find what scheduled job was supposed to do this. Dig in. What do we find out? sa_scheduled_tasks user account was deactivated, because only user accounts belonging to people who still had a job were left active.
Fuuuuuuuuuuuck. -
Are sql joins a bad practice? :o
I recently did some work on a page for a site ive never worked on cause my boss told me to. So they recently added product detail video urls to a table that has a relationship to the products table. The existing code was querying for the products on that said page and then during the loop that was outputting the products ,there was another query for getting the url for the current iteration/product. Told my coworker that this imo was pretty inefficient way to do it and switched it to a join and did 1 query then output that but his words were "The way it is now maybe ineffecient in your opinion but it works. Also combining inner joins with left or right is not a good practice. If the data is changed upstream the entire query would need to be redone to accommodate the change". Mind you that they query views a lot which are all made from queries that use joins and I'm also pretty sure these views were written by someone who used to be here because these guys are not good at sql or at least that's what there queries show. I'm at the point now where I'm realizing that my boss and this other guy don't give a fuck about efficiency or doing things the right way they just want it "to work". So this coworker changed my query back to the way it was because he said it broke the shopping cart even though that was already broken when I started... What is life? Maybe I'm the stupid one?7 -
Some background to get us started...
Just took over the position as IT Specialist for our local county commission back in December after the previous employee left.
Before leaving she deleted all of her emails for the past 9 years.
Included in her emails were the details for certain program licensing the county had purchased not the least of which was 200 Office 2010 professional keys.
Getting into the office this morning my boss says "Hey got a problem for you, we've exceeded the license count for Microsoft office, and the vendor we purchased from is no longer in business."
My first response was Ok, lets go with open, or libre office. Problem solved. (I'm piece by piece upgrading our infrastructure to a more dependable OS you know, Linux.) I knew the open office suggestion wasn't going to fly so I promptly got on the phone with our friends @ Microsoft.
They were as helpful as you can expect when provided with only our MAK # and sent me back to try digging around for details 9 years old with our purchasing department. Who happens to be too damn busy to concern themselves with what the IT department needs this morning.
That will be remembered the next time the internet "Quits" working as they so often like to claim when then cant get an item to add to a cart in amazon.
Sure people just because your chosen shit browser (Edge) doesnt like to play well with js all the time the internet must be broken... -
>Working on code
>Shit works as intended first try, nice
>Goes to play strange bootleg Gameboy Color ROM sent by a friend
>ROM immediately fucking dies
wtf.svg
>Pop emulator's debugger
we're executing from VRAM, stack's firmly embedded in ROM
>why
>Add execution breakpoint to entrypoint of game, restart emulated system (because i'm actually using the legit bios i hacked so it allows null/corrupted games to run)
>Step through everything, everything goes well until all of a sudden we call a function and shit hits the goddamn fan
well we have the culprit
>step through subroutine
if <unused_byte_in_HRAM> != 0 then stackPointer+=32;tryAgain();else return
>***y***
>Realize this is using a bootleg Memory Bank Controller with hard-backed encryption so none of the bytes executed or read as data are the right byte
>Find emulator that'll handle the jank MBC
>read code to try and figure out how it works
if checksumExtendedLogoBlob == some_number then set MBC_Bootleg1 else if checksumExtendedLogoBlob == some_other_number then set MBC_Bootleg2 else if...
>of course
>Spend 10 minutes finding the right bootleg MBC
>code shows 8 possible tables for real bit order based on some value in the cart header
>look for code that gets this value
>not in the header
>not in ANY header in this 1000+ file emulator
>not in any related cpp files???
>get desperate
>email author
>"Delivery failed: email doesn't exist"
fuck me i guess2 -
I just can't believe in what state are the "leading" eCommerce systems. It just gives me depression and I'm totally desperate. :(
After 10-15 years one is xml hell, another is insane modules DIY administration, and the last one is bugy slugish mess. Try to guess which one is which.3 -
Can someone please explain to me, in the most dumbed-doen way imaginable, what the fuck SharePoint is?
Yes, I've Googled it. No, I don't understand. From everything that I've read; it just doesn't function the way I expect it to after reading about it.
Is it used to create company websites which are to be used by staff within the company. Or is it used to create normal websites, that the general public visits (maybe like a portfolio or company website showcasing products with a shopping cart and shit)?
I'm confused.13 -
My new gig is to clean up the mess left behind by a now ex-development team that insisted the company would be better off with a custom-coded ecommerce solution that completely disregarded the conveniences and ready-made plugins provided by the CMS (Wordpress). They didn't even bother making a plugin. Just mixed the shopping cart scripts right into the theme files. Why are there coders who insist on doing such things? If you are one, what is the benefit you see in taking such a "custom", unconventional approach (other than locking the client into your solutions)?2
-
I have a weird love/hate relationship with JavaScript.
I'm not at all a webDev, but I like to use it occasionally because it's fun and I really like its syntax... but it's an absolute pile of shit.
If you put racing stripes and a spoiler on a golf cart, it's still a fucking golf cart.2 -
I work at company that uses Drupal for everything. And i mean EVERYTHING. Our dumb CTO once even wanted us to join tender for flight data collection system... of course it would run on fucking drupal...
Yeah i can see its advantages but it has learning curve the shape of the snail shell and if you want it to do something new you either find module for it or drupal will start crying, shits itself and tell you to go fuck yourself.. also it is full of surprises to make your day as miserable as possible, like you send variable as $content['varname'] to user template and it returns as $user_profile['varname']['value']... and yes user template has $content array for content but why use it for storing content that i want to render.. it is used for other content to render... because in drupal content != content...
I started using laravel for my freelance projects and it took my less than 2 week to get up to speed and start working and is incredible fast to work in... You know.. its fun when you want to just add feature you just code that feature into your app.. and not spend 2 fucking years crawling through retarded preprocess functions...
Whenever i try to suggest we use other frameworks.. "Muh drupal has MODULES".. yeah because drupal is the only thing in universe that has modules.. When client has only need for simple site with simple template why use wordpress and have it done in 2 days when you can use drupal have 10 000 unnecessary DB queries that drupal does on every page load to load page title and make that site in a week.. or why use laravel for e-shop with specific functionality requested by client that would take 2 weeks to add in laravel when you can spend 2 months modifing uber-cart or drupal commerce modules only to hit some Drupal core surprise that wont allow for that feature to be implemented...3 -
I think I got a problem... The standing desk extension I bought is 40kg.... But after carrying it up... Even with a pull cart and elevator... It feels too fcking heavy for my desktop... I have a feeling it's going to crack it in 2....
Any tips/ideas? Feels like I need to put a metal safe under it, in the middle now... To make sure it doesn't collapse too much...18 -
Why is so Fitbit so bad at multiple time zones??
Guess what, people get on planes and travel.
Every time, my Fitbit gets so screwed up, including things like changing previous step counts, or duplicating an entire day of steps.
I understand MTZ is a tough problem, but this is just unacceptable. I'm not obsessed with my steps, but when your product is all about counting something, seems like you should be more careful to avoid double counting or not counting at all. Seriously, how much R&D have they invested in their hardware and apps, but it completely fails when you travel. Get it together!1 -
When everyone thinks FE is easier, quicker, and less important than BE. Just because our fantastic UX people made you a high fidelity mockup in a day does not mean we can build the whole FE in a week.
This is why I'm returning to full stack. -
I haven't got in for a while but dude, I want to rant.
This guy originally wanted a simple online shopping system, with the "cart" sent to WhatsApp. No big deal, most of it was done in 2 days.
Then he wanted geolocation so the app would show you the nearest sites. Sure, why not. I had never worked with something like that so it might be worth it to try and learn.
Then he wanted custom URLs. It took me a little but this wasn't in the plans...
Then a copy of the system but focused on workers instead of products.
And another for big providers.
Then an integration with a delivery service.
And more in the following weeks...
Dude. WTF, I was only paid some weeks and he keeps adding and adding stuff. All at the same time while the first still didn't have the final design. It's been 3 months.
I hate this kind of guys. I didn't know the kind but now I hate them.5 -
Current Mac and Windows user here looking to get back into Linux. Any distro suggestions?
Looking for something not too high maintenance.7 -
I was always interested in computers. My dad was a big computer geek and a programmer to boot. Usually had a couple old PCs in the basement to play with.
In middle school, I took tech ed and we made simple web sites with html and css. I remember the struggle of nested tables.
In high school, I couldn't fit any CS into my schedule. But someone gave me a learning to code book in ruby. I loved it, and have been hooked ever since. -
It drives me crazy when there are unclosed parens or quotes anywhere.
Is it too much to ask for people to run their Facebook posts through a compiler first? -
Best tip for getting unstuck? If it's after your usual leaving time, GO HOME.
So many times I solved the problem right away the next morning. Only wish I followed my own advice more often... -
Computer does a BSOD right at the end of a tiebreaker competitive overwatch match where the enemy is about to cap the point and win. I'm one of the tanks. Hard reboot and back in the game within 45s. Just barely hold them off in overtime and win the match. Epic!
Thank God for SSDs!4 -
How long do you think it'll take to build shopping cart capability, order management system and integrate into a payment gateway with 1 backend developer and 1 front-end developer?
If there are any readily available libraries or OSS for these, please let me know.8 -
Here's a story about why putting util functionality in a generic parent class is baaaad. So we run into a bug where an online shop module we develop causes a third party module to break the entire site until the session expires.
We track the bug down to the fact that the third party module has added some functionality to the part of the shop that deals with the cart and that functionality expects that one of the module's libraries is initialized. But as it turns out another of that module's libraries that is loaded earlier is fetching the cart and thus triggers our module which adds gifts to it.
Now, since we need a deeper integration with the cart to make gifts depend on the cart contents we call the part of it that now depends on the third party module's unloaded library.. So we think changing the order the third party libraries are loaded will fix the issue, only to discover the unloaded one is a child class of the first and the cart is fetched in the parent constructor. The parent of course then turns out to be a generic util class, inherited by all the module's libraries, so whatever order we load them in, the constructor is always called, so we had no other choice but to dynamically disable our module during the initialization of those libraries and then patch the updated cart contents into them after they've all been initialized.
At this point we get curious what that module's doing with the cart contents only to discover.. nothing. It's just that the parent class is full of utils and data fetching that the vendor reuses in all their modules.. -
Trying to add money to a prepaid SIM card today. Their website is a mess. Plus and minus buttons were not functioning, so my only option was to add 15 euro. Checked the console, no errors. Tried triggering the buttons jQuery, no luck. Found a data value attached to the submit button set to 15. Changed to 10, clicked submit, and BOOM, it worked! You just got engineered!
After I paid, I was curious, went back and set it to -15, and tried it again. Unfortunately, they know about backend validation. -
Any recommendations for moving a blog?
My wife and I just cancelled our account with siteground hosting a WordPress blog. Looking for a cheaper alternative. Willing to get my hands dirty as a web dev, but would like a nice CMS experience for my wife. Also want to keep our existing content. If we can keep our custom domain somehow that would be a win.
Thanks!7 -
Hello dev-fellas.
A cousin of mine is a craftswoman.
She wants to set up an online store that she can manage.
Which tech is the best/easiest today to set up that?
Prestashop? Shopify? WordPress with any plugin?
Thanks6 -
So I recently learned that there are "Shopping Cart APIs" that e-commerce sites use for their carts. Like Zen Cart or Open Cart. (I don't work in e-commerce.)
But that got me thinking, what are the most common shopping cart APIs used in India? And in general? Anyone out here who knows about this?2 -
I love staying late to patch PHP systems. It's even better when our ecommerce website written in Perl has an issue with cart checkouts and customers are complaining1
-
I wrote my first proper promise today
I'm building a State-driven, ajax fed Order/Invoice creation UI which Sales Reps use to place purchases for customers over the phone. The backend is a mutated PHP OSCommerce catalog which I've been making strides in refactoring towards OOP/eliminating spahgetti code and the need for a massive bootstrapper file which includes a ton of nonsense (I started by isolating the session and several crucial classes dealing with currency, language and the cart)
I'm using raw JS and jquery with copious reorganization.
I like state driven design, so I write all my data objects as classes using a base class with a simple attribute setter, and then extend the class and define it's attributes as an array which is passed to the parent setter in the construct.
I have also populateFromJson method in the parent class which allows me to match the attribute names to database fields in the backend which returns via ajax.
I achieve the state tracking by placing these objects into an array which underscore.js Observe watches, and that triggers methods to update the DOM or other objects.
Sure, I could do this in react but
1) It's in an admin area where the sales reps using it have to use edge/chrome/Firefox
2) I'm still climbing the react learning curve, so I can rapid prototype in jquery faster instead of getting hung up on something I don't understand
3) said admin area already uses jquery anyway
4) I like a challenge
Implementing promises is quickly turning messy jquery ajax calls into neat organized promise based operations that fit into my state tracking paradigm, so all jquery is responsible for is user interaction events.
The big flaw I want to address is that I'm still making html elements as JS strings to generate inputs/fields into the pseudo-forms.
Can anyone point me in the direction of a library or practice that allows me to generate Dom elements in a template-style manner.4 -
I walk by our devops dashboard several times per day. It keeps track of key metrics for all our live services. I noticed an interesting trend the last few weeks.
3 weeks ago: all metrics green
2 weeks ago: 1 metric red
1 week ago: 1 metric still red
this week: 1 metric still red but covered with a post it note -
Ebay is a huge pile of freshly juiced garbage.
Their settings menu looks like its from 2005. And when it looks halfway decent the CSS doesnt load cause you have do not track enabled.
If you go to write their support, it returns an unexpected error.
when you use the shopping cart the number of items you have in it is not the same as the number it says that you have in it. And when you want to checkout that cart, not all items show up on the payment screen. Despite the item being shippable.
And the worst thing of them all: IF YOU THEN CHECK OUT ALL THESE ITEMS IT MAKES AN INDIVIDUAL TRANSACTION FOR EACH ONE. THUS THE FRAUD DETECTION OF THE CARD BLOCKS THE CARD, CAUSE TOO MANY TRANSACTIONS HAPPEND AT ONCE!2 -
I graduated from my High School last Spring, and since then as a part of a huge overhaul of the education systems, they decided to put the school into the 21st century. The problem? They're doing it all wrong. Every school in the district is acting on its own, making transitions from one grade to another painful. The middle school purchased a cart of iPads despite the fact that Elementary schools use Surface, and the High School uses 2-in-1s. But what makes it worse is the services. The High School used Office365 and OneNote, while the Middle School uses Google Classroom and cloud storage. If the school board wants to make education simpler, modern life, and efficient, the least you could do is have everyone on the same page. Right now, costs are higher, grades are confusing, and efficiency is lower. Each teacher pretty much fends for themselves. I volunteered to help them sort this out by being on the educational committee in charge of the decisions, but I graduated and they felt like they were doing fine. Seriously?1
-
EVP handed us a packet for some salesforce "low code application" and "citizen developer" bullshit. What is this garbage? Who's trying to weasel into my space? Now we are obliged to learn and use this restrictive "low code" framework instead of doing what we already know, because management types and IT guys cannot compile C#.
-
When you are tearing you hair out trying to figure out why the PR you're reviewing isn't working. Then you realize you forgot to pull the latest changes!
-
First day at the new building during my Monday hospital IT job. My boss went on about opening portals in time, aliens, all kinds of shit, then I get a call, "hey, we need help carrying a body to the morgue, get up here", turns out i'm lookout and forward-runner (lookout to keep patients away from the room during cart loadup, forward runner for doors)
I hate Mondays...4 -
You know it's Friday afternoon when your interface is broken because you tried to set the type to the string 'string' instead of the keyword string.
Interface IEnvironment {
name: 'string',
...
} -
Ive got a nes that does not work it appers that it is not dettecting the cart. Ive tryed blowing out the port with a compressor but that did not work. Any other sugestions?3
-
Me, two days ago: Man, I should try to drink less caffeine, I felt pretty shit when I didn’t had coffee… :(
Me, at 2am: *adds 6 tubs of gfuel to cart*
*proceeds to checkout*4 -
I'm developing a Prestashop module, and I'm adding and removing products from the cart.
Whenever I try to get the shipping price, I get the value I had before the change...2 -
So earlier today I went to a super market store and started gathering some items. After collecting a dozen items I felt like not buying. I put my trolley in a corner with items still in it and walked out if the store without buying anything. My first encounter with abandoning a cart in real life.. 😁😁
-
Lol. Of all the dev social media, like Dev.to, Hashnode, stack overflow etc .. I find that the most help I get is RIGHT FUCKING HERE BABY. So I'm at it again, asking for help in the form of a question. I'm still looking to get a frontend job. My question is, is a short and sweet e-commerce website, mostly showcasing the ability to code a design, so not fully functional but has great JavaScript and React features in it, like mobile responsiveness, slide nav, item filter, sale price, add to cart animation, pagination, etc..a good resume project that can get you hired? I'm having a hard time finding which if my projects are good, or embarrassing to recruiters.8
-
Printed & Plain Sleeveless Short Nehru Jacket For Men – Italiancrown
Printed Koti Collection [Upto 10% Off] - Plain And Printed Regular Fit Sleeveless 100 % Cotton Wedding Wear Nehru Jacket For Men. Shop Now From italiancrown. At India's Best Online Shopping Store. Add To Cart And Shop Now. Fashion On Stylish Nehru Jacket Today! -
In my initial days as a web developer, i was assigned a task, to implement a cart share functionality in an e commerce company.
I made the functionality and tested on my system.
Result: working good.
Pushed it to beta testing environment.
Resilt: working good.
Pushed to pre production environment.
Result: working good.
Pushed to live site.
Result: 😀 Error in live site..
So a call comes to me from my team lead..
Asks what was the issue...
Me: i dont know either.
....
After 3-4 hrs:
I found the reason.
My system, beta test env, pre prod env are all having latest php version (5.6 i guess)
But the live server had old version of php.
Me: laughed like anything.
I didn't know that these things would matter in such a great level.
Moral of the story:
Be one with the force (server in this case)2 -
Recently saw that Visual Studio 2022 preview build, I guess 4 is here, so any idea if this one is more stable? Like I had the 3rd preview build and sh!t was the worst. Felt like riding a bullock cart. Even the indent guides vanished outta nowhere. So guys?1