Задать вопрос
  • Что за ошибка, при установке Redisa на Centos 6.x?

    Denormalization
    @Denormalization
    Английским по белому же написано Couldn't resolve host 'mirror.yandex.ru'
    Не может отресолвить домен. Проблема с DNS. Нужно смотреть что нахимичили в /etc/resolv.conf
    Ответ написан
    Комментировать
  • Как развиваться, если команда слабая?

    max-kuznetsov
    @max-kuznetsov
    Главный IT-архитектор
    Вот Вы только ВУЗ закончили, и уже жалуетесь, что разработчики вокруг слабые. Что ж Вы говорить будете, когда архитектором станете? :(

    Это я к тому, что (1) любое развитие начинается с личности, а не с команды, и (2) если Вы хотите достичь вершин, то работа с теми, кто слабее Вас, должна стать неотъемлемой частью Вашего бытия. И Вы должны быть этого достойны. Никто не хочет иметь в команде чванливого супергероя, но мудрый и терпеливый наставник, способный вовремя подставить плечо более слабому - это очень важная роль. Так что, если действительно хотите развиваться, в первую очередь займитесь своими личными качествами. Поверьте, они часто более важны, чем умение писать оптимальный код.

    Что касается кода, то есть несколько направлений (скорее всего, этим Вам придётся заниматься в свободное время):
    • читайте и экспериментируйте; вам нужен широкий кругозор и глубокие знания в ключевых областях (таких, как особенности реализации типов, производительность и т.п.);
    • возьмите какой-то качественный проект с открытым кодом и проведите анализ кода - наверняка найдёте много интересного;
    • займитесь фрилансом: и денюжка лишняя не помешает, и головомойки периодические от тимлидов заказчика себе обеспечите.


    Ну и наверняка ещё что-то можно в этот список добавить. Было бы желание. А вот жаловаться - бросьте!
    Ответ написан
    2 комментария
  • Как развиваться, если команда слабая?

    opium
    @opium
    Просто люблю качественно работать
    Ну развивайтесь сами без команды, делайте всем участникам команды код ревью
    Ответ написан
    Комментировать
  • Как развиваться, если команда слабая?

    GaneevRR
    @GaneevRR
    Вместо спасибо отмечайте Нравится
    Но команда там откровенно слабая

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

    @maxtm
    Make money, not job
    Ну станьте этим самым компетентным разработчиком в своей команде.
    Если уйти нет возможности, тяните команду, чтобы самому не "утонуть".
    Ответ написан
    Комментировать
  • Как развиваться начинающему web-разработчику?

    @ZaurK
    Попытайтесь устроиться помощником, джуниор-разработчиком куда-нибудь, чтобы не вариться в собственном соку. Делайте то, что можете, пусть даже поначалу несложные вещи. Это и организует вас и самое главное - общение с более опытными разработчиками поможет подняться быстрее и по более правильному пути. А так, конечно, как написали выше, сейчас голым php никто не пишет, в основном на фреймворках все, хорошо, если один конкретный освоите.
    Ответ написан
    Комментировать
  • Как развиваться начинающему web-разработчику?

    Freika
    @Freika
    Senior Ruby on Rails developer
    Прочти книгу "Совершенный код".
    Ответ написан
    Комментировать
  • Как развиваться начинающему web-разработчику?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Комментировать
  • Как развиваться начинающему web-разработчику?

    thecoding
    @thecoding
    Full-stack Dev
    Я бы вам первоначально посоветовал изучать не стеки , а проектирование архитектуры высоконагруженных проектов,проектов с сильной бизнес логикой.
    Почитайте и посмотрите лекции Олега Бунина (HighLoad++)
    Изучите MVC(O-OP)
    GIT (обязательно)
    Unix (Linux)
    Если у вас есть общие знания и какая то практика разработки на PHP , то начните с Yii 2, в Symphony и Laravel пока не лезьте.
    Потом вливаетесь в какой нибудь OpenSource Project.
    Дальше все само собой пойдет.
    Или возьмите какой нибудь более менее интересный репозиторий на GitHub и попробуйте запилить что то свое, только ручками код пишите, смотрите архитектуру и вникайте.
    А интернет магазин по продаже трусов для соседки Нины(условно) можно и на OpenCart поднять)))Один хрен не взлетит до Ulmart.
    Ответ написан
    3 комментария
  • Как развиваться начинающему web-разработчику?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Я в начале 2000-х писал приложение для учета некоммунальных услуг ЖКХ для местного МУПа. Начинался этот проект как тестовое задание для приема на работу.

    Писать можно было на чем угодно, но на тот момент для меня лучшим инструментом казался Clipper 5.x, которым я, как мне тогда казалось, более-менее владел.

    Проблема усугублялась еще и неразговорчивостью специалистов, работу которых мне было поручено автоматизировать.

    Забегая вперед скажу, что автоматизация, в конце концов, удалась, из режима работы 3 человека по 8 часов в день 6 дней в неделю, за 6 месяцев после начала внедрения, вышли в режим 1 человек 2 часа в день 5 дней в неделю... Т.е. 3*8*6*4 = 576 человеко-часов превратилось в 2*5*4 = 40 ч/ч, КПД был увеличен в 14.4 раза.

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

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

    Далее я реализовывал эти пути как разумел и предоставлял тётушкам.

    И о чудо, обычно на этом этапе прорезался дар речи (тётушки, как все нормальные люди, обожают критиковать то, что по их мнению "не так"), и на меня начинал сыпаться поток весьма конкретных и ёмких ЦУ (ценных указаний), которые я подробно документировал и впоследствии претворял в жизнь.

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

    Первые месяцы они вели двойной учет, по старинке в своей огромной бухгалтерской книге, и в программе, и программу проверяли по книге. Через 2-3 месяца они убедились, что в программе "цифры" точнее, ошибки отлавливаются быстрее, меньшими усилиями, и стали уже свою книгу проверять по программе. Через 5-6 месяцев я написал им модуль расчета и распечатки месячного отчета, и они перестали вести свою книгу, просто печатали ее каждый месяц на огромном матричном принтере.

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

    Условно можно разделить основной функционал приложения на 2 фазы - ввод/редактирование/просмотр данных и построение отчетов/выборок. С отчетами и выборками тёмный лес, т.к. требования меняются непредсказуемым образом любое количество раз в году (по началу), а вот с вводом и редактированием данных в целом ситуация стабильная, тем более за предыдущие 3 версии я достаточно хорошо исследовал этот процесс.

    Ввод/редактирование данных осуществляется посредством форм, которые, в общем случае, повторяют структуру таблицы БД, за исключением случаев, когда присоединяются поля из справочников.

    Я вообще по натуре человек ленивый, и вместо того чтобы 100 раз метнуться и что-то по мелочи исправить, я предпочитаю долго запрягать, а потом быстро и беззаботно ехать.

    Первейшая проблема программ на Clipper 5.x это банальное отсутствие таблиц БД, либо слетевшие индексы. Это первое, чем я озаботился. программа при запуске проверяет наличие или отсутствие таблиц и индексов, и чего не хватает - достраивает на лету. Таким образом можно потерять данные, но программа, все равно, работать будет. Чтобы это стало возможным, потребовалось в программе прописать структуры таблиц БД и индексов.

    Вторым этапом, дико устав копипастить на 95% совпадающий код для построения форм, а, потом, когда надо что-то поменять, добавить или исправить, шариться по тоннам на 95% идентичного кода в сотне мест, я решил прибиться к стану метапрограммирования.

    Для этого потребовалось каждую форму описать неким образом, и под это описание разработать генератор форм/генератор гридов. Когда мне это, далеко не с первого раза и далеко не сразу, но таки удалось, добавление новой формы/грида в программу стало сводиться к описанию структур необходимых таблиц, индексов к ним, и структуры формы, и, после компиляции, программа на лету строила все необходимые интерфейсы.

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

    Причем генератор грамотно отрабатывал множественную вложенность, и каждый вызываемый справочник имел полный функционал CRU (Create, Read, Update), включая фильтрацию по столбцам и сортировку.

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

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

    Для реализации этого функционала пришлось пропатчить стандартный грид TBrowse (он применяется для просмотра таблиц).

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

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

    P.S.: когда я мигрировал в веб, через некоторое время я снова вынужден был пройти аналогичный путь, в результате которого родился простенький AJAX-фреймворк на стеке PHP+Smarty+DBSimple+jQuery. Сегодня я всеми силами стараюсь от него уйти, хотя для своих задач он достаточно хорош. Был опыт, когда на шареном хостинге за 5 баксов проект на этом фреймворке со скрипом но держал 30-40 тысяч уников в сутки (после ряда оптимизаций) и достаточно хорошо был защищен от топорного взлома через SQL-инъекции благодаря DBSimple...
    Ответ написан
    1 комментарий
  • Как развиваться начинающему web-разработчику?

    Коротко
    Карта развития Web Разработчика

    Демагогия
    Не переживайте, не все сразу. Есть вещи до которых можно дойти только опытом и практикой. Это касается всех программистов в целом. Касательно веба, тут очень много упирается в то, каким именно специалистом вы хотите себя видеть в будущем. Есть фулстак - когда человек знает большую часть технологий их связку, но всегда будет ощущать недостаток тонкостей на хай левеле. В то же время специалист заточенный под определенные задачи будет лучше фулстака, но так же будет нуждаться в том же фулстаке, что бы объеденить.

    Живой пример: Есть толковый фронтендер(или бекендер по JS) пишет морду сайта на JS Фреймворке. Есть гуру бэкенда пишет API сайта. В случае с фулстаком(образно) он пишет обе задачи сам, но заведомо понятно, что он пишет это дольше и не факт что по последнему слову будет сделано.


    Что нужно для развития дальше:
    - Читайте блоги зарубежных программистов, они делают отличные архитектуры как в самом коде, так и решения в DB.
    - Фреймворки PHP и JS - чем больше их будет тем лучше. Все они ускоряют разработку. Все чаты, соц авторизации, регистрации,и прочие первоочередные задачи давно уже написаны. Вы можете концентрироваться на более важных задачах.
    - ООП тут очень спорный вопрос, на определенных этапах разработки оно решает, но когда этот уровень появляется, чаще всего прибегают к другому языку программирования и переписывают проект в угоду скорости (С++, Java, Python). Понимать нужно, поскольку фреймворки построены на этих парадигмах, но самостоятельно придумывать вам гибкие решения вряд ли придется(по крайней мере до Senior-а точно).
    - Не изобретайте велосипеды. Разбирайтесь в чужом коде(Этот навык очень ценен после "решить/найти решение любую задачу"). Любой магазин чаще всего будет написан в лучшем случае на фреймворке, в худшем на OpenCart, Woedpress - что просто идиотизм, это блоговая система БЛОГОВАЯ. из за тренда выкручивают яйца.
    - Учить английский и работать не на СНГ, Укр или места постсоветского пространства. Искать фирмы зарубежных филиалов и работать там. Поскольку так или иначе там уже работают профессионалы и знакомы с западным рынком, европейским. Там пишутся интересные проекты и появляются интересные решения.
    Ответ написан
    7 комментариев
  • Как развиваться начинающему web-разработчику?

    @chronic86
    Ruby on Rails junior
    Хотите научиться решать сложные задачи берете (или придумываете) проект и делаете его.
    Хотите научиться проектировать проекты берете листочек и ручку и рисуете, потом в течении недели подходите к листочку и редактируете.
    Хотите научиться писать код чтоб потом не смотреть на него и не плакать, пишите много кода.
    На истину не претендую, таков мой путь ниндзя. =)
    Ответ написан
    3 комментария
  • Как сделать бекап и не уложить сервер?

    @MechanID
    Админ хостинг провайдера
    Посмотрите на nice и ionice
    эти утилиты позволяют понизить приоритет использования цпу и дисковой подсистемы процессу во время запуска или уже после того как он был запущенн.
    Ответ написан
    3 комментария
  • Какой подход виртуализации выбрать?

    @Fixid Куратор тега Linux
    Использую Proxmox 4 в продакшн, очень понравились LXC вместо openvz. Для некоторых задач использую полноценные VM на базе KVM.
    LXC быстро и легко развертывается, полноценный CLI

    06d3e0045dfaa401e0a86bde2dd1acae.png
    Ответ написан
  • Почему не грузится KVM guest с образа диска физической машины?

    opium
    @opium
    Просто люблю качественно работать
    Это идиотский способ прочитайте хоть одно руководство по миграции на квм с физического хоста, вы вообще никаких правок для этого не сделали .
    Самый простой способ поставьте голый центос и рсинкнете с правами файлы со старого центов на новый ну кроме системнобутовых папок сисов девов и всяких табов и сетевых интерфейсов и вуаля у вас копия центос
    Ответ написан
    9 комментариев
  • Может ли системный администратор?

    w1ld
    @w1ld
    Программирую
    Под виндой: набираете `systeminfo /S remotesystem` и смотрите, что изменилось с предыдущего раза.
    Ответ написан
    Комментировать
  • Как подготовиться к закону Яровой?

    @nirvimel
    1. Купите недорогой VPS (от $15/год, можно даже дешевле) и поднимите на нем личный VPN. В Сети есть куча подробных руководств как это делается. Только не надо говорить, что у вас нет на это денег, интернетом вы же не бесплатно пользуетесь. Просто примите это как небольшую дополнительную плату за интернет за ваш спокойный сон.
    2. Работая через VPN (обязательно), заведите себе новый почтовый ящик на зарубежном сервере у компании, у которой нет никакого бизнеса и любых коммерческих интересов в РФ. Пусть это будет не мажорный гигант индустрии, а скромная компания, малоизвестная в РФ. Главное - это наличие SSL в веб-интерфейсе и в IMAP, в остальном почта есть почта, она просто работает, и этого достаточно.
    3. Работая через VPN, заведите себе новый аккаунт в vk facebook и/или google (если вы неспособны полностью отказаться от использования социалок). При регистрации указывайте место проживания подальше от РФ. Учитывайте, что все гиганты индустрии, имеющие большой бизнес в РФ, полностью сотрудничает с ГБ, но аккаунты нерезидентов, зарегистрированные и посещаемые с зарубежных IP, они не станут сливать по умолчанию (но по первому запросу сольют мгновенно). Так что забудьте про любые приваты в социалках, ведите все общение так, как будто все это читает весь ваш квартал и все те, кому бы вам меньше всего хотелось это показывать. Для приватного общения пользуйтесь только безопасной почтой (пункт 2) и защищенными чатами, на telegram jabber на зарубежных серверах. Все это касается только тех, кто не может окончательно завязать с пагубной зависимостью от соц.сетей. Очевидно, наиболее безопасным (и полезным для здоровья) вариантом является полный отказ от социалок.
    4. Не вбрасывайте в старые ящики и соц.аккаунты адреса и ссылки на новые чистые, не указывайте новые адреса в любых исходящих и старайтесь, чтобы они не попали во входящие. Помните, что в любой социалке и любом веб-интерфейсе почты (сотрудничающей) кнопка "удалить" скрывает удаляемое только от вас самих и не более того.
    5. (Самый неприятный пункт) Забудьте про vk, mail.ru и российские gmail и facebook. - КАК? - Так! Я понимаю, что это не легко, что они давно стали частью вашей жизни. Но это придется сделать! Поговорите сами с собой, спросите себя что для вас важнее: ваша личная безопасность, спокойствие и крепкий сон или старые привычки, которыми вы опутаны, и которые не хотят отпускать вас? Учтите, что продолжая пользоваться местными социалками (и сотрудничающими иностранными), вы продолжаете каждый день генерировать на себя тонны компромата, который может обернуться против вас в самый неожиданный момент самым неприятным образом. Проявляя активность в своих старых аккаунтах, вы не даете им "протухнуть" и не даете даже формального повода добрым компаниям снести их через пол года, после истечения отведенного законом срока хранения (как известно, vk не ограничивается минимальным сроком хранения, а хранит все метаданные и текст практически вечно за исключением видео/аудио).
    Ответ написан
    26 комментариев
  • Docker: Как запустить несколько доменов на одном сервере?

    @FireGM
    А в чем проблема-то? У вас какой-то общий вопрос, на который можно так же обще ответить.
    Запускаете образ nginx'a, который по конфигу будет проксировать на ваши запущенные образы php с проектами.
    UPD:
    Взять образ nginx, сделать конфиг(сделать прокси на 8080)
    Взять образ php, пробросить порты вместо 80 на нужный вам(8080:80)
    Запустить nginx. Запустить контейнер с пхп. Новый проект с пхп прокидывайте новый свободный порт(8081:80), добавляйте в конфиг nginx'a новое проксирование, запускайте новый проект, перезапускайте nginx.
    Или nginx вообще не выносить в образ и перегружать конфиг не теряя конекты.
    Ответ написан
    1 комментарий
  • Чем чревато заключение NDA?

    opium
    @opium
    Просто люблю качественно работать
    ничем не чревато я уже под сотню их подписал
    считаю что паспортные данные должны быть публичными, а они по большей части такие и есть , в базу паспортов россии в целом то не сильно сложно попасть.
    Ответ написан
    Комментировать
  • Чем чревато заключение NDA?

    @dmitryKovalskiy
    программист средней руки
    Последний раз, когда вникал в NDA, там была прописала одна ключевая фраза - "в случае нарушения данного договора, стороны несут ответственность в соответствии с законодательством РФ". Сколько я ни искал - я не нашел какая же это ответственность. Видимо "нарушение договора", которое имеет достаточно размытые границы ответственности. Основная ответственность - "возмещение убытков" в случае если суд решит действительно взыскивать их с вас и согласится с суммой, заявленной потерпевшей стороной. Компания в здравом уме и трезвой памяти как правило должна использовать терминологию "коммерческой тайны". Там и границы прописаны поточнее и ответственность.
    Ответ написан
    Комментировать