Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Lumpy
Apr 26, 2002

La! La! La! Laaaa!



College Slice

Ruggan posted:

I pushed some minor changes to one of our customer-facing websites yesterday. This website is essentially a project management & task tracker for our clients - it isn't a core part of our business but supports groups who buy and need to implement our software. One of those changes involved adding a column to a CSV extract you can pull from the app's UI. We don't expose any sort of API endpoint, you need to get it from within the tool. I got a complaint this morning from one of our employees who is staffed to some organization that was "surprised" by the change. Apparently this organization is doing some scripting automation to pull down their data via the extract and post-process it. Adding this column broke their script.

I'm not sure I'm comfortable committing to support code-writing end-users, but it brought up a few questions that I'm interested in hearing from other folks on:

  • Is versioning a web-app valuable, beyond marketing purposes? If yes, what versioning method do you use?
  • Is the code-writing end-user someone that is worth providing explicit support for even when we do not provide a public API?
  • What would you consider the public API of a website? (relevant article here)
  • What constitutes a major change, minor change, and patch to a website (applying the SemVer mental model)?
  • What sort of proactive communication do you feel is necessary for varying degrees of change?

If you were actually updating an API, I'd answer your questions, but since it's a website, there's no need. Them scraping your site is their problem, not yours.

Adbot
ADBOT LOVES YOU

sunaurus
Feb 13, 2012

Oh great, another bookah.

Ruggan posted:

Is versioning a web-app valuable, beyond marketing purposes? If yes, what versioning method do you use?

Yes, for correlating builds/tickets/exceptions/logs etc.
Lately I tend to just use my CI build numbers as versions - even if I rebuild again from a commit I already built, I just consider it a new version to keep things simple (even though, in theory, all of my dependencies have their versions locked, I doubt that all of my builds are fully deterministic).

Ruggan posted:

Is the code-writing end-user someone that is worth providing explicit support for even when we do not provide a public API?

Providing a public API and providing explicit support for an internal API are pretty much the same thing. It's worth creating public APIs for end-users who will pay for them.

Ruggan posted:

What would you consider the public API of a website? (relevant article here)

If no other agreements are in place, then I would never consider anything but the UI to be the public API.

Ruggan posted:

What constitutes a major change, minor change, and patch to a website (applying the SemVer mental model)?

I don't think there's any reason to use semver for a normal website. It makes sense for actual APIs, but even then it's usually overkill. Do your the end-users of your API care if there's a non-breaking change? If they do, you might want to consider a minor version number, but if not, you can just stick to having a major version that you only increment for breaking changes.

Breaking changes are pretty obvious: changes in URIs, changes in request formats, changes in response formats.

Ruggan posted:

What sort of proactive communication do you feel is necessary for varying degrees of change?

Keep track of all systems that depend on your APIs (give them unique API keys and make sure to have a mapping of API keys to some sort of contact information). If you want to deprecate an older version your API, it's also useful to know if it's ever actually used at all, so keeping track of historical request statistics is also be a good idea, and you can find out exactly who is using which API endpoint by forcing everybody to use API keys. When you release a new version, keep the older versions around if at all possible, and communicate to all known users that the old version is deprecated and will be turned off at X date.

Ruggan
Feb 20, 2007
WHAT THAT SMELL LIKE?!


Lumpy posted:

If you were actually updating an API, I'd answer your questions, but since it's a website, there's no need. Them scraping your site is their problem, not yours.

Yeah, this is how I feel, but trying to be sensitive that they're paying us a lot for software whose implementation uses this tool. I don't think they care that the change was made, just wanted forewarning.



sunaurus posted:

Providing a public API and providing explicit support for an internal API are pretty much the same thing. It's worth creating public APIs for end-users who will pay for them.

If no other agreements are in place, then I would never consider anything but the UI to be the public API.

At this point we aren't charging, and I don't think we'd want to go down that route, but maybe?


sunaurus posted:

Keep track of all systems that depend on your APIs (give them unique API keys and make sure to have a mapping of API keys to some sort of contact information). If you want to deprecate an older version your API, it's also useful to know if it's ever actually used at all, so keeping track of historical request statistics is also be a good idea, and you can find out exactly who is using which API endpoint by forcing everybody to use API keys. When you release a new version, keep the older versions around if at all possible, and communicate to all known users that the old version is deprecated and will be turned off at X date.

Definitely makes sense if I were developing a public API, but I'm not. I'm a consumer of a handful for various projects so what you said there makes total sense to me and is what some of those groups do.

NotWearingPants
Jan 3, 2006

by Nyc_Tattoo
Nap Ghost

Lumpy posted:

If you were actually updating an API, I'd answer your questions, but since it's a website, there's no need. Them scraping your site is their problem, not yours.

Well, they are providing a CSV file. I think you have to expect people to use it for more than opening in Excel. I don't think the fact that are automating the download makes a difference. The changed format could break any import procedure someone had set up, whether they are downloading it manually or not. And it's not like these are just random users, they are clients who buy poo poo. It might not be a bad idea to send an email to the employees that deal with the clients notifying them of the change. At least then it's their responsibility if someone complains.

MrMoo
Sep 14, 2000

I would consider the CSV generation should be behind a versioned API and fed into the UI. Then at least you have support for making UI changes, having different concurrent UI versions for your own better management. The API does not need to be public, although it could always be raised to clients using it and note in contracts as a line item.

oliveoil
Apr 22, 2016
I have a really hard time taking a set of wireframes or mocks and turning it into matching html + css.

Is there any good resource for web development for a backed software engineer who wants to be able to handle frontend?

I can do backend stuff no problem but I will spend two hours of trial and error trying to do basic tasks like figure out why an anchor tag won't center in the middle of its container even though I thought I understood the flexbox cheatsheet I re-read right before starting, then spend another three hours trying random poo poo to figure out how to remove the text decoration from it and make it inherit the color of the container since the container may be in multiple states with different colors for its contents and I had no idea I needed to use the text-decoration or inherit keywords and I didn't see anything on stack overflow for that till I happened to rephrase my Google search in just the right way.

I had a big UI project late last year that resulted in me getting complaints about my slow performance from a teammate and my manager asking if I wanted to stay here and what my future plans were.

I was pretty much at the end of that UI project at the point when those complaints started coming in so I was soon able to get backend stuff and start making fast progress again, but this seems like a major weak point of mine that I don't know how to address.

I always thought I could do literally anything given time, but it seems that there's a big difference between getting something done very fast and getting something done very slow. Backend stuff, code flies from my fingertips faster than my teammates review it and I develop a backlog of stuff they have to churn through. But frontend stuff, I get similar sized changes out every 2-3 days instead of 3-5 times per day.

What do I read to get me ready to become a web dev expert? I want to get just as fast if not faster at web stuff than I am at backend stuff.

Lumpy
Apr 26, 2002

La! La! La! Laaaa!



College Slice
Go to Dribble or other site where people post UIs. Pick one. Make it. Pick another. Make it. Just do it enough that you've solved all the little corner cases and annoyances so many times that you aren't starting on square one every time you hit a snag. If you have any specific problems that caused a great deal of wasted time, I'd be happy to talk through how I'd think about them / approach them. Heck, I'd even do a walkthrough of a Dribble UI with you if you want.

Thermopyle
Jul 1, 2003

...the stupid are cocksure while the intelligent are full of doubt. —Bertrand Russell

Also, once you start feeling pretty good about your abilities go to a site like the following and realize you know nothing.

https://tympanus.net/codrops/category/tutorials/

Null of Undefined
Aug 4, 2010

I have used 41 of 300 characters allowed.

Thermopyle posted:

Also, once you start feeling pretty good about your abilities go to a site like the following and realize you know nothing.

https://tympanus.net/codrops/category/tutorials/

Please note: Never ever show this site to a product owner or designer.

FormatAmerica
Jun 3, 2005
Grimey Drawer

Null of Undefined posted:

Please note: Never ever show this site to a product owner or designer.

Or client or junior dev with too much time.

uncle blog
Nov 18, 2012

In React, what's a good way to implement a button that needs to be pushed for a couple of seconds to have an effect? And also set a css class on initial push to animate that it is reacting/waiting.

Lumpy
Apr 26, 2002

La! La! La! Laaaa!



College Slice

uncle blog posted:

In React, what's a good way to implement a button that needs to be pushed for a couple of seconds to have an effect? And also set a css class on initial push to animate that it is reacting/waiting.

There's a lot of variables that will change the answer (Do they have to keep the mouse over the button, etc.) but add a mouse down handler that kicks off a timer and hangs on to the ID, have a mouse up handler that kills the timer based on that ID. If the timer goes off, you're a winner! You can use the ID hanger-onner to set your class name.

prom candy
Dec 16, 2005

Only I may dance

oliveoil posted:

I have a really hard time taking a set of wireframes or mocks and turning it into matching html + css.

Is there any good resource for web development for a backed software engineer who wants to be able to handle frontend?

I can do backend stuff no problem but I will spend two hours of trial and error trying to do basic tasks like figure out why an anchor tag won't center in the middle of its container even though I thought I understood the flexbox cheatsheet I re-read right before starting, then spend another three hours trying random poo poo to figure out how to remove the text decoration from it and make it inherit the color of the container since the container may be in multiple states with different colors for its contents and I had no idea I needed to use the text-decoration or inherit keywords and I didn't see anything on stack overflow for that till I happened to rephrase my Google search in just the right way.

I had a big UI project late last year that resulted in me getting complaints about my slow performance from a teammate and my manager asking if I wanted to stay here and what my future plans were.

I was pretty much at the end of that UI project at the point when those complaints started coming in so I was soon able to get backend stuff and start making fast progress again, but this seems like a major weak point of mine that I don't know how to address.

I always thought I could do literally anything given time, but it seems that there's a big difference between getting something done very fast and getting something done very slow. Backend stuff, code flies from my fingertips faster than my teammates review it and I develop a backlog of stuff they have to churn through. But frontend stuff, I get similar sized changes out every 2-3 days instead of 3-5 times per day.

What do I read to get me ready to become a web dev expert? I want to get just as fast if not faster at web stuff than I am at backend stuff.

A lot of people act like implementing layouts with HTML and CSS is easy but it can be really tricky! See if you can find some screencasts of people doing exactly what you're talking about. You can pick up a lot of tips just watching how someone else tackles similar problems. Also I'm becoming a huge TailwindCSS fan, especially for rapidly building out custom designs, so here's a screencast of its creator building out a custom design with it https://www.youtube.com/watch?v=ZrRRMBaz5Z0

I like this style of video where it's a pre-recorded live stream vs. someone who's just following a script because it's good to see how someone tackles something from start to finish, including sometimes going down the wrong path.

Also post in this thread if you have specific problems, with Codepen or Codesandbox it's really easy to crowdsource your job these days :v:

prom candy fucked around with this message at 02:43 on Sep 13, 2019

oh no computer
May 27, 2003

I'm trying to learn web development in Javascript and to this effect I'm building a simple webapp in Node/Express using mongoose to interact with a MongoDB database. I'm trying to delete everything in a specific collection where some condition is met, so I'm using the deleteMany() function. The mongoose docs seem to indicate that providing a callback function isn't required (that's what the square brackets mean right?), but if I don't provide a callback it's not working properly:

code:
// doesn't work (no error just doesn't perform the deletes)
Comment.deleteMany({
    _id: {
        $in: someArrayOfIDs
    }
});

// works as expected
Comment.deleteMany({
    _id: {
        $in: someArrayOfIDs
    }
}, (err) => {
    if (err)
        console.log("Placeholder message to be replaced by proper error handling at a later date");
});
Obviously I can get it working by just providing a callback, but I'm trying to learn this poo poo and I'm confused as hell as to why one works and not the other.

Edit: just noticed there's a separate JS thread further down, apologies if this should have been posted there.

oh no computer fucked around with this message at 15:39 on Sep 14, 2019

Lumpy
Apr 26, 2002

La! La! La! Laaaa!



College Slice

oh no computer posted:

I'm trying to learn web development in Javascript and to this effect I'm building a simple webapp in Node/Express using mongoose to interact with a MongoDB database. I'm trying to delete everything in a specific collection where some condition is met, so I'm using the deleteMany() function. The mongoose docs seem to indicate that providing a callback function isn't required (that's what the square brackets mean right?), but if I don't provide a callback it's not working properly:

code:
// doesn't work (no error just doesn't perform the deletes)
Comment.deleteMany({
    _id: {
        $in: someArrayOfIDs
    }
});

// works as expected
Comment.deleteMany({
    _id: {
        $in: someArrayOfIDs
    }
}, (err) => {
    if (err)
        console.log("Placeholder message to be replaced by proper error handling at a later date");
});
Obviously I can get it working by just providing a callback, but I'm trying to learn this poo poo and I'm confused as hell as to why one works and not the other.

Edit: just noticed there's a separate JS thread further down, apologies if this should have been posted there.

Given that the explicitly say the ‘options’ argument is optional, but don’t say the callback is, I’m guessing the callback is in fact required. You are correct that in most docs, things in square brackets are optional, but thus wouldn’t be the first set of confusing docs in the world.

oliveoil
Apr 22, 2016
Wow, thanks for all the advice, everyone!

Lumpy posted:

Go to Dribble or other site where people post UIs. Pick one. ...

I'll start by trying to build some dribble UIs. That sounds like fun and I can't believe I didn't think of that!

prom candy posted:

A lot of people act like implementing layouts with HTML and CSS is easy but it can be really tricky! See if you can find some screencasts ...

Oh man that's smart. That sounds like how I learned when I first graduated from college and realized I knew nothing substantial about programming in languages employers actually wanted- I started watching Ruby, rails, JavaScript, and html5+css tutorials where people showed you how to do stuff.

Thanks again, everyone! :D

uncle blog
Nov 18, 2012

Is there a good place to ask UI/UX questions related to web apps?

kedo
Nov 27, 2007

This may be a good spot...

Lumpy
Apr 26, 2002

La! La! La! Laaaa!



College Slice

uncle blog posted:

Is there a good place to ask UI/UX questions related to web apps?

here?

The Fool
Oct 16, 2003


I mean, there's technically this thread, but seriously :justpost:

Lumpy
Apr 26, 2002

La! La! La! Laaaa!



College Slice

The Fool posted:

I mean, there's technically this thread, but seriously :justpost:

This thread has design in the title, therefore it is the objectively correct place. :colbert:

The Dave
Sep 9, 2003

I'm a pretty seasoned product design lead so I can offer you some really opinionated and bad advice.

uncle blog
Nov 18, 2012

Okay, here goes.

We're developing an application that's currently aimed at older people. It's meant to show people a list of suggestion for services that will fit their goals and hindrances. The current mock up has 3 separate pages: goals - where the user selects a singular goal with a radio button. hindrances - the user is shown a list of applicable hindrances (based on the goal) where they can choose from 0 to all. results - a list of suggested services based on the input.

Heres a quick and stupid mock-up that hopefully gets the idea across:



Our very limited testing suggests that some users might want to be able to select multiple goals, and see suggestions for each individual goal. The current way of doing this is hitting the button "Select a new goal" at the end, which will take the user to the goal page. The concern is that the user might feel that the process is repetitive, going through two of the pages multiple times. A suggestion has been to let the user check multiple goals, and then having to go through the hindrance screen multiple times - one for each goal - and then having the suggestions be presented in a vertically scrolling list separated by goal. But I fear this might be overwhelming for our user group. So what we want is a different way to present this form where the user feels that it is easy and intuitive to jump between different goals and the corresponding result pages.

Funking Giblet
Jun 28, 2004

Jiglightful!
I've used this in Senior Living applications for Assessments.


https://surveyjs.io/create-survey/

Lumpy
Apr 26, 2002

La! La! La! Laaaa!



College Slice

My initial train of though ramblings:

Your intuition that having people pick multiple goals at once getting confusing fast is a good one. The current workflow of one goal is straightforward, and should be preserved most likely. If it turns out 80% of your users want multiple goals, then it's time to rethink that.

The Dave
Sep 9, 2003

I could definitely see a retooling to maybe smooth some rough edges. It's hard to fully get a grasp of how the user is getting into this app and what their expectations are. If it's a very wide open "We help you achieve goals" then I could agree with wanting to tell you my interests up front and never having to pick them again.

What if you reshuffled the steps so it was 1 > 3 > 2, and 2 was used to refine the vanilla results?

In my head I can picture "Select all that you're interested in" and then getting to a page with kind of a card view where horizontal swipes will cycle between the categories, and vertically would show me my options, with a smooth way to say I need to refine these results by using the prompts in screen 2.

Unless you could come up with a universal set of roadblocks that could be applied to all at a base level, and then again reveal a deeper roadblock choice after revealing some results.

One thing is for sure, this is a really tricky demo and you are going to have to repeatedly do research, it's critical to getting this right. And you're going to want to get sample of seniors from different environments (urban, rural, burbs, etc.)

The Dave fucked around with this message at 00:06 on Sep 18, 2019

uncle blog
Nov 18, 2012

Thanks for the insight guys! I’ll keep on iterating.

kedo
Nov 27, 2007

I have a big batch of exported content from an old site that needs to be imported into a new site (WordPress). The content is in a CSV, in its raw HTML format. I need to perform some mutations on the content to support the new markup/styles on the site, so for example I need to be able to take a piece of code like this:

code:
<div class="Media--center">
  <div data-picture data-alt="alt text" data-class="Media-image">
      <img alt="image alt text" class="Media-image" src="https://example.com/image.jpg" />
  </div>
  <div class="Media-caption">
    Caption text goes here.
  </div>
</div>
and change it into this:

code:
<div class="ImageContainer">
  <img alt="image alt text" class="ImageContainer-image" src="https://example.com/image.jpg" />
  <p>Caption text goes here</p>
</div>
So nothing earth-shatteringly complex, but enough of a difference that doing it by hand for several thousand pages of content would be a massive pain in the rear end. Any recommendations for how to approach this/tools that might be helpful? Best case scenario I'd like to do the work outside of WordPress, probably locally, so that I can import content and have it Just Work™ if at all possible.

I'm comfortable in JS and PHP and would rather not learn a whole new language just for this one project. I'm imagining some sort of JS that might use something like jQuery for DOM modifications, but I'm not sure what's the best/smartest way to parse, update and save a CSV. I basically need to be able to target a specific column per row, treat that row's content like HTML so I can easily modify it/get attributes without having to resort to regex hell, and then plop new, modified content in its place.

kedo fucked around with this message at 20:13 on Sep 18, 2019

Null of Undefined
Aug 4, 2010

I have used 41 of 300 characters allowed.

kedo posted:

I have a big batch of exported content from an old site that needs to be imported into a new site (WordPress). The content is in a CSV, in its raw HTML format. I need to perform some mutations on the content to support the new markup/styles on the site, so for example I need to be able to take a piece of code like this:

code:
<div class="Media--center">
  <div data-picture data-alt="alt text" data-class="Media-image">
      <img alt="image alt text" class="Media-image" src="https://example.com/image.jpg" />
  </div>
  <div class="Media-caption">
    Caption text goes here.
  </div>
</div>
and change it into this:

code:
<div class="ImageContainer">
  <img alt="image alt text" class="ImageContainer-image" src="https://example.com/image.jpg" />
  <p>Caption text goes here</p>
</div>
So nothing earth-shatteringly complex, but enough of a difference that doing it by hand for several thousand pages of content would be a massive pain in the rear end. Any recommendations for how to approach this/tools that might be helpful? Best case scenario I'd like to do the work outside of WordPress, probably locally, so that I can import content and have it Just Work™ if at all possible.

I'm comfortable in JS and PHP and would rather not learn a whole new language just for this one project. I'm imagining some sort of JS that might use something like jQuery for DOM modifications, but I'm not sure what's the best/smartest way to parse, update and save a CSV.

Depending on how complex these mutations have to be you should be able to do a lot with regex and find+replace in your editor of choice.

kedo
Nov 27, 2007

Null of Undefined posted:

Depending on how complex these mutations have to be you should be able to do a lot with regex and find+replace in your editor of choice.

Some of them are going to be fairly complex, and if I've learned one thing in all my years of web development, it's to never try to parse HTML with regex.

NotWearingPants
Jan 3, 2006

by Nyc_Tattoo
Nap Ghost
I did something like that a few years back in PHP with DOMDocument: https://www.php.net/manual/en/class.domdocument.php . It's been a while but I used the loadHTML method and then found it was pretty easy to manipulate stuff following the examples.

I'm sure NodeJS has something similar.

kedo
Nov 27, 2007

NotWearingPants posted:

I'm sure NodeJS has something similar.

You are correct! I ended up writing a simple Node script that uses PapaParse to convert CSV data into JSON, and then JSDOM and jQuery to parse and translate the HTML. Thanks for the input, though!

NotWearingPants
Jan 3, 2006

by Nyc_Tattoo
Nap Ghost
The person who first came up with CRUD could have easily gone with CURD instead. I think I would have chosen the later. I wonder if they regret it.

Ola
Jul 19, 2004

NotWearingPants posted:

The person who first came up with CRUD could have easily gone with CURD instead. I think I would have chosen the later. I wonder if they regret it.

He went with CURD first, then updated it to CRUD before reading his mistake.

Lumpy
Apr 26, 2002

La! La! La! Laaaa!



College Slice

NotWearingPants posted:

The person who first came up with CRUD could have easily gone with CURD instead. I think I would have chosen the later. I wonder if they regret it.

They knew all software was poo poo and embraced it.

uncle blog
Nov 18, 2012

Is it possible to use JS components in a TS React app? Trying to import a custom JS component to a TS one gives me the error "Could not find a declaration file for module [path to my component]".


Edit:
Decided to rewrite the component to TS, ran into new problems.

The component is a custom button, which takes in some props. One of which is a onClick parameter, which it in turn passes on to its button element.

Like this:
code:
// MainPage.tsx:
<NavButton name="Go back" onClick={() => goBack()}>
	Go Back
</NavButton>

// NavButton.tsx
interface NavButtonProps {
  	children: ReactChild;
	name: string;
}

const NavButton = (props: NavButtonProps, { ...otherProps }) => (
	<button	{...otherProps}>
		{children}
	</button>
)
This gives me the error:
"Type '{ children: string; onClick: () => void; }' is not assignable to type 'IntrinsicAttributes & NavButtonProps'.
Property 'onClick' does not exist on type 'IntrinsicAttributes & NavButtonProps'.

Do I have to declare onClick somewhere?

uncle blog fucked around with this message at 09:55 on Sep 24, 2019

prom candy
Dec 16, 2005

Only I may dance
You need to add onClick to the NavButtonProps interface

SimonChris
Apr 24, 2008

The Baron's daughter is missing, and you are the man to find her. No problem. With your inexhaustible arsenal of hard-boiled similes, there is nothing you can't handle.
Grimey Drawer
Anyone else suddenly having a problem with the window.print function in Chrome? A few days ago, all of my printing buttons, who call window.print from javascript, abruptly stopped working in Chrome. They still work in Edge, and also, bizarrely, in an incognito window in Chrome. The problem only occurs in a normal Chrome tab. Nothing happens when calling the print function. The print dialog is not shown, and no error message is displayed in the console or anywhere else.

CTRL-P works just fine, but I often adjust the layout programmatically before calling print(), so that's not even a good workaround.

I know it is not just me since I now am getting calls from clients complaining that their print buttons are not working either. I can't find anyone with the same problem on StackOverflow or anywhere else. I am completely at a loss here.

Edit: Clearing cookies and cached data caused the problem to disappear. I would still very much like to know how a cookie and/or cached file can prevent the print dialog from opening.

SimonChris fucked around with this message at 17:26 on Sep 24, 2019

NotWearingPants
Jan 3, 2006

by Nyc_Tattoo
Nap Ghost
It might have been interesting to try a window.print() from the console to see if the problem might have been with the buttons and not the print function.

Adbot
ADBOT LOVES YOU

SimonChris
Apr 24, 2008

The Baron's daughter is missing, and you are the man to find her. No problem. With your inexhaustible arsenal of hard-boiled similes, there is nothing you can't handle.
Grimey Drawer

NotWearingPants posted:

It might have been interesting to try a window.print() from the console to see if the problem might have been with the buttons and not the print function.

I tested it on a different computer, and window.print() doesn't work in the console either. Clearing "Cookies and other site data" and restarting the browser fixes the problem, both in the console and in code.

The problem seems to have appeared simultanously on every computer accessing the live production app. The same app on localhost works fine. Unfortunately, I have now removed the offending data from my office computer and can no longer reproduce the issue. I think I may be still be able to reproduce the problem on a few other machines if anyone have any ideas.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply