• Как конвертировать фигуры canvas из одной системы координат в другую при масштабирование ширины и высоты?

    @MamaLuyba
    Я при изменении размера канваса просто изменял и его, и фигуры через scale. Не помню, были ли там проблемы с позиционированием фигур, но в итоге все норм работало (если говорить про изменение от большего к меньшему).
    Ответ написан
    1 комментарий
  • Есть ли резон переучиться на программиста?

    @yugoru
    Я в 41 кардинально сменила род занятий, правда ушла не в разработчики, а в тестировщики. Подобных вопросов я не задавала, так как была уверена в своих силах и в том, что мне дико интересно тестировать. Зарплата была вторичной мотивацией.
    Сначала я определилась что именно мне интересно (бэкенд, нагрузка/перфоманс и темт-дизайн) изучила под это дело все, сто смогла и устроилась на работу. Спустя год я стала тимлидом в своей группе (так как возраст это ещё и жизненный опыт, который помогает именно руководить и организовывать).
    Мне кажется, что если программирование увлекает настолько, что хочется встать пораньше, чтоб покодить, или не пойти с друзьями в бар ради доделки кода, то шанс найти свое место очень большой. Взрослый человек умеет обучаться и концентрироваться, так что и развиваться может быстро.
    Ответ написан
    2 комментария
  • С чего начать программирование старшекласснику?

    y0u
    @y0u
    dev
    С чего начать программирование

    Поиском пользоваться для начала нужно. Один и тот же заголовок встречается как минимум в 3 вопросах на первых двух страницах (не знаю почему модераторы не объединяют их). Просто огромная куча из ответов на этот вопрос и всё равно люди задают и задают его.

    Модераторы, есть у вас возможность объединить большую часть вопросов в один?
    Этот вопрос задавали и 30-летние, и учащиеся 4 курсов, и даже 13-летние ( С чего начать программирование? / Что по советуете подростку в программировании? ).
    Ответ написан
  • Можете посоветовать книги по IT направлениям?

    peacelovecookies
    @peacelovecookies
    Работаю в команде Hexlet.io
    Начинал читать Кормена, было сложновато, а вот Грокаем алгоритмы хорошо идет. Думаю, стоит с нее начинать и переходить на что-то посложнее.
    Насколько я понял, вы хотите читать литературу, будучи на службе. Так что предполагаю, что практиковаться будет сложно (или невозможно вовсе). Поэтому советую читать литературу больше по базовым понятиям и формировать мышление программиста. От технической информации толку будет не так много, без практики то...

    Вот отличные книги для развития:
    - Джоэл о программировании (Джоэл Х. Спольски)
    - Мифический человеко-месяц, или Как создаются программные системы (Хилл Чапел, Фредерик Брукс)
    - Цель. Процесс непрерывного совершенствования (Элия М. Гольдратт, Джеф Кокс)

    Если все же тянет на техническую литературу, то про сети полезную информацию можно найти в этих книгах:
    - Операционная система UNIX (Андрей Робачевский, Сергей Немнюгин, Ольга Стесик) - глава 6 как раз про сети, если я не ошибаюсь.
    - Руководство администратора Linux (Эви Немет, Гарт Снайдер, Трент Р. Хейн)

    А вообще можете посмотреть список рекомендуемых книг, вдруг что-то понравится.
    Ответ написан
    2 комментария
  • Где можно найти подобную jquery-карусель как на скрине?

    vicodin
    @vicodin
    Имею некоторый опыт
    slick
    Ответ написан
    Комментировать
  • Постоянно запущенный скрипт на PHP, как реализовать?

    eXcNightRider
    @eXcNightRider
    FullStack Web Developer | DevOps
    Привожу живой пример из личной продакшн практики. PHP-CLI скрипт как запускаемое приложение
    Начальные условия:
    Наличие GNU Linux (в моём случае это Debian)
    Установленные пакет php, php-cli, остальные по вкусу и зависимостям
    В качестве таймера используется класс React\EventLoop\Factory
    1. Создаём пустой файл, можно без разрешения (например daemon), открываем в текстовом редакторе
    Важно, чтобы в начале была строка #!/usr/bin/php -q
    2. Пишем
    #!/usr/bin/php -q
    <?php
    ini_set("display_errors", 1);
    error_reporting(E_ERROR);
    require "/var/project/vendor/autoload.php";
    require '/var/project/bin/cli_config.php';
    use Ratchet\Session\SessionProvider;
    
    $loop = React\EventLoop\Factory::create();
    //вызовы $loop->addPeriodicTimer можно ставить в нужном количестве, первый параметр - количество секунд
    $loop->addPeriodicTimer(120, function(){
    //код здесь будет выполняться каждые 120 секунд
    });
    //если нужен повторяющийся цикл 
    //$loop->run();
    //а если нужен один раз на вызов
    $loop->tick();

    3. chmod a+x /www/project/bin/daemon - даём права на выполнение
    4. запускаем ./daemon будучи в папке с файлом. Если ошибок нет, всё будет работать
    5. А ещё скрипт можно установить как демон в systemd и управлять с помощью /etc/init.d/daemon.service (start|stop|restart) и есть ещё bash-скрипт который будет держать службу на контроле и перезапускать если что, так как не всегда ошибка возвращает код и systemd считает, что процесс не упал, а его остановили, но это уже другая история

    6. Для решения задачи "Требуется по запросу юзера (нажал кнопку) вести отсчет таймера от 120 секунд до 0 и произвести действие" в php на действие пользователя просто запустить exec('/var/project/daemon', $output_1, $exitval);
    Ответ написан
    1 комментарий
  • Как загружать и хранить медиа данные юзеров на разных серверах?

    @maxtm
    Make money, not job
    1. Для хранения файлов выделяется 2 сервера, мне нужно загрузку файлов распределить по ним и соотствественно для каждого файла надо знать на каком сервере он хранится? Как сделать разбиение и по какому признаку? Нужен ли для отдачи медиа данных балансировщик или просто при сохранении файлов писать полный путь с сервером?

    1. Если физически файлов много, либо к ним большой трафик, то разносите так как вы написали.
    Разбивайте по признаку "один сюда, другой сюда", то есть 50/50%.
    Балансировщик нужен тогда, когда у Вас один вид контента одновременно находится на многих сервера, и Вы распределяете между ними нагрузку.
    А тут у Вас уникальный контент на каждом сервере, соответственно балансировать нечего.
    Просто обращайтесь напрямую к этому сервер (s1.example.com, s2.example.com)

    2. Как реализовать запуск 2 веб серверов с одинаковыми версиями приложений и балансировать между ними? Можно ли обойтись nginx или нужен HAproxy? Правильно я понимаю, что для подключения 3 сервера потребуется также развернуть на нем такую же версию приложения, а если 10 серверов нужно добавить будет и балансировать между ними?


    2. nginx отлично справится с балансировкой.
    Да, добавляя новую ноду обеспокойтесь чтобы там была абсолютная копия приложения.
    Обычно это делается через эталонный image-сервера, и при создании новой ноды просто выбирается этот образ компьютера - и вуаля, у вас уже готовая нода.
    Будь у вас 2 сервера, или 20 - nginx отлично сделает балансировку в соответствии с Вашими желаниями.

    3. Вопрос про горизинтальное масштабирование, предположим что база будет расти, и надо будет распределить нагрузку между отдельными серверами баз данных?

    3. С постгри имею не большой опыт. Могу по опыту MySQL сказать.
    В последних версиях mariadb есть galera cluster, это полнофункциональный кластер из мастер-мастер mysql-нод.
    Возможно, у pg есть аналог.
    Суть в том, что трафик по бд раскидывается по нодам, записи типа SELECT выполняются на разных машинах остальные запросы сразу на всех машинах.
    Ряд нод работает с одной БД, другая - с другой, при этом данные у них одинаковы.

    Либо шардирование. "Ручное" распределение данных между несколькими серверами.

    Прежде чем думать о создании нескольких нод базы данных, определите что именно этот участок приложения является узким горлышком.
    Куда проще прикруть кэш, чем организовывать работу с несколькими БД.
    Ответ написан
    4 комментария
  • Как стилизовать input range?

    dom1n1k
    @dom1n1k
    Кастомизация ползунка средствами чистого CSS ограничена, но кое-что все-таки возможно:
    https://css-tricks.com/styling-cross-browser-compa...
    Ответ написан
    Комментировать
  • Какая либа сейчас есть для построения графиков?

    vawsan
    @vawsan
    Frontend Developer
    D3
    Ответ написан
    Комментировать
  • Как отсортировать элементы массива и склеить, если поля datetime?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Решение в первом приближении.
    P.S. Пардоньте за coffeescript, надеюсь, разберетесь.
    Ответ написан
    Комментировать
  • Какая есть литетаратура, примеры, шаблоны для составления сметы startup проекта?

    viktorvsk
    @viktorvsk
    Думаю, если вы технарь, то именно детальный просчет всех вариантов, куда нужно вложить деньги - хостинг, реклама, офис ... - вы должны уже уметь составлять

    А вот конкретный статьи расходов (наружная реклама или контекст) - уже в любом случае делегировать. Соответственно, и 30-50% ответственности за сумму, необходимые на те или иные расходы (рекламу, например) - должен нести соответствующий специалист.

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

    А вот что нужно для стартапа, это маркетинг, наверное даже больше, чем техническая часть.

    Тут могу посоветовать из фундаментального - Основы маркетинга (Котлер), толстенная книжка на 600 страниц, если имели дело с бизнесом с какой-либо стороны - большинство покажется водой и нерабочим в наше время, но систематизировано довольно неплохо все же.

    А вот из современного и, как сегодня говорят, мотивирующего, вот что неплохо:
    Библия "Бутстрапера" (Сет Годин)
    Фиолетовая корова (Сет Годин)
    Метод Тыквы (Майкл Микаловиц)
    Стартап без бюджета (туалетно-бумажный бизнесмен) (Майкл Микаловиц)
    Маркетинговые войны (Джек Траут)
    Ответ написан
    Комментировать
  • Как организовать платформу для онлайн обучения?

    @xom9lk
    Если самый быстрый и простой вариант - использовать любую платформу для проведения вебинаров.
    В нашей компании пользуются Microsoft Lync - отличный инструмент, в возможностях не нашел ограничений, но дорогой и есть недостаток: пользователям нужно единожды установить расширение для браузера.
    Пробовали сервисы попроще, но качество было хуже, после Lync уже не то.
    Можете попробовать еще Google Hangouts.
    Ответ написан
    1 комментарий
  • А так ли важен Landing Page для будущего стартапа?

    God-emperor
    @God-emperor
    create a golden path
    Вы, вероятно, технарь до мозга костей, если считаете, будто всех волнует только функциональность.

    Вы начали стартап. Круто. А вы уверены, что он кому-то нужен? Проверка на стадии идеи спасает от огромных трат, мой друг. Далее. Ваш проект должен выглядеть красиво, стильно, модно. И если сейчас мода на лэндинги, то вам эту моду нужно встроить в свою модель.

    Вообще про это можно долго распинаться, но это уже мусолилось тысячу раз.
    Ответ написан
    5 комментариев
  • Как из Team Lead вырасти до CTO?

    pi314
    @pi314
    Президент Солнечной системы и окрестностей
    Прежде всего, нужно определиться с терминологией. СТО, это, собственно, не столько должность, сколько роль в организации, и ее интерпретация, к сожалению, бывает очень разной. Грубо говоря, от "это чувак, ответственный за снижение стоимости IT и прогулы программистов/админов", т.е. эдакий староста группы придурковатых гиков в свитерах и джинсах, и до "это чувак, от стратегических решений которого зависит наше будущее", т.е. ключевая фигура, на уровне СЕО или безопасника :) Соответственно, от кандидата могут ожидаться совершенно разные качества.

    Первое обычно имеет место быть в организациях, для которых IT/разработка - второстепенная составляющая бизнеса, от которой, по сути, мало что зависит. От "СТО" ожидаются в первую очередь такие скиллы, как умение находить дешевую рабсилу, умение закупать дешевую технику и умение вести отчетность, а понимание разницы между абстрактным классом и интерфейсом или, упаси господи, знание современных методик и технологий не только излишне, но даже прямо вредно для карьеры, т.к. это все дорого и никому не нужно :) Соответственно, определяющими факторами трудоустройства являются количество подчиненных на предыдущих должностях помноженное на количество уровней менеджмента в организации, помноженное на длину ног секретарши непосредственного начальника. Для таких должностей желательно избавиться от всяческих принципов, натренировать печень и раз и навсегда усвоить рекурсивность правила: успехи - заслуга начальника, провалы - следствие косяков подчиненных.

    Второе характерно для бизнеса, непосредственно зависящего от IT/разработки. Тут все и сложнее, и, одновременно, проще. Сложнее, т.к. нужен опыт, обширные знания как предмета, так и в области менеджмента, умение работать с людьми (не только с подчиненными), знание рынка, конкуренции и т.д. и т.п. А проще, т.к. в конечном счете, решающим является вопрос: "а покажи ка дружище, что ты уже сделал для других". Какие проблемы и как ты решил? Какие продукты были созданы под твоим руководством, и насколько они были успешны? Какие технологии ты внедрил, и что это принесло? Что ты изменил/улучшил в процессах? Короче, от кандидата ожидаются не какие-то конкретные скиллы или сертификаты, а банальное умение "делать так, чтоб все работало", убедительно проиллюстрированное соотв. портфолио. Нормальный СТО должен одинаково уметь и найти баг в коде, и утрясти с партнерами технические детали контракта, и подменить заболевшего скраммастера, и в воскресенье ночью накормить команду пицей/кофе, после чего в понедельник утром таки сдать заказчику законченный проект и повести всех на пиво. И все это - не для того, чтоб стать незаменимым, а чтоб создать коллектив единомышленников, который, если понадобится, точно так же вовремя сдаст горящий проект и без него.

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

    Так что могу посоветовать начинать не с резюме, а с определения собственного представления о должности СТО, на которую лично Вы хотели бы попасть, а потом просто поискать работодателя с таким же пониманием. Тогда вопросы, что конкретно написать в резюме, сказать на собеседовании или какие скиллы подтянуть, прояснятся сами собой.
    Ответ написан
    Комментировать
  • Как из Team Lead вырасти до CTO?

    voidnugget
    @voidnugget
    Программист-прагматик
    Нужно
    1. Хорошо понимать как масштабировать приложения, как вертикально так и горизонтально. Как на запись так и на чтение. Внедрять различные наукоемкие вещи по потребности.
    2. Понимать недостатки всех существующих решений и как их можно разрешить. Как правило 80% всего-всего - банальный CRUD, и в большинстве случаев это тонны копи-постного кода аля "одна табличка - один контроллер" без 3-4 нормальной формы модели БД. Со стороны браузеров тоже очень много нюансов. Нужно понимать все эти проблемы, некоторые из них пытаться решить - привлекать людей и создавать новые проекты и сообщества.
    3. Поддерживать реюзабельность, относительно простую поддержку и внедрение всех компонентов системы, внедрять SOA с хорошим покрытием тестами, не пренебрегая профилированием, фаззингом и нагрузочными тестами. Профилировать всё и вся нужно уже с самого начала работ.
    4. Правильно расставлять приоритеты и производить детальную выработку всех требований. Очень много времени в пустую тратится из-за неправильно сформулированных требований и плохо подобранные инструменты.
    5. Понимать как мотивировать существующий персонал, пытаться понять что побуждает людей к работе и какие у них внутренние цели, как правило деньги людей не мотивируют. Относится ко всем как к "ослам и морковке" очень глупо.
    6. Понимать возможные когнитивные искажения и психологические компенсаторные процессы у существующего руководства и коллектива, быть ключевым звеном на пути к их разрешению.
    7. Правильно делегировать свои собственные полномочия - иногда на всё это вас не хватит, нужно давать возможность другим решать все вышеописанные вопросы и проявлять инициативу.
    8. Нанимать и работать с людьми которые заинтересованы в развитии и перспективах вашего продукта, а не просто "делать что скажут за деньги" - так вы не сможете построить действительно конкурентоспособный продукт.
    9. Вдохновение не вечно - люди не смогут постоянно делать одно и тоже, нужно понимать что программисту лучше чувствовать себя художником нежели мясником в цеху рыбообработки.
    10. Понимать что названия должности не должны решать как будет работать коллектив - люди должны быть взаимозаменяемы, и они должны уметь анализировать и предлагать варианты решения задач для других. Чем больше мнений - тем точнее сформулированы требования и подобраны инструменты. Зацикливаясь на специализации и должностях - ваш BusFactor всегда будет 1-2, и в сложную минуту это сыграет злую шутку с вами и вашим коллективом.

    Если у вас будет подобный опыт организации - для вас не важно будет название вашей должности, вы просто создадите контору в которой всем будет приятно работать. И если вам не отдадут CTO, или около того, я уж и не знаю что там за тараканы в головах CEO и стейкхолдеров.

    А вообще дело обстоит так что 80% проектов работают без вменяемого руководства и индивидуального подхода, не имеют жизнеспособной бизнес-модели и MVP, часто продают вакуум, плодят "грибных менеджеров" и "менеджеров-чаек".

    Стоит разобраться с существующими антипаттернами и находить их на текущих местах работы, искать пути их разрешения и пытаться объяснить почему подобная деятельность деструктивна.

    p.s. мне предлагали CTO, но на практике все обстоит так что организовывать всё-всё приходится с нуля без каких либо гарантий нормального сотрудничества.
    Ответ написан
    3 комментария
  • Как из Team Lead вырасти до CTO?

    @onepavel
    Консультация и разработка мобильных приложений
    Я думаю смотрят на то, работал ли кандидат на данной позиции.
    Т.е берут человека с уже имеющимся опытом.
    Ответ написан
    Комментировать