Задать вопрос
  • Пособие по алгоритмам для самых начинающих?

    @stunoff
    Томас Х. Кормен: Алгоритмы. Вводный курс.
    Д. М. Златопольский: Программирование. Типовые задачи, алгоритмы, методы 2012

    и просто сборник задач, вдруг пригодится для практики:
    Д. М. Златопольский: Сборник Задач по программированию
    Ответ написан
    1 комментарий
  • Upwork - как обстоит ситуация сейчас?

    opium
    @opium
    Просто люблю качественно работать
    фигня, я всегда работал на куче бирж, никогда не понимал зачем себя ограничивать одной?
    Ну правда апворк приносил раньше 95 процентов доходов, да и сейчас наверно тоже у большинства приносит так же.
    Работы по прежнему много, упадка кроме как собственных ресурсов не чувствую.
    Ответ написан
    8 комментариев
  • Где искать красивые шаблоны интернет-магазинов?

    sevasargsyan
    @sevasargsyan
    Веб разработчик
    Когда то собрал эти ссылки может помогут
    PSD HTML CMS Шаблоны www.enfusionthemes.com www.mafiashare.net
    HTML PSD PHOTOSHOP followdesign.com
    Zoom эффект\галерея www.starplugins.com
    Шаблоны chocotemplates.com css-free-templates.com
    Флешь шаблоны www.flashmo.com
    Шаблоны бесплатно www.websitetemplatesonline.com
    Templatemonster blog.templatemonster.com/free-website-templates
    PSD шаблоны all-psd.ru
    Полезные разработки efimov.ws followdesign.com
    Фото для фона patterns.ava7.com
    Различные меню\всп окно\ и т.д. webscript.my1.ru
    Ответ написан
    2 комментария
  • Для чего нужен Docker?

    @viiy
    Linux сисадмин \ DevOps
    Представьте что нет никакой ложки докера.

    1) Есть одна физическая машина. Вы устанвливаете софт, разные приложухи, базы, web сервера, заходят тестовые юзеры, что-то запускают. Первая проблема - вы не понимаете кому что надо, кто владелец файлов, приложух, зачем висят демоны и кто за это ответственнен. Как выход, вы решаете это разделить на виртуалки.

    2) У вас есть физическая машина + на ней виртуалки. Вы выделяете под каждую задачу свою виртуалку, там сидят отдельные пользователи, вы навели какой то порядок. Появляется задача - пользователи хотят php 6, а его нет, хотят python3, а его нет, хотят Mongo, а она старой версии. Вы обновляете репозитарии, качаете новые пакеты, ставите, часть пользователей довольны, часть нет - им нужна старая версия какая была. Упс!

    3) Одна физическая машина + еще больше виртуальных машин. Вы разделили всех пользователей так, чтобы никто не дрался за версии софта, если нужен php6 - иди на эту машину, нужен php5 - вот на эту. Все счастливы, но появляются разработчики, которые говорят буквально так - "а у меня на рабочей машине все работает, я перенес все как было на виртуалку, а у меня появляется ошибка missing library libXXX.so.X". И вы понимаете что вам остается только создать полную копию машины разработчика, чтобы софт поехал на этой виртуалке без ошибок... И тут появляется Docker! :)

    4) Docker решает именно эту проблему. Вам не нужно заботится о софте который установлен на сервере/виртуалке. Вы просто берете и переносите софт со всеми "кишками" на другой сервер и он просто работает. Работает за счет того, что все "кишки" это слои файловой системы нанизанные как бисер друг на друга. Дополнительно решается проблема свободного места, т.к слои многократно переиспользуются контейнерами, если вам нужен php + одна библиотека, а другому php + другая библиотека, вы используете (грубо говоря) слой php, а для дополнительной библиотеки делаете отдельный слой, одновременно другой человек делает над php другой слой и вы не деретесь между собой и не видите чужих библиотек. Это грубо и скорее всего ради одной библиотеки никто новый слой не делает, делают слой пожирнее.

    Все запущенные процессы Docker помещает в изолированную среду процессов, файловой системы и сетевого стека. Есть много особенностей по работе с Docker, т.к он предполагает, что в одном контейнере вы запускаете один процесс. Если вам нужно запустить целый набор демоном, тут появляются проблемы, нужно писать шелл-скрипт, который все это поднимет в контейнере. Так же есть особенности по сети, файловой системе. Для кого то Docker спасение и решение всех проблем, но я как сисадмин от этого всего не в восторге.
    Ответ написан
    15 комментариев
  • В чем преимущества *nix, linux перед windows (для веб разработчика)?

    @spotifi
    Нету никаких проблем.
    Если только ваше конкретное используемое для ваших задач ПО нормально работает с Windows.

    Например, в моем случае используется Ansible и Docker, который не поддерживается на Windows. Приходится использовать Vagrant. Это достаточно удобно. Но ресурсы все же кушает.

    А так - даже Vim хорошо себя чуствует на Windows. Нативный. Не cygwin.

    Microsoft это тоже понимает.
    И вот уже они встроили подсистему Linux Ubuntu в Windows 10. Это не виртуализация, а именно полноценная подсистема.

    И многие вещи, например, те же шрифты - в Windows работают лучше, чем под Linux.

    Могут сказать - что лучше использовать для разработки ту же среду что и для production.

    Но дело в том, что даже если вы сидите на Ubuntu Desktop, то ваша среда серьезно отличается от среды сервера FreeBSD, CentOS, Debian, Ubutntu Server. И для полноценного CI все равно умные дядьки категорически рекомендуют и на Linux даже использовать Docker для полноценной эмуляции.

    Но ведь Docker-то можно использовать и на Windows. Правда, запускается он там подольше.

    Где именно вести разработку, где вам удобнее - это ваше личное дело. Вопрос ваших предпочтений. Никаких объективных причин в наше время, когда существуют Docker, Vagrant и виртуальные машины, когда куча приложений изначально сделанных для *nix запускаются в native под Windows - нет никаких причин себя строить. Кроме любопытства - а как оно там на других системах живется.

    У тех кто вас троллит есть еще одна причина: им приятно показать себя более умными. Как же - ведь Linux можно сконфигурить руками.

    Ага, конечно.

    Или используют готовые десктопные дистрибутивы. Не зря Ubuntu так популярна.
    Или если освоили ArchLinux - то построили себе совершенно убогое окружение по готовым мануалам.

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

    На деле 99% твердящих о гибкости Linux - далее чем ставить Apache и MySQL из пакетов - ничего сами и не умеют. Фактически работая в то же настроенной другими людьми десктопной среде. Но разве вы не умеете делать то же самое под Windows?

    Другое дело, что разворачивать и тестировать нужно под аутентичным операционным окружением.
    Неважно под Ubuntu ты сидишь или под Windows.

    Лучшие практики советуют использовать полностью изолированный и независимый от рабочего места разработчика инструментарий - виртуальные машины, Vagrant, Docker, отдельные физические сервера.

    В этом случае под твоей любимой ОС работает только текстовый да графический редактор. А все развертывание для тестирования и для продакшн проводится в совсем другой среде.

    Используя Docker хоть под Windows ты будешь получать даже больше преимущество повторяемости рабочей среды чем тем кругом, кто советуют тебе просто перейти на Linux. Если на более слабом железе это и было бы существенно (Docker под Linux стартует быстрее), то на твоем - несущественно на чем работать.
    Ответ написан
    9 комментариев
  • В чем целесообразность использования SPA, если контент в них не индексируется?

    ASP чаще всего и используются в приложениях, которым не нужно индексировать контент, например:
    Gmail - он реализован как SPA, согласны, что содержимое мыльников никто искать не будет, так?
    Admin Panel - согласны что индексировать админ панель незачем?
    REST api - визуальный интерфейс, согласны, что индексация страниц не нужна?
    Какой-то закрытый ресурс компании, тоже не индексируется.

    В чем плюс использования. SPA приложение на том же Angular сделать быстрее и проще, чем расширять большой и громоздкий функционал на сервере через PHP, Java, C#.
    Во вторых это работа с разными устройствами и под разными устройствами это не только моб. планшеты и компы, а и инженерные программные модули(покрайней мере так пишут в вики).
    Значительно меньше нагрузка на серв и больше на клиент т.к. грузит оно все разом и чаще всего работает асинхронно. Обновляя исключительно контент, а не все страницы целиком.
    Ответ написан
    2 комментария
  • В чем целесообразность использования SPA, если контент в них не индексируется?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    Изоморфный фреймворк - это как раз то что нужно для индексации. Благодаря рендерингу страниц на стороне сервера, поисковики увидят все что нужно. Кроме того, современные поисковики вполне себе учатся понимать SPA-сайты, вот, например тот же Яндекс рассказывает как это сделать. Google предпочитает Progressive enhancement

    Зачем вообще нужно? Затем чтобы сайт работал как приложение (точно так же, как на смартфонах и прочих девайсах). В ситуациях, когда ваш продукт это не только веб-сайт, но еще и куча других устройств, это позволит вам сильно упростить серверную часть. 1 сервер и Rest API для всех, вместо того, чтобы делать отдельно сайт со своим собственным сервером, и отдельно инфраструктуру под мобильные приложения.
    Ответ написан
    Комментировать
  • Есть ли IT деревни на северо-западе РФ?

    Предлагаю получить по бесплатному гектару земли на Востоке и построить IT-колхоз. Выращивание корнеплодов и, конечно же, программирование - что может быть лучше?
    Ответ написан
    9 комментариев
  • За что блокируют на freelansim.ru?

    pozZzitiv
    @pozZzitiv
    Дизайнер и перфекционист
    Задайте этот вопрос поддержке биржи Фрилансим. Или спросите у заблокированных в чём причина (ведь контакты их остались, раз переживаете).
    Ответ написан
    2 комментария
  • Как правильно фильтровать входящие данные?

    Ninazu
    @Ninazu
    Да. Вы указываете whiteList всё остальное будет игнорироваться.

    P.S. кстати можно не указывать верхний регистр, если используете флаг /i, и е находится между а-я))

    /^[а-я ]+$/iu
    Ответ написан
    Комментировать
  • Процессор 32х битный, но програмное обеспечение amd64 и все работает. Почему?

    selivanov_pavel
    @selivanov_pavel
    Linux admin
    На 32-битном проце 64-битное ядро просто не загрузилось бы. Или модель другая, или на сайте Интела опечатка.
    Ответ написан
    3 комментария
  • Почему Битрикс так популярен?

    north_leshiy
    @north_leshiy
    Руководитель направления разработки
    Поставьте себя на место заказчика:
    1. CMS с богатым опытом (уже более 10 лет на рынке)
    2. Имеет самую большую в России долю по eccommerce
    3. Имеет бесплатную качественную поддержку
    4. Имеет широкую документацию
    5. Во всех регионах от малых до самых топовых студий можно найти специалистов без труда.
    6. Обратная совместимость. Полная и безоговорочная. Вы всегда получите доступ к новым фичам и вам не придется доплачивать дохрена программистам чтобы перейти на новую версию движка т.к. старый уже не поддерживают и он кишмя кишит дырами.
    7. Уже готова большая часть функционала которая вам нужна, и оттестирована годами. Только шаблон по сути натяни + немного кастомизируй логику под свои БП.
    8. Есть штатная интеграция с 1с, у нас весь бизнес в России почти на ней.

    Ключевое: "бизнес не любит риски", и потому в большинстве случаев bitrix самая удобная и выгодная система для заказчика как минимум в России.

    За 6 летний опыт работы в направлении веб-студий, столько компаний повидал которые писались на каких нибудь:
    а) Самописных движках
    б) Бесплатных движках к которым прибили гвоздями функционал который в них не заложен
    в) Или вовсе на питоне/руби
    ... которых не хотели брать ни одна из топ 10-20 региональных студий (РнД) на поддержку, и они потом переписывали заново проекты... на bitrix.

    Bitrix это стандарт отрасли по ecommerce в России. Сейчас глобальный тренд на рынке - работы по поддержке и развитию проектов становится все больше чем работы по созданию новых.

    И когда вы пишите на bitrix framework, у вас будет всегда много работы, т.к. bitrix не только популярен, но становится все популярнее, следите за вектором. Сейчас он входит в топ 8 CMS в мире, за последние годы прибавил 5 позиций и продолжает увеличивать свою долю.

    А на счет качества... Мне порой приходит на ум ассоциация с PHP. PHP издавна отвоевала огромную долю рынка, но потом у нее появился некоторый период застоя. А тут сбоку питоны, руби. И все ругали PHP, говорили что у него не самая лучшая поддержка ООП (немного улучшившаяся с первыми 5х релизами), но в сети были модны статьи в духе PHP не круто, "PHP все", сейчас его долю на рынке веба по откусывают.
    Но вот нифига, за счет большого сообщества и богатой инерции просто PHP стал улучшаться, преодолели кризис PHP6 и разногласий, и вуаля, уже php7 который уже "более-менее", и php пошел в гору.

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

    Ну и что немаловажно это те люди которые пишут этот код. Если вы в топовой веб-студии с хорошими архитекторами и ведущими программистами - код на bitrix Framework будет написан качественно, и грамотно на новом ядре в традициях ООП, использования паттернов, грамотно собраны в модули и компоненты. Если же вы фрилансер или в мелкой студии, скорей всего ваши проекты будут "дурно" пахнуть, вся логика будет в шаблонах, или вообще в 1 шаблоне который будет напрочь состоять из сплошного роутинга.
    Ответ написан
    7 комментариев
  • На основе чего пишут API?

    ExileeD
    @ExileeD
    PHP/Python developer
    Именно так
    Ответ написан
    Комментировать
  • На что это больше похоже: паттерн или говнокод?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Никакого отношения сингелтону этот код не имеет.

    с какой целью его автор создает экземпляр объекта в статичном методе


    У этого приема много названий. По сути это статический метод-фабрика, еще можно встретить "именованный конструктор".

    class User {
        private function __construct($email, $password) { /* ... */}
        public static function create($email, $password) { 
             return new static($email, $password); 
        }
        public static function createWithProfile($email, $password, UserProfile $profile) {
             $user = static::create($email, $password);
             $user->profile = $profile;
             return $user;
        }
    }
    
    $user1 = User::create('example@example.com', 'example');
    $user2 = User::createWithProfile('example@example.com', 'example', new UserProfile(
        $firstName, $lastName, $avatar /* ... */
    ));


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

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

    Почему бы не сделать так, спросите вы:
    (new Reboot())->reboot();

    Потому что нам не нужен этот инстанс. Функция reboot ничего не должна вернуть, а объект который создается - одноразовый. Почему так - надо смотреть в контексте. При работе с процессами я могу придумать десяток кейсов когда это надо.

    По сути можно было бы спокойно сделать это обычной функцией, но автор посчитал что так будет читабельнее. Говнокод часть тут только имя класса - Reboot. Имена классов, интерфейсов и т.д. должны быть существительными. Мы описываем тип объектов. Но это единственное место к которому я могу придраться.
    Ответ написан
    2 комментария
  • Какой выбрать фреймворк для написания небольшого десктопного приложения, использующего базу данных?

    nki
    @nki
    bezkart.ru готовая система лояльности
    1C идеальный вариант для вашей задачи.
    Ответ написан
    Комментировать
  • Какие вы знаете русскоязычные сайты для изучения программирования?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Только есть одно условие - сайт и курсы на нем должны быть на русском языке.


    HSLivcueqro.jpg

    Серьезно, без знаний английского, хотя бы на уровне чтения технической литературы (это на самом деле не сильно высокий уровень) вы очень быстро упретесь в потолок. При том что при нынешей ситуации с электронными словарями, переводчиками, онлайн курсами и т.д. выучить хотя бы немного язык займет не сильно много времени зато поможет вам в будущем.

    По программированию рекомендую книгу "структура и интерпретация компьютерных программ", она есть в хорошем переводе на русском, и по ней учат в MIT. Но для ученика школы может быть тяжелова-то. Потому лучше воспользоваться какими-то упрощенными штуками типа codeschool, а там уже нужен язык.
    Ответ написан
    9 комментариев
  • Нужна помощь гиков). Как отправить письмо через 15 лет?

    @kstyle
    задача аналогично такой: гарантированно прожить еще 15 лет.
    Ответ написан
    Комментировать
  • Есть у кого шпаргалка с функциями языка?

    @enot_enotov Автор вопроса
    Все нашел overapi.com , ура :D
    Ответ написан
    Комментировать