• Не путайте разработку ПО и программирование

    • Translation

    Каждый разработчик ПО умеет программировать, но не каждый программист может разрабатывать ПО



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

    Возможно, кому-то больше нравится говорить не «разработчик», а инженер-программист, ведь инженер — это звучит гордо! Или нет? К счастью, эта статья не о терминах. Если мой термин вам не нравится — подставьте свой: «автор ПО», «мастер ПО»… и даже «творец приложений»!

    Говоря «разработчик ПО», я имею в виду человека, для которого написание качественного ПО — профессия. Человека, который использует в своей работе научные подходы и статистику и считает свое занятие чем-то большим, чем просто зарабатывание денег.

    Чтобы стать разработчиком, уметь программировать недостаточно.

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

    Мне нравится такая аналогия: каждый может ради собственного развлечения петь в ду́ше, но вы же не ставите треки с записями этого пения на вечеринке — вы обращаетесь к произведениям профессиональных музыкантов.

    Хотите еще аналогий? Пожалуйста:

    • В школе нас обучили математике и письму, но это не сделало нас математиками и писателями.
    • Большинство может легко научиться готовить, но когда нужно накормить большое число людей, мы нанимаем повара.
    • Никто не зовет соседа — мастера на все руки построить дом с нуля.

    Главная задача этого текста — донести, что создание простых программ серьезно отличается от разработки ПО.

    Переведено в Alconost
    Читать дальше →
  • 13 сюрпризов неайтишной компании

      Отработав много лет в компаниях, занимающихся разработкой программного обеспечения на заказ, невольно начинаешь задумываться — а как всё-таки выглядит вся эта суета с другой стороны, со стороны заказчика? Грешным делом начинает казаться, что там всё просто и понятно, все люди сведущи и профессиональны, решения принимаются осмысленно и обоснованно, да и вообще, жизнь кипит, а не как в этом нашем айтишном болоте…

      Пару-тройку лет назад подобные соображения подтолкнули меня попробовать поработать в компании, где источником дохода является что угодно, только не разработка софта. Удачно подвернулось предложение от бывших коллег занять должность IT-директора в одной из ведущих организаций финансовой сферы, и я приступил к кипучей деятельности, браво закатав рукава. Теперь, спустя некоторое время, с высоты, так сказать, полученного опыта, хочу поделиться сюрпризами, что ожидали меня на этом пути – конечно, те, кому уже довелось поработать в разных сферах и разных организациях, скорее всего не обнаружат тут для себя ничего ни нового, ни удивительного, однако для наивных айтишников вроде меня, видавших доселе только однотипные «бодишопы»-аутсорсеры, что-то может показаться и вправду неожиданным.
      Итак, поехали
    • Что делать, чтобы получать нормальные деньги и работать в комфортных условиях, будучи программистом

        Этот пост вырос из комментария к одной статье здесь, на Хабре. Вполне обычного комментария, разве что сразу несколько человек сказали, что было бы очень хорошо оформить его в виде отдельного поста, а МойКруг даже не дожидаясь этого опубликовали этот самый комментарий отдельно в своей группе в VK с милым предисловием
        Наша недавняя публикация с отчётом о зарплатах в ИТ за первое полугодие этого года собрала невероятное количество комментариев пользователей «Хабра». Они делились мнениями, наблюдениями и личными историями, но один из комментов настолько нам понравился, что мы решили опубликовать его здесь.

        Поэтому я наконец-то собрался силами, и написал отдельную статью, раскрыв и обосновав мысли подробнее.

        image

        Иногда в статьях и комментариях, где обсуждаются доходы IT-специалистов, можно встретить высказывания типа «Да откуда вы берете такие цифры? Я уже много лет работаю X, и ни я, ни мои коллеги таких денег никогда и не видели...».

        Честно говоря, я N лет назад мог бы написать такой же комментарий. Сейчас не могу :)

        Пройдя через разные места работы, организации и жизненные ситуации, я лично для себя сформулировал вполне простой набор правил на тему «что делать, чтобы получать нормальные деньги и работать в комфортных условиях в IT». Это статья далеко не только про деньги. В некоторых пунктах я затрагиваю тему возможности повысить свой профессиональный уровень и научиться новым востребованным навыкам, а под «хорошими условиями» понимаю далеко не только уютный офис, техническое оснащение и хороший соцпакет, но и в первую очередь отсутствие маразма, душевное спокойствие и целые нервы.

        Эти советы актуальны в первую очередь для разработчиков ПО, но многие пункты подойдут и другим профессиям. И, само собой, изложенное относится в первую очередь к РФ и другим ex-USSR странам, хотя, опять же, некоторые пункты будут актуальны везде.
        Читать дальше →
      • NEC выпустила подводный кабель с рекордными 20 парами оптических волокон


          Оптические волокна в подводном кабеле SEA-ME-WE 5, соединяющем Юго-Восточную Азию, Ближний Восток и Западную Европу. Фото: Boris Horvat/AFP via Getty Images

          Японская NEC и её дочерняя OCC Corporation завершили разработку и тестирование подводных ретрансляторов и оптического кабеля с 20 парами оптических волокон (40 волокон). Это новый мировой рекорд.

          Предыдущее достижение тоже принадлежало NEC — кабель с 16 парами, а скоро NEC обещает выпустить ретрансляторы и кабели «на 24 пары и более».
          Читать дальше →
        • Защита от SQL-инъекций в PHP и MySQL

          К своему удивлению, я не нашёл на Хабре исчерпывающей статьи на тему защиты от инъекций. Поэтому решил написать свою.

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

          Статья получилась довольно длинной — в ней собраны результаты исследований за несколько лет — но самую важную информацию я постараюсь компактно изложить в самом начале, а более подробные рассуждения и иллюстрации, а так же различные курьёзы и любопытные факты привести в конце. Также я постараюсь окончательно развеять множественные заблуждения и суеверия, связанные с темой защиты от инъекций.

          Я не буду пытаться изображать полиглота и писать рекомендации для всех БД и языков разом. Достаточное количество опыта у меня есть только в веб-разработке, на связке PHP/MySQL. Поэтому все практические примеры и рекомендации будут даваться для этих технологий. Тем не менее, изложенные ниже теоретические принципы применимы, разумеется, для любых других языков и СУБД.

          Сразу отвечу на стандартное замечание про ORM, Active record и прочие query builders: во-первых, все эти прекрасные инструменты рождаются не по мановению волшебной палочки из пены морской, а пишутся программистами, используя всё тот же грешный SQL. Во-вторых, будем реалистами: перечисленные технологии — хорошо, но на практике сырой SQL постоянно встречается нам в работе — будь то legacy code или развесистый JOIN, который транслировать в ORM — себе дороже. Так что не будем прятать голову в песок и делать вид, что проблемы нет.

          Хоть я и постарался подробно осветить все нюансы, но, вполне возможно, некоторые из моих выводов могут показаться неочевидными. Я вполне допускаю, что мой контекст и контексты читателей могут различаться. И вещи, которые кажутся мне сами собой разумеющимися, не являются таковыми для некоторых читателей. В этом случае буду рад вопросам и уточнениям, которые помогут мне исправить статью, сделав её более понятной и информативной.

          Ещё только начав интересоваться темой защиты от инъекций, я всегда хотел сформулировать набор правил, который был бы одновременно исчерпывающим и компактным. Со временем мне это удалось:

          Правила, соблюдение которых гарантирует нас от инъекций


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

          Всего два пункта.
          Разумеется, практическая реализация этих правил нуждается в более подробном освещении.
          Но у этого списка есть большое достоинство — он точный и исчерпывающий. В отличие от укоренившихся в массовом сознании правил «прогонять пользовательский ввод через mysql_real_escape_string» или «всегда использовать подготовленные выражения», мой набор правил не является катастрофическим заблуждением (как первое) или неполным (как второе).

          Но вперёд, читатель — перейдём уже к подробному разбору.
          Читать дальше →
        • Суды как инструмент социального хакинга или немного о достоверности сведений в базах WHOIS

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


            Кадр из фильма «Законопослушный гражданин» (англ. Law Abiding Citizen) имеет иллюстративный характер.

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

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

            И повадились ему досаждать различными способами. Пережив брутфорсы серверов, взломы сайтов, DDoS'ы всех уровней, телефонные шторма, абузы на хостинги и письма из РКН, Михаил закалился и звонок курьера не заставил его сильно нервничать:
            — Михаил Юрьевич, у меня корреспонденция для Вас. Подскажите, когда будете на месте?
            — Стою в пробке, минут через тридцать. Оставьте коллегам в соседнем офисе.
            — Извините, не могу — письмо из суда.
            — Ok, тогда ждите.

            Основано на реальных событиях.
            Далее, по просьбе Михаила, все физические и юридические лица, имена сайтов и наименования фильмов вымышлены. Любое сходство является случайным.

            Читать дальше →
          • Проверка б/у макбука перед покупкой — чек-лист

            Статья доработана с учетом ценных комментариев, дополнен список источников.
            Данный чек-лист — компиляция нескольких источников, я его делал для себя, когда в конце 2019 года покупал 13" б/у макбук 2015 года, последний из имевших нормальную клавиатуру и набор портов, перед тем как Apple перешла на клавиатуру-бабочку и usb-с порты.

            Какую модель б/у макбука стоит брать? Вместо введения


            На этот вопрос нет однозначного ответа, поскольку все зависит от ваших задач. Для начала 2020 года и задач «офисной» работы и серфинга я бы сформулировал ответ так — можно брать любой мак от 2014 и более позднего года выпуска, на полноценном процессоре (m5 и m7 брать скорее нежелательно). Macbook pro таким образом предпочтительнее macbook air, поскольку у последних процессор и система охлаждения обычно проигрывает в сравнении.

            Оптимальный выбор, который проработает еще несколько лет без проблем — это модели с четырехядерным процессором (не путать с четырехпоточным!), такие ставили обычно в 15" модели. Оперативки не менее 8 Гб, SSD лучше 256 Гб и больше, хотя на 128 с определенными неудобствами жить тоже можно. Батарея оптимально с менее чем 500 циклами перезарядки.

            Стоимость 13" макбуков 2014-2016 годов колеблется от 40 до 55 тыс. рублей, причем варианты в хорошем состоянии около 40-45 тыс. мне кажутся наиболее выгодными с точки зрения дилеммы «взять б/у или доложить и взять новый».

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

            Моделей с клавиатурой-бабочкой (2016-2019 гг) не то что бы надо избегать, но надо отдавать себе отчет, что они требуют радикально более бережного к себе отношения, чтобы клавиатура проработала дольше. Сейчас полно предложений продажи mac mini — это тоже хороший вариант, особенно если он базируется на нормальном четырехядерном процессоре.
            Читать дальше →
          • Переезд из СНГ в Чехию, собственный опыт (часть 2)

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


              Читать дальше →
            • Mask-R CNN от новичка до профессионала


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

              Читать дальше →
            • Как я чуть не выкинул 150к на ветер или история установки приточной вентиляции в квартире

                Как я пришел к покупке приточной вентиляции для квартиры с готовым ремонтом. Как купил ее за 150к и чуть не потратил деньги зря. Статья будет полезна тем, кто планирует купить очиститель воздуха, бризер или приточку.


                Читать дальше →
              • Про установку и использование LineageOS 16, F-Droid

                  Предлагаю вашему вниманию инструкцию как оптимально (по моему мнению) перейти на свободное программное обеспечение при использовании смартфона на примере операционной системы LineageOS (далее сокращённо LOS) и приложений из F-Droid.

                  Я думаю, что это статья будет вам интересна, даже если вы не можете установить себе LOS, так как в данной статье также рассмотрены стандартные настройки Android, настройки и методика использования полезных приложений, магазин приложений F-Droid, разрешения Android, которые нельзя ограничить и другие, возможно полезные для вас нюансы.
                  Читать дальше →
                • Об организации кода в django-приложениях или толстые модели – это прекрасно

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

                  Большого количества кода не будет, статья по большей части дискуссионная. Энжой)


                  image
                  Толстые модели.
                  Читать дальше →
                • Памятка по борьбе с алкоголем или Как пережить фуршеты

                  • Tutorial
                  Тут вот праздники скоро. Спросил недавно друг «как мне это все пережить?». Я сначала объяснял, а потом решил написать статью на Хабр. Рассказанное — услышит один человек, а написанное — прочитают сотни!

                  Меня, если честно, достаточно сильно раздражают всевозможные застолья. Потому что гораздо приятнее посидеть с паяльником или читая книгу, а не "… хорохорясь, ерепенясь и валяясь, как колода..." провести выходные. Но традиции-с, будь они неладны, формировались столетиями и не умея пить — бывает достаточно сложно вписаться в коллектив, найти нужный подход и т.д. Особенно грешат этим делом всевозможные руководящие кадры из старого поколения. Что же делать тем, для кого алкоголь и необходимость его употреблять — это просто лишняя головная боль? Самый простой ответ — НЕ ПИТЬ, но на практике полностью это очень сложно реализовать. Эффективнее в наших реалиях принять тезис «алкоголь — просто инструмент» и учиться с ним правильно работать и использовать для решения своих задач с минимизацией ущерба для здоровья.

                  Статью кладем в закладки и рассылаем всем друзьям, подчиненным и т.д. и т.п. Есть время подготовиться и встретить новогодние корпоративы во всеоружии. Практически уверен, что многое из описанного активно используют те, кто «не напиваться» обязан по долгу службы. Простой же обыватель чаще про это не думает, полагаясь на удачу и легкую руку. И чаще всего оказывается в проигрыше. Предупрежден = вооружен, поэтому под катом читаем, как победить в битве с алкоголем.

                  Читать дальше →
                • Хроника противостояния Рамблера и Nginx (обновлено 23 декабря, в 12:00)



                    12 декабря из твиттера сотрудника Nginx стало известно, что в офисе компании прошел обыск в рамках уголовного дела по статье 146 УК РФ «Нарушение авторских и смежных прав». Претензии предъявила компания Рамблер, хотя формально обвинителем стала Lynwood Investments CY Ltd, которой передали на это права. Последняя связана с совладельцем Rambler Group Александром Мамутом.

                    Вот как развивались события.
                    Читать дальше →
                  • DIY порошок для посудомойки: разбираем промышленные средства и улучшаем рецепт



                      Внимание! В рецепте с отбеливателем обнаружилась опасность коррозии металла! Не рекомендуется в стандартном применении!

                      Обзор экспериментов год спустя:
                      DIY порошок для посудомойки: как не растворить посуду и не повторить моих ошибок. Год экспериментов

                      В прошлой публикации мы создавали дешевый порошок для посудомойки из желудей и спичек кальцинированной соды и стирального порошка. В этой я расскажу о том, как можно его улучшить с помощью кислородного отбеливателя и где можно купить компоненты для более продвинутой версии. Будем делать упор на эффективности мойки, но даже при этом цена не выйдет за 100 рублей/килограмм. А еще будет рецепт ополаскивателя с себестоимостью в районе 1 рубля за литр. Как справедливо заметил amarao, занятие не для всех и многим проще использовать готовые таблетки. Но в подобных экспериментах с бытовой химией есть что-то от детства, первых опытов по смешиванию соды с уксусом и газировки с мятными конфетами. Так что ощутимая экономия здесь все-таки вторична. Будем развлекаться) Если кому-то лень читать весь текст — в конце поста будут подробные рецепты с рекомендациями.
                      Читать дальше →
                    • Front-end додзё: проекты для тренировки навыков разработчика (5 новых + 43 старых)

                      • Translation

                      1. Клон Notion


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

                      image

                      www.notion.so

                      Чему вы научитесь, создавая клон Notion:

                      • HTML Drag and drop API. Пользователь может «схватить мышкой» draggable элемент и поместить его в droppable зону.
                      • Как синхронизировать в режиме реального времени данные между компьютером и смартфоном.
                      • Мы позволяем пользователям создавать, читать, обновлять и удалять записи, тем самым мы тренируем CRUD-навыки.

                      Читать дальше →
                      • +13
                      • 14.5k
                      • 7
                    • Совет директоров Rambler 16/17 декабря по настоянию Германа Грефа обсудит ситуацию с Nginx на внеочередном заседании



                        Согласно информации агентства «ТАСС», в Rambler сообщили, что внеочередное заседание совета директоров состоится на следующей неделе по просьбе председателя совета директоров Rambler Group и первого зампреда правления «Сбербанка» Льва Хасиса, на заседании будет обсуждаться ситуация вокруг конфликта группы с компанией Nginx.
                        Читать дальше →
                      • [Обновлено в 10:52, 14.12.19] В офисе Nginx прошел обыск. Копейко: «Nginx был разработан Сысоевым самостоятельно»

                          Другие материалы по теме:


                          Eng version
                          Что значит наезд на Nginx и как это отразится на индустрииdeniskin
                          Open source — наше всё. Позиция Яндекса по ситуации с Nginxbobuk
                          Официальная позиция Программных комитетов Highload++ и других IT-конференций на претензии к Игорю Сысоевуolegbunin


                          По информации от одного из сотрудников, в московском офисе опенсорс-разработчиков Nginx проводят обыски в рамках уголовного дела, истцом по которому выступает Рамблер (ниже официальный ответ пресс-службы компании по этому вопросу и подтверждение наличия претензий к Nginx). В качестве доказательств приводится фото постановления о производстве обыска в рамках уголовного дела, возбужденного 4 декабря 2019 года по статье 146 УК РФ «Нарушение авторских и смежных прав».

                          Фото постановления о производстве обыска


                          Как предполагается, истцом выступает компания Рамблер, а ответчиком пока «неустановленная группа лиц», а в перспективе — основатель Nginx Игорь Сысоев.

                          Суть претензии: Игорь начал работу над Nginx, будучи сотрудником Рамблера, а только после того, как инструмент стал популярен, основал отдельную компанию и привлек инвестиции.

                          Почему Рамблер вспомнил о своей «собственности» только спустя 15 лет — неясно.
                          Читать дальше →
                        • В каких странах и городах разработчики зарабатывают больше, если учесть налоги и стоимость жизни?



                            Если сравнить зарплату разработчика программного обеспечения квалификации middle в Москве, Лос-Анджелесе и Сан-Франциско, взяв данные по зарплатам, которые оставляют сами разработчики на специализированных сервисах по мониторингу зарплат, то увидим: 

                            • В Москве зарплата такого разработчика на конец 2019 года составляет 130 000 руб. в месяц (по данным сервиса зарплат на moikrug.ru)
                            • В Сан-Франциско — 9 404 долларов США в месяц, что примерно равно 564 000 руб. в месяц (по данным сервиса зарплат на glassdoor.com).

                            На первый взгляд, разработчик в Сан-Франциско получает более чем в 4 раза большую зарплату. Чаще всего на этом сравнение заканчивают, делают печальный вывод о колоссальном разрыве в уровне зарплат и вспоминают поросёнка Петра.
                            Читать дальше →
                          • Школа магии PHP

                              Что такое магия в PHP? Обычно под этим подразумевают методы вроде _construct() или __get(). Магические методы в PHP — это лазейки, которые помогают разработчикам выполнять удивительные вещи. В сети полно инструкций по их использованию, с которыми вы наверняка знакомы. Но что если мы скажем, что вы даже не видели настоящую магию? Ведь, чем больше вам кажется, что вы знаете все, тем больше магии ускользает от вас.



                              Давайте отбросим установленные рамки правил ООП и сделаем невозможное возможным в школе магии PHP. Главный и первый волшебный преподаватель школы — Александр Лисаченко (NightTiger). Он научит магическому мышлению и, возможно, вы полюбите магические методы, нестандартные способы доступа к свойствам, изменение контекстов, аспектно-ориентированное программирование и потоковые фильтры.

                              Читать дальше →