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 - "suppliers"
-
Boss and project manager calls me into a launch meeting for a new project. A stock management system for a small furniture company that will work over 11 stores, 4 warehouses and multiple suppliers which will also work as an ordering system. We went over the spec(112 pages) and I told him that it will be an on going project over a year with an initial dev time of 4-6 months. He just said that he's sold it to them to be delivered for testing in 2 weeks and completed in 4 weeks(they signed the contract) and that I'd best get started. I just closed my laptop and walked out.7
-
Often I hear that one should block spam email based on content match rather than IP match. Sometimes even that blocking Chinese ranges in particular is prejudiced and racist. Allow me to debunk that after I've been looking at traffic on port 25 with tcpdump for several weeks now, and got rid of most of my incoming spam too.
There are these spamhausen that communicate with my mail server as much as every minute.
- biz-smtp.com
- mailing-expert.com
- smtp-shop.com
All of them are Chinese. They make up - rough guess - around 90% of the traffic that hits my edge nodes, if not more.
The network ranges I've blocked are apparently as follows:
- 193.106.175.0/24 (Russia)
- 49.64.0.0/11 (China)
- 181.39.88.172 (Ecuador)
- 188.130.160.216 (Russia)
- 106.75.144.0/20 (China)
- 183.227.0.0/16 (China)
- 106.75.32.0/19 (China)
.. apparently I blocked that one twice, heh
- 116.16.0.0/12 (China)
- 123.58.160.0/19 (China)
It's not all China but holy hell, a lot of spam sure comes from there, given how Golden Shield supposedly blocks internet access to the Chinese citizens. A friend of mine who lives in China (how he got past the firewall is beyond me, and he won't tell me either) told me that while incoming information is "regulated", they don't give half a shit about outgoing traffic to foreign countries. Hence all those shitty filter bag suppliers and whatnot. The Chinese government doesn't care.
So what is the alternative like, that would block based on content? Well there are a few solutions out there, namely SpamAssassin, ClamAV and Amavis among others. The problem is that they're all very memory intensive (especially compared to e.g. Postfix and Dovecot themselves) and that they must scan every email, and keep up with evasion techniques (such as putting the content in an image, or using characters from different character sets t̾h̾a̾t̾ ̾l̾o̾o̾k̾ ̾s̾i̾m̾i̾l̾a̾r̾).
But the thing is, all of that traffic comes from a certain few offending IP ranges, and an iptables rule that covers a whole range is very cheap. China (or any country for that matter) has too many IP ranges to block all of them. But the certain few offending IP ranges? I'll take a cheap IP-based filter over expensive content-based filters any day. And I don't want to be shamed for that.7 -
A couple of months ago, the father of a friend of mine, asked me if I wanted to help him out with a project.
His late father, whom he inherited a one-person upholstering company from, once created a system in filemaker to do, among others, his financial administration. This system, however, grew organically as time went by, but he passed away before he explained to his son how it worked.
Now this man was running the company, using the parts of the system that he knows, but things were starting to break down. He asked me if I could help him understand what is going on and fix a couple of things.
However, the more I look at it, the more I realize what a monstrosity this has become, because the system has never been cleaned up. For example:
- There is a suppliers table, with the columns "E-MAIL" and "EMAIL". The latter one containing the supplier's website address.
- In order to be able to generate year reports, at the start of a year he copies the previous year's file, removes all records from it and starts using that as the new year's file. (This year, he accidentally created a shortcut instead of copying...)
- Some tables have a misterious column called "#1". It always contains a 1.
- The system consists of about 20 files, each of them containing a single table, although only 10 of them are really used. The other ones are just legacy.
- File, table, column, and layout names are capitalized randomly (all caps, no cap, starting uppercase) and are usually abbreviations, like "st2", "oms3", "off\rek", "b", "VERDBEST6" and "antst".
- One table has 92 columns.
- Of those 92 columns, only about 20, maybe 30, are in use.
Now, my task is finding out what parts are useful and in use, extracting those and create a baby monster out of the giant monster this system has become.
Sidenote: I actually enjoy having to learn a bit about accounting in order to understand this. Planning to use the knowledge I gain to keep track of my own finances.6 -
I had spent the last year working on a online store power by woocommerce with over 100k products from various suppliers. This online store utilized a custom API that would take the various formats that suppliers offer their inventory in and made them consistent. Now everything was going swimmingly initially, but then I began adding more and more products using a plug-in called WP all import. I reached around 100k products and the site would take up to an entire minute to load sometimes timing out. I got desperate so I installed several caching plugins, but to no avail this did not help me. The site was originally only supposed to take three to four months but ended up taking an entire year. Then, just yesterday I found out what went wrong and why this woocommerce website with all of these optimizations was still taking anywhere from 60 to 90 seconds to load, or just timing out entirely. I had initially thought that I needed a beefier server so I moved it to a high CPU digitalocean VM. While this did help a little bit, the site was still very slow and now I had very high CPU usage RAM usage and high disk IO. I was seriously stumped the Apache process was using a high amount of CPU and IO along with MYSQL as well. It wasn't until I started digging deeper into the database that I actually found out what the issue was. As I was loading the site I would run 'show process list' in the SQL terminal, I began to notice a very significant load time for one of the tables, so I went to go and check it out. What I did was I ran a select all query on that particular table just to see how full it was and SQL returned a error saying that I had exceeded the maximum packet size. So I was like okay what the fuck...
So I exited my SQL and re-entered it this time with a higher packet size. I ran a query that would count how many rows were in this particular table and the number came out to being in the millions. I was surprised, and what's worse is that this table belong to a plugin that I had attempted to use early in the development process to cache the site. The plugin was deactivated but apparently it had left PHP files within the wp content directory outside of the actual plugin directory, so it's still executing scripts even though the plugin itself was disabled. Basically every time I would change anything on the site, it would recache the whole thing, and it didn't delete any old records. So 100k+ products caching on saves with no garbage collection... You do the math, it's gonna be a heavy ass database. Not only that but it was serialized data, so when it did pull this metric shit ton of spaghetti from the database, PHP then had to deserialize it. Hence the high ass CPU load. I had caching enabled on the MySQL end of things so that ate the ram. I was really desperate to get this thing running.
Honest to God the main reason why this website took so long was because the load times made it miserable to work on. I just thought that the hardware that I had the site on was inadequate. I had initially started the development on a small Linux VM which apparently wasn't enough, which is why I moved it to digitalocean which also seemed to not be enough, so from there I moved to a dedicated server which still didn't seem to be enough. I was probably a few more 60-second wait times or timeouts from recommending a server cluster to my client who I know would not be willing to purchase it. The client who I promised this site to have completed in 3 months and has waited a year. Seriously, I would tell people the struggles that I would go through with this particular site and they would just tell me to just drop the site; just take the money, just take the loss. I refused to, this was really the only thing that was kicking my ass. I present myself as this high-and-mighty developer like I'm just really good at what I do but then I have this WordPress site that's just beating the shit out of me for a year. It was a very big learning experience and it was also very humbling as well, it made me realize that I really don't know as much as I think I might. It was evidence that there is still so much more to learn out there, I did learn a lot from that experience especially about optimizing websites the different types of methods to do that particular lonely on the server side and I'll be able to utilize this knowledge in the future.
I guess the moral of the story is, never really give up. Ultimately things might get so bad that you're running on hopes and dreams. Those experiences are generally the most humbling. Now I can finally present the site that I am basically a year late on to the client who will be so happy that I did not give up on the project entirely. I'll have experienced this feeling of pure euphoria, and help the small business significantly grow their revenue. Helping others is very fulfilling for me, even at my own expense.
Anyways, gonna stop ranting. Running out of characters. If you're still here... Ty for reading :')7 -
Best email of the year so far, from a "reputable" IT supplier.
I had asked for numerous copies of x86 and x64 copies of Windows 7.
Clarification email came back "I can't find an 84 bit copy of Windows. Can you clarify?"
Not sure that mail will be beaten this year. They weren't even looking for an 86 bit version.
Unfortunately I just had to explain rather than play along for a few hours as time limited.
FML. -
I am on my way home from an 8.5 hour non-stop call with one of our software suppliers...
How to you guys handle situations like that?
Consentrating became very difficult at the end to be honest.
And if it my teammates would not have been there (they gave me food, sth to drink and filled my coffee cup) I would have snapt after 4 hours...
The only thing I feel capable of doing for now is to listen to extremly loud music9 -
Some people really get paid to not think at all! Licensing server stuff got changed by one of our suppliers. Licensing client basically screams nonsensical errors when wanting to move a license. Supports response: "Yeah, in rare cases there might be an error. There will be an update to fix this in the coming weeks."
Why do you push online updates before the local ones! Fucking electrical socket impregnators!2 -
!rant
How should I put this... I have REALLY enjoyed help desk job more than anything thus far.
I've seen people posting about how dumb clients may be, and I know there's also those cases, but ultimately those are usually just good inspiration to comedy.
So here's the background: I was working in growing website development company (marketing called it digi-office for some reason). The clients were firms ranging from local bakeries to international suppliers.
The intriguing thing with working in help desk was usually smaller tasks and direct customer contact through e-mail. I got feedback (which always important) and the rush of good feeling at the end of every task; faster and more frequent than working on a year project. But the cherry on the cake is that I got to investigate problems within each websites' and the CMS's code base, fix them or point out bigger flaws in systems and blame others from them. 😂
How your help desk experience differ? Or do you also recognize the good side?1 -
So.. I had lots of jobs.
Since my 20s I picked mostly heavy work instead of intelectual work.
Went to the army, drove trucks, Cutted steel , worked a lot in were houses.
One of my jobs was cutting steel for the molding industry. I was replacing a guy who lost his finger in a saw.
Temp that was there for less then a year tought me so well in the first day, one year latter I was still working exactly has he tought me.
Best worker I ever saw, all movements were precise, exact measures to the mm, ways to do the work better and more precise...
Then proceeded to do shit, spent hours in the bathroom watching anime and playing on his phone.
Turns out he was already on his second year as a temp (wich is illegal in my country, can only do 1 year as a temp), and to make a contract the company wanted to pay even less then minimum wage.
Leaving me doing all the work.
So.. I broke my back, stopped working and as a thanks (I was still a temp and was already at the end of my second year) they just finish my contract.
One year after, the guy I went to replace got fired because couldn't do the work as me or my pro college.
My pro college got a better job.
Now I usually work in the molding industry and many of the companies I used to cut steel to changed suppliers because they started to have problems with that one. Like blocks of steel smaller that what they needed....
To bad this guy wasn't in a manager position... His the kind of guy professionals want as a boss -
!rant
It's my nephew's 12th birthday next week and I'd like to get a rasp pi kit with RetroPie and the NES controllers. Are there any decent UK suppliers that you know of? I've spent the morning looking and it's a mixed bag.4 -
Client. Should. Die.
Large table which needs to be filled with data - data needs to be prepared because there can be gaps in the data (data represents orders of supplier per day).
So layout is like this:
supplier1 supplier2 ...
date orders
date orders
date ....
Which already is fun. Not. Fetching data with several filters, prepping
data and assuring ordered output without gaps was painful...
The number of suppliers can be anything between 1 or >300 - limited is only the date range. there is an click event on every mofo column for enlarging the whole column and loading additional data via ajax.
Now in all this cringy mess.... I had to make it scrollable.
Horizontal and vertical.
wasn't much fun either.
Can someone please kill any client with the task : make this gigantic shit pile of dynamic table behave like Excel? -
When I implemented a supplier's library, I noticed my app froze every time I called that library. I then asked the suppliers if they were doing any heavy stuff on the main thread and they told me they weren't.
Luckily, they were "right", StrictMode told me they were only dumping a whole log file... -
So in my last rant I mentioned an ERP. This is its story:
When I started, all paperwork (including invoices, delivery slips, orders to suppliers etc.) was done on Word and some Excel, no specialised software whatsoever.
At some point (I already worked there for 2 years then), it became too much even for our boss, so he decided to spend some cash on the real deal.
After some looking around, he found software that seemed right (same vendor as our external bookkeeper used, so it would work with him too, nice). In order to save some money, he purchased it in Germany, as they offered a smaller product costing way less (we were based in Switzerland).
Once installed, we realised that this product was only meant to be used within the EU, as it only supported € as a currency and German VAT rates. We needed Swiss Francs and local VAT to work as well.
His solution looked as follows: I had the task to edit all forms via built-in MS Report Builder (god does it suck) to display the string CHF instead of €, and alter the on-sheet excel-like functions to use our VAT rates. Internally, the application of course still thought it was using € etc. For that reason, all output was unusable for bookkeeping, so we (as before) would just hand it in on paper.
If he had purchased the version sold here, all of the above would not have been the case, meaning support for multiple currencies and VATs, as well as direct transfer to the bookkeeper. He hardly saved 15k, in exchange for a non-working solution.2 -
MPLABX, eclipse and netbeans are biggest pieces of shit software in the world, fucken a I can’t stand this slowness, over bloat, locking up, and the unable to resolve bullshit,
(Porting a suppliers project and build script over to a simple makefile, and so the project can open and build in sublime or vim rather these other bullshit IDES9 -
der the above tables and execute the following queries:
1. Delete items having quantity less than 2.
2. Display total number of suppliers who are supplying ‘Refrigerator’.
3. Display all suppliers supplying ‘Washing Machine’ with minimum cost.
4. Give supplier details who give maximum discount on each item.
5. List suppliers supplying maximum number of1