Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
Get a devDuck
Rubber duck debugging has never been so cute! Get your favorite coding language devDuckBuy Now
Search - "ultron"
"We need you to build a feature on our website to stop people taking screenshots. I can use the print screen key and then easily print out our website design. You need to make the site design harder to copy".
This is an extract from a recent client email I received. To say I'm in shock is an understatement.27
Me when viewing a line of PHP where the previous developer add "sleep(5)" to an Ajax endpoint with the comment "Sleep for 5 seconds so the ajax loading icon is visible to users".
I just love it when my coworkers talk (troll) about Google Ultron like it's the answer for everything in front of a new dev and he's getting more and more confused thinking "what's this awesome Google product I've never heard about"
And we just know that within the next 30 minutes he will have tears in his eyes of laughing after reading the story and probably also has it 'installed' (like some other devs) on his desktop (http://imgur.com/gallery/W9Pnh)
Have a good chuckle if you haven't read it before:
Don't forget to download your adobe reader guys.7
So, rage time.
A few months ago I inherited a big Wordpress website, with around 750 pages.
The client has reported the main menu is broken.
Upon looking at the code it appears the previous "Wordpress Developer" (ahem ...) attempted to rewrite navigation system - no idea why.
As part of the 4000 class below is a screenshot of part of the file where he's determining if the current menu item is active, within a loop. Whilst the whole if statement spans 409 lines - the code basically continues exactly the same downwards.
The Orange Juice Saga ....
I've just come off one of the stupidest calls ever.
Firstly, I am not in tech support, I'm a software developer - read the below with this in mind.
My client called up to say the system I created as been compromised. When he attempts to login, he is logged off his Windows machine.
He'd also apparently taken his PC to ***insert large UK computer superstore here***, who took £100 plus to look at the machine and conclude his needs to buy a new PC.
I remoted into his computer to see WTF was going on.
As he described, visiting my login form did log you out. In fact, whenever you pressed the "L" key you were logged out. Press the "M" key, all windows were minimized. Basically, all Windows hotkeys appeared to be active, without the need to press the Windows key.
Whilst connected to his PC I spent a good 30 minutes checking keyboard settings and came up short.
After asking all the normal questions (has anything changed on your PC, have you installed stuff lately etc.) without any useful answers I got nothing.
I then came across an article stating several presses of the Windows in quick succession will solve the issue.
I got the client to try this, pressed the "L" key (which would have logged me off previously) and the issue was resolved.
Basically, the Windows key was "stuck", which oddly makes your PC kind of useless.
I asked the client if they'd split anything on the keyword whilst working. His exact word were simply lol:
"Oh yer, yesterday, I was trying to drink a glass of orange quickly and split some in the corner of keyboard. I did clean it up quickly though".
Yep, the issue was due to the client spilling orange juice on their keyboard , which in turn made the Windows key stick.
A call that started with the client stating I made a system that was easily compromised (i.e. my fault), morphed into a sorry saga of cold drinks.
The client did ask why the ***superstore name*** charged him money for that and recommended a new machine. That is a good question and demonstrated some the questionable tech support practices we see nowadays, even at very large stores.
To be fair to the client, he told me to bill him for half a days work as it was his own fault.
When I'm able to stop myself involuntarily face palming, I'm off for a swim to unwind :)7
Me after a large Git merge, after expecting masses of merge conflicts and getting none. Life is good my friend.2
Seriously, god bless Laravel and Taylor Otwell.
I've just had a customer foolishly delete all their user accounts. The customer was seriously stressed about this and as it usually goes, this stress was echoed in the call.
I explained how they can easily restore the deleted records in a single click as I have configured Laravel's "soft delete" functionality site wide. i.e. when they delete a record it isn't really deleted. Functionality to physically delete the record is hidden away outside the client's user level.
Customer was seriously grateful and paid for 2 hours of my time (even though the call took 15 mins) and generally gave me lots of kudos.
At the moment I'm trying to optimize a slow old MySQL query from a project I made several years ago. The execution time is in excess of 55 seconds. Not good :(
After about an hour of experimenting I finally set a good index and reduced the time to < 3 seconds.
I'm sure most PHP peeps have come across the "Faker" library, which generates a plethora of random content for you.
Let this be a warning to you.
Today I used their "realText()" (see: https://github.com/fzaninotto/...) method when seeding a database for a client, which, oddly enough, generates text using real words.
The client wasn't too impressed and asked me why I would type in "So she began nursing her fat again" as a sample Faq. It required an email and call to the client to explain it was all auto generated text and I didn't type anything myself.
Should probably just use their basic lipsum text methods next to generate some gibberish :)4
Just watched Silicon Valley season 1.
Cannot stress how motivated I am to get stuff done right now.
Computer is starting up as I type this on my phone.15
It's sooooo frustrating when a client forces me to make a design vertically fit in their own screen size. "Everything doesn't fit on my screen without scrolling" :(3
Me when I'm forced, at gunpoint, to work with a butchered Wordpress site with 116 activated plugins.8
Here is another piece of garbage from a previous Wordpress "developer".
This is NOT the generated HTML, it's the actual source code within a custom category template.
The client has said their archives stopped working this year.
*** MASSIVE FACE PALM ***16
Sometimes I have really loose the will to live and find myself face palming multiple times.
I added live chat software a web frontend for a client. Very easy job that consisted of pasting in some embed code. The actual software is very good and has native ios/andriod apps - something specifically requested.
I got a call from my client about an hour ago, saying there is a "serious issue with the live chat".
My client stated the live chat won't work when his staff go home. He asked me what my solution to this was.
Saying "wtf" many times to myself I directed him to a settings within the chat software i.e. an "away mode" where an email is sent when no chat agents are available.
This apparently wasn't good enough and said I hadn't followed his brief of "adding life chat software to the website", which I had.
After a lengthy discussion I found the root of his frustration. He'd signed a contract with a client of his own, stating there would be 24/7 support via live chat on the website.
Obviously there a huge difference between adding a chat widget to a website and committing to having it manned 24/7 :)
After a further 10 minutes of trying push the blame on myself, the client insisted of having the chat software "appear" as someone was always online, even when they are not (people need to sleep ya know!).
Bu design, the chat software requires at least one agent be logged in before the chat status changes to "online" - why wouldn't it.
After a little while I was seriously wondering why I'm involved in this conversation. I jokingly stated: "Well you could always install Andriod/iOS app on your phone, login and permanently leave it running in background. You'd get lots of notifications, but the site would say the live is always online".
The latter was something I said in jest. To my surprise the client said he'd do that on his own phone going forwards. He actually thanked me for my "resourcefulness", lol.
I'm looking at the same dashboard now and there are 407 pending chat requests - his phone must literally be blowing up notifications :)5
I've just come back from a business networking event. There was a speaker who gave a talk about not wasting time.
On of her points was catching up on emails, from your smart whilst waiting to go into meetings, as that's apparently wasted time.
All I do whilst waiting to go into meetings is read devrant :)
It puts me in s good mood :)3
For the first time in ages I decided to order a takeaway.
Had a quick check on the takeaway's online menu. My order total was going to be £15.60.
I called up to order and the total was apparently £21.40.
I queried this with the member of staff and mentioned I got the prices from their online menu.
I was told the online menu was "slightly out of date".
When I got into the takeaway to pickup my order I got speaking to the owner. He said the menu on their site was from 2009. He stressed updating the menu was on their list of things to do.
Spent the last 3.5 days developing none stop for a client. Met all their additional deadlines and requirements.
It's been worrying me for for a month.
I'm now seriously happy and relieved.3
So last night was a Friday. After leaving the gym I noticed a missed call and a voicemail from my client.
Note this was sent at 21:50 on a Friday night.
My client stated they were "rather disappointed" (to use their phrasing) that I didn't answer. There is no contract that I answer out of hours or any issues with their system.
This morning, I noticed my client followed up with an email. It was a single line saying they found some new AWS services they like to talk about (translate: "I've found some new AWS acronyms that sound cool that I wish to talk about for several hours").
Seriously, clients, sometimes :(4
Me when I actually complete all the goals and deadlines I set for the past week. It's a complete first, but I did it.5
Ok, so when I inherit a Wordpress site I've really stopped expecting anything sane. Examples: evidence that the Wordpress "developer" (that term is used in the loosest sense possible) has thought about his/her code or even evidence that they're not complete idiots who wish to make my life hell going forwards.
Have a look at the screen shot below - this is from the theme footer, so loaded on every page. The screenshot only shows a small part of the file. IT LITERALLY HAS 3696 lines.
Firstly, lets excuse the frankly eye watering if statement to check for the post ID. That made me face palm myself immediately.
The insanity comes for the thousands of lines of JQuery code, duplicated to hell and back that changes the color of various dividers - that are scattered throughout the site.
To make things thousands of times worse, they are ALL HANDED CODED.
When a good developer notes repetition ways to abstract crap away is the first thought that comes to mind.
Hell, when I was first learning to code god knows how long ago I always used functions to avoid repetition.
In this case, with a few seconds though this "developer" could have created a single JQuery handler and use data attributes within the HTML. Hell, as bad as that is, it's better than the monstrosity I'm looking at now.
I'm aware Wordpress is associated with bad developers due to it's low barrier to entry, but this site is something else.
The scary thing is that I know the agency that produced this. They are very large, use Wordpress exclusively and have some stupidly huge clients that would be know nationally.
Wordpress truly does attract some of the most awful "developers" and deserves it's reputation.
If you're a good developer and use Wordpress I feel sorry for you, as you're in small numbers from my experience.
Rant over, have vented a bit and feel better. Thanks Devrant.7
Okay, so I'm in rage mode right now :/
Last week a client of mine absolutely insisted on removing the "irritating delete popups" as they phrased it, against my advice.
In short, when deleting a record, I had a sexy "swal" confirmation appear (see https://limonte.github.io/sweetaler...) with some key data from the record, that prompted the user to confirm the action.
The client has now emailed me with the subject "URGENT, please read ASAP!!!". The email says his staff has deleted lots of records incorrectly.
*** face palm ***.
This is EXACTLY why we include delete confirmation prompts.
As I've used Laravel with soft deletes (luckily for my client) it shouldn't be a huge issue to reverse around 400 deleted records. However, I'm charging my client for half a days work out of principal.
Perfect example of my client not listening to me :(6
The screen I'm looking at that is supposed to be the documentation portal for an API I need to consume :(4
"Ultron brings to you the best in security and encryption, directly taken from IE 5.5."
The day I discovered I have a limit to the amount of crap and abuse I can take. The following day I handed in my notice at a place I had worked for 7 years. That was 3.5 years ago, have been happily freelancing ever since.1
Me when I finally get my client to move away from shared hosting to a vds and being able to use git on the server.
So, at the start of November last year I completed a big system for a client. It took me months to complete.
Most frustrating was the sheer amount of pressure the client applied to get it completed. Emails every day, phone calls where the client was "checking" on my progress etc etc. All the annoying stuff.
Only plus side was the fact they paid in full a few after is was completed.
I've just released the system is still on a test AWS account and I haven't heard from the client for well over a month now.
I've just logged into the system and took a look at the logs. The client logged in once the day it was completed and hasn't done anything since.
I mean what was the point of all the pressure if they were just going to let the thing gather dust?
I'm pretty annoyed to be honest as I experienced a few fairly borderline stressful months due to that project.
Ah well, the image below was me after looking at the system logs :)2
So my client had a simple request a few days ago.
It read: "can you update the bottom middle image on the about page grid to the attached image".
There were two issues with that that my client cannot seem to comprehend - even after I have emailed them clearly explaining the issues.
The about grid is 4 x 4. Not sure how they expect me to update the "middle image" in a 4 column row, but alas.
The second issue was a little clearer. The attachment they mentioned wasn't an image. It was an empty .txt file.
2 consecutive fails right there :)2
Inherited some rather odd code this morning. The previous developer has religiously added comments throughout stating how many hours he's spend to get to a certain point.
E.g. I'm half way through a service class and he's added
// Total hours to get here: 9
It's seriously weird2
Security fail here. I've just started a PPI claim and have been provided a link to a so called "very secure" client area.
There are no username or passwords and the screenshot is not a first time sign up screen.
All I need to login is a surname, postcode and DOB - all information easy enough to find online.
Pretty bad IMO, esp, so considering the effort required to add a proper login using a username/password combination.
I mean I'm logged in now and have no option to set an account password :|3
Long time ago had a really painful client. Everyone had an attempt at training the said client. However, the client just didn't get the system at all and kept asking lots of questions.
It got to the point where one poor developer had to make a set of screencasts of him using the system and performing basic operations.
I recall how absolutely insane it was that in addition to the hours of trading time we had provided we were sending him links to video files we'd created.
It was literally face palms all around and so bad it was sort of funny.2
So, according to my customer, the internal app I just released is "far too aggressive and not overly polite to users".
After querying this the client was referring to validation error messages.
Where I've wrote "Set a payment method before creating the order", the client would prefer it to be ""Please set a payment ...".
I guess it's a fair enough observation, but the client's phrasing made me chuckle :)3
It's pretty common the hear developers moan about JQuery being imported to select an element. That's fair enough and I've sighed inside about that myself before.
528KB of that file is the Loadash library (which is excellent btw). The actual site uses the "join" function (https://lodash.com/docs/4.17.4#join).
I mean seriously wtf, face palms all around.
JQuery, for all it's faults is always cited in such circumstances i.e. being used unnecessarily. However, such things are not limited to Jquery alone unfortunately.
I'm now going to do some serious optimization and cut a 600KB file to ~80KB.
*** facepalm ***4
OsCommerce is literally the most awful piece of software ever. Granted, I'm migrating a version from 2007, but even still.
The admin area has a screen to set related products to a target product.
The page takes an age to load, even longer to save and is god awful to use from a UI POV.
Why may you ask?
The OsCommerce devs decided to display a flat list, which check boxes of ALL products in the database.
So for the site in question, that's a single list of 167,000 products, without pagination. Some of the worst development/design on a single page I've seen since last week when I inherited a god awful butchered Wordpress site :|
Just inherited a HR backend written in Laravel. However, ALL database interaction is done using DB::raw() i.e.
$results = DB::select( DB::raw("SELECT * FROM tbl WHERE col = '$fromThe QueryStringLOl'") );
No models at all :(
I really hate api response variable names like this. I mean why type "targetitemid" when "target_item_id" is so much more readable?8
I've had a pretty stressful week and I'm fairly close to burnnout.
I have Spotify running on one monitor and GitKraken (dark theme) running on the other.
A naff song begins to play on Spotify so go to open an alternative playlist.
Clicking upon any song title doesn't do anything at all.
After a couple of minutes of think WTF realized I was clicking upon commit messages in GitKraken.
I need to get some sleep. :/1
Me when after a client has signed a spec document and they still try to add more features. Cannot find words to explain how much I hate scope creep.2
I hate IT managers, how on earth some become ant form of manager is beyond myself.
I have a server with a hardware firewall. A client, based in the UK, with French offices is saying the server blocking their new French IP. I white-listed their IP address, still no luck.
That was a week ago.
After 4 international phone calls and nearly 30 emails I resolved the "issue".
Their so called "IT Manager" sent over the wrong IP. Instead of it starting with 46.* he sent over an IP starting 42.*, which was in fact being correctly blocked.
Suffice to say I charged the client a lot of money for the wasted time and international rate calls.2
I'm raging all over the place at the moment. I've just inherited possibly the worst PHP project (Codeigniter) in 10 years.
Apart from the fact that the previous developer has created 87 different header and footer files (same content, but each screen has different footer file for some reason, i.e. footer-login.php, header-login.php, footer-profile.php, header-profile.php etc.), he seems to like adding the following comment all over the place: "Released under MIT license: http://opensource.org/licenses/..." to some how protect is shitty code. I mean take a look at the below of some high quality,propriety Jquery he's written, under MIT.4
So, a few weeks ago I was asked by a client to add a cookie consent popup.
Specifically the site must not track the user via Google analytics until they consent.
All fine and I added the normal popup bar at the top the screen.
The client asked me make this smaller and place it into the bottom right hand corner, as to not "scare visitors". After some design hanged on his end the message ending up being 80px side. I.e. tiny.
Weeks later the client is now moaning about decreased traffic levels in analytics.
This is to be expected as cookie message can barely been seen.
Literally swear I despise flash. So, had a small job to update a page that consisted of a list of members, clicking on a members name will populate an adjacent div with 3 or 4 contact names. Simple stuff on the face of it.
However, it turned out the previous developer had decided to use flash for this, meaning there is a horrible .swf plonked into the page.
I mean seriously, why can't things be simple? :(2
So I'm working alongside a very big development house that specialises in vehicle finance. They are huge - 60 plus developers, only work in pairs, have a minimum fee of £2500 per day and work with all the largest car manufacturers.
However, today they decided to completely change their api sub domain and all api routes that handle finance quotes. No warning at.
Of course sites I'm working on that consume this consume the said api are broken too.
To make things worse, my client pYs this company circa £19000 per year to use their api. I also recently discovered that the client is paying for their so called managed service. Insanity.
I mean seriously. This company has 4 layers of project manager and 3 forms of a senior developer. According to companies house their turnover is in excess of £4 million per year.
However, they get the basics wrong and do not warn in advance of major changes to their core api service.
Off I go to deal with 10 of project manAgers and support people in the hope if speaking to someone who can actually help.4
Arghhhhhhhh! What the hell is becoming of today's world?
So I have registration form that relates to parents signing up for a service and asking for ages of their children. Children are never older than 5 years old.
So, for each child the user specified the child's sex/gender (Boy or girl) and their age.
I'm still in disbelief over my client's request, that is marked "urgent".
I basically need to add to the list of options, as "boy" and "girl" are no enough and the question is now "too limiting".
I apparently need to add several more options including: "prefer not to specify", "geneder neutral", "bigender" and "genderfluid".
I mean how can a child aged 5 or less identify as "gender neutral" or "bigender" - how on earth are they able to decide.
Fine, if you're an adult and signing up to something like Facebook, have your 80 odd options. But for children under 5 how have no idea wtf any of this means, stuff like this really annoys me.18
So, today timestamps within my database saved me. I have one titled "created_at" to indicate when the item was originally created.
Today a large client called up to complain that they have 296 bookings but only 288 menu choices (each booking has a menu choice). Basically, saying I'd "programmed it wrong [sic]" :(
After taking a quick look at the date the client originally added the menu and the date the missing bookings were created, I made a discovery.
It turned out the client was at fault. They had set an event (customers book events and bookings have a menu choice) live without associating the menu. This meant the event had been live without a menu for customers to book.
I simply compared the timestamps of the missing bookings to the date the menu was originally added. The customer most likely made the event live for period (I estimate ~45 mins), realised they hadn't associated a menu and then added it afterwards. Of course at this point it was too late as people had already booked.
No need for a huge email either. I condensed the above into a 5 sentence email.
Timestamps are soooo useful1
From the bottom of my heart I swear the thing that frustrates me the most in this industry is over complicating simple things. Making simple ideas overly convoluted makes me cry.
I mean why have a dedicated Windows server, that you login to via Windows Remote desktop, just to edit a Word document in a bespoke program that is running running Microsoft Word inside it anyway. Why not just just Word? Why spend a year developing such a system for a problem that simply doesn'y exist.
I asked what benefit this has over me just editing a Word file myself on my laptop. In short, their answer was none.
The other apparent benefit to the system was the ability to jump to specific parts of the document. Well after showing them how to do a table of contents, they saw no need for their existing system.
I'm amazed sometimes how simple ides get discussed to death, unnecessary mammoth systems get built, that ultimately solve a problem that does not exist.
When a client absolutely insists on me using Wordpress for a stupidly bespoke and complicated system that "they will be ultimately selling commercially and just needs to work".1
It's absolutely infuriating chasing overdue accounts. Seriously annoyed at the mo and need to dev rant.5
Just logged into clients hosting account with host gator. I'm greeted with masses of adverts and up sells.
Few mins later I login to clients go daddy account. Yet more adverts and overly invasive up sells.
I hate bulk cheap hosts like this :/
Cannot wait to logout.4
Not so much of a rant but recommendation.
Have been listening to a completely epic Spotify playlist all day today whilst coding - "RetroWave / Outrun".
It's really good for keeping my concentration :)10
This is some production code of a completely butchered Wordpress site I have been forced to work on (the previous developer managed to break the site so the archives section failed to work).
Words literally fail me.1
Co-worker: So if you were to build a glove like what Ultron had that could levitate objects how would you do it?
Me: I'm not sure, but I'd begin by looking at the work Ed Leedskalin was doing in Florida.
Co-worker: Of course you have a possible lead on this...
To my surprise I'm actually on target with my ongoing projects. Going to have a decent amount of time off this Christmas.1
Me when a client who will listen reason insists on me sending files as email attachments in .zipx format. :(
After writing my first php script that displayed a random forum signature image. Took me far too long but the end result was worth it.
Felt proud after my first mini refractor that automatically picked up images from a folder on my geocities web hosting lol.
Cannot tell you how much win I felt at the time :)1
I think my HDD just imploded on itself....sounded like the Age of Ultron Sarcovia imploding blackhole scene was happening inside of my rig.
Half asleep on my desk and that noise scared the shit out of me. It was one of my redundant drives so everything should be okay...but still, I'll have to check in the morning and see if anything else got fucked. I'm scared to look - Tomorrow Rundle's problem.
Goodnight devRant <33
There have been a few :)
If say it's a videos utter project I initially though was good. Apart from loading a view the controllers didn't do anything - my initial thought was some magic was happening behind the scenes.
However, when I opened up the view things changed.
ALL the business logic happened in the view. Everything. Form processing, consuming an app, file uploads, validation, crud ... You name it, it happened in view. The developer created a raw MySQL connection and build his queries by concatenation g strings, the whole system was wide open to sql injection.
Even more annoying was the "source control" he invented. Every file had several copies. I.e. "User(working).php", "user_v3.php" and even "user(working_no_profile_fields_1.php". It wasn't even like there was any consistency in what file was actually used either. A complete mess. The system had around 69 screens too. No idea how the developer got that gig.2
I will train myself to be an avenger. In case things went wrong like ultron.
Anyone wanna join me?
Write your superpowers.3
Okay, so have just been having a play with Mailgun's webhook functionality (a client finally has a decent use for these).
I setup a test endpoint that sends a mail via Mailgun and then handles the POST data too. It emails myself the raw POST request response from Mailgun when I open the email. Mailgun fire an event their end when they detect the message has been opened.
All is good apart from Mailgun are posting multiple requests for each event, which is annoying.
After an hour messing around and getting annoyed I have a complete face palm moment.
In my test script Mailgun is called is send my notification email! So I'm creating multiple events for the same test message.
i.e. send original message, receive post back from Mailgun to my endpoint, my script then emails me the result using Mailgun. The latter itself generates its own events again.
Sooooo stupid of me to not notice something so obvious :(1
Just running a backup script that will take a while to complete and decided to create myself s nice progress bar, using pv.
Have just wasted 10 minutes starting at the said progress bar :(
Really hate working on front end sites where the designer has no idea how to use Twitter Bootstrap.
Instead of using SASS to customise the framework they have included the entire library and their owned CSS file titled "custom.css".
"custom.css" has 768 lines on plain css (not SASS) that simply overrides Twitter Bootstrap CSS.
Me, every time I get the chance the use PHPs most overdue function, or the null coalescing operator (??). Every little bit helps :)3
When overtime gradually becomes the norm and the solution to all problems. Made the nearly quit several times. Eventually did and opened my own business.
Clients who deem it necessary to copy in 16 of their colleagues on every email to myself a project.
Kinda annoys me how pretentious that is.
Where has the Fira code font been all my life? It's epic and free.
Nearly spent £150 on the operator font.4
I'm really beginning to hate css3 and all the new WebKit style effects. They are literally making loads of sites unusable imo.
Why, every time a page loads, does everything need to slowly animate/transition in. It's sooooooo annoying.
It's nearly as bad when Jquery first made it easy to fade events in.
I'm such a fan nowadays of I fussy websites where the content just displays.6
Sometimes I really hate laravel when a new version appears. I'm actually sitting here considering updating projects from a few months ago that are absolutely fine.
God dam laravel and its silky features.
Okay, it's a Saturday morning. Have just received two emails from.a client.
They're also g why an email they sent your ago hasn't been actioned yet. It's 10am on a Saturday morning.
I'm sure some clients assume you literally never stop working:/
This invite to an ElasticSearch webinar is epic:
I'm literally and truly done with Vagrant machines built using puphpet.com (Docker has since replaced Vagrant for me).
I just tried to spin up a project from about a year ago. The machine fails to work, spitting out loads of unhelpful Ruby related nonsense.
After an hour of buggering around and because I really need to get this update done I decided to try my luck and get scotchbox a go.
Within 10 minutes I had a working Vagrant machine and the said site up and running.
To me puphpet.com is like a single use Vagrant machine. It will work once but don;t expect me to work in a few weeks.
Machine built using puphpet.com can go to hell. So much time wasted.2