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
MrMoo
Sep 14, 2000

LifeLynx posted:

I'm getting a few requests to add live chat features to sites lately. What's the preferred solution for that?

Try Olark, it used to be very convenient.

Adbot
ADBOT LOVES YOU

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.

MrMoo
Sep 14, 2000

My Rhythmic Crotch posted:

I'm a long time web developer but I have never needed to do a web store, now I've got a side business and I want to sell my widgets. I'm hoping to hear technical perspectives about supporting your own web store. Is it a fool's errand, should I just use Shopify?

If your time is almost worthless and there is no rush to sell anything then DIY. Shopify gets you to market quick and can integrate with oodles of stuff. It has a tiered pricing structure which can significantly increase with functionality though.

If you’re creating a store for services or products, your time should be spent on those services and products, not the means for consumers to get them. Obviously this changes when you get incredibly large, but that’s a good problem to have.

DIY works for wholesale which is not always covered well, ie buying a lot of variations in bulk. But then you can often get away with processing money outside of the website.

MrMoo fucked around with this message at 19:11 on Oct 31, 2019

MrMoo
Sep 14, 2000

Has anyone found less awful ways to cleanup state in a SharedWorker? So far I have to have a webpage hook into the unload event and call a custom API to cleanup, seems so unreliable. Here with Comlink:

JavaScript code:
window.addEventListener("unload", async e => await this._middleware.disconnect());

MrMoo
Sep 14, 2000

Opulent Ceremony posted:

Just got the notice from Google that Chrome Apps are being shut down (in 2022), so looking for alternative platforms for our kiosk media-streaming app is going to be ramping up. We are currently looking at the Amazon Fire Stick.

Have a look at Kramer VIA, so many vendors are awful.

https://www.kramerav.com/us/product/via%20connect%20pro

MrMoo
Sep 14, 2000



I can't be the only dumb rear end ignoring Google warnings about WebComponents v0 disappearing and not knowing what the hell it was. Anyway, it's gone in Chrome 80 aka M80 and whilst looks scary it looks easy to live with.

In my forest of code the webcomponents.js polyfill bundle appears to automagically patch in support lost from the browser, however performance is utterly abysmal. Like multiple seconds staring at a blank page abysmal.

What is awful is getting hold of updates without having to use the garbage NPM system. I failed and setup NPM in a directory and copied out the files. I ended up with these random versions, cannot use Polymer 3.x because it uses ES6 imports, I don't want to rewrite this stuff* to avoid HTML imports. The WebComponents thing is the latest v1 spec branch that similarly uses HTML imports.
code:
webcomponentsjs-1.3.3
polymer-2.8.0
Incredibly minor code fixes as Polymer v2 allows through undefined as a valid value to functions, for whatever reason v1 blocked that.

* I have a LitElement version of some things waiting client to pay for changes rather than get it cheap under "maintenance". Polymer v2 and v3 are actually fundamentally broken and I failed trying to upgrade many times before the full codebase. Google realized this and got excited by competing with JSX and thus create LitHtml and LitElement as future recommended direction.

MrMoo fucked around with this message at 01:10 on Jan 22, 2020

MrMoo
Sep 14, 2000

Like this one?

https://www.w3schools.com/cssref/tryit.asp?filename=trycss3_resize_height

MrMoo
Sep 14, 2000

I found one a while ago, but really small images. Generally a legal minefield as companies get really pissy about how their logos are abused.

There are random things like https://www.brandsoftheworld.com

MrMoo fucked around with this message at 17:53 on Mar 16, 2020

MrMoo
Sep 14, 2000

The Scientist posted:

Should this even be considered a bug that's worth fixing?

If its main purpose is to be a web server then yes, as an ancillary function as long as it is not insecure or crashing you can leave it for a junior or intern to address.

It’s probably one of those things that makes the code more complicated and slower for the only benefit of passing a conformance test.

MrMoo fucked around with this message at 15:50 on Apr 18, 2020

MrMoo
Sep 14, 2000

I just found NW.js, wow people are masochists. NodeJS running in Chromium. Apparently BrightSign digital signage runs on it. Everyone else just runs NodeJS separately and has some communication channel between the two.

MrMoo
Sep 14, 2000

Has anyone got Media Source Extensions (MSE) to work with AV1 in a MP4 container? I'm always getting "source unavailable" errors even though the video plays outside of MSE without issue.

(edit) and awesomesauce, AV1 doesn't have RGBA support either.

MrMoo fucked around with this message at 19:16 on Sep 20, 2020

MrMoo
Sep 14, 2000

LifeLynx posted:

It's not one image, it's a slider. It's 162 KB on mobile because I'm serving smaller images, but I can't compress these images any more than they are for desktop. I hate sliders, I think they're useless and most people aren't going to stick around to watch a few seconds of images of houses slide by.

Sounds like the perfect use case for lazy loading. Also ironic that the platform with higher resolution screens gets the lower resolution images.

MrMoo
Sep 14, 2000

Does anyone actually use JPEG 2000? I was quite surprised to stumble upon a webstore that only uses JPEG 2000's, but hiding as regular JPEGs,

https://www.inthestyle.ie

MrMoo
Sep 14, 2000

The Fool posted:

jesus christ this is a bad opinion, maybe as bad as your opinions on https

It's ironic considering the space shuttle now looks like this and also runs Javascript,



Typescript should be used whenever possible as it can catch some stupid errors. Javascript is a subset of Typescript, so usually an easy win.

MrMoo fucked around with this message at 19:01 on Nov 24, 2020

MrMoo
Sep 14, 2000

Idk how you can make those projects work without major problems and charging by the hour.

MrMoo
Sep 14, 2000

Do you mean looping is baked in the GIF and you just want to remove it? Try any "GIF Optimizer" website, will usually have those options.

MrMoo
Sep 14, 2000

Yup, protobuf in the browser doesn’t have many benefits. I found MsgPack had a good compromise, it’s the combination of decode time and network transit time. JSON is supposedly the best on decode times but the wire speed is inherently costly.

Supporting MsgPack with JSON compatibility is a good option, but also consider you can push decode into a WebWorker thread and not block the UI.

MrMoo
Sep 14, 2000

Data Graham posted:

The hell's the point of $(document).ready() then

It had one job

It's jQuery, it has baggage and bugs. It is supposed to be equivalent to HTML 5's 'DOMContentLoaded' event, try sticking to vanilla JS. It looks like you probably managed to get the 'load' event by accident instead.

MrMoo
Sep 14, 2000

PDF is what Gmail and Google Docs presents, no need to try to be smarter.

MrMoo
Sep 14, 2000


FastAPI docs noted about deny-listing the JTIs, some nuts want to go the allow-list route, which rather defeats the entire concept.

A simpler approach is just to store the latest IAT of each subject JWT. Recycle the tokens and boom invalidate all existing ones.

MrMoo
Sep 14, 2000

It's pretty simple:

1, The third-party site needs to either explicitly allow your domain, or wildcard all domains, or,

2, Implement a proxy on the interwebs that performs the fetch on your behalf, and thus bypasses CORS.

The predominant method is the latter. A collection of fruity management, bad infosec, and terrible programmers.

I have to do this with many finance institutions, it's silly.

MrMoo
Sep 14, 2000

Dominoes posted:

- TS requires a build step and some non-intuitive config, but other than that, is an upgrade over JS.

I cannot believe how much a pile of poo poo any webdev configuration is. A plethora of options and acronyms.

Even basic things like file extensions are still a joke, is it .ts, .js, or .mjs? I'm currently seeing that a module written in TypeScript with relative imports with an assumed extension fails to import to a TypeScript app using import maps because JS has no idea which extension to use. Common workaround appears to be bundling modules into a single file, or directly importing into the app build process.

MrMoo
Sep 14, 2000

camoseven posted:

I have an interview tomorrow for a role I am somewhat underqualified for but REALLY REALLY want. The product is data visualization of real time data streams, and the frontend is written in React. I've been thinking about it and the main issue seems like the bazillions of re-renders that could happen, so I'm thinking a strategy here would be some kind of batching of those rerenders? Like instead of rerendering 10 charts 100 times a second each, you would batch it together and cap it at like 10 renders a second each. Does that seem sound?

Basically I'm asking how I can BS my way through the data viz part so I can focus on my strengths, please help me

They are all garbage so I wouldn't worry too much, it's good to have solutions as they need to hire to get there. Visualisation is always near real-time, i.e. update the screen every 1-5s, backed by an OLAP.

I need a charting library that can render 10 charts at 300Hz, but I'm lucky enough to get a chart to render under 100ms from any third party so far. WebGL ones for finance don't count as they are all lazy and skip filling under the plot.

Rendering server side and streaming SVG is a wonderful workaround if you have the server capacity for it.

Most interesting vendor so far is probably ag-grid, but slightly arrogant youtube piece.

https://www.youtube.com/watch?v=29ja0liMuv4&t=546s

Basically only render what you can see. Maximum of 4 updates per second per number, and reduce to 1 update per second for numbers one is not directly staring at constantly.

You are not really going to get more than 30,000 updates per second without some serious effort, and that most likely needs to be distributed across a pool of WebWorkers to perform business logic processing if not already done upstream. The renderer thread should be only taking preprocessed data and sticking it in the DOM on a RAF callback.

MrMoo fucked around with this message at 02:58 on Nov 17, 2022

MrMoo
Sep 14, 2000

For companies like Tableau, "real-time" can mean as slow as once an hour (https://help.tableau.com/current/online/en-us/schedule_add.htm#create-a-refresh-schedule), and as fast as every 15mins (https://community.tableau.com/s/que...kbook-in-server)

TIBCO is all over the place because they bought so many companies and completely lost their real-time mojo a long time ago. Currently looking like being able to set graph refreshes at 1-120s (https://kb.informationbuilders.com/topic/configuring-automatic-refresh-option-charts-8206).

It's all relative when working with Big Data and not fair comparing with not-Big Data, i.e. SQL stores and similar which offer seconds level of latency.

MrMoo fucked around with this message at 08:20 on Nov 17, 2022

MrMoo
Sep 14, 2000

That’s just “face” though, you have to get them to prove their ability, their word, alas, is meaningless.

MrMoo
Sep 14, 2000

Roadie posted:

Web components suck for a bunch of reasons, but the most obvious one is that they're stuck with string templating for all input and output.

This is not even true. Web components have a shadow DOM which you can treat as a document fragment and thus use any template system you desire with.

Web components are accelerated by the browser and thus inherently faster than any other solution by quite a degree.

MrMoo
Sep 14, 2000

Try and go SSE because it is more friendly to users behind corporate firewalls, has browser driven reconnection, and can technically scale horizontally a bit better. However WebSockets are pretty drat nice, just slightly weird implementations server side.

NodeJS WebSockets are annoyingly not the same as browser WebSockets, Python does it’s own thing sync or async, and C++ land has a plethora of bad options.

I’d recommend never using Socket.IO, it doesn’t don’t really provide any value but certainly has a cost to use.

MrMoo
Sep 14, 2000

Sounds like Fastly? That's supposed to be the near zero config CDN.

MrMoo
Sep 14, 2000

Drizzle ORM is the main one that comes up in search results, although it’s a bit tedious that yet again another layer wants to be the single source of truth for domain models.

https://orm.drizzle.team/docs/zod

Adbot
ADBOT LOVES YOU

MrMoo
Sep 14, 2000

LifeLynx posted:

Twenty years of this and I still don't know how to handle clients who don't know what they want
— snip —

That’s just the human condition, you have to provide say a set of options from templates and use AI to fill in pieces no one will read or care much about.

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