• Почему в функциональное программирование считается потокобезопасным?

    uvelichitel
    @uvelichitel
    habrahabr.ru/users/uvelichitel
    ФП программа не хранит состояние/state, кототое бы могли конкурентно изменять потоки. А в чистом ФП и именования должны быть неизменными/immutable. То есть в чистом ФП конструкция
    something = 2
    something = 3
    нелегальна, противоестественна. Если something = 2, то это навсегда и не может вдруг стать =3. При таком подходе потоки не могут получить одновременный доступ к одному месту в памяти пытаясь изменить переменную состояния. Для обмена данными между потоками можно только использовать специальные примитивы защищеннные под капотом механизмами синхронизации операционной системы(вроде Mutex или Atomic). Например очередь сообщений может быть представлена списком/list которым нельзя манипулировать напрямую, а только методами Queue.Put() Queue.Get(). И в реализации этих методов уже зашиты блокировки от параллельного доступа к памяти.
    Ответ написан
    1 комментарий
  • Как оптимизировать выборку с одновременной сортировкой?

    uvelichitel
    @uvelichitel
    habrahabr.ru/users/uvelichitel
    Куча/heap. Стройте кучу длиной 10 штук, пока выбираете. Куча может быть очень эффективно представлена массивом, имеет качественные реализации на почти всех языках. Ваша задача - академический пример применения кучи.
    Ответ написан
    Комментировать
  • Дальнейший road map для разработчика? Куда лучше углубиться?

    uvelichitel
    @uvelichitel
    habrahabr.ru/users/uvelichitel
    одни сидят на WP\MODX\Bitrix\Opencart, PHP(laravel,Symfony), другой отдел работает чисто с JS(angular,react)
    Не надо PHP, он плохой.)) Лучше JS. Кроме фреймворков есть еще интересные библиотеки, например d3js - jquery на стероидах. И vanlla JS никто не отменял, а в него кажется вообще сегодня никто не умеет.))
    Ответ написан
  • Поиск слов в тексте по словарю?

    uvelichitel
    @uvelichitel
    habrahabr.ru/users/uvelichitel
    Алгоритм Ахо — Корасик
    Ответ написан
    2 комментария
  • Возможно ли на лету переводить в двоичную систему из десятичной?

    uvelichitel
    @uvelichitel
    habrahabr.ru/users/uvelichitel
    Или может у кого то есть более простая тактика перевода из 10 в 2 СС?
    Большинство ITшников знают степени двойки на память, как таблицу умножения. Например "1001" это 512+256+128+64+32+8+1 или 1024-16-4-2-1 что составляет 1111101001 Такое довольно легко считать в уме, без бумаги.
    Ответ написан
    Комментировать
  • Как реализовать платный доступ к Wi-Fi на территории базы отдыха, с автоматической выдачей пар логин/пароль?

    uvelichitel
    @uvelichitel
    habrahabr.ru/users/uvelichitel
    желательно реализовать задачу без глобальных нарушений законодательства РФ

    • Вы должны иметь лицензию на предоставление услуг доступа к сети интернет
    • Вы должны иметь СОРМ
    • Вы должны записывать весь месячный трафик
    • Вы должны авторизовать любой доступ к публичному wifi споту

    Не жадничайте, стоимость интернета пренебрежимо мала на фоне стоимости номеров,. Раздавайте пароль непублично и недокументированно, как друзьям. Обеспечьте широкий канал вечером и в непогоду, когда дети смотрят мульты.)) Или вы потеряете клиентов зато найдете неприятности.
    Ответ написан
    8 комментариев
  • Как перенести виртуальной машину virtualbox linux mint на реальную?

    uvelichitel
    @uvelichitel
    habrahabr.ru/users/uvelichitel
    rsync
    Ответ написан
    Комментировать
  • Как можно смотреть вывод файл в реальном времени через web?

    uvelichitel
    @uvelichitel
    habrahabr.ru/users/uvelichitel
    netcat /nc/ наше всё
    (echo -e "HTTP/1.1 200 Ok\n\r"; tail -f /path/to/file) | nc -l 80
    и браузером видно
    Ответ написан
    Комментировать
  • С какой профессией легче всего войти в сферу IT?

    uvelichitel
    @uvelichitel
    habrahabr.ru/users/uvelichitel
    По профессии я социологи Подскажите, пожалуйста какую лучше выбрать профессию в сфере ИТ?
    профессия социолог очень даже востребована в сфере ИТ. Социальные сети и сервисы массового обслуживания бьются за души и персональные данные, а не за качество кода. А как заставить кодеров работать на износ без воодушевляющей корпоративной мифологии? А хакерские группировки, 80% успеха - социальная инженерия.)
    Ответ написан
    Комментировать
  • Как создать срез из массива не передавая его по ссылке?

    uvelichitel
    @uvelichitel Куратор тега Go
    habrahabr.ru/users/uvelichitel
    arr := [5]float64{1,2,3,4,5}
    var newslice = make([]float64, 5)
    copy(newslice, arr[0:5])
    Ответ написан
    Комментировать
  • Стоит ли использовать изоморфное приложение в высоконагруженном e-commerce проекте?

    uvelichitel
    @uvelichitel Куратор тега Go
    habrahabr.ru/users/uvelichitel
    Пишу backend на Go. Первым делом проектируется API и структуры данных. Фронтендеры говорят мне на каком URI они хотят получить какой JSON и моя задача предоставить это быстро и надежно. Как они собираются этот JSON рендерить мне вобщем то и неособо интересно.
    не надо клиента грузить тоннами JS
    категорически не согласен. Клиентов много а сервер один. Вычислительная мощность современных клиентов зачастую больше мощности сервера. Поэтому считаю, что на клиента нужно перекладывать столько работы сколько только возможно.
    Ответ написан
    Комментировать
  • При подтверждении выхода через консоль, срабатывает прошлый Scan, как исправить?

    uvelichitel
    @uvelichitel Куратор тега Go
    habrahabr.ru/users/uvelichitel
    func readInput() string{
    	//fmt.Scan()
    	//process error
    }
    func main() {
    	c := make(chan os.Signal, 1)
    	signal.Notify(c, syscall.SIGINT) //os.Interrupt
    	for {
    		select {
    		    case <-c:
    			    choice:=readInput()
    			    //process choice
    		    default:
    			    text:=readInput()
    			    //process input text
    		}
    	}
    }
    Ответ написан
  • Как с помощью коллизий отталкивать объекты svg?

    uvelichitel
    @uvelichitel
    habrahabr.ru/users/uvelichitel
    Интегрирование Верле. Гуглить verlet js svg
    Ответ написан
    Комментировать
  • На каком языке писать ядро сайта при следующих условиях?

    uvelichitel
    @uvelichitel
    habrahabr.ru/users/uvelichitel
    Большинство успешных стартапов было написано на PHP. С необходимостью оптимизировать компилировать или переписывать код они обычно сталкиваются на второй-третий год высоких нагрузок то есть успеха.
    Архитектура и документирование важнее выбора языка для поддержки и развития, а об этом многие забывают.
    //Я пишу на Go и считаю что мой код быстрее и надежней даже хорошего PHP//
    Ответ написан
    Комментировать
  • Вопрос по стратегии трудоустройства?

    uvelichitel
    @uvelichitel
    habrahabr.ru/users/uvelichitel
    так я все еще продолжаю надеяться.
    "Дела пойдут гораздо лучше, когда раз и навсегда будет покончено с надеждой." /Альбер Камю/
    Нужно просто подавать много заявок.
    по стратегии трудоустройства
    Хедхантеры хантят специалистов высокого класса рассматривая их репо на github, профиль на linkedin, habr, stackoverflow, medium, наводя справки в профессиональном сообществе - это все только в идеальном мире. В реалиях нашей геолокации - это система массового обслуживания. Много кандидатов рассылает много резюме и много рекрутеров эти резюме просеивают. Подавая больше заявок вы увеличиваете шансы попасть на собеседование. Описание вакансий очень редко соответствует реалиям компани, техническая квалификация рекрутеров очень редко позволяет оценить подготовку кандидата.. Соответственно ваше резюме не должно быть точным, не должно быть правдивым. Оно должно быть ошеломляющим, оно должно восхитительной стрелой пронзить заскорулую душу рекрутера и привести к техническому раунду собеседования где все и решится ()там лучше не врать). Отошлите сотни заявок, пройдите десятки собеседований и вы все это почувствуете - магия исчезнет, процесс рутинный.
    Могу ли я с одного аккаунта создать 2 разных анкеты
    Да. И даже вам ничего не мешает открыть несколько эккаунтов.
    Ответ написан
    Комментировать
  • Какую лучше выбрать OC?

    uvelichitel
    @uvelichitel
    habrahabr.ru/users/uvelichitel
    Вам нужен Mac. Он очень удобный, очень-очень. Вы будете получать от работы удовольствие. При этом он под капотом - BSD, то есть вы можете мягко набирать опыт работы с терминалом/консолью. Под Mac полно программ enterprise качества именно для frontend разработки. Классическая работа с Linux - консоль и текстовый редактор Vim. Коммерческих инструментов существенно меньше, к примеру, Photoshop и Illustrator не будет у вас на Linux. Linux вам захочется если переключитесь даже не на Full-Stack, а на backend. Для хардкорного кодинга Linux предоставляет больше инструментария и свободы, ну и удобней разрабатывать и тестировать серверы/сервисы/движки на том же на чем им предстоит крутиться.
    PS Пишу сейчас с macbook, работаю на FreeBSD.))
    Ответ написан
    3 комментария
  • [wget] Как полностью скачать сайт?

    uvelichitel
    @uvelichitel
    habrahabr.ru/users/uvelichitel
    Для wget ключи --recursive --level=3 --referer=http//:Your.Target.Index --save-headers пробовали?
    Есть специализированные приблуды кроме wget - гуглить 'web crawler', 'web spider', много их.
    Как верно подмечено в комментарии к вопросу, спарсить современный, обфусцированный сайт - целая наука.))
    Ответ написан
    Комментировать
  • Как осуществить повторную инициализация переменной данными из БД?

    uvelichitel
    @uvelichitel Куратор тега Go
    habrahabr.ru/users/uvelichitel
    var patterns = make(map[string]int)
    for {
        select (
            case <-stop:
                //do teardown
            default:
                //process data
       }
    }
    Ответ написан
    Комментировать
  • Linux изоляция, где использовать?

    uvelichitel
    @uvelichitel
    habrahabr.ru/users/uvelichitel
    Механизмы изоляции в порядке возрастания уровня абстракции и соответственно удобства пользования
    namespaces - в сущности команда chroot
    control groups - русский https://habr.com/ru/company/selectel/blog/303190/ eng https://wiki.archlinux.org/index.php/cgroups docs https://www.kernel.org/doc/Documentation/cgroup-v2.txt
    lxc - набор инструментов для удобного описания политик namespace и cgroups
    lxd - надстройка над lxc дающая удобный и понятный интерфейс с одной консольной командой lxc с множеством ключей, например
    lxc config set container1 limits.memory 512M
    docker - надстройка над lxc предназначенная для удобной контейнеризации одного приложения, а не полноценной OS в отличии от lxd
    На FreeBSD такое реализовано механизмами jail, bhyve которые вроде и лучше но в них редко кто умеет в силу малой распространенности FreeBSD.
    Ответ написан
    Комментировать