21

(25 відповідей, залишених у JavaScript, TypeScript, ECMAScript)

VTrim написав:

Спробую написати такий чатик..
Що з того вийшло чи не вийшло, напишу сюди.

Чудово, чекатиму Ваших результатів, та й сам почну писати:)

22

(25 відповідей, залишених у JavaScript, TypeScript, ECMAScript)

iovchynnikov написав:

А не думали зробити на WebSockets + NodeJS? Буде справжній реал-тайм чат без усілякої магії з "демонами" php....
https://gist.github.com/martinsik/2031681

Чесно кажучи, це була перша думка, але не розумію, як на NodeJS зробити так, щоб 2-ох користувачів рандомно з'єднувало у приватний чат. Можливо маєте ідею?

23

(25 відповідей, залишених у JavaScript, TypeScript, ECMAScript)

Djalin написав:

Той чат іще є, правда трохи допиляний але є.

Реалізація з куками ніби підходить - чи ні?

Цікаво поглянути на любу реалізацію такого чату

24

(25 відповідей, залишених у JavaScript, TypeScript, ECMAScript)

221VOLT написав:

користувач заходить - ставимо йому унікальну куку,
куку- id юзера разом зі статусом - в базу,

користувача який був останній раз на сайті - 3 доби + назад - видаляємо з бд,
користувача який клікнув "знайти аноніма-співрозмовника" - ставимо в статус "чекаю співрозмовника",

крон раз в секунду - бере з бд таких користувачів у рандомному порядку і розбиває попарно -- їх додаємо у таблицю розмов, ставимо статус "розмовляє" або просто забираємо статус "очікування співрозмовника"

користувач зайшов з кукою, якої в таблиці немає - додаємо в таблицю, або ж генеруємо нову

:) здається, проблем немає

Яким чином зробити це все в реальному часі? Завжди відправляти запити на сервер?

25

(25 відповідей, залишених у JavaScript, TypeScript, ECMAScript)

Доброго часу доби. Можливо хтось знаходив скрипт, або готовий поділитись своїми напрацюваннями анонімного чату. Він повинен бути простеньким, без реєстрації, просто заходить гість і до нього рандомно підключався інший гість з сайту для анонімної бесіди.
Ось знайшов щось схоже (http://almiur.ru/chat.php), реалізований, як я зрозумів, на AJAX, PHP. Можливо хтось підскаже алгоритм реалізації даного проекту. Не розумію, яким чином воно конектить двох рандомних корустувачів. Дякую за увагу

26

(10 відповідей, залишених у JavaScript, TypeScript, ECMAScript)

VTrim написав:

В php є ще таке
http://phpsysinfo.github.io/phpsysinfo/

phpsysinfo виводить інформацію про сервер, чи про любий пристрій, яким ми відкриваємо сайт, на якому скрипт?

27

(4 відповідей, залишених у JavaScript, TypeScript, ECMAScript)

koala написав:

1. Користуйтеся jsfiddle.net
2. Перед викладанням коду прибирайте з нього зайве (закоментовані рядки, дебагінг, якщо він не показує критичних деталей для питання). Поважайте тих, хто буде читати ваш код.
3. Ефективність алгоритмів не коментуватиму, тільки скажу, що (i+shift)%alphabet.length завжди буде в алфавіті.
4. У мене все працює (для українських літер). Опишіть детальніше проблему, що таке "невірно працює" - шахаду проголошує чи медитує в пошуках дзену?
5. Я надто довго пишу відповіді...

Дякую, врахую Ваші зауваження.

28

(4 відповідей, залишених у JavaScript, TypeScript, ECMAScript)

muhasjo написав:

ви для дешифровки витягуєте текст який шифруєте. ось правильно

 function decrypt() {
            var message = document.getElementById('cipher').value;
               ...
 }

І справді, спасибі *YES*

29

(4 відповідей, залишених у JavaScript, TypeScript, ECMAScript)

Шифр Цезаря реалізує шифрування повідомлення шляхом «зсуву» усіх символів повідомлення на певне число (в оригінальному шифрі дане число дорівнювало 3). Виникла проблема, не вірно функціонує Дешифрування, ніяк не можу побачити помилку, дякую за увагу. Можливо комусь вдасться запропонувати кращий варіант на js або ж php.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Шифр Цезаря</title>
    <link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body>
    Повідомлення:
    <br /><input type='text' id='message'>
    <br /><br />
    Зсув (число):<input type='text' id='shift' value='3'>
    <br /><br />
    <button onclick='encrypt()'>Зашифрувати</button>
    <br /><br />
    <button onclick='decrypt()'>Розшифрувати</button>
    <br /><br />
    Зашифроване повідомлення: <br />
    <input type='text' id='cipher'>

    <script>
        var alphabet = 'АБВГҐДЕЄЖЗИІЇЙКЛМНОПРСТУФХЦЧШЩЬЮЯ';
        function shiftAlphabet(shift) {
            console.log(shift)
            var shiftedAlphabet = ''; //новий алфавіт 
            for (var i = 0; i < alphabet.length; i++) {
                //console.log(i, alphabet[i+shift]);
                currentLetter = (alphabet[i + shift] === undefined) ? (alphabet[i + shift - alphabet.length]) : (alphabet[i + shift        ]); //Поточна буква з зсувом, якщо виходимо за рамки довжини алфавіту - берем з початку алфавіту

                shiftedAlphabet = shiftedAlphabet.concat(currentLetter);
            }
            return shiftedAlphabet;
        }

        console.log(shiftedAlphabet);

        function encrypt() {
            var message = document.getElementById('message').value;
            var shift = parseInt(document.getElementById('shift').value);
            var shiftedAlphabet = shiftAlphabet(shift);
            var encryptedMessage = '';
            for (var i = 0; i < message.length; i++) {
                var indexOfLetter = alphabet.indexOf(message[i].toUpperCase());
                encryptedMessage = encryptedMessage.concat(shiftedAlphabet[indexOfLetter]);
            }
            document.getElementById('cipher').value = encryptedMessage.toLowerCase();
        }

        function decrypt() {
            var message = document.getElementById('message').value;
            var shift = parseInt(document.getElementById('shift').value);
            var shiftedAlphabet = shiftAlphabet(shift);
            var encryptedMessage = '';
            for (var i = 0; i < message.length; i++) {
                if (message[i] == ' ') {
                    encryptedMessage = encryptedMessage.concat(' ');
                    continue};
                var indexOfLetter = shiftedAlphabet.indexOf(message[i].toUpperCase());
                encryptedMessage = encryptedMessage.concat(alphabet[indexOfLetter]);
            }
            document.getElementById('cipher').value = encryptedMessage.toLowerCase();
        }
    </script>
</body>
</html>

30

(10 відповідей, залишених у JavaScript, TypeScript, ECMAScript)

Дякую всім, хто поділився та відписав, буду пробувати різні варіанти.

31

(10 відповідей, залишених у JavaScript, TypeScript, ECMAScript)

muhasjo написав:

Чи можливо виводити дані про роутер на своєму сервері, наприклад lan ip, wan ip і тому подібне.

навряд, якщо ваш роутер не є вашим сервером і/або має заводську прошивку

Ще цікава Ваша думка на рахунок виводу температури процесора, графічного ядра, hdd; або ж про збірку ОС, щось в цьому дусі

ось, ставте через npm цей пакет https://www.npmjs.com/package/status

Спасибі, те що потрібно :)

32

(10 відповідей, залишених у JavaScript, TypeScript, ECMAScript)

muhasjo написав:

ну так для nodejs є і інші бібліотеки, які можуть виводити і іншу системну інфу, в залежності від того що вам, потрбіно

що маєте на увазі "дані про роутер" ? на роутері буде ця утиліта висіти ?

Чи можливо виводити дані про роутер на своєму сервері, наприклад lan ip, wan ip і тому подібне.
Ще цікава Ваша думка на рахунок виводу температури процесора, графічного ядра, hdd; або ж про збірку ОС, щось в цьому дусі

Чи можливо написати системну утиліту, яка зможе передавати дані про комп'ютер або ж роутер за допомогою web? Так, саме вебу:) Поки знайшов лише можливість виводити детальну інформацію про папку в nodejs, але це не зовсім те, що мені потрібно. Дякую за увагу

34

(34 відповідей, залишених у Робота)

Кому цікаво, місяць тому я таки виконав тестове завдання для цієї веб студії. Відписали, повідомили, що є незначні зауваження, які бажають обговорити на співбесіді. На ній ж запропонували безоплачуване стажування, від якого я відмовився і не шкодую про свій вибір. Пройшов місяць і ця веб студія знову шукає собі "Frontend developera" (точніше людину, яка безкоштовно виконуватиме їхню роботу)

35

(34 відповідей, залишених у Робота)

ADR написав:

Після розсилки свого резюме в різні компанії та веб студії, я зрозумів одну річ. Ніхто з тобою не захоче говорити, поки ти не виконаєш ТЗ

Тут не зрозумів. У чому проблема? Чи дають великі проекти?

Бо як на мене то варіант коли тобі дають щось зробити дома і потім пояснити, що і як ти зробив — найкращий. Бо могли і на співбесіді дати 10 простеньких задач, які б не встиг виконати.

В даному випадку дали завдання, розраховане на 30 годин праці (так вказано було в тз).

Вирішив пошукати роботу Junior Frontend розробника. Після розсилки свого резюме в різні компанії та веб студії, я зрозумів одну річ. Ніхто з тобою не захоче говорити, поки ти не виконаєш ТЗ.  Після цього вже запрошують на співбесіду. Одна невелика веб студія на співбесіді запропонувала безоплачуване стажування на місяць. Чи варто на таке погоджуватись? Я притримуюсь думки, що при стажуванні ти повинен отримувати таки певну суму, наприклад прожитковий мінімум.

37

(3 відповідей, залишених у JavaScript, TypeScript, ECMAScript)

muhasjo, дуже дякую, чудовий варіант.

38

(3 відповідей, залишених у JavaScript, TypeScript, ECMAScript)

Доброго часу доби. Знизу я навів невеликий приклад. Як можна гарно перебрати циклом по id, щоб спрацьовували кліки і властивості css для кожної кнопки?

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <style type="text/css">
        .view {
            display: none;
        }
    </style>
    <p class="p-just">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc eu sollicitudin nibh. Ut vitae nisl ac neque gravida ullamcorper viverra id lorem. Aenean tempor neque a maximus lobortis. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Maecenas velit erat, iaculis id consectetur eget, convallis sed ex</p>
    <span class="view" id="view1">nascetur ridiculus mus. Maecenas velit erat, iaculis id consectetur eget, convallis sed ex. Sed eget condimentum neque.</span>
    <button id="more1">Детальніше</button>
    <p class="p-just">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc eu sollicitudin nibh. Ut vitae nisl ac neque gravida ullamcorper viverra id lorem. Mauris vehicula, nibh in auctor eleifend, odio dui pretium ante, nec sodales velit metus at massa. Curabitur elementum quam sapien, quis aliquet lectus facilisis eget. Aenean faucibus</p>
    <span class="view" id="view2">nascetur ridiculus mus. Maecenas velit erat, iaculis id consectetur eget, convallis sed ex. Sed eget condimentum neque. Mauris vehicula, nibh in auctor eleifend, odio dui pretium ante, nec sodales velit metus at massa. Aenean nec aliquet ligula.</span>
    <button id="more2">Детальніше</button>
    <p class="p-just">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc eu sollicitudin nibh. Ut vitae nisl ac neque gravida ullamcorper viverra id lorem. Aenean tempor neque a maximus lobortis. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Maecenas velit erat, iaculis id consectetur eget, convallis sed ex. Sed eget condimentum neque. Mauris vehicula, nibh in auctor eleifend, odio dui pretium ante, nec sodales velit metus at massa.</p>
    <span class="view" id="view3">nascetur ridiculus mus. Maecenas velit erat, iaculis id consectetur eget, convallis sed ex. Sed eget condimentum neque. Mauris vehicula, nibh in auctor eleifend, odio dui pretium ante, nec sodales velit metus at massa.</span>
    <button id="more3">Детальніше</button>
    <script type="text/javascript">
            if (document.getElementById("more1") != null) {
                document.getElementById("more1").onclick = function() {
                    document.getElementById('more1').style.display = "none";
                    document.getElementById('view1').style.display = "inline";
                }
            };
            if (document.getElementById("more2") != null) {
                document.getElementById("more2").onclick = function() {
                    document.getElementById('more2').style.display = "none";
                    document.getElementById('view2').style.display = "inline";
                }
            };
            if (document.getElementById("more3") != null) {
                document.getElementById("more3").onclick = function() {
                    document.getElementById('more3').style.display = "none";
                    document.getElementById('view3').style.display = "inline";
                }
            };
    </script>
</body>
</html>

39

(3 відповідей, залишених у PHP)

Дякую всім, хто відповів

40

(3 відповідей, залишених у PHP)

Доброго дня. Можливо хтось знає, чи є можливість на php динамічно змінювати поля, дані. Наведу приклад.
Є модальне вікно, при зміні кількості копій, кількості сторінок на листі змінювати суму до оплати динамічно (дивитись скрін). Також цікаво було б, як реалізувати на js.