• Какую выбрать БД?

    @murlogen
    MySQL - как раз одно из быстрейших решений в этой сфере.
    Потому что ПРОСТОЕ (можно еще поковырять в настройках самого MySQL - MyISAM быстрее чем InnoDB)

    PostgreSQL не быстрее. Но навороченнее. Когда вам понадобится, к примеру, что нибудь более мощное по транзакциям или кластеризации/репликации - тогда и смотрите на PostgreSQL. Переход с MySQL на PostgreSQL не элементарный, тем более если вам нужны будут фичи PostgreSQL, аналогов которых у MySQL нет изначально.

    MariaDB - это тот же MySQL только более доведенный до ума. Переезд с MySQL на него элементарный (почти ничего менять не нужно).

    Если все устраивает, то на MariaDB еще имеет смысл. И это просто.
    А PostgreSQL - тут нужно понимать, а зачем вам это надо. И работы по переезду там гораздо больше.
    Ответ написан
    2 комментария
  • Спидометр на JS. Как проще реализовать?

    Если уж совсем просто, то:
    1. Вставляем шкалу как картинку
    2. Вставляем стрелку картинкой, причем с центром в месте "крепления" стрелки
    3. Просто крутим картинку свойством transform на нужный градус.
    268956b08b954c1ca7d145cef2314fa2.png
    4. Плавно изменяем текст в блоке с числами, tween.js какой-нибудь можно взять.
    5. Придумываем как сделать зависимость значения скорости и угла поворота картинки со стрелкой.
    Ответ написан
    1 комментарий
  • Как написать JS чтобы в CSS выводилась ширина равная высоте страницы?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    Можно и без JS:
    .block {
        width: 100vh; // vh = viewport height, есть так же vw - viewport width
    }
    Ответ написан
    4 комментария
  • Почему ember, angular и react сравнивают в скорости?

    sim3x
    @sim3x
    Ведь это же тот же js, разве такие вещи могут писать дилетанты, что у одних нормальный код, а у других куча лишнего?
    первые версии ангуляра писали люди с опытом js около года. js недавно стал "мейнстримом" - там полно профанов

    Подскажите, пожалуйста, почему их всё время сравнивают в скорости?
    потому что все они используются в продакшене у крупных компаний и других в "мейнстриме" просто нет
    Ответ написан
    Комментировать
  • Почему ember, angular и react сравнивают в скорости?

    Для разных вещей в этих библиотеках используются разные подходы.
    Из-за этого для каких-то вещей быстрее одна библиотека, для других - другая.
    Для ангуляра ядро - digest cycle, react изспользует virtualDOM, по поводу ember.js сказать ничего не могу.
    Это кардинальное различие между этими библиотеками. И каждый из подходов накладывает свой оверхед, который в некоторых случаях фатален для приложения.
    Ответ написан
    Комментировать
  • Что такое библиотека кода?

    SerafimArts
    @SerafimArts
    Senior Notepad Reader
    Ну фигачишь ты функцию, которая превращает строки в массив слов в этой строке. И нафигачил ты её настолько круто, что дали тебе премию на работе, а в отдельном тёмном уголке офиса поставили "Уголок Поклонению Делителю Строк". Даже включили в дайджест на хабре.

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

    И решил ты её перетащить в другой проект. Но решил не с помощью Ctrl+C -> Ctrl+V, а по-хитрому, создал целый файл с исходным кодом. Так вот этот файл и есть библиотека.

    P.S. В ходе рассказа ни один котик не пострадал.

    P.P.S. Но потом конечно же ты опубликовал её в npm и назвал фреймворком, но это уже другая история...
    Ответ написан
    Комментировать
  • Как научиться программировать, как в прямом, так и переносном смысле?

    Rou1997
    @Rou1997
    Никак не быть, из вашего описания все нормально, а низкая самооценка лечится практическими задачами, соответствующими вашему уровню и имеющими стимул, обычно финансовый.
    Ответ написан
    Комментировать
  • Как научиться программировать, как в прямом, так и переносном смысле?

    @MoonMaster
    Программист и этим все сказано
    Самый хороший вариант - это практика. Ну и + хороший (опытный) наставник, который может подсказать какие то моменты, показать что-то интересное, и объяснить с точки зрения своего опыта, почему к примеру, ваш вариант решения проблемы не эффективен или вовсе неправильный.
    Также необходимо читать необходимую литературу (книги по ЯП, по алгоритмам + статьи по интересующим вас технологиям и подходам).
    Ответ написан
    Комментировать
  • Какую документную бд выбрать?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Смотря что с чем кушать. Можно и elasticsearch в качестве nosql хранилища использовать, как я делаю. Мы же, я надеюсь, подбираем не просто абстрактного коня в вакуме, а нечто, что поможет решить нам задачу.
    Вот с описания задачи в вопросе я бы и начал.
    Как пример:
    - нужно много искать по разным критериям, типа товаров в магазине, желательно с языковым поиском, документы небольшие и не ветвистые - elasticsearch
    - нужно искать непонятно что в развесистых документах, языковой и полнотекстовый поиск не сильно нужен, но нужно вычислять поля в зависимости от поиска - mongodb, как пример база расписаний поездов и их движения по направлениям.
    -нужно искать связанную информацию типа связей между людьми, типа семи рукопожатий - node4j например.
    Ну и так далее, для каждой затычки есть хитрый штопор.
    Ответ написан
    Комментировать
  • Как упростить такой кусок кода?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    Логичным выглядит подписаться на событие "изменение данных" на сервере. Если на сервере нет такого - то реализовать. А если сервер чужой и такого функционала там нет, то либо запросить у авторов/владельцев добавить данный функционал либо оставить все как есть.
    Ответ написан
    4 комментария
  • Два приложения nodejs на два ядра?

    fornit1917
    @fornit1917
    Чего тут выдумывать? Запускаете два процесса ноды и все.
    node first_app.js
    node second_app.js

    Ну с pm2, насколько понимаю, node на pm2 start надо просто заменить.

    У вас запустятся два разных процесса. Операционка сама их по разным ядрам раскидает при возможности и необходимости.
    Ответ написан
    2 комментария
  • На чем основан принцип обучаемости нейронных сетей?

    @nirvimel
    Нейронная сеть (как природная, так и искусственная) по сути своей представят функцию (да, Y=F(X) только очень сложную), выходом Y которой является некоторое поведение субъекта (или программы), а входом X служит некоторая императивная информация (от органов чувств, например). Суть обучения в поиске оптимального значения F(X), при котором достигается наилучшая приспособленность субъекта/программы к поставленной задаче (для живых существ задача - выживание). Обучение происходит путем мелких итеративных шагов от менее оптимальных вариантов функции F к более оптимальным (а не перебором всех возможных вариантов). Подавая на вход F различные значения X, учитель (или естественный отбор) "поощряет" варианты, при которых F дает на выходе более точные значения Y (лучше соответствующие поставленной задаче) и "наказывает" за худшие (относительно предыдущих достижений) варианты. "Поощрение" и "наказание" происходит путем (нерезкого) усиления/ослабления тех нейронных связей, которые были более других задействованы в ходе последней итерации, то есть внесли в успех/неудачу наибольший вклад. Таким образом в ходе мелких последовательных итераций "интеллект" (возможно даже без кавычек) нейронной сети постепенно затачивается под решаемую задачу (простой перебор не дал бы таких результатов и за 100500 лет).
    Ответ написан
    3 комментария
  • Какой алгоритм использовать для определения минимального числа перестановок карт в колоде?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Мои мысли на тему и получившийся алгоритм:
    - обозначим для простоты карты их порядковыми номерами в отсортированной колоде, Ai;
    - каждой карте сопоставим расстояние до её конечной желаемой позиции, равное i - Ai;
    - перестановка карты с позиции i на позицию j меняет её расстояние на j - i, и одновременно на sign(i - j) меняет расстояния карт между i и j;
    - перестановка выгодна если она уменьшает суммарное расстояние, которое потребуется пройти картам после неё;
    - для текущей позиции существует по меньшей мере одна наиболее выгодная перестановка -- такая, которая максимально уменьшает оставшееся расстояние; найти её можно тупым перебором исходной и конечной позиции переставляемой карты (но, может быть, можно и быстрее);
    - совершая на каждом шаге наиболее выгодную перестановку мы, скорее всего, упорядочим карты за минимальное число перестановок.

    Код на c:
    #include <limits.h>
    #include <stdio.h>
    #include <string.h>
    
    #define N (sizeof(a) / sizeof(a[0]))
    
    inline int sign(int d)
    {
            if (d == 0)
                    return 0;
            return d < 0 ? -1 : 1;
    }
    
    inline int abs(int v)
    {
            return v < 0 ? -v : v;
    }
    
    int main()
    {
            int a[] = {2, 1, 3, 4, 0};
            int q[N];
    
            for (;;) {
                    int best_profit = INT_MIN;
                    int best_src = -1;
                    int best_dst = -1;
                    int i, src, dst, tmp;
    
                    for (i = 0; i < N; ++i)
                            q[i] = i - a[i];
    
                    for (src = 0; src < N; ++src)
                            for (dst = 0; dst < N; ++dst) {
                                    int d = sign(dst - src);
                                    int profit = abs(q[src]) - abs(q[src] + dst - src);
    
                                    //printf("...%d -> %d: profit = %d", src, dst, profit);
    
                                    for (i = src + d; i != dst + d; i += d) {
                                            if (sign(q[i]) == d) {
                                                    ++profit;
                                                    //printf(" + 1");
                                            } else {
                                                    --profit;
                                                    //printf(" - 1");
                                            }
                                    }
                                    //printf(" = %d\n", profit);
                                    if (profit > best_profit) {
                                            best_src = src;
                                            best_dst = dst;
                                            best_profit = profit;
                                            //printf("... -- new best!\n");
                                    }
                            }
                    printf("%d -> %d (profit = %d)\n", best_src, best_dst, best_profit);
                    if (best_profit == 0)
                            break;
                    tmp = a[best_src];
                    if (best_dst < best_src)
                            memmove(a + best_dst + 1, a + best_dst, (best_src - best_dst) * sizeof(int));
                    else
                            memmove(a + best_src, a + best_src + 1, (best_dst - best_src) * sizeof(int));
                    a[best_dst] = tmp;
    
                    for (i = 0; i < N; ++i)
                            printf("%d ", a[i]);
                    printf("\n");
            }
            return 0;
    }
    Ответ написан
    Комментировать
  • Как посчитать все запятые в строке?

    DevMan
    @DevMan
    Ответ написан
    Комментировать
  • Как решить проблему амперсанда (&) в SASS?

    delphinpro
    @delphinpro Куратор тега HTML
    frontend developer
    ну вот - жертва indent синтаксиса +) а мне говорят что отступы прекрасны вместо скобок...

    .header__nav
        float: left
        margin: 0
        padding: 0
        list-style-type: none
        font-size: 0.875rem
        li 
            display: inline-block
            padding: 0 40 0 0
        a
            text-decoration: none
            color: #000000
            &:hover // здесь отступа не хватало
                color: #FD683D
    Ответ написан
    7 комментариев
  • Какой фреймворк или CMS?

    mlnkv
    @mlnkv
    JavaScript Developer
    Учите язык, cms / framework учить не надо, с ними надо ознакамливаться
    Ответ написан
    Комментировать
  • Как уменьшить количество срабатываний события onmousewheel?

    mlnkv
    @mlnkv
    JavaScript Developer
    // Returns a function, that, as long as it continues to be invoked, will not
    // be triggered. The function will be called after it stops being called for
    // N milliseconds. If `immediate` is passed, trigger the function on the
    // leading edge, instead of the trailing.
    function debounce(func, wait, immediate) {
    	var timeout;
    	return function() {
    		var context = this, args = arguments;
    		var later = function() {
    			timeout = null;
    			if (!immediate) func.apply(context, args);
    		};
    		var callNow = immediate && !timeout;
    		clearTimeout(timeout);
    		timeout = setTimeout(later, wait);
    		if (callNow) func.apply(context, args);
    	};
    };


    Usage:
    var myEfficientFn = debounce(function() {
    	// All the taxing stuff you do
    }, 250);
    
    window.addEventListener('resize', myEfficientFn);


    https://davidwalsh.name/javascript-debounce-function
    Ответ написан
    1 комментарий
  • Не отвечает node сервер на VPS?

    BuriK666
    @BuriK666
    Компьютерный псих
    server.listen(9099, "localhost");
    у вас сервер слушает localhost, укажите 0.0.0.0 или IP сервера.
    Ответ написан
    Комментировать
  • Как получить количество элементов массива Object по ключу?

    RubaXa
    @RubaXa
    kaktotak.reduce((total, {group}) => total + (group == 1), 0);
    Ответ написан
    Комментировать