I’ve been assigned a task to update google cloud functions runtime to node 20(currently the runtime is node 14). After reading documentation it seems that I just need to update node in package.json and run gcloud functions deploy FUNCTION_NAME --runtime NODE_RUNTIME. The issue is that one of the functions uses a lot(about 50) npm packages and I can’t update each of them currently. I was wondering if there is another way to update runtime without updating node modules (create a docker) etc. Any advise is greatly appreciated.
Category: javascript
Category Added in a WPeMatico Campaign
how to make an infinite autoplay slider on a website
I’m making a slider that should automatically rotate and the problem is that when rotating, the photos that have been or will be shown remain in the background. also in the background there should be one photo on the left and right, and not 2 as I did
<div class="container">
<div class="slider">
<div class="box" style="background-image: url('img/all-tickles.webp');"></div>
<div class="box" style="background-image: url('img/alligator.webp');"></div>
<div class="box" style="background-image: url('img/code-red.webp');"></div>
<div class="box" style="background-image: url('img/cyndor.webp');"></div>
<div class="box" style="background-image: url('img/dirk.webp');"></div>
<div class="box" style="background-image: url('img/gorilla.webp');"></div>
<div class="box" style="background-image: url('img/nightmare-fuel.webp');"></div>
<div class="box" style="background-image: url('img/panda.webp');"></div>
<div class="box" style="background-image: url('img/pink-panther.webp');"></div>
<div class="box" style="background-image: url('img/tiger.webp');"></div>
</div>
</div>
.container {
width: 40vw;
height: 80vh;
display: flex;
justify-content: center;
align-items: center;
overflow: hidden;
}
.slider {
height: 100%;
width: 100%;
display: flex;
perspective: 1000px;
position: relative;
align-items: center;
}
.box {
width: 300px;
height: 400px;
background-size: cover;
background-position: center;
border-radius: 20px;
transition: all 1s cubic-bezier(0.68, -0.6, 0.32, 1.6);
position: absolute;
}
.box:nth-child(7),
.box:nth-child(1) {
transform: scale(0.2) translate(-50%, -50%);
bottom: 10%;
z-index: 1;
}
.box:nth-child(2),
.box:nth-child(6) {
transform: scale(0.4) translate(-50%, -50%);
top: 20%;
z-index: 2;
}
.box:nth-child(3),
.box:nth-child(5) {
transform: scale(0.6) translate(-50%, -50%);
top: 30%;
z-index: 3;
}
.box:nth-child(4) {
width: 20vw;
height: 40vh;
transform: scale(1) translate(-50%, -50%);
top: 50%;
z-index: 4;
color: #fff;
}
.box:nth-child(1) {
left: -13%;
}
.box:nth-child(2) {
left: -5%;
}
.box:nth-child(3) {
left: 10%;
}
.box:nth-child(4) {
left: 50%;
}
.box:nth-child(5) {
left: 71%;
}
.box:nth-child(6) {
left: 85%;
}
.box:nth-child(7) {
left: 100%;
}
@keyframes firstChild {
0% {
left: 100%;
transform: scale(0.2) translate(-50%, -50%);
}
100% {
left: -13%;
transform: scale(0.2) translate(-50%, -50%);
}
}
document.addEventListener("DOMContentLoaded", function() {
setInterval(rotate, 2000);
});
function rotate() {
var slider = document.querySelector('.slider');
var lastChild = slider.lastElementChild.cloneNode(true);
slider.lastElementChild.remove();
slider.insertAdjacentElement('afterbegin', lastChild);
}
I tried many times to change the code in javascript, as well as css, but nothing changed and left the original code. I will be very glad for your help
Undefined array key in Form Data
I am trying to upload an image using form Data. But the name of the form field server expects is not recognizable.
Warning: Undefined array key “photo”
Below is my code:
index.html
html>
<head>
<script type = "text/javascript" src="index.js"></script>
</head>
<body>
<button onclick="uploadImage()">upload an Image</button>
</body>
</html>
index.js
async function uploadImage(){
const data = new FormData()
data.append('photo',{
name: 'timg',
type: 'image/jpeg',
uri: 'C:UsersmeaDownloadstestimg.jpeg'
})
return await fetch('upload_image.php',{
method: 'POST',
body: data,
headers: {
'Content-Type': 'multipart/form-data'
}
})
}
upload_image.php
<?php
header('Access-Control-Allow-Origin: *');
$target_dir = "../../images";
$target_file = $target_dir .'/'.basename($_FILES['photo']['name']);
$name = $_FILES['photo']['name'];
if(move_uploaded_file($_FILES['photo']['tmp_name'], $target_file)) {
echo json_encode (
array('message' => 'Image uploaded Successfully'));}
else{
echo json_encode (
array('message' => 'Upload failed!'));
}
?>
I have tried all the available solutions but can not yet find the cause.
Caddy Prerender io integration not working
I have been trying to connect my Vue.js application to Prerender.io so that the SEO bots can crawl and index my pages. I uploaded the sitemap for my website and created an integration with Caddy that is based on the nginx integration. When I run a test of my integration, in chrome, I get a 404 not found error.
here is my code from the integration that I produced.
mywebsite.com {
@prerender {
header_regexp User-Agent "(bot|googlebot|yahoo! slurp|bingbot|yandex|baiduspider|facebookexternalhit|twitterbot|rogerbot|linkedinbot|embedly|quora link preview|showyoubot|outbrain|pinterest/0.|developers.google.com/+/web/snippet|slackbot|vkshare|w3c_validator|redditbot|applebot|whatsapp|flipboard|tumblr|bitlybot|skypeuripreview|nuzzel|discordbot|google page speed|qwantify|pinterestbot|bitrix link preview|xing-contenttabreceiver|chrome-lighthouse|telegrambot|google-inspectiontool|petalbot)"
not path_regexp filetypes /.(js|css|xml|less|png|jpg|jpeg|gif|pdf|txt|ico|rss|zip|mp3|rar|exe|wmv|doc|avi|ppt|mpg|mpeg|tif|wav|mov|psd|ai|xls|mp4|m4a|swf|dat|dmg|iso|flv|m4v|torrent|ttf|woff|woff2|svg|eot)$/
}
reverse_proxy @prerender https://service.prerender.io {
header_up X-Prerender-Token "Prerender-Token-Here"
header_down Cache-Control "private,max-age=600,must-revalidate"
}
reverse_proxy /api* :3000
@notAPI {
not {
path /api*
}
file {
try_files {path} {path}/ /index.html
}
}
rewrite @notAPI {http.matchers.file.relative}
root * path/to/prod
file_server {
precompressed zstd br gzip
}
header Cache-Control "max-age=31536000"
}
Here is the nginx integration that I based the above off of:
# Change YOUR_TOKEN to your prerender token
# Change example.com (server_name) to your website url
# Change /path/to/your/root to the correct value
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
map $http_user_agent $prerender_ua {
default 0;
"~*Prerender" 0;
"~*googlebot" 1;
"~*yahoo! slurp" 1;
"~*bingbot" 1;
"~*yandex" 1;
"~*baiduspider" 1;
"~*facebookexternalhit" 1;
"~*twitterbot" 1;
"~*rogerbot" 1;
"~*linkedinbot" 1;
"~*embedly" 1;
"~*quora link preview" 1;
"~*showyoubot" 1;
"~*outbrain" 1;
"~*pinterest/0." 1;
"~*developers.google.com/+/web/snippet" 1;
"~*slackbot" 1;
"~*vkshare" 1;
"~*w3c_validator" 1;
"~*redditbot" 1;
"~*applebot" 1;
"~*whatsapp" 1;
"~*flipboard" 1;
"~*tumblr" 1;
"~*bitlybot" 1;
"~*skypeuripreview" 1;
"~*nuzzel" 1;
"~*discordbot" 1;
"~*google page speed" 1;
"~*qwantify" 1;
"~*pinterestbot" 1;
"~*bitrix link preview" 1;
"~*xing-contenttabreceiver" 1;
"~*chrome-lighthouse" 1;
"~*telegrambot" 1;
"~*google-inspectiontool" 1;
"~*petalbot" 1;
}
map $args $prerender_args {
default $prerender_ua;
"~(^|&)_escaped_fragment_=" 1;
}
map $http_x_prerender $x_prerender {
default $prerender_args;
"1" 0;
}
map $uri $prerender {
default $x_prerender;
"~*.(js|css|xml|less|png|jpg|jpeg|gif|pdf|txt|ico|rss|zip|mp3|rar|exe|wmv|doc|avi|ppt|mpg|mpeg|tif|wav|mov|psd|ai|xls|mp4|m4a|swf|dat|dmg|iso|flv|m4v|torrent|ttf|woff|woff2|svg|eot)" 0;
}
server {
listen 80;
server_name example.com;
root /path/to/your/root;
location / {
if ($prerender = 1) {
rewrite (.*) /prerenderio last;
}
try_files $uri /index.html = 404;
}
location /prerenderio {
if ($prerender = 0) {
return 404;
}
proxy_set_header X-Prerender-Token YOUR_TOKEN;
proxy_hide_header Cache-Control;
add_header Cache-Control "private,max-age=600,must-revalidate";
#resolve using Google's DNS server to force DNS resolution and prevent caching of IPs
resolver 8.8.8.8 8.8.4.4;
set $prerender_host "service.prerender.io";
proxy_pass https://$prerender_host;
rewrite .* /$scheme://$host$request_uri? break;
}
}
}
When I run the test on Chrome using the User Agent changer under the Network conditions tab, I get a Not Found 404 error. What I should receive is the prerendered page sent from prerender.io.
When I contacted Prerender.io support and they said they can’t help me since they don’t have an official maintained middleware integration with Caddy. Please help!
Embedding API returns status 200 and statusText OK but does not return data
I am sending NodeJs request to OpenAI Embedding API. The response returns me status 200 and statusText ‘OK’ but does not provide me the embedding list of the text.
My Code
try {
await fetch("https://api.openai.com/v1/embeddings", {
"method": "POST",
"headers": {
"Authorization": `Bearer ${OPENAI_TOKEN}`,
"Content-Type": "application/json"
},
"body" : JSON.stringify({
input,
model
})
}).then ( async (rawResponse) => {
console.log("response ", rawResponse)
// console.log("response ", rawResponse.data.data[0].embedding)
console.log("response from open ai" , JSON.stringify(rawResponse))
const response = await rawResponse.json()
}).catch ( (err) => {
console.log ("error at open ai ", err)
})
} catch (e) {
console.log("Error at ", e)
}
}
Response
Response {
[Symbol(realm)]: null,
[Symbol(state)]: {
aborted: false,
rangeRequested: false,
timingAllowPassed: true,
requestIncludesCredentials: true,
type: 'default',
status: 200,
timingInfo: {
startTime: 717.670324,
redirectStartTime: 0,
redirectEndTime: 0,
postRedirectStartTime: 717.670324,
finalServiceWorkerStartTime: 0,
finalNetworkResponseStartTime: 0,
finalNetworkRequestStartTime: 0,
endTime: 0,
encodedBodySize: 212,
decodedBodySize: 0,
finalConnectionTimingInfo: null
},
cacheState: '',
statusText: 'OK',
headersList: HeadersList {
cookies: [Array],
[Symbol(headers map)]: [Map],
[Symbol(headers map sorted)]: null
},
urlList: [ URL {} ],
body: { stream: undefined }
},
[Symbol(headers)]: HeadersList {
cookies: [
'__cf_bm=i5G3g.nPl_2uJLY2uTZ6KTpFC6YOmcnIxvLu95XJ9U0-1705706294-1-AQuKQ25HtTTt/2HQ75sk5+OFvYgJy86JHZbWGOjpN08oW64JcKCfNLNZBlc5Bx9cBerc7JIlN/oRfxzXk/86FSM=; path=/; expires=Fri, 19-Jan-24 23:48:14 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None',
'_cfuvid=mKHeA1p.GJrKNF_5IrK4NPxgAiA1986dHTuy7ZBJkDY-1705706294278-0-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None'
],
[Symbol(headers map)]: Map(22) {
'date' => [Object],
'content-type' => [Object],
'transfer-encoding' => [Object],
'connection' => [Object],
'access-control-allow-origin' => [Object],
'openai-organization' => [Object],
'openai-processing-ms' => [Object],
'openai-version' => [Object],
'strict-transport-security' => [Object],
'x-ratelimit-limit-requests' => [Object],
'x-ratelimit-limit-tokens' => [Object],
'x-ratelimit-remaining-requests' => [Object],
'x-ratelimit-remaining-tokens' => [Object],
'x-ratelimit-reset-requests' => [Object],
'x-ratelimit-reset-tokens' => [Object],
'x-request-id' => [Object],
'cf-cache-status' => [Object],
'set-cookie' => [Object],
'server' => [Object],
'cf-ray' => [Object],
'content-encoding' => [Object],
'alt-svc' => [Object]
},
[Symbol(headers map sorted)]: null
}
}
Sending the same request with curl works!
Also, while you are it, I want to create embeddings for multiple text strings stored in a csv file. Is there a better way that to send one request / row so that I don’t reach the rate limits of the OpenAI
I tried curl request which worked. I am expecting a list of embeddings.
fivem problem mysql please help me fix it

I don’t know where to look for this error because I can’t find the crafting_level line anywhere
If you know the problem, please help, I would be grateful
because this issue prevents you from connecting to the server
How to hide PAT in js file to host it at github Pages
I have a simple html page that connects with a js file and makes api calls to gihub api, Although it works very well in my local environment as soon as I push the repository to github my PAT(personal Authentication Token) on github expires as it is now exposed to public. And my html webpage goes down as now it is not authenticated make calls to api. How can I solve this issue I want to host my html and js file online, but there is no way I can hide the PAT as its only javascript and not nodejs so there is no dotenv. Is there any way??
I tried to change the API key to PAT as chat gpt suggested this but it expires as soon as I push to the github.
Execute a command in host pc cmd from a on my website
I have this project in mind:
I want to create a website that when pressing a <button> executes a specific command (I only need that one) in a cmd window on the PC that is hosting my site (home-hosted). I can deal with the frontend. Can anyone help me with the backend? Thank you
Didn’t try anything because I don’t know backend.
APEX and older ECMAScript versions
Is there a way to force APEX to use older ECMAScript standard during the minification of its .js code?
We are using the version of APEX that uses the optional chaining operator ‘?.’ during the JS minification, but this operator isn’t supported in browsers released prior to year 2020. and this type of compatibility is important to us.
var=42. Use a for loop to go through all numbers from number up to 50 (both inclusive), and check if they are multiples of 3. If they are, print them
var number = 42;
for (var number= 42; number < 50; number++) {
if(number % 3 ==0) {
console.log(number);
}
}
this is Output
>>>>Code is incorrect
The for loop should count to 50 (inclusive)
42
45
48
it’s wrong. I want to know why is wrong? and what I need to do?
How to fix the ‘Unexpected token’ error in svelte js
I created the following code called “Markdown.svelte” using SvelteMarkdown to mimic ReactMarkdown.
<script lang="ts">
import { SvelteMarkdown, RemarkPlugins } from "svelte-markdown";
import remarkGfm from "remark-gfm";
import remarkMath from "remark-math";
import { CodeBlock } from "./Codeblock.svelte";
import P from './P.svelte';
export let content: string;
</script>
<SvelteMarkdown
class="prose dark:prose-invert prose-p:leading-relaxed prose-pre:p-0 break-words"
remarkPlugins={[remarkGfm, remarkMath]}
let:components={{
p: ({childre}) => {
return <p class="mb-2 last:mb-0">{children}</p>;
},
code:({childre}) => {
if (children.length) {
if (children[0] == "▍") {
return <span class="mt-1 animate-pulse cursor-default">▍</span>;
}
children[0] = (children[0]).replace("`▍`", "▍");
}
const match = /language-(w+)/.exec(className || "");
return inline
? <code class={className} {...props}>{children}</code>
: <CodeBlock
key={Math.random()}
language={(match && match[1]) || ""}
value={String(children).replace(/n$/, "")}
/>;
}
}}
>
{content}
</SvelteMarkdown>
But I got the Unexpected token error at <p when the code got invoked:
Markdown.svelte:14:13 Unexpected token,
frame: ' 12 | let:components={{n' +
' 13 | p: ({childre}) => {n' +
' 14 | return <p class="mb-2 last:mb-0">{children}</p>;n' +
' ^n' +**
' 15 | },n' +
' 16 | code: ({childre}) => {',
code: 'parse-error',
stack: '',
loc: {
line: 14,
column: 13,
file: '/home/user/projects/genai-app/frontend/src/lib/components/ui/chat/Markdown.svelte'
},
plugin: 'vite-plugin-svelte',
pluginCode: '<script lang="ts">n' +
...... (the rest of the whole code)
How can I fix the error? I have tried replacing p: ({children}) with p({children}), and put the return line in single quote without any success.
Add search filter input inside the select dropdown in HTML AngularJS
I need to implement search filter inside a select dropdown in angularJS.
I have used ng-options to list down the options and used filter to filter out the data in the search box within the dropdown,
but the problem is that the search box is displaying below select dropdown.
However what I need is when I click the select dropdown, it shows a search filter and below it has all the options and I can filter the dropdown using the input text
(Basically search text should be within the dropdown)
<label class="control-label">My Dropdown 123</label>
<select class="form-control"
ng-options="le as (le.ID ? (le.ID + ' ' + '-' + ' '): '' ) + le.Name + ' ' +'('+ le.ID + ') ' for le in vm.values | filter: searchFilter track by le.ID "
data-ng-model="vm.values"
ng-disabled="vm.isReadOnly">
<option value="">
<input type="search" ng-model="searchFilter.legalEntityName" class="" placeholder="Search"></input>
</option>
<option value="">All</option>
</select>
I read there are options of using <ul>, <l> and ng-repeat ; however I cannot use that since I need to bind the selected option to ng-model after selection.
Any help or advice will be highly appreciated.
Thanks in advance
get JSON from form in javascript
I have this simple form
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>form test</title>
</head>
<body>
<?php
echo "<pre>";
print_r($_POST);
echo "</pre>";
?>
<form id="my_form" action="" method="post" >
<input type="text" name="first_name" value="john">
<input type="text" name="last_name" value="doe">
<input type="text" name="emails[0][address]" value="[email protected]">
<input type="text" name="emails[0][type]" value="home">
<input type="text" name="emails[1][address]" value="[email protected]">
<input type="text" name="emails[1][type]" value="work">
<button type="submit">send</button>
</form>
</body>
</html>
And when I submit the form I see this
Array
(
[first_name] => john
[last_name] => doe
[emails] => Array
(
[0] => Array
(
[address] => [email protected]
[type] => home
)
[1] => Array
(
[address] => [email protected]
[type] => work
)
)
)
which translates to this json
{
"first_name": "john",
"last_name": "doe",
"emails": [
{
"address": "[email protected]",
"type": "home"
},
{
"address": "[email protected]",
"type": "work"
}
]
}
Now, can I get that exact JSON in javascript?
If I add this script
<script>
const my_form = document.getElementById("my_form");
my_form.addEventListener("submit", function(e)
{
e.preventDefault();
const formData = new FormData(e.target);
const data = Object.fromEntries(formData);
console.log(data);
return false;
});
</script>
what I get is
{
"first_name": "john",
"last_name": "doe",
"emails[0][address]": "[email protected]",
"emails[0][type]": "home",
"emails[1][address]": "[email protected]",
"emails[1][type]": "work"
}
I could built it manually, but I’m wondering if there’s a native way of achieving this
Error : Cannot read properties of undefined (reading ‘get’) when enable csrf token in adonisjs
I’m new in Adonisjs and I’m using it for the rest API
when I set ShieldConfig[“csrf”] enabled:true I got this error
"type": "TypeError",
"message": "Cannot read properties of undefined (reading 'get')",
and I’m using the below versions
"@adonisjs/core": "^5.9.0",
"@adonisjs/repl": "^3.1.11",
"@adonisjs/shield": "^7.1.1",
and I add this to start/kernel.ts file
Server.middleware.register([
() => import("@ioc:Adonis/Core/BodyParser"),
() => import("@ioc:Adonis/Addons/Shield"),
]);
when I set ShieldConfig[“csrf”] enabled:false I got no error
Gatsby 404 page not working in production
I have a Gatsby site deployed on cPanel with a custom 404.js page in the src/pages directory. The 404 page works as expected locally, but in production the user is redirected to / when they land on an invalid url. Gatsby build creates a /404/index.html file and a /404.html file as expected from the documentation. What could be causing this and how can I fix it? I have Gatsby v5.12.11
I’ve tried gatsby clean before build command, and I’ve tried using a private browser after every build. I’ve tried adding a .htaccess file in the file manager with the following code:
ErrorDocument 404 /404.html
I’ve tried adding a gatsby-node.js file at the root of the project with several variations of the following code:
exports.createPages = async ({ graphql, actions }) => {
const { createRedirect } = actions;
createRedirect({
fromPath: `/*`,
toPath: `/404.html`,
statusCode: 404,
});
};
Here is my gatsby-config.js file if that makes a difference:
/**
* @type {import('gatsby').GatsbyConfig}
*/
require("dotenv").config({
path: `.env.${process.env.NODE_ENV}`,
});
module.exports = {
siteMetadata: {
title: `test-gatsby`,
siteUrl: `https://www.yourdomain.tld`,
},
plugins: [
`gatsby-plugin-preload-fonts`,
"gatsby-plugin-image",
"gatsby-plugin-sharp",
"gatsby-transformer-sharp",
`gatsby-plugin-react-helmet-async`,
{
resolve: "gatsby-source-filesystem",
options: {
name: "images",
path: "./src/images/",
},
__key: "images",
},
{
resolve: `gatsby-omni-font-loader`,
options: {
enableListener: true,
preconnect: [
`https://fonts.googleapis.com`,
`https://fonts.gstatic.com`,
],
web: [
{
name: `Inter`,
file: "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap",
},
],
},
},
],
};
And here is my gatsby-browser.js file:
import React from "react";
import ThemeContext from "./src/contextWrappers/themeContext";
import ScreenSizeContextWrapper from "./src/contextWrappers/screenSizeContext";
import "bootstrap/dist/css/bootstrap.min.css";
import "bootstrap/dist/js/bootstrap.min.js";
import "@popperjs/core/dist/umd/popper.min.js";
import("./src/styles/global.css");
export const wrapRootElement = ({ element }) => (
<ScreenSizeContextWrapper>
<ThemeContext>{element}</ThemeContext>
</ScreenSizeContextWrapper>
);
Here is my 404.js file for reference:
import Navbar from "../newSrc2/components/navbar/navbar";
import Footer from "../newSrc2/components/footer/newFooter";
import Box from "@mui/material/Box";
import Typography from "@mui/material/Typography";
import Grid from "@mui/material/Grid";
import StyledButton from "../newSrc2/components/styledButton/styledButton";
import logoLarge from "../newSrc2/assets/logoLarge.png";
import { navigate } from "gatsby";
const fontStyle = {
fontFamily: "Inter",
fontWeight: 600,
color: "#424245",
textAlign: "center",
};
function PageNotFound() {
return (
<>
<Navbar />
<Box
sx={{
py: { xs: "15vh", lg: "15vh", xl: "20vh" },
zIndex: -10000000,
}}
>
<Grid
container
width={{ xs: "90vw", lg: "80vw", xl: "70vw" }}
spacing={{ xs: 3, lg: 8 }}
ml={{ xs: "5vw", lg: "10vw", xl: "15vw" }}
>
<Grid item xs={12} lg={6} textAlign="center" my="auto">
<Typography
variant="h1"
sx={{ ...fontStyle, mb: { xs: 3, lg: 2, xl: 4 } }}
>
Sorry!
</Typography>
<Typography
variant="h4"
sx={{
...fontStyle,
m: "0 auto",
width: "100%",
maxWidth: "450px",
}}
>
We can’t seem to find the page you’re looking for.
</Typography>
<StyledButton
sx={{
bgcolor: "black",
fontFamily: "Inter",
borderRadius: "30px",
width: "200px",
color: "white",
mt: { xs: 4, lg: 5, xl: 6 },
}}
onClick={() => navigate("/")}
variant="contained"
>
take me home
</StyledButton>
</Grid>
<Grid item xs={12} lg={6} my="auto">
<img src={logoLarge} style={{ maxWidth: "100%" }} />
</Grid>
</Grid>
</Box>
<Footer />
</>
);
}
export default PageNotFound;
I’ve scoured SO and nothing anyone suggests seems to work, please help!!