• Стоит ли учить Си?

    hottabxp
    @hottabxp
    Сначала мы жили бедно, а потом нас обокрали..
    Зачем учить Си сейчас?

    Чтобы не учить потом.
    Ответ написан
    1 комментарий
  • Задачку по JS такую как решить?

    profesor08
    @profesor08 Куратор тега JavaScript
    "Хацкаем" метод метод, пишем в глобал результат, юзаем результат.
    Math.floorOrig = Math.floor;
    Math.floor = (n) => {
      window.num = Math.floorOrig(n)
      return window.num;
    }
    
    function getNum() {
      const num = Math.floor(Math.random() * 10);
    }
    
    getNum();
    
    console.log(window.num);


    Еще можно просто переопределить саму функцию.
    function getNum() {
      const num = Math.floor(Math.random() * 10);
    }
    
    function getNum() {
      return Math.floor(Math.random() * 10);
    }
    
    console.log(getNum());
    Ответ написан
    3 комментария
  • Возможно ли сделать функцию, которая сама будет делать клик по ссылке?

    @FODD
    function a() {
      const link = document.querySelector(a)
      if (link) {
        link.href = 'https://habr.com/ru'
        link.click()
      }
    }
    Ответ написан
    Комментировать
  • Можно ли в фотошопе создать несколько холстов?

    Minuvi
    @Minuvi
    Good UI Designer
    При создании нового поставить галочку Artboards
    5fb7a86c2b08a246551913.png
    Ответ написан
    1 комментарий
  • Почему полученные через fetch данные нельзя присвоить переменной?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    Потому что они ещё не получены. То что внутри then - будет выполнено когда-нибудь потом, а console.log(users) выполнится сразу после вызова(но не окончания запроса) sendRequest.
    Читай про асинхронность.
    Ответ написан
    Комментировать
  • Какие проекты JavaScript отлично иметь в своём портфолио?

    like-a-boss
    @like-a-boss
    Признайся,тебяТянетНаКодМужика,ты—программный гей
    Вот и напишите проект, который будет генерировать идеи проектов.
    Ответ написан
    Комментировать
  • Кириллица и названия файлов?

    Kozack
    @Kozack Куратор тега JavaScript
    Thinking about a11y
    Не использовать encodeURIComponent ?
    Ответ написан
    Комментировать
  • Каким образом сайты делают многоязычными?

    @acwartz
    Тут должна быть ваша реклама.
    Какие существуют общепринятые приемы для переключения языка на сайте?

    Вернее сказать подходы?

    Локализация может быть статическая и динамическая.
    Статическая:
    полностью весь сайт локализован на сервере и живет себе копиями в какой-то папке site.com/
    на которую ссылается поддомен либо же часть ссылки перенаправляет туда site.com/ru/content... ../by/content и т.д. или поддоменами тоже самое:
    ru.site.com, by,site,com, или com.by, .com.ru как у гугла.

    Очень геморно это поддерживать, т.к. руками придется переносить изменения текста из русского во все остальные варианты локализации.

    Динамическая, опять же частичная и полная.
    Частичная:
    сервер отдает общие части сайта в запрошенном локализованном виде из url или поддомена или как угодно . Динамический контент версионируется по локализации. (В википедии так, общая часть хоть на шумерском, статьи можно переключать по языкам но они будут различаться с оригиналом).

    Полностью динамическая локализация:
    т.е. есть некий ru.json, en.json которые загружаются заранее/по запросу и оттуда берутся человеко-понятные слова и расставляются по всему сайту прямо в браузере по мере хождения по сайтам (современные SPA так работают), некоторые так не работают и надо собирать 2-6 вариантов локали сайта и хранить их в разных папках при каждом изменении исх. кода (так старый ангуляр работал, да и нынешний ничем не лучше без ngx-translate),
    и собственно явно переключаешься по ним обращаясь к разным папкам-локалям.

    Контент... самое удобное - версионирование по языку и контенту (как это в википедии сделано).
    Где есть начальная статья (пускай статья, контент короче), написанный на русском, кто-то переводит его на английский, потом на китайский и все это хранится в БД, и версионируется уже отдельно по изменениям.
    Естественно новое в русском не переместится в английский т.к. английская версия перестанет быть читабельной да и подача материала может быть иная.

    Является ли нормой создание нескольких виртуальных хостов под каждый язык?

    почему нет. url-part может быть просто словом а уж веб-сервер разберется откуда реально взять информацию в нужной локали.
    Ответ написан
    1 комментарий
  • Почему последнее время в Разработке такие маленькие зарплаты?

    php666
    @php666
    PHP-макака
    Crash попросил меня как "эксперта" высказаться, я не эксперт, но мнение есть.

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

    Это не реальность плохая, реальность как была, таковой и осталась. Это ваши воздушные замки рушатся об реалии. Поймите уже, наконец, если и есть в айти зарплаты, сопоставимые с зп депутата госдумы, то 99% программистишек они не светят. Как правило, это люди пишущие на низкоуровневых языках типа С и опытом в 10+ лет.

    На приведенном скриншоте зп до 90 тр за знания хтмл-цсс-пхп, ничего сверхъестественного, обычная зарплата для озвученного уровня. С чего ты решил, что достоин получать 150 или 200 за подобный стек требований?

    хотелось бы услышать мнение разработчиков с опытом что он думают на этот счет
    Ок. Слушай сюда. Эта сфера - полное гавно. Как по деньгам, так и по перспективам.

    Кодить после 35 - жуткий ад.
    Знания улетучиваются, требования в вакансиях мутируют и/или растут. Мы не успели закончить проект на фреймворке версии 6, уже вышла версия 8. И так без конца. Не изучил новый фреймворк - летишь на мороз. Не знаешь современные технологии (не изучал их в своё свободное время) - летишь на мороз.

    Ты полностью прав, что
    зачем идти сейчас на 30 тыс если можно пойти в тот же макдак или полицию без особых знаний и ежесекундного обучения.
    Наконец-то до вас доходит, что вы не элита, а просто наемные батраки на средней зп с чудовищными требованиями отрасли к соискателю.

    когда паралельно, в других сферах строительства , полиции , армии, и тд, зарплата без опыта ближе, а то и выше этих значений
    тоже верно. Но знаешь, в чем прикол? Любой айтишник, поработавший в айти и успевший "повзрослеть" в рамках этой работы, уже НИКОГДА не попадет ни в полицию, ни в строительство. Допустим я - мне 38 долбанных лет и я в айти всю жизнь. Мне деваться некуда. Меня никто не возьмет, возраст под сорок, перспективы все закрыты. В полицаи или в стройку надо идти в 20+ лет. Так что и тут кроется западня - человек без должного ментовского или строительного образования, в возрасте и без соответствующего бэкграунда даже там никому нах не нужен будет.

    Так что профессию надо по уму выбирать, а не по сплетням из интернета.
    Ответ написан
    5 комментариев
  • Почему последнее время в Разработке такие маленькие зарплаты?

    Zoominger
    @Zoominger
    System Integrator
    Лол, а что вы хотели-то?

    Вместо людей, пришедших в IT по призванию и добившихся успеха многолетним тяжким трудом, подкреплённым истинным фанатизмом и любовью к своему труду (это я про себя, да), в сферу ломанулось стадо откровенно глупеньких и недалёких вайтишников, которые насосались пропаганды от курсоводов про "триста тыщ на удалёнки на пехепе нинапригаясь", причём оглянитесь - этих балбесиков даже не переубедить, они свято верят, что в IT деньги раздают просто так и что веб - это лежать под пальмами с Макпуком и пить коктейли, которые подносят мулатки. По факту же вместо Мальдив - хрущёвка, вместо Макпука - убогий Хлаоми, а вместо мулаток и коктейлей - мамка с чаем из пакетика.

    И да:
    условно говоря юниор средняя около 30-40к

    15-20k. Рублей. В мегаполисе. В галере с полной загрузкой.
    Ответ написан
    6 комментариев
  • Важно ли высшее образование в Data science и Machine learning?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Важно ли высшее образование в Data science и Machine learning?

    Это области, требующие того уровня математической подготовки, который практически невозможно получить без профильного высшего образования.

    в первом же случаи к этому времени у меня было бы около 6 лет опыта , но без диплома

    Не будет. В DS и ML не приходят с улицы. На соответствующие должности нанимают опытных программистов из других областей.
    Ответ написан
    2 комментария
  • Почему при выполнении скрипта node.js увеличивается занятая RAM?

    bingo347
    @bingo347 Куратор тега Node.js
    Crazy on performance...
    Давайте посмотрим, что Вы тут накодили... Я уберу Ваши комментарии из кода и добавлю свои:
    const setup = {port:8000}
    const express = require ('express');
    const puppeteer = require('puppeteer');
    
    const app = express ();
    
    app.get('/', (req, res) => {
        const url = req.query.url;
    
        // вот тут Вы на каждый запрос создаете весьма тяжелую функцию
        // в ней 203 AST ноды
        // и она жрет в среднем 220КБ оперативы
        // (node: 14.4.0; v8: 8.1.307.31-node.33, мерил через process.memoryUsage().heapUsed)
        let scrape = async () => {
    
            // а еще на каждый запрос запускам новый браузер
            // у ноды это особо памяти не отнимет, а вот у системы - прилично
            const browser = await puppeteer.launch({args: ['--no-sandbox']});
            const page = await browser.newPage();
    
            // еще и разрешаем запросу из браузера жить вечно
            // если конечно сервак не оборвет коннект
            await page.setDefaultNavigationTimeout(0);
    
            await page.setUserAgent('Mozilla/5.0 (Linux; Android 7.0; NEM-L51) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.81 Mobile Safari/537.36');
            await page.setViewport({width: 375, height: 812});
    
            // куда мы отправляем браузер?
            // переменная url у нас из req.query.url - а следовательно начинается с /
            // то есть без хоста и протокола...
            await page.goto(url);
    
            // что-то мне подсказывает, что это работает не совсем так
            // как Вы ожидаете
            // https://github.com/puppeteer/puppeteer/blob/main/docs/api.md#pageevaluatepagefunction-args
            // читаем: If the function passed to the page.evaluate returns a non-Serializable value, then page.evaluate resolves to undefined
            const bottomSheet = await page.evaluate(() => {
                return document.querySelector('div[data-marker="bottom-sheet"]');
            });
    
            // так как undefined !== null данное условие всегда истинно
            if (bottomSheet !== null) {
                // здесь по идее придет Promise.reject который мы не ловим (об этом ниже)
                await page.click('div[data-marker="bottom-sheet"] button');
            }
    
            // и еще раз... ловите доку на нужный метод:
            // https://github.com/puppeteer/puppeteer/blob/main/docs/api.md#pageselector
            const phoneButton = await page.evaluate(() => {
                return document.querySelector('a[data-marker="item-contact-bar/call"]');
            });
    
            // всегда ложное условие...
            if (phoneButton === null) {
                await browser.close();
                return false; // ...с return внутри...
            }
    
            // еще 1 способ зависнуть (дефолтный таймаут 30 сек)
            await page.waitForSelector('a[data-marker="item-contact-bar/call"]');
    
            await page.click('a[data-marker="item-contact-bar/call"]');
    
            try {
                await page.waitForSelector('span[data-marker="phone-popup/phone-number"]');
            } catch (e) {
                await browser.close();
                return false;
            }
    
    
            const result = await page.evaluate(() => {
                console.log('phone', document.querySelector('span[data-marker="phone-popup/phone-number"]'));
                return document.querySelector('span[data-marker="phone-popup/phone-number"]').innerHTML;
    
            });
    
            await browser.close();
            return result;
    
        };
    
        // не ловим reject промиса
        // и в случае reject не завершаем запрос
        // и он тоже висит в памяти
        scrape().then((value) => {
            console.log(value);
            if (value === false)
                res.send(500);
            // при value === false будет запись в закрытый поток... (или у express есть защита от дурака?)
            res.send(value);
            // абсолютно бесполезное действие...
            scrape = null;
        });
    });
    
    
    app.get('/test', (req, res) => {
        res.send('Тест');
    });
    
    app.listen(setup.port, () => {
        console.log('Сервер: порт %s - старт!', setup.port);
    });
    Ответ написан
    1 комментарий
  • Нужны ли алгоритмы с графами в региональном этапе по программированию?

    gbg
    @gbg Куратор тега C++
    Любые ответы на любые вопросы
    Вы рассуждаете неверным образом.

    Олимпиада - это конкурс по поиску талантов, а не стандартный экзамен по критериям. Если на олимпиаде появится задача, решить которую можно чуть красивее при помощи этих алгоритмов и там же будет участник, который эти алгоритмы знает, вы обломаетесь.
    Ответ написан
    1 комментарий
  • Кто начинал программировать с 20-ти лет и старше?

    timych
    @timych
    Мне сейчас 34 . В 31 пошел учиться в колледж, даже не понимая что такое программирование и чем программисты занимаются. Несколько дней назад защитился на отлично . Работаю Java программистом второй год и уже не джуниор :). Tак что все возможно. Мне бы ваши 20 лет :) А насчет того что материал в таком возрасте хуже усваивается , это да - правда как ни прискорбно.
    Ответ написан
    2 комментария
  • Кто начинал программировать с 20-ти лет и старше?

    У меня есть знакомый, который в 40 лет начал разрабатывать сайты на Ruby On Rails (до этого вообще не работал в сфере IT), нашел хорошую работу, всем доволен) Все в ваших руках!
    Ответ написан
    1 комментарий
  • Какие учебники помогут думать как математик?

    Adamos
    @Adamos
    "А скажи что-нибудь на геометрическом!"
    Практика, практика и головоломная практика. Чтобы начать думать на каком-то языке, в нем нужно практиковаться, не разгибаясь. С науками ровно то же самое.
    Занимаешься математикой - постепенно начинаешь думать как математик.
    Занимаешься выбором учебника на Тостере - снова начинаешь думать как призывник.
    Ответ написан
    Комментировать
  • Не стартует новый пк. Что делать?

    Psixodelik
    @Psixodelik
    Преподаватель на Hexlet
    плашки озу были вставлены не той стороной


    Как это получилось? Ключ не даёт вставить их не той стороной. Вы их силой вставили?
    Ответ написан
    1 комментарий
  • Есть ли перспективы такого стека на фрилансе?

    Sanes
    @Sanes
    Вполне рабочий стек.
    Ответ написан
    Комментировать