• Как перепрограммировать режим сна: 30 дней каждое утро я светил ярким зеленым светом себе в глаза

      image

      Как я себя чувствовал во время испытаний.

      Исходные условия: засыпаю перед рассветом, просыпаюсь в обед.
      Желаемый результат: просыпаться в 7-9 утра без будильника.
      Способ: 1 месяц тестировать очки «для просыпания».

      И вот что из этого вышло.
      Читать дальше →
    • Десяток Книг по Agile, Которые Точно Понадобятся Менеджеру Проекта в 2020 Году

        Профессиональная литература с термином «Agile» в названиях стала появляться на полках IT-экспертов после 2001 года, когда термин был использован во время представления Манифеста Agile.

        Agile описывает методологию разработки программного обеспечения, которая характеризуется коротким жизненным циклом, способствующим частым релизам продуктов. Сегодня итеративный метод влияет на различные аспекты развития бизнеса, включая управление проектами. Где лучше всего получить полное представление о гибком подходе? В этом обзоре — 10 мощных и актуальных книг, которые помогут усовершенствовать навыки руководителей проектов и их команд.

        image
        Читать дальше →
        • +4
        • 11.8k
        • 2
      • 22 сайта для программиста, которые помогут заговорить на английском

          Хабр, привет!

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

          Приступим!

          Учить лексику


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

          ЛеоПереводчик

          С этим плагином удобно переписываться с коллегами. Он автоматически переводит непонятные слова и выражения. Незаменимый инструмент, когда нет времени на доскональные переводы и нужен срочный ответ.
          Читать дальше →
        • Предварительная загрузка в PHP 7.4

          • Translation
          Перевод данной статьи подготовлен специально для студентов курса «Backend разработчик на PHP».



          В PHP 7.4 добавлена предварительная загрузка — возможность, которая позволяет значительно повысить производительность кода.

          О предзагрузке в двух словах.

          • Для предварительной загрузки файлов вам потребуется написать отдельный PHP-скрипт.
          • Этот скрипт выполняется однократно при запуске сервера.
          • Все предварительно загруженные файлы доступны в памяти для всех запросов.
          • Изменения, внесенные в исходный файл, не подействуют, пока вы не перезапустите сервер.

          Поговорим о новой возможности подробнее.

          Читать дальше →
        • Ис[пользу]й

            Это – самая полезная статья из всех, что вы читали. Потому что она о пользе и ее получении.

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

            Первое и главное

            Читать дальше →
          • Flutter, руководство для начинающих

              На дворе середина 2019 года, кроссплатформа плотно вошла в жизнь стартапов по всему миру, но все чаще в ее сторону смотрят и команды аутсорс-разработки, и клиенты, которые делают ставку на снижение затрат. Кто-то делает ставку на React Native, кто-то исследует возможности Kotlin Multiplatform, а новый гость подкаста AppsCast Евгений Сатуров saturovv последние полгода активно разрабатывает на Flutter, следит за обновлениями фреймворка и продвигает технологию в массы. Максимум полезных ссылок и советов для начинающего Flutter-разработчика: от гайдлайнов до репозиторием с примерами реализации архитектуры — в разговоре с Евгением.



              AppsCast — подкаст, посвященный мобильной разработке и выходящий при поддержке конференции AppsConf. Каждые две недели новый гость, с которым мы с Даниилом Поповым (int02h) обсуждаем технологии, лучшие практики, жизнь разработчиков, а так же холиварим и делимся опытом.
              Читать дальше →
              • +30
              • 14.9k
              • 9
            • Как стать датасайнтистом, если тебе за 40 и ты не программист

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

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

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



                Сейчас я ведущий аналитик в группе больших данных в QIWI, но еще три года назад я был довольно далек от датасайнс и об искусственном интеллекте слышал только из новостей. Но потом все изменилось, во многом благодаря Coursera и Kaggle.

                Итак, обо всем по порядку.
                Читать дальше →
              • Про одного парня

                  История реальная, я все видел своими глазами.

                  Несколько лет один парень, как и многие из вас, работал программистом. На всякий случай напишу так: «программистом». Потому что он был 1Сником, на фиксе, производственной компании.

                  До этого он пробовал разные специальности – 4 года во франче программистом, руководителем проектов, умел закрывать по 200 часов, одновременно получая процент с проекта, за руководство и немного занимаясь продажами. Пробовал самостоятельно разрабатывать продукты, был начальником IT-отдела в большой компании, численностью 6 тысяч человек, примерял разные варианты применения своей кавычечной профессии – программиста 1С.

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

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

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

                  У меня проблемы с поиском фронтенд-разработчика, в основном, по WP, Foundation, CSS, JS, на низкоуровневую позицию. Не могу понять, в чём дело. Ни у кого из кандидатов нет «базовых знаний» ничего из перечисленного. Но они могут делать сайты на React или других JS-фреймворках, или на базе WP-шаблонов. Но если я говорю, что нужно сделать простые изменения в CSS, смотрят пустыми глазами… Или какую-нибудь мелочь на чистом JS, ничего.
                  Нет недостатка в учебных лагерях, курсах, полно ресурсов для изучения фронтенд-разработки. Но я собеседовал кучу ребят из этих учебных лагерей и думаю, что там серьёзно недооценивают важность CSS и основ JavaScript.

                  Конечно, есть ограничения на то, сколько можно усвоить за 12 недель обучения. Но огромная часть проблемы в том, что наша индустрия восхищается новым, одержима самыми последними и прекрасными SPA-фреймворками, в то же время обесценив CSS и «старые» имплементации.
                  Читать дальше →
                • Объясняем современный JavaScript динозавру

                  • Translation


                  Если вы не изучали JavaScript с самого начала, то осваивать его современную версию сложно. Экосистема быстро растёт и меняется, так что трудно разобраться с проблемами, для решения которых придуманы разные инструменты. Я начал программировать в 1998-м, но начал понимать JavaScript только в 2014-м. Помню, как просматривал Browserify и смотрел на его слоган:


                  Browserify позволяет делать require («модули») в браузере, объединяя все ваши зависимости


                  Я не понял ни слова из предложения и стал разбираться, как это может помочь мне как разработчику.


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

                  Читать дальше →
                • Современная Web-платформа: как расслабиться и получать удовольствие? Практическое руководство, часть 1

                  • Tutorial

                  Всем привет!


                  Помните эту статью? Раньше мы могли быстро собрать статичную HTML-страничку в каком-нибудь FrontPage и сайт был готов. С этим мог справится любой студент. В более сложном случае, мы писали пару строк на PHP и получали уже целый портал, собранный из разных элементов шаблона на сервере. Затем мы захотели, чтобы наш сайт как-то выделялся на общем фоне и умел чуть-чуть больше. Трон занял его-величество jQuery. Теперь же, мы оказались погребены под завалами фреймворков и библиотек, инструментов сборки, менеджеров зависимостей, препроцессоров и постпроцессоров, особых форматов, языков и стилей программирования, чтобы иметь возможность стряпать простые лэндинги. Все стало слишком сложно. Спикеры на конференциях стали соревноваться в изощренности того, каким еще образом можно сломать нам мозг. Как мы докатились до жизни такой? Чем «раньше» так сильно отличается от «сейчас»? Что нас ждет «потом»? Есть ли в современной веб-разработке некий дзен-стайл, блюдя который, можно, как в старые добрые времена, собрать себе уютный сайтик «на коленке» за пару вечеров, без ковыряния в документации десятка хипстерских технологий-однодневок? Насколько доступны нам простые решения в серьезной промышленной разработке? Куда движется веб-платформа? Предлагаю разобраться.
                  Читать дальше →
                • Что читать о нейросетях


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


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


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

                    Читать дальше →
                  • Модель памяти в примерах и не только

                    • Tutorial
                    В продолжение серии топиков под названием «фундаментальные вещи о Java, которые стоит знать, но которые многие не знают». Предыдущий топик: Бинарная совместимость в примерах и не только

                    Модель памяти Java — нечто, что оказывает влияние на то, как работает код любого java-разработчика. Тем не менее, довольно многие пренебрегают знанием этой важной темы, и порой наталкиваются на совершенно неожиданное поведение их приложений, которое объясняется именно особенностями устройства JMM. Возьмём для примера весьма распространённую и некорректную реализацию паттерна Double-checked locking:

                    public class Keeper {
                        private Data data = null;
                        
                        public Data getData() {
                            if(data == null) {
                                synchronized(this) {
                                    if(data == null) {
                                        data = new Data();
                                    }
                                }
                            }
                            
                            return data;
                        }
                    }
                    

                    Люди, пишущие подобный код, пытаются добиться улучшения производительности, избегая блокировки, если значение уже было присвоено. К сожалению, эти люди не учитывают многих факторов, в результате проявления которых может случиться зомби-апокалипсис. Под катом я расскажу теорию и приведу примеры того, как что-то может пойти не так. Кроме того, как говорили в одном индийском фильме, «Мало знать, что не так. Нужно знать, как сделать так, чтобы было так». Потому и рецепты успеха вы также сможете найти дальше.
                    Читать дальше →
                  • Segmentation Fault (распределение памяти компьютера)

                    • Translation


                    Когда я делаю ошибку в коде, то обычно это приводит к появлению сообщения “segmentation fault”, зачастую сокращённого до “segfault”. И тут же мои коллеги и руководство приходят ко мне: «Ха! У нас тут для тебя есть segfault для исправления!» — «Ну да, виноват», — обычно отвечаю я. Но многие ли из вас знают, что на самом деле означает ошибка “segmentation fault”?

                    Чтобы ответить на этот вопрос, нам нужно вернуться в далёкие 1960-е. Я хочу объяснить, как работает компьютер, а точнее — как в современных компьютерах осуществляется доступ к памяти. Это поможет понять, откуда же берётся это странное сообщение об ошибке.

                    Вся представленная ниже информация — основы компьютерной архитектуры. И без нужды я не буду сильно углубляться в эту область. Также я буду применять всем известную терминологию, так что мой пост будет понятен всем, кто не совсем на «вы» с вычислительной техникой. Если же вы захотите изучить вопрос работы с памятью подробнее, то можете обратиться к многочисленной доступной литературе. А заодно не забудьте покопаться в исходном коде ядра какой-нибудь ОС, например, Linux. Я не буду излагать здесь историю вычислительной техники, некоторые вещи не будут освещаться, а некоторые сильно упрощены.
                    Читать дальше →
                  • Обработка аннотаций в процессе компиляции

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

                      Аннотации, как инструмент метапрограммирования появились вместе с релизом Java 5 в далеком 2004 году. Вместе с ними появился инструментарий Annotation Processing Tool, на смену которому пришла спецификация JSR 269 или Pluggable Annotation Processing API. Что интересно, этой спецификации без малого 10 лет, но свою популярность в Android разработке она начала обретать только сейчас.

                      О возможностях, которые открывает эта спецификация мы поговорим чуть позже (будет мнооого кода), а сперва, не хотите ли поговорить о компиляции Java кода?
                      Читать дальше →
                    • Что такое утечки памяти в android, как проверить программу на их отсутствие и как предотвратить их появление

                      • Tutorial
                      В этой статье для начинающих android-разработчиков я постараюсь рассказать о том, что такое «утечки памяти» в android, почему о них стоит думать на современных устройствах, выделяющих по 192МБ на приложение, как быстро найти и устранить эти утечки в малознакомом приложении и на что нужно обращать особое внимание при разработке любого приложения.


                      Конечная цель этой статьи — ответ на простой вопрос:
                      Куда нажать, чтобы узнать, какую строчку в приложении поправить?

                      Читать дальше →
                    • Простые догмы при работе с цветом в интерфейсах

                      • Tutorial
                      image

                      Привет, username!

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

                      Читать дальше →
                    • Лучшие плагины для Sublime Text

                        WebInspector


                        Мощный инструмент для дебаггинга JavaScript, полноценный инспектор кода для Sublime. Фичи: установка брейкпоинтов прямо в редакторе, показ интерактивной консоли с кликабельными объектами, остановка с показом стек трейса и управление шагами дебаггера. Все это работает на ура! А еще есть Fireplay от Mozilla, который позволяет подключаться к Firefox Developer tools и максимально простой дебаггер JSHint.



                        Читать дальше →
                      • Во главе Гугла: как выжать максимум из контекстной рекламы

                        • Tutorial
                        Что делать, если потраченные на контекстную рекламу деньги вылетели в трубу? Как бороться с тем, что трафика из Google AdWords кот наплакал? Почему стоимость конверсии выше стоимости продукта? С чего вообще правильно начинать настройку контекстных рекламных кампаний? Мы решили поделиться своим опытом в этом посте.



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

                        • высокая цена клика;
                        • нет кликов;
                        • высокая цена конверсии;
                        • низкая позиция объявления;
                        • низкий CTR;
                        • плохое качество трафика (нет покупок, заказов, подписок и т.д.);
                        • плохой показатель качества (QS).

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

                        Поэтому мы не будем рассматривать отдельные кейсы. Лучше поэтапно опишем, как создавать кампании в Google AdWords, которые будут эффективны и конкурентоспособны. Проверено специалистами Alconost.
                        Читать дальше →
                        • +24
                        • 58.9k
                        • 7
                      • Интервью Скотта Мейерса в Яндексе. О настоящем и будущем C++

                          Скотт Мейерс — один из самых известных и признанных экспертов по C++, автор серии книг «Эффективное использование C++», которые читал почти каждый профессиональный разработчик на C++ и которые оказали заметное влияние на всю экосистему и качество использование языка.

                          Лично я стал почти его фанатом ещё студентом, когда в начале 2000-х читал статьи Скотта, лежащие в основе его книг (сами книги на тот момент в России ещё не были переведены, а на английские с Амазона у меня, как бедного студента, денег не было).

                          Поэтому, когда он некоторое время назад приехал в Яндекс, чтобы провести тренинг для наших разработчиков, я не мог не воспользоваться этим шансом, чтобы поговорить с ним. Разговор получился о том, каким он видит будущее C++ и программирования вообще, как отличаются разработчики в разных странах и в разных индустриях, и о нём самом.



                          Полные тексты оригинала и перевода интервью