Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Регистрируясь, я даю согласие на обработку данных и условия почтовых рассылок.
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Битва героев: RPG - увлекательная игра в жанре РПГ, позволяющая окунуться в невероятный фэнтезийный мир, полный приключений и захватывающих сражений.

Битва Героев: RPG

Приключения, Фэнтези

Играть

Топ прошлой недели

  • solenakrivetka solenakrivetka 7 постов
  • Animalrescueed Animalrescueed 53 поста
  • ia.panorama ia.panorama 12 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая «Подписаться», я даю согласие на обработку данных и условия почтовых рассылок.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
0 просмотренных постов скрыто
tablepedia

Обсуждение внезапно прерванных дружб и поздно сбывшихся мечтаний в статьях про закрытый гештальт (06.07.2024-10.07.2024)⁠⁠

1 год назад

Спойлер: визуализация находится по адресу http://tablepedia.com/dataviz-2024_07_22.htm

9 июля 2024 года пользователем GutalinMySadness была опубликована статья «Гештальт закрыт» по адресу https://pikabu.ru/story/geshtalt_zakryit_11583484

Она собрала за 12 дней свыше полуторамиллионов просмотров, а ответные 8 статей собрали от 124 тыс. до 646 тыс. просмотров.

Примечательно, что во всех этих статьях присутствует хэштег https://pikabu.ru/tag/Гештальт

Теперь показываю визуализацию данных о о просмотре статей на тему «Обсуждение внезапно прерванных дружб и поздно сбывшихся мечтаний в статьях про закрытый гештальт (06.07.2024-10.07.2024)» по адресу http://tablepedia.com/dataviz-2024_07_22.htm

Если перейдёте на данную страницу, то там есть ссылки на вышеупомянутые статьи.

Для запуска этой страницы (если вы её скачали) на компьютере необходимы библиотеки (то есть файлы) jquery-3.7.1.js и raphael.min.js.

Можно скачать архив с этой страницей и нужными библиотеками по адресу:

http://www.tablepedia.com/dataviz-2024_07_22.zip

Визуализация данных по адресу <!--noindex--><a href="https://pikabu.ru/story/obsuzhdenie_vnezapno_prervannyikh_druzhb_i_pozdno_sbyivshikhsya_mechtaniy_v_statyakh_pro_zakryityiy_geshtalt_0607202410072024_11626189?u=http%3A%2F%2Ftablepedia.com%2Fdataviz-2024_07_22.htm&t=http%3A%2F%2Ftablepedia.com%2Fdataviz-2024_07_22.htm&h=fee7071dc5287f4ec164a4707e1e470af5dafab0" title="http://tablepedia.com/dataviz-2024_07_22.htm" target="_blank" rel="nofollow noopener">http://tablepedia.com/dataviz-2024_07_22.htm</a><!--/noindex-->

Визуализация данных по адресу http://tablepedia.com/dataviz-2024_07_22.htm

Показать полностью 1
Гештальт Дружба Мечта Визуализация Javascript Jquery Svg Программирование IT Скрипт
0
tablepedia
Серия Визуализация данных

Динамика населения 10 стран мира с 1980 года (графики) на языке JavaScript⁠⁠

1 год назад

Посмотрите, пожалуйста, как я визуализировал динамику населения 10 стран мира (с 1980 года) на странице

http://tablepedia.com/junior3.html

Вся эта страница занимает 8 килобайт, язык программирования - JavaScript, языки разметки - SVG и HTML.

Ниже - ВЕСЬ код страницы:

<html>

<head>

<title>Visualization of user data #tablepedia #csv2svg #covidplot #virusplot http://tablepedia.com/junior3.html</title>

</head>

<body onload="PLOTbuild();">

<h1>Top 10 countries by population since 1980 (single HTML page with JS in 8 KB)</h1>

<script>

var h1 = 20; var h2 = 580; var v1 = 360; var v2 = 10;

var OXaxis=h1; var OYaxis=v1;

var fsize = "12"; var plotColor="red"

var elements = ['', '']; var sTemp="";

var ymin=[0, 981, 697, 227, 138, 147, 121, 81, 78, 73, 70];

var ymax=[0, 1412, 1375, 331, 149, 273, 212, 164, 210, 205, 128];

var x1=1980; var x2=2020;

var y1=60; var y2=210;

function PLOTbuild()

{

var targ = document.getElementById('target').value;

var tableStringsT = targ.split("\n"); var SIMPLEpoly = ''; var nTemp=0;

var ycol = document.getElementById("SM01").options.selectedIndex;

var ft1=fitRange1(ymin[ycol], ymax[ycol], 10);

var ft2=NUMBERseries(ft1);

var FromToX = "1980;1990;2000;2010;2020";

var OXscale = TEXTscale(FromToX, h1, h2);

var OYscale = TEXTscale(ft2, v1, v2);

var stringsOX = OXscale.split("\n"); var stringsOY = OYscale.split("\n");

for (var i = 1; i < tableStringsT.length-1; i = i + 1)

{

elements = tableStringsT[i].split("\t");

sTemp = elements[0] + ';' + elements[ycol];

SIMPLEpoly = SIMPLEpoly + convert2ValuesTo2Coordinates(sTemp, x1, x2, y1, y2, h1, h2, v1, v2) + '\n';

}

SIMPLEpoly = SIMPLEpoly.replace(/;/g, ',');

var sSVG = "<polyline fill='none' stroke='" + plotColor + "' stroke-width='1' points='";

sSVG = sSVG + SIMPLEpoly + "' />";

sSVG = sSVG + "\n" + "<polyline fill='none' stroke='#000000' stroke-width='0.5' points='";

sSVG = sSVG + h1 + "," + OYaxis + " " + h2 + "," + OYaxis + "' />";

for (var i = 0; i < stringsOX.length; i++)

{

elements = stringsOX[i].split("\t");

var OXshift1 = OYaxis + 10; var OYshift1 = h1 + 20;

var nOXsh2 = parseFloat(elements[1]) - 4; var nOYsh3 = OYaxis + 18;

sSVG = sSVG + "\n" + "<polyline fill='none' stroke='#000000' stroke-width='0.5' points='";

sSVG = sSVG + elements[1] + "," + OYaxis + " " + elements[1] + "," + OXshift1 + "' />";

sSVG = sSVG + "\n" + "<text x='" + nOXsh2 + "' y='" + nOYsh3 +

"' fill='black' font-family='Arial' font-size='" + fsize + "'>" + elements[2] + "</text>";

}

sSVG = sSVG + "\n" + "<polyline fill='none' stroke='#000000' stroke-width='0.5' points='" + OXaxis + ",";

sSVG = sSVG + v1 + " " + OXaxis + "," + v2 + "' />";

for (var i = 0; i < stringsOY.length; i++)

{

elements = stringsOY[i].split("\t");

sTemp=elements[2];

if (i == (stringsOY.length-1)) sTemp=document.getElementById("SM01").options[ycol].text;

OXshift1 = v1 + 10; OYshift1 = OXaxis + 10;

sSVG = sSVG + "\n" + "<polyline fill='none' stroke='#000000' stroke-width='0.5' points='" + OXaxis + ",";

sSVG = sSVG + elements[1] + " " + OYshift1 + "," + elements[1] + "' />";

sSVG = sSVG + "\n" + "<text x='" + OYshift1 + "' y='" + elements[1] + "' fill='" + plotColor +

"' font-family='Arial' font-size='" + fsize + "'>" + sTemp + "</text>";

}

document.getElementById('boldStuff').innerHTML = "<svg version='1.1' width='" + '700' + "' height='" + '400' + "' xmlns='http://www.w3.org/2000/svg'

xmlns:xlink='http://www.w3.org/1999/xlink'>" + sSVG + "\n" + "</svg>";

}

function TEXTscale(x1xN, min4, max4)

{

var pieces = x1xN.split(";");

var qx = pieces.length-1;

var sm3 = ""; var xAmong=0;

for (var i = 0; i < qx; i = i + 1)

{

xAmong = parseFloat(pieces[i]);

xx1=parseFloat(pieces[0]);

xx2=parseFloat(pieces[qx]);

part = (xAmong - xx1) / (xx2 - xx1); smart2=(max4 - min4) * part + min4;

smart2 = NUMBERfloat(smart2, 0.001);

sm3 = sm3 + xAmong + "\t" + smart2 + "\t" + xAmong + "\n";

}

coo = NUMBERfloat(max4, 0.0001);

sm3 = sm3 + xx2+"\t"+coo+"\t"+xx2;

return sm3;

}

function convert2ValuesTo2Coordinates(xy, x1, x2, y1, y2, xa41, xa42, ya41, ya42)

{

var srav = xy.split(";");

var gett = convert1ValueTo1Coordinate(x1, x2, xa41, xa42, srav[0]) + ";" + convert1ValueTo1Coordinate(y1, y2, ya41, ya42, srav[1]); return gett;

}

function convert1ValueTo1Coordinate(zx1, zx2, a1, a2, xVECTOR1)

{

return (a2-a1) * (xVECTOR1 - zx1) / (zx2 - zx1) + a1;

}

function NUMBERfloat(xbig, xsmall)

{

vmax = Math.floor(xbig / xsmall + 0.99) * xsmall; vmax = vmax.toFixed(10);

vmax = vmax * 1; return vmax;

}

function fitRange1(a, b, nLines)

{

var xr = Math.abs(b - a) / nLines;

var mimi = Math.abs(a / xr) / nLines * 5;

if (mimi < 1)

{

a = 0;

xr = Math.abs(b - a) / nLines;

}

var loga = Math.log10(xr);

var inta = Math.floor(loga);

var deca = Math.pow(10, inta);

var mi1 = Math.floor(a / deca);

var ma1 = Math.ceil(b / deca);

var iFlag = 0;

if ((ma1 - mi1) > (nLines * 2))

{

deca = deca * 5;

mi1 = Math.floor(a / deca);

ma1 = Math.ceil(b / deca);

iFlag = iFlag + 1;

}

if ((ma1 - mi1) > (nLines))

{

deca = deca * 2;

mi1 = Math.floor(a / deca);

ma1 = Math.ceil(b / deca);

iFlag = iFlag - 1;

}

var mi2 = mi1 * deca;

var ma2 = ma1 * deca;

var s4 = mi2.toString() + ";" + ma2.toString() + ";" + deca.toString();

return s4;

}

function NUMBERseries(fts)

{

var FromToStep = fts.split(";");

var sFrom = FromToStep[0]; y1 = parseFloat(sFrom);

var sTo = FromToStep[1]; y2 = parseFloat(sTo);

var sStep = FromToStep[2]; var vStep = parseFloat(sStep);

var rr = "";

for (var x = y1; x < y2; x = x + vStep)

{

rr = rr + NUMBERfloat(x, vStep)+ ";";

}

rr=rr+y2;

return rr;

}

</script>

<SELECT name="SM01" id="SM01" onchange="PLOTbuild()">

<OPTION SELECTED VALUE="0">SELECT COUNTRY</OPTION>

<OPTION VALUE="1">China</OPTION>

<OPTION VALUE="2">India</OPTION>

<OPTION VALUE="3">USA</OPTION>

<OPTION VALUE="4">Russia</OPTION>

<OPTION VALUE="5">Indonesia</OPTION>

<OPTION VALUE="6">Brazil</OPTION>

<OPTION VALUE="7">Bangladesh</OPTION>

<OPTION VALUE="8">Pakistan</OPTION>

<OPTION VALUE="9">Nigeria</OPTION>

<OPTION VALUE="10">Mexico</OPTION>

</SELECT>

<br>

<textarea class="input_type" id="target" name="target" cols="28" rows="28" wrap="off">

Year China India USA Russia Indonesia Brazil Bangladesh Pakistan Nigeria Mexico

2020 1412 1375 331 147 273 212 164 210 205 128

2018 1397 1351 327 147 266 210 161 201 196 124

2016 1379 1324 323 147 261 208 159 193 186 122

2014 1364 1294 319 146 254 205 157 186 178 120

2012 1351 1263 314 143 248 201 155 179 168 118

2010 1338 1231 309 143 242 197 152 171 159 116

2008 1325 1197 304 143 236 193 149 163 151 114

2006 1311 1162 299 143 230 189 145 157 143 112

2004 1296 1126 293 144 224 185 140 150 136 109

2002 1280 1089 288 145 218 181 135 143 129 106

2000 1263 1054 282 147 212 175 129 137 122 103

1998 1242 1018 276 148 206 171 125 132 115 100

1996 1218 983 269 148 200 165 120 126 109 97

1994 1192 946 263 148 194 159 117 120 101 93

1992 1165 910 257 149 188 155 112 114 93 89

1990 1135 874 250 148 182 150 106 108 88 86

1988 1102 838 244 147 176 144 101 101 86 82

1986 1067 802 240 144 170 139 95 95 84 79

1984 1037 767 236 142 163 133 90 89 81 76

1982 1009 733 232 140 155 127 86 83 77 73

1980 981 697 227 138 147 121 81 78 73 70

</textarea>

<b id="boldStuff" style="color:transparent;">SVG</b>

</body>

</html>

Показать полностью
Javascript HTML Svg Программирование Программист Население Страны Скрипт Тестирование Текст Длиннопост
4
tablepedia

Визуализация таблицы на языке JavaScript⁠⁠

1 год назад

Посмотрите, пожалуйста, как я визуализировал таблицу в виде графика на странице

http://tablepedia.com/junior.html

Причём, вся эта страница занимает 8 килобайт, а языки программирования - JavaScript и SVG, а также HTML.

Ниже - ВЕСЬ код страницы:

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

<title>Visualization of user data #tablepedia #csv2svg #covidplot #virusplot tablepedia.com</title>

</head>

<body onload="PLOTbuild()">

<h1>Visualization of user data (single HTML page with JS in 8 KB)</h1>

Xmin= <input id="xMin" value="0" type="text" size="10">

Xmax= <input id="xMax" value="160" type="text" size="10">

Xstep= <input id="xStep" value="10" type="text" size="10">

<input type="button" value=" PLOT USER DATA " onclick="PLOTbuild()">

<br>

Ymin= <input id="yMin" value="0" type="text" size="10">

Ymax= <input id="yMax" value="1600" type="text" size="10">

Ystep= <input id="yStep" value="200" type="text" size="10">

<script>

var horizontalRange = '20;580'; var verticalRange = '360;10';

var xcol=0; var ycol=1; var fsize = "12"; var plotColor="red"

var STRINGelements = ['', '']; var sTemp=0; var OXscale=""; var OYscale="";

function PLOTbuild()

{

var s0 = "<svg version='1.1' width='" + '700' + "' height='" + '400' + "' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'>";

document.getElementById('boldStuff').innerHTML = s0 + SVGgenerate() + "\n" + "</svg>";

}

function SVGgenerate()

{

var xMIN=document.getElementById('xMin').value;

var x1=parseFloat(xMIN);

var xMAX=document.getElementById('xMax').value;

var x2=parseFloat(xMAX);

var xMM=xMIN+";"+xMAX;

var xStep=document.getElementById('xStep').value;

var x3=parseFloat(xStep); if (x3 == 0) x3=x2-x1;

var yMIN=document.getElementById('yMin').value;

var y1=parseFloat(yMIN);

var yMAX=document.getElementById('yMax').value;

var y2=parseFloat(yMAX);

var yMM=yMIN+";"+yMAX;

var yStep=document.getElementById('yStep').value;

var y3=parseFloat(yStep); if (y3 == 0) y3=y2-y1;

var FromToX = NUMBERseries(x1, x2, x3); OXscale = TEXTscale(FromToX, horizontalRange);

var FromToY = NUMBERseries(y1, y2, y3); OYscale = TEXTscale(FromToY, verticalRange);

var rangeXA4 = horizontalRange.split(";"); var axisOnOX = rangeXA4[0];

var rangeYA4 = verticalRange.split(";"); var axisOnOY = rangeYA4[0];

var targ = document.getElementById('target').value;

var tableStringsOX = OXscale.split("\n"); var tableStringsOY = OYscale.split("\n");

var tableStringsT = targ.split("\n"); var SIMPLEpoly = '';

for (var i = 1; i < tableStringsT.length-1; i = i + 1)

{

STRINGelements = tableStringsT[i].split("\t");

sTemp = STRINGelements[xcol] + ';' + STRINGelements[ycol];

SIMPLEpoly = SIMPLEpoly + convert2ValuesTo2Coordinates(sTemp, xMM, yMM, horizontalRange, verticalRange) + '\n';

}

SIMPLEpoly = SIMPLEpoly.replace(/;/g, ',');

var sSVG = "<polyline fill='none' stroke='" + plotColor + "' stroke-width='1' points='";

sSVG = sSVG + SIMPLEpoly + "' />";

sSVG = sSVG + "\n" + "<polyline fill='none' stroke='#000000' stroke-width='0.5' points='";

sSVG = sSVG + rangeXA4[0] + "," + axisOnOY + " " + rangeXA4[1] + "," + axisOnOY + "' />";

for (var i = 0; i < tableStringsOX.length; i++)

{

STRINGelements = tableStringsOX[i].split("\t");

var OXshift1 = parseFloat(axisOnOY) + 10; var OXsh1 = OXshift1.toString();

var OYshift1 = parseFloat(axisOnOX) + 20; var nOYsh2 = parseFloat(axisOnOX) - 5; var OYsh1 = OYshift1.toString();

var nOXsh2 = parseFloat(STRINGelements[1]) - 4; var OXsh2 = nOXsh2.toString();

var nOYsh3 = parseFloat(OXsh1) + 8; var OYsh3 = nOYsh3.toString();

sSVG = sSVG + "\n" + "<polyline fill='none' stroke='#000000' stroke-width='0.5' points='";

sSVG = sSVG + STRINGelements[1] + "," + axisOnOY + " " + STRINGelements[1] + "," + OXsh1 + "' />";

sSVG = sSVG + "\n" + "<text x='" + OXsh2 + "' y='" + OYsh3 +

"' fill='black' font-family='Arial' font-size='" + fsize + "'>" + STRINGelements[2] + "</text>";

}

sSVG = sSVG + "\n" + "<polyline fill='none' stroke='#000000' stroke-width='0.5' points='" + axisOnOX + ",";

sSVG = sSVG + rangeYA4[0] + " " + axisOnOX + "," + rangeYA4[1] + "' />";

for (var i = 0; i < tableStringsOY.length; i++)

{

STRINGelements = tableStringsOY[i].split("\t");

OXshift1 = parseFloat(axisOnOY) + 10; OXsh1 = OXshift1.toString(); OYshift1 = parseFloat(axisOnOX) + 10;

OYsh1 = OYshift1.toString();

sSVG = sSVG + "\n" + "<polyline fill='none' stroke='#000000' stroke-width='0.5' points='" + axisOnOX + ",";

sSVG = sSVG + STRINGelements[1] + " " + OYsh1 + "," + STRINGelements[1] + "' />";

sSVG = sSVG + "\n" + "<text x='" + OYsh1 + "' y='" + STRINGelements[1] + "' fill='" + plotColor +

"' font-family='Arial' font-size='" + fsize + "'>" + STRINGelements[2] + "</text>";

}

return sSVG;

}

function TEXTscale(x1xN, min4max4)

{

var pieces = x1xN.split(";");

var pieces2 = min4max4.split(";");

var qx = pieces.length-1;

var sm3 = ""; var smpp=0;

for (var i = 0; i < qx; i = i + 1)

{

smpp = parseFloat(pieces[i]); sm3 = sm3 + smpp; sm3 = sm3 + "\t";

smart2 = findProportion(parseFloat(pieces[0]), parseFloat(pieces[qx]), smpp, parseFloat(pieces2[0]), parseFloat(pieces2[1]));

smart2 = NUMBERround(smart2, 3);

sm3 = sm3 + smart2;

sm3 = sm3 + "\t" + smpp + "\n";

}

coo = parseFloat(pieces2[1]);

coo = NUMBERround(coo, 4);

coo2 = parseFloat(pieces[qx]);

sm3 = sm3 + coo2+"\t"+coo+"\t"+coo2;

return sm3;

}

function convert2ValuesTo2Coordinates(xy, x, y, xa4, ya4)

{

var srav = xy.split(";");

var d0 = convert1ValueTo1Coordinate(x, xa4, srav[0]); var h0 = convert1ValueTo1Coordinate(y, ya4, srav[1]);

var gett = d0 + ";" + h0; return gett;

}

function convert1ValueTo1Coordinate(VECTOR1, VECTOR2, xVECTOR1)

{

var pieces = VECTOR1.split(";"); var pieces2 = VECTOR2.split(";");

var smart2 = findProportion(parseFloat(pieces[0]), parseFloat(pieces[1]), xVECTOR1, parseFloat(pieces2[0]), parseFloat(pieces2[1]));

return smart2;

}

function findProportion(x1, x2, xAmong, min4, max4)

{

var part = (xAmong - x1) / (x2 - x1); return (max4 - min4) * part + min4;

}

function NUMBERround(x, n)

{

if (isNaN(x) || isNaN(n)) return 0; var m = Math.pow(10, n); return Math.round(x * m) / m;

}

function NUMBERfloat(xbig, xsmall)

{

vmax = Math.floor(xbig / xsmall + 0.99) * xsmall; vmax = vmax.toFixed(10);

vmax = vmax * 1; smax = vmax.toString(); return smax;

}

function NUMBERseries(f, t, vStep)

{

var s = "";

for (var x = f; x < t; x = x + vStep)

{

s = s + NUMBERfloat(x, vStep) + ";"

}

s=s+t; return s;

}

</script>

<br>

<br>

USER DATA:

<br>

<textarea class="input_type" id="target" name="target" cols="28" rows="28" wrap="off">

X Y

159 1956

158 1934

157 1905

156 1883

155 1861

154 1839

153 1818

152 1797

151 1774

150 1749

149 1726

148 1707

147 1688

146 1671

145 1657

144 1634

143 1608

142 1581

141 1558

140 1537

139 1516

138 1497

137 1473

136 1441

135 1414

134 1393

133 1373

132 1356

131 1333

130 1307

129 1279

128 1250

127 1225

126 1200

125 1158

124 1133

123 1104

122 1070

121 1040

120 1013

119 988

118 966

117 939

116 891

115 869

114 843

113 825

112 788

111 760

110 735

109 702

108 671

107 640

106 610

105 583

104 558

103 530

102 502

101 466

100 432

99 399

98 368

97 338

96 312

95 278

94 246

93 217

92 190

91 165

90 143

89 125

88 105

87 86

86 69

85 55

84 46

83 35

82 27

81 20

80 14

79 9

78 6

77 5

0 0

</textarea>

<b id="boldStuff" style="color:transparent;">SVG</b>

</body>

</html>

Показать полностью
[моё] Javascript HTML Svg Визуализация Программирование Скрипт График Таблица Программист Текст Длиннопост
5
0
user9370899

Тех-поддержка как она есть⁠⁠

1 год назад

Доброго дня!

После волны постов о работе тех-саппорта ( хотя скорее это клиентский сервис больше) решил выйти из режима "рид-онли" что б немножко поделится опытом.
Опытом именно как работника этой сферы.
Сразу огорчу - что мои предложения вас полностью не спасут. Но хотя бы немного нервов сохранят.

1. В идеале максимально чётко описывайте проблему сразу.
Часто диалоги с клиентами выглядят так:
- Привет
- Добрый день, компания "Клиента-Обману-нейм", чем могу помочь?
- *проходит минут 5*
- у меня проблема...
- Опишите, пожалуйста, вашу проблему
- проходит ещё минут 5-7
- Ну, у меня тут не работает...

Поняли, да?) Обратите внимание, я не говорю что клиенты такие-сякие ( хотя порой так думаю). Но, поверьте, у нас обычно по 10-20 чатов, в зависимости от фирмы ( бывает и по 40-50). Это НЕ ваши проблемы, но это СТАНЕТ вашей проблемой, потому что там живые люди. И чем дольше вы "тяните" резину - тем хуже. Хотя бы потому, что я банально про вас забуду. В какой-то момент уведомление о чате не сработает и я вас потеряю например. Или просто переключусь на клиента который говорит сразу всё, пусть сумбурно. Конечно, я потом вернусь. Но вам-то от этого не легче. Предвосхищая вопрос - какого чёрта так много чатов? Ну потому что) сотрудников всегда меньше чем работы, фирме так выгоднее.

2. Сейчас повальное увлечение ИИ. Честно говоря, те кто пишут скрипты для ботов, на мой взгляд, идиоты. Либо их банально никто не консультирует. Поэтому в моём опыте бот больше мешает чем помогает. Но, диалог сохраняется, так что опять таки, пишем проблему сразу.
И да, сразу зовём оператора. За редкими исключениями, бот - полный дегенерат.

3. Не грубите. В смысле - вы имеете право злится, но без мата пожалуйста.
Там люди. Я о том, что вам же хуже будет. В некоторых конторах есть возможность игнорить "неадеквата". В других случаях я могу сам это сделать. В третьих - если игнорить нельзя, вопрос можно "затянуть" .Да, намеренно. Или не намеренно, но потому что не охото в этом копаться.
Это не означает, что работник тех поддержки святой.
Нет конечно. Просто вы в данном случае зависите от него. И совершенно не разумно хамить людям, которые решают ваш вопрос.

4. Хотите действительно внимания? Требуйте возврата.
Это универсальное правило. Фирме плевать на недовольство, но её беспокоит возврат денежных средств. Естественно, он максимально затруднён, но он есть и гарантирует обычно максимум внимания. По крайней мере, у меня в 4 из 5 контор было так. Если возврат - сразу куча начальства сбегается. А в обычном случае я сам от них могу по 3 часа ответа ждать, пока клиент несчастный пену из рта выпускает.

Вот такая простая памятка, которая, увы, не решает все вопросы, но сможет хоть немного упростить Вам жизнь.

И ещё один момент - заранее смиритесь, что вы лишь один из многих клиентов. По большому счёту, фирме главное продать. Дальше идут всякие хитровыдуманные способы, как затянуть возврат или усложнить его, в надежде на то, что большинство людей просто не пойдёт возится ради тысячи рублей.
И это работает. Соотношение явно в пользу компаний, поэтому такое скотское отношение.
Причём оно скотское на всех уровнях. И на сам клиентский сервис пофигу, и на клиента естественно тоже.

А уж какие потрясающие истории всякие ОКК (отдел контроля качества) выдумает - это можно отдельно писать, там люди будто в другой вселенной находятся, видимо, вместе с депутатами, не иначе.

Показать полностью
[моё] Покупатель Продавцы и покупатели Служба поддержки Скрипт Люди Работа Текст
0
5472
Drinktheocean

Ручная работа⁠⁠

1 год назад
Ручная работа
Показать полностью 1
Юмор IT Программирование Нейронные сети Скрипт Картинка с текстом Скриншот Повтор
79
VaginaMag
VaginaMag

Перемещать файлы которые старше 15 дней⁠⁠

1 год назад

Не на что не притендую, просто может кому то пригодиться, а то тут задача прилетела.
Создал скрипт который будет перемещать файлы, которые старше 15 дней, в другую папку.
Просто создайте ps1 файл.
Настройте задание в планировщике задач (Task Scheduler) Windows для запуска этого BAT файла раз в 15 дней:

1) Откройте "Планировщик задач".

2) Создайте новую задачу.

3) В разделе "Триггеры" добавьте новый триггер с расписанием "Каждые 15 дней".

4) В разделе "Действия" добавьте новое действие "Запустить программу" и укажите путь к вашему ps1 файлу.

5) Сохраните задачу.

Сам файл.

# Определяем исходную папку, целевую папку и путь к файлу журнала

$source = "D:\Pavel\test"

$destination = "D:\Pavel\servers"

$log = "D:\Pavel\move_log.csv"

# Перемещаем файлы старше 15 дней из исходной папки в целевую папку, сохраняя структуру папок

Get-ChildItem -Path $source -Recurse | Where-Object {($_.LastWriteTime -lt (Get-Date).AddDays(-15))} | ForEach-Object {

$destPath = $_.FullName -replace [regex]::Escape($source), $destination

$destFolder = Split-Path $destPath -Parent

if (!(Test-Path -Path $destFolder)) {

New-Item -ItemType Directory -Path $destFolder -Force

}

Move-Item -Path $_.FullName -Destination $destPath -Force

}

# Добавляем заголовки в журнал

Add-Content -Path $log -Value "Source, Destination, Date Moved"

# Добавляем записи о перемещенных файлах в журнал

Get-ChildItem -Path $destination -Recurse | ForEach-Object {

$sourcePath = $_.FullName -replace [regex]::Escape($destination), $source

$logData = $sourcePath + "," + $_.FullName + "," + (Get-Date).ToString('yyyy-MM-dd')

Add-Content -Path $log -Value $logData

}

Показать полностью
Powershell IT Длиннопост Скрипт Текст
25
1
Вопрос из ленты «Эксперты»
jurgen8705
jurgen8705
Лига фотографов

Просмотр картинок на сайте!⁠⁠

1 год назад
На примере своей работы!

На примере своей работы!

Хотел бы немного подискутировать и высказать своё мнение относительно просмотра работ на сайте. Дело в том, что скрипт показа картинок так настроен, что вытягивает картинку на высоту монитора, если смотреть на компъютере, отсюда выходит так, что картинка, если оригинал к примеру меньше, но чёткость и резкость отличная, то скрипт вытягивает её с большим размером и резкость и качество страдают. Автоматически расстягивает на высоту монитора, если картинка меньше, или больше. Если больше, то качество не страдает. Я понимаю о чём говорю и знаком с этим скриптом. Очень мне это сразу не понравилось, страдает качество при просмотре, можете сравнить, я для примера разместил картинку оригинал и то, что выходит для просмотра, мыло одним словом и это не ГУТ! Опять же при открытии и этой картинки, она меняет качество и мылит, можно конечно подрасчитать и показать более чётко, но думаю все всё заметят, можете сравнить, что выходит у вас на вашей работе и свою оригинальную, всё будет чётко видно, надо менять и докручивать код! ИМХО!

А что думаете вы, друзья?

Показать полностью
[моё] Дизайн Скрипт Обзор Веб-дизайн Вопрос Спроси Пикабу Проблема Консультация Нужен совет
5
42
nEKTOPME
nEKTOPME
MS, Libreoffice & Google docs

ГуглТаблицы - раскраска дубликатов ячеек, строк, копирование дубликатов на новый лист⁠⁠

1 год назад


Ссылка на гуглтаблицу: https://docs.google.com/spreadsheets/d/1v5gQJdzJ32s6vVSdFeoh... Создайте себе копию. Перед запуском скриптов гугл задаст несколько вопросов.

[моё] Google Скрипт Таблица Дубликаты Видео YouTube
3
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии