• Производительность Java: настоящее и будущее

      Уже два десятилетия активно плодятся мифы о том, что приложениям на Java свойственны проблемы с производительностью. Одновременно с этим на Java создаются по-настоящему высоконагруженные системы. Кто же в конечном итоге прав? Чтобы составить мнение о том, как сейчас обстоят дела с производительностью Java, мы обратились к двум заинтересованным сторонам: создателям самой Java и клиентам, использующим Java в своих системах. На наши вопросы любезно согласились ответить Алексей Шипилёв (Oracle) и Олег Анастасьев (Одноклассники).


      Читать дальше →
    • Почему прокрастинаторы прокрастинируют (откладывают дела «на потом») и как побороть прокрастинацию

      • Translation
      image

      pro-cras-ti-na-tion |prəˌkrastəˈnāSHən, prō-|
      существительное
      задержка или откладывание чего-либо: первый совет — избегайте прокрастинации.

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

      Избегать прокрастинации. Так элегантно в своей простоте…

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

      Нет, «избегайте прокрастинации» — хороший совет только для не настоящих прокрастинаторов. Для тех, кто говорит «Я захожу на Facebook несколько раз в день на работе. Я такой прокрастинатор!». Это те люди, которые будут говорить настоящему прокрастинатору «Не откладывай дела на потом и у тебя все будет хорошо».

      Дело в том, что ни словари ни не настоящие прокрастинаторы не понимают, что для настоящих прокрастинаторов прокрастинация — не дополнительная опция. Это что-то, что они не знают как не делать.
      Читать дальше →
    • Как парсить интернет по-гусиному

        “Распарсить сайт” — словосочетание, которое повергало меня в уныние всего полгода назад. В моей голове сразу же проносились знакомые проблемы с настройкой фантома, или возней с селениумом. Мысли о возможной необходимости подменять useragent, пагинации и других действиях во время парсинга заставляли откладывать эту задачу в долгий ящик…

        Но всё изменилось, когда я встретил Гуся. Мир парсинга заиграл новыми красками. Под катом я хочу показать несколько простых примеров, которые могут помочь распарсить непростые сайты.

        Кстати, написав парсер, Гусь решил снять фильм про это, пока что вы можете насладиться трейлером:



        Читать дальше →
      • Программист ли я, или просто хорошо гуглю?

          Письмо Скотту Хансельману


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

          От переводчика


          Всем привет, с вами Максим Иванов, и сегодня мы поговорим об одном из постов Скотта Хансельмана (Scott Hanselman), который он написал по причине довольно серьезного и хорошо сформулированного письма к нему. В общем-то, меня вдохновила одна из статей на нашем ресурсе под названием Google-oriented programming. Больше всего мне понравилось то, что в программистах порой может появиться синдром самозванца. Конечно, труды Хансельмана не единственны в этом мире с точки зрения психологии, но он дает четко нам понять, что это нормально. Как он пишет: «Но вот в чем дело. Мы все иногда чувствуем себя обманщиками. Мы все обманщики. Это часть роста. Мы попадаем в ситуации, которые немного сложнее того, с чем мы можем справиться. Но мы справляемся с ними, мы не обманщики, и мы двигаемся к следующему испытанию.» Так давайте же разберемся, какие решения и выводы Скотт предлагает нам в своем посте. Приступим.
          Читать дальше →
        • Разработка для коптеров

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


          Читать дальше →
          • +18
          • 17.7k
          • 7
        • Зачем нужен свободный код и как на нем зарабатывать

            Linux Torvalds
            Мы наблюдаем бум свободных проектов. В основном, благодаря Гитхабу. 23 декабря 2013 года на сервисе был создан 10-миллионный проект. К 23 декабря 2015 года количество проектов более чем утроится: прямо сейчас на Гитхабе 28 миллионов проектов.

            Многих привлекает идея свободности, потому что она перекликается с идеей «улучшения мира», как основной мотивации продуктивной деятельности человека.

            Но так как обычная работа программистов в конторах очень далека от open source, возникает вопрос, как кормиться (а желательно, и разбогатеть!), большую часть времени занимаясь свободными проектами.

            Судя по последним вопросам на Тостере, у людей много ожиданий, но мало понимания в этой области. Поэтому я решил написать это эссе.

            Само по себе выкладывание проекта не является улучшением мира


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

            Вы выложили код. Чем вы помогли экономике в этот момент? Ничем, поэтому и миру вы пока ничем не помогли.

            Ваш проект может спасать людей от рака, быть бесплатным, экономить миллионы долларов, и при этом быть закрытым.

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

            Синергетический эффект свободного кода


            Читать дальше →
          • Собираем базу людей из открытых данных WhatsApp и VK

            Etan Hunt
            кадр из фильма Миссия Невыполнима II

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

            Первый успех


            Было решено попробовать следующий вариант:
            • Добавить неизвестный номер в адресную книгу телефона;
            • Зайти по очереди в приложения, привязанные к номеру (Viber, WhatsApp);
            • Открыть новый чат с вновь созданным контактом и по фотографии определить отправителя.

            Мне повезло и в моём случае в списке контактов Viber рядом с вновь созданным контактом появилась миниатюра фотографии, по которой я, не открывая её целиком, распознал отправителя и удовлетворенный проведенным «расследованием» написал смс с благодарностью за поздравления.

            Сразу же за секундным промежутком эйфории от удачного поиска в голове появилась идея перебором по списку номеров мобильных операторов составить базу [номер_телефона => фото]. А еще через секунду идея пропустить эти фотографии через систему распознавания лиц и связать с другими открытыми данными, например, фотографиями из социальных сетей.
            Далее перебор аккаунтов WhatsApp и VK по Москве и Ненецкому АО и распознание лиц
          • Игра на чистой Java от новичка, для новичков

            Я начинающий программист на Java, и путь мой пройден тысячами.



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

            В моем случае Самой Правильной Книгой стал двухтомник «Java. Библиотека профессионала.» за авторством Кея Хорстманна и Гари Корнелла, а самой первой книгой, которая открыла дверь в мир Java – Яков Файн «Программирование на Java для детей, родителей, дедушек и бабушек».

            Чтобы закрепить пытающиеся разбежаться знания, которые упорно пытались остаться на страницах Умных Книжек, а не в голове, я решил написать простую игру. Основная задача была в том, чтобы писать без применения сторонних библиотек.
            Читать дальше →
          • Неприкасаемый Oracle

              С 1995 г. в продуктах Oracle было найдено 3896 уязвимостей, и их количество продолжает расти. Исследовательский центр Digital Security занимается поиском проблем безопасности в системах Oracle уже почти 10 лет, найдя за это время массу всевозможных уязвимостей во всей линейке их продуктов, включая разнообразные опаснейшие архитектурные баги. Некоторые из них исправлялись вендором около 3 лет после нашего уведомления (!). Поэтому с Ораклом мы знакомы не понаслышке.

              Скандал, который разразился вчера в мире немедленно после публикации и последующего удаления – по словам вице-президента и главного архитектора Oracle Эдварда Скривена (Edward Screven), запись «не отражала истинных взглядов компании на взаимоотношения с пользователями», – этой записи в блоге CSO компании Oracle Мэри Энн Дэвидсон (Mary Ann Davidson), на самом деле достаточно поучителен. В нем прекрасно проявилась вся боль вендоров, все их реальное отношение к безопасности продуктов.

              Наилучшей иллюстрацией здесь мог бы быть фильм с Мэлом Гибсоном «Чего хотят женщины?» Исследователи безопасности и заказчики – внимательно прочтите, что же на самом деле думает об исследованиях главный безопасник Oracle и как на самом деле она относится к безопасности своих продуктов. При этом следует понимать, что она говорит то, что другие вендоры просто не решаются сказать. Они благодарят исследователей за найденные уязвимости, мило улыбаются заказчикам, а внутри себя тихо ненавидят и тех и других. «Не трогайте наши продукты!», «Согласно лицензии, вы не имеете право на реверс-инжиниринг!» – это дословно ее высказывания. «Отстаньте уже от нас со своей безопасностью, мы сами разберемся», – вот что на самом деле думают вендоры. И как они сами «разбираются», по три года закрывая опаснейшие архитектурные уязвимости (в частности, с аутентификацией на клиенте!), мы отлично знаем. Что интересно, особенно этим славится именно компания Oracle. И теперь неудивительно почему – при таком-то отношении ее главного безопасника. Однако все-таки дело не в Oracle – и это самое важное. Их CSO просто выразила мнение всех вендоров, сказала то, что не принято говорить открыто. Это наглядная демонстрация реального отношения всех вендоров к безопасности. Что бы кто угодно из них ни говорил, – думают они именно это.

              И это страшно.

              Поражает и то, что CSO Oracle не знает, что большинство уязвимостей находятся вовсе не реверсингом. Oracle может смело менять слоган со старого – «Несокрушимый» – на современный: «Неприкасаемый».

              Перевод заметки Мэри Энн Дэвидсон
            • Строим роботанк с управлением по Wifi, камерой, пушкой, блекджеком и т.д

                image

                Всем привет. У меня таки возникло непреодолимое желание поделиться с миром своим достижением. Достижением является танк, который рулится по WiFi с геймпада, транслирует на пульт видео в реальном времени, передает с пульта и на пульт звук, а также имеет пушку с лазерным прицелом, из которой можно в кого-нибудь пострелять.

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

                UPD: добавлено видео.

                Читать дальше →
              • Разбор всех задач финального раунда Яндекс.Алгоритма 2015

                  Сегодня завершился финал Яндекс.Алгоритма — ежегодного чемпионата по спортивному программированию, который организует Яндекс. В 2015 году состязание проходило полностью в онлайне — на платформе Яндекс.Контест. Заявки на участие подали программисты из 73 стран. Больше всего участников — из России, Украины, Беларуси, Казахстана, Индии, США, Японии и Китая, но вообще география чемпионата крайне обширна — Бразилия, Индонезия, Перу, Доминиканская Республика, Мозамбик, Сенегал, Каймановы острова. 8,9% зарегистрировавшихся — девушки. Примерно половина всех участников — студенты. Всего мы получили заявки от 3722 человек, из которых до финала дошли 28.

                  А победителем Яндекс.Алгоритма-2015 стал Геннадий Короткевич. Он по привычке показал лучший результат, решив в финальном раунде пять из шести задач и получив при этом 80 минут штрафного времени. Геннадий занимал первое место в чемпионате Яндекса и в 2013, и в 2014 годах.



                  Второе место занял Пётр Митричев, а третье — Евгений Капун. Они решили по четыре задачи, при этом Пётр набрал 31 штрафную минуту, а Евгений — 79 минут. Результаты всех финалистов можно посмотреть на сайте Яндекс.Алгоритма.

                  Задачи для Яндекс.Алгоритма составляет международная команда, в которую входят как сотрудники Яндекса, так и приглашённые эксперты — в том числе победители и финалисты состязаний ACM ICPC и Topcoder Open. И мы по традиции подготовили для вас разборы всех заданий. Решить все из них никому не удалось. Больше всего участников справились с задачей B, а вот задания A и D решило всего по одному человеку.
                  Читать дальше →
                  • +44
                  • 61.5k
                  • 1
                • Создание своего банка, или Как обеспечить себе безбедную старость

                    Наблюдая за своими родителями-пенсионерами, а точнее за размерами их пенсий, я крепко задумываюсь о том, как обеспечить себе нечто оное в достойном меня размере. На государство в составе СНГ рассчитывать, похоже, не приходится. Значит, надо что-то делать самому! И начинать надо сейчас, пока мне 32 года, есть какой-никакой заработок и силы крутиться. Раньше были мысли, что я буду вечно молодым, вечно здоровым и все время что-то делать. Постепенно начинаю осознавать, что лет 20… 30 — и силы будут таять (или распыляться). Поэтому пару лет назад я начал понемногу что-то делать в этом направлении. Получил некоторый опыт, который может быть интересен уважаемому сообществу. Даже если для читателя вопрос пенсии сейчас звучит безумно абстрактно, то все равно рекомендую хотя бы пробежаться. Если бы я 5 лет назад почитал такой материал — я был бы уже существенно богаче!..
                    UPD: в статье добавил про смысл диверсификации, а то в комментариях много вопросов было…
                    В общем, рекомендую!
                  • Уязвимости систем безопасности Министерства Обороны, ФСБ, ФСИН, АЭС, метрополитена и федеральных автодорог

                      image

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

                      По данным исследования, даже школьник даже неопытный хакер может взломать 8 из 10 крупных компаний. Под катом список еще не созданных, но потенциально уязвимых проектов для Министерства Обороны, ФСБ, ФСИН, АЭС, метрополитена и федеральных автодорог.

                      Короче, качаем Shodan и тренируемся тестировать госсистемы на прочность (в учебных целях, естественно, и заблаговременно уведомив необходимых лиц).
                      Читать дальше →
                    • Databene Benerator — бенерируй это

                        «Достань словарь и посмотри, что такое «катарсис». Если это то, чем он хочет нас замочить, я хочу знать, что это такое.» (с) Анализируй это!

                        Введение


                        Поздним вечером, когда проектирование базы данных на 64 таблицы было почти завершено, а интерфейс для их заполнения еще даже не начинался, встал вопрос о том, как их все-таки заполнить данными.
                        Заполнить в ручную — идея была откинута в сторону сразу.
                        «Надо что-то накодить!» — кричала душа.
                        «Надо что-то скачать!» — настаивал разум!
                        В результате прошвырнувшись по Интернету и найдя с десяток разного рода решений как устанавливаемых, так и SaaS, как платных, так и бесплатных — нашел я его — databene-benerator- генератор связанных данных (фикстур) для баз данных. И статью на русском, с описанием возможностей и синтаксиса (1), а так же ее, но на английском (2). Я понял — это то, что нужно! Но откуда его взять? Как его использовать под Windows? Удобно? С поддержкой русских символов?

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

                        Как это связано с темой публикации? Вы поймете, если прочтете это. Приглашаю под cut!
                        Читать дальше →
                      • Шпаргалка по шаблонам проектирования


                          Перевод pdf файла с сайта http://www.mcdonaldland.info/ с описанием 23-х шаблонов проектирования GOF. Каждый пункт содержит [очень] короткое описание паттерна и UML-диаграмму. Сама шпаргалка доступна в pdf, в виде двух png файлов (как в оригинале), и в виде 23-х отдельных частей изображений. Для самых нетерпеливых — все файлы в конце статьи.

                          Под катом — много картинок.

                          Читать дальше →
                        • Cистема образования в США: Младшая и Средняя школа — чему и как учат? Часть 1

                            image

                            Как то несколько лет назад зашел разговор с сыном шестиклассником о русских дворовых поговорках и задачках.
                            Для затравки я взял классическую дворовую считалку:

                            А И Б сидели на трубе
                            А упала, Б пропала
                            Кто остался на трубе?


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

                            A N' B were on a tree.
                            A fell down, so did B.
                            Who is left on the tree?


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



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

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

                              У нас на Робостанции есть десяток магазинов с конструкторами и всамделишная робошкола, где из этих конструкторов собирают настоящих роботов. Вот об этом и поговорим.


                              Но сначала немного теории.
                            • Что значит робота разработать

                                Вы читаете о роботах и программировании и думаете: «Было бы здорово сделать что-то подобное самому!» Теми, кем эта идея овладевает чуть больше просто мыслей смотрят кто и как делал своего робота. Читают статьи, смотрят видео. На картинках все понятно. В видеороликах тоже обычно показываются уже готовые продукты, а также сжато показываются технологии их изготовления. И вроде бы то же всё понятно: отпилил, прикрутил, припаял, соединил, запрограммировал вон на той программе вот этим кодом.

                                Еще более увлечённые, выбрав интересный и, с первого взгляда, простой вариант, переходят к действию и, зачастую копируя, делают своего первого робота. Это волевое и очень значимое решение — главное начать хоть что-то сделать самому! В процессе изготовления оказывается куча технологических заковырок вплоть до того, что оказывается для заказа/покупки какой-то штукенции, надо узнать как она точно называется. А еще — разъёмы не паяются нормально — и как на видео в одно касание всё получается? Процесс создания нередко затягивается, но настойчивый начинающий робототехник так или иначе добивает результат до какого-то осмысленного первого запуска хотя бы «по прямой».



                                Потом, когда робот закончен, приходит понимание, почему все делается именно так и именно в такой последовательности. Процесс создания уже можно как-то осознать, формализовать, расписать. Вот с этого момента-то и начинается разработка модели следующего, второго поколения.
                                Как я разрабатывал своего первого робота...
                              • Использование симуляторов в робототехнике на примере симулятора Gazebo и робота DARwIn-OP, играющего в футбол

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

                                В качестве симулятора мы возьмем пакет Gazebo 3D, а человекоподобный DARwIn-OP, которого мы заставим играть в футбол, будет использован в качестве универсальной робототехнической платформы.

                                image
                                DARwIn-OP в симуляторе Gazebo

                                Для изучения уроков, использования примеров кода, а также написания собственных алгоритмов вам не потребуется приобретение дорогостоящего оборудования или ПО. Все программное обеспечение бесплатно, а отладка и демонстрация алгоритмов будет проводится в симуляторе. Законченный проект будет портирован на реального робота для демонстрации результатов.
                                Читать дальше →
                                • +9
                                • 17.2k
                                • 6