• Новая игра со старой атмосферой на Three.js

      Существует множество поклонников старых игр. И они не прочь пустить скупую ностальгическую слезу и нет-нет, да сыграть в «Арканоид», «Пакмана» или «Принца Персии», как двадцать, тридцать, сорок или — подставьте нужное число — лет назад. DOS-box и эмуляторы — им в помощь. Да, что там, я недавно смотрел стрим самого первого 2D «Принца Персии» на Ютьюбе, где довольно молодой «стример» после прохождения очередного смертельного препятствия, смахнув со лба пот рукой, изрек: «Мне еще никогда не было так страшно в компьютерной игре». То есть, даже молодежь способна оценить хардкорность и крутизну старых игр.


      Я подумал, а почему бы не создать новую игру в подобном стиле? Да, существуют различные ремейки и клоны. Также, радуют современные игры в стиле пиксель-арт. Однако, все они, как правило, повторяют квесты, механики и иногда вообще полностью левел-дизайн старых игр, по мотивам которых они сделаны. Ну либо, наоборот, предлагают совершенно новый сюжет и локации, являя собой просто визуальную стилизацию «под старину». А что, если представить, какой была бы новая часть старой игры, выйди она следом за последней из серии? Я решил такую создать.
      Читать дальше →
    • Новое решение парадокса Ферми (почему мы одиноки во Вселенной)

        Недавно мне пришло в голову совершенно новое решение Парадокса Ферми. Я не буду пересказывать то, что вы можете прочитать в Вики.



        Перейду к сути. Для решения проблемы нам понадобятся несколько ингредиентов.
        Читать дальше →
      • Как выглядит zip-архив и что мы с этим можем сделать

          Доброго времени суток, уважаемый Хабр!

          За последние пол года кривая дорожка моих пет-проектов завела меня в такие дебри, откуда до сих пор выбраться не представляется возможным. И начиналось-то все безобидно — сайт с картинками, но чувство перфекционизма, погоня за халявой, а также некоторые особенности моего склада ума превратили эту, как изначально планировалось, маленькую прогулку, в настоящее длинное путешествие. Ну и ладно, как говорил один довольно картавый революционер: «Учиться, учиться и еще раз учиться», а мне, волей-неволей, приходится этому напутствию следовать.

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

            image

            Ещё на заре космонавтики человечество мечтало о простом и дешёвом доступе к орбите на космических самолётах. Под космическим самолётом я подразумеваю крылатый аппарат горизонтально взлёта и посадки, без воздушных стартов, вертикальных посадок и т.п. Причина проста — космолёты по умолчанию многоразовые и в теории требуют недорогого, по сравнению с ракетами, обслуживания. Также весомым аргументом в их пользу является наличие гигантских взлётно-посадочных полос по всему миру, в то время как для ракет нужно строить инфраструктуру с нуля. Но как только конструкторы пытались спроектировать космолёт на практике у них сразу же возникало множество трудноразрешимых проблем, сильно затрудняющих выполнение задачи.
            Читать дальше →
          • Что ты такое, замыкания в JavaScript?

            В этой статье я постараюсь подробно разобрать механизм реализации замыканий в JavaScript. Для этого я буду использовать браузер Chrome.

            Начнем с определения:
            Замыкания  - это функции, ссылающиеся на независимые (свободные) переменные. Другими словами, функция, определённая в замыкании, 'запоминает' окружение, в котором она была создана.
            MDN

            Если вам что-то не понятно в этом определении, это не страшно. Просто читайте дальше.

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

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

            Итак, приступим:


            Рисунок 1
            Читать дальше →
          • 15 малоизвестных команд Linux

            • Translation
            Каждому разработчику в определенной степени следует овладеть навыками работы в терминале. Физически находиться у компьютера не всегда возможно, поэтому приходится подключаться удаленно. И действительно, GUI-программы вполне могут с этим с правиться, но зачастую они работают медленнее, чем получение доступа через тот же терминал (в конце концов, это лишь обмен текстом).
            Читать дальше →
          • Оказывает ли React плохое влияние на Angular?

            • Translation
            Автор материала, перевод которого мы сегодня публикуем, предлагает поразмышлять о будущем веб-разработки. По мере того, как тренды популярности технологий начинают смещаться в сторону библиотеки React, легко ощутить важность вопроса о том, насколько актуальным, через некоторое время, окажется фреймворк Angular. Ясно, что в итоге первое место достанется лишь одной технологии, и это заставляет веб-разработчиков, в особенности тех, которые только начинают свой путь, задаваться вопросом о том, что выбрать.


            Читать дальше →
          • Шпаргалка по структурам данных в Go


              Некоторые компании проводят собеседования с online написанием кода. Требуется решить олимпиадную задачку на скорость. В таких условиях нет времени посмотреть подробности реализации структур данных — нужно сразу реализовать идею. Но курсы по алгоритмам и структурам данных дают примеры или на псевдокоде, или на С++. Ещё эталонные решения задач написаны зачастую на С++. Готовясь к собеседованию, составил шпаргалку библиотек — аналогов контейнеров STL, что бы не тратить драгоценное время на поиск.
              Читать дальше →
            • Опусы про Его Величество Клей. Часть вторая — Viva, цианоакрилат! Viva, суперклей

              • Tutorial

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


              Приклеиться к полному тексту статьи!
            • Король разработки



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

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

                Недавно у него дела пошли в гору, и там где нормальные люди радуются и расцветают, этот парень, кажется, совсем съехал с катушек. Мы с ним как следует выпили, и он рассказал мне много искреннего дерьма, которое, честно, я бы хотел расслышать обратно.
                Читать дальше →
              • Десять книг о космонавтике

                  Этот список возник «благодаря» нескольким обзорным топикам в блоге «Космонавтика». Любовь Хабра к всему космическому привела к тому, что даже откровенно бредовый поток мыслей, написанный Шляхтичем многие приняли за чистую монету — и это далеко не единственный (хотя и наиболее вопиющий) пример того, о чём я пытаюсь сказать.

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

                  Оба этих затруднения я постарался решить тем, что привлёк к дополнению и обсуждению списка ЖЖ-пользователя ___lin___ (ссылка ведёт на его жж-профиль, где можно прочесть о том, кто он такой, и чем знаменит). ___lin___ в помощи не отказал, за что ему космическое спасибо. Очень рекомендую ознакомиться с его проектом «Великое Кодирование», посвящённому переводу в цифровую форму редких книг околокосмической тематики.

                  Теперь собственно список.
                • Пишем Telegram-бота на Go для поиска в Википедии

                  Содержание
                  • Создаем бота
                  • Пишем код
                  • Разворачиваем бота
                  • Заключение

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


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

                  Читать дальше →
                • Достаём мастер-пароль из заблокированного менеджера паролей 1Password 4

                  • Translation
                  Новые инструменты, старые методы. Проводим обратную разработку и находим фатальный недостаток 1Password.

                  Все любят менеджеры паролей. Они великолепны по многим причинам. Лично у меня в менеджере более 200 записей. С таким большим количеством конфиденциальных данных в одном месте важно понимать масштаб ущерба в случае компрометации вашей записи, будь то вредоносные программы, эксплоиты или просто компьютер, оставленный без присмотра на несколько минут. Washington Post недавно опубликовала статью, основанную на нашем исследовании. Эта статья помогает довести людей, что не все менеджеры паролей одинаковы.

                  Я свято верил, что заблокированный парольный менеджер надёжно защищён. Если кто-то получит доступ к моему компьютеру, то максимум может рассчитывать на кучку случайных байтов, поскольку информация надёжно вычищается из памяти.
                  Читать дальше →
                • Курс MIT «Безопасность компьютерных систем». Лекция 19: «Анонимные сети», часть 2 (лекция от создателя сети Tor)

                  • Translation
                  • Tutorial

                  Массачусетский Технологический институт. Курс лекций #6.858. «Безопасность компьютерных систем». Николай Зельдович, Джеймс Микенс. 2014 год


                  Computer Systems Security — это курс о разработке и внедрении защищенных компьютерных систем. Лекции охватывают модели угроз, атаки, которые ставят под угрозу безопасность, и методы обеспечения безопасности на основе последних научных работ. Темы включают в себя безопасность операционной системы (ОС), возможности, управление потоками информации, языковую безопасность, сетевые протоколы, аппаратную защиту и безопасность в веб-приложениях.

                  Лекция 1: «Вступление: модели угроз» Часть 1 / Часть 2 / Часть 3
                  Лекция 2: «Контроль хакерских атак» Часть 1 / Часть 2 / Часть 3
                  Лекция 3: «Переполнение буфера: эксплойты и защита» Часть 1 / Часть 2 / Часть 3
                  Лекция 4: «Разделение привилегий» Часть 1 / Часть 2 / Часть 3
                  Лекция 5: «Откуда берутся ошибки систем безопасности» Часть 1 / Часть 2
                  Лекция 6: «Возможности» Часть 1 / Часть 2 / Часть 3
                  Лекция 7: «Песочница Native Client» Часть 1 / Часть 2 / Часть 3
                  Лекция 8: «Модель сетевой безопасности» Часть 1 / Часть 2 / Часть 3
                  Лекция 9: «Безопасность Web-приложений» Часть 1 / Часть 2 / Часть 3
                  Лекция 10: «Символьное выполнение» Часть 1 / Часть 2 / Часть 3
                  Лекция 11: «Язык программирования Ur/Web» Часть 1 / Часть 2 / Часть 3
                  Лекция 12: «Сетевая безопасность» Часть 1 / Часть 2 / Часть 3
                  Лекция 13: «Сетевые протоколы» Часть 1 / Часть 2 / Часть 3
                  Лекция 14: «SSL и HTTPS» Часть 1 / Часть 2 / Часть 3
                  Лекция 15: «Медицинское программное обеспечение» Часть 1 / Часть 2 / Часть 3
                  Лекция 16: «Атаки через побочный канал» Часть 1 / Часть 2 / Часть 3
                  Лекция 17: «Аутентификация пользователя» Часть 1 / Часть 2 / Часть 3
                  Лекция 18: «Частный просмотр интернета» Часть 1 / Часть 2 / Часть 3
                  Лекция 19: «Анонимные сети» Часть 1 / Часть 2 / Часть 3
                  Читать дальше →
                • Самостоятельное изучение схемотехники. Абстрактный автомат. Часть 2

                    Статья написана, собрана и сверстана Brotherofken. Спасибо ему огромное.
                    В предыдущей статье я попытался изложить все основные определения и принципы, чтобы сделать эту статью максимально понятной. Все не уместилось, так что я настоятельно советую ознакомиться с этими файлами:
                    Базис, Базис2, Минимизация. Далее в этой статье я оставил несколько разъясняющих пометок курсивом.


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

                    image
                    да?
                  • Самостоятельное изучение схемотехники. Основные понятия. Часть 1

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

                      image
                      Читать дальше →
                    • Когда программный код вызывает восхищение?



                        Тема идеального кода нередко вызывает полемику в среде матерых программистов. Тем интереснее было заполучить мнение директора по разработке Parallels RAS Игоря Марната. Под катом его авторский взгляд по заявленной теме. Enjoy!
                        Читать дальше →
                      • Взгляд изнутри: RFID и другие метки



                          Let the skyfall
                          When it crumbles,
                          We will stand tall
                          And face it all...


                          Прошло достаточно много времени с момента публикации последней статьи из всем полюбившейся (по крайней мере, я на это очень надеюсь) серии «Взгляд изнутри» — больше полугода. Не то, чтобы не было, о чём написать или рассказать, просто одолели дела, которые станут предметом одной из следующих моих статей на Хабре (надеюсь, что её не отправят в утиль, так как посвящена она будет не совсем ИТ-тематике). А пока есть свободная минуточка, давайте разберёмся, что же такое RFID (Radio-frequency identification) – к ним примкнут более простые метки – или как один небольшой шаг в технологиях круто изменил жизнь миллионов и даже миллиардов людей по всему миру.

                          Добро пожаловать в наш уютненький микромир
                        • Ричард Хэмминг. «Несуществующая глава»: Как мы знаем, что мы знаем (1-10 минута из 40 )

                          • Translation

                          Этой лекции не было в расписании, но ее пришлось добавить, чтобы не возникало окна между занятиями. Лекция, в сущности, посвящена тому, как мы знаем то, что мы знаем, если, конечно, мы и в самом деле это знаем. Эта тема стара как мир – она обсуждается последние 4000 лет, если не дольше. В философии для ее обозначения создан специальный термин – эпистемология, или наука о знании.

                          Я бы хотел начать с первобытных племен далекого прошлого. Стоит отметить, что в каждом из них существовали миф о сотворении мира. По одному древнеяпонскому поверью, некто взболтал грязь, из брызг которой появились острова. Подобные мифы были и у других народов: например, израильтяне верили, что Бог шесть дней творил мир, после чего устал и закончил творение. Все эти мифы схожи – хотя сюжеты их довольно разнообразны, все они пытаются объяснить, почему существует этот мир. Я буду называть такой подход теологическим, поскольку он не предполагает объяснений, кроме как «это произошло по воле богов; они сделали то, что посчитали нужным, и так появился мир».

                          В районе VI века до н. э. философы античной Греции начали задавать более конкретные вопросы – из чего состоит этот мир, каковы его части, а также попытались подойти к ним скорее рационально, нежели теологически. Как известно, они выделяли стихии: землю, огонь, воду и воздух; у них было еще множество других понятий и убеждений, и медленно, но верно все это преобразовалось в наши современные представления о том, что мы знаем. Тем не менее, тема эта озадачивала людей во все времена, и даже древние греки задавались вопросом, как они знали то, что они знали.
                          Читать дальше →
                          • +12
                          • 7.4k
                          • 2
                        • Манифест Чистого Программиста или краткий конспект книги «Чистый Код» Роберта Мартина

                            Данная статья является конспектом книги "Чистый Код" Роберта Мартина и моим пониманием того, каким Чистый Код должен быть. Тут нет разделов о тестировании, TDD, о том какая должна быть архитектура и т.д. Здесь все только о том, каким должен быть Чистый Код.


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