• Художественные детские книги про социнжиниринг



      Привет! Я три года назад читал в детском лагере лекцию про социнжиниринг, троллил детей и немного бесил вожатых. В итоге испытуемые спросили, что почитать. Мой дежурный ответ про две книги Митника и две книги Чалдини, вроде, убедителен, но только для примерно восьмиклассника и старше. Если младше — то надо сильно чесать голову.

      В общем, ниже — очень короткий список самых обычных художественных произведений. Лёгких, простых, детских. Но про социальную инженерию. Потому что в каждой культуре есть персонаж-джокер, который немного психопат, немного шут и немного эффективный специалист. Список неполный, и я хочу попросить вас его продолжить.
      Читать дальше →
    • Из жизни с Kubernetes: Как HTTP-сервер испанцев не жаловал



        Представитель нашего клиента, стек приложений которого обитает в облаке от Microsoft (Azure), обратился с проблемой: с недавнего времени часть запросов некоторых клиентов из Европы стала завершаться ошибкой 400 (Bad Request). Все приложения написаны на .NET, развёрнуты в Kubernetes…
        Читать дальше →
      • Земля — плоская

          Точнее, не плоская, но и не шар. И даже не эллипсоид. А вполне себе многогранник. Точнее, 56-гранник. Ещё точнее — предлагается новый формат записи гео-координат.

          Сначала немного общих соображений: в базе OSM имеется три типа данных: node way и relation. Узлы содержат координаты в формате «широта-долгота», траектории типа way позволяют прорисовывать на карте линии (точнее, ломаные, в т.ч. замкнутые) и представляют собой обычные массивы идентификаторов узлов, а данные типа relation могут содержать в качестве дочерних элементов не только узлы, но и данные остальных типов. Кроме того, все три типа могут иметь описания, представленные в модели EAV (Entity-Attribute-Value). Структурно в базе данных больше ничего нет.

          Земля у нас шар, а окно видимости плоское. Координаты объектов в базе заданы в виде «широта-долгота», и это нам представляется не вполне разумным.
          Читать дальше →
        • Уроки украинского

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

            Несколько замечательных особенностей украинского языка.

            1. Звательный падеж.

            Эта милая сердцу категория была в общем прародителе всех славянских языков, но сейчас осталась рудиментарно. Хотя она и понятна носителю современного русского, возьмите обращение «Друже!». Звательный падеж знаком нам из Библии («Отче наш!», «Врачу, исцелися сам!»), что неудивительно, так как церковнославянский — солунский диалект староболгарского.
            Примеры:
            Читать дальше →
          • О простых вещах-сложно. Письмо химика 3D-печатнику. Растворители для пластмасс и защита от них

            • Tutorial
            DIY посвящается...

            Одним из наиболее часто задаваемых вопросов в моей консультационной практике являются вопросы связанные с растворением/склейкой пластмасс с помощью всевозможных органических растворителей. В последнее время произошел настоящий всплеск интереса к химии высокомолекулярных соединений, связанный с появлением доступных 3D принтеров и необходимостью ориентироваться в «чернилах» для них (т.е. полимерных нитях-филаментах). Лишний раз убеждаюсь в том, что ни один, даже самый продвинутый «музей науки» с эффектным шоу не может так заставить IT-шника интересоваться пластмассами, как собственный 3D-принтер. Так что, читатель, если тебе хоть раз приходилось думать чем склеить пластмассу, которую не клеил default-ный суперклей, если мучали сомнения по поводу растворения поддержек свежеотпечатанной детали, да и просто интересно, чем можно отмыть клей от магазинного ценника на подарке — прошу под кат. Также настоятельно рекомендую страницу отправить в закладки не только тем, кто часто занимается склеиванием пластмасс, но и всем тем, кому часто приходится работать с различными растворителями/разбавителями. Делалось для себя — подарено Хабру!

            Читать дальше →
          • Сверхпростое логгирование в Javascript — два декоратора, и готово

            • Translation


            Вам еще не надоело писать logger.info('ServiceName.methodName.') и logger.info('ServiceName.methodName -> done.') на каждый чих? Может вы, так же как и я, неоднократно задумывались о том, чтобы это дело автоматизировать? В данной статье рассказ пойдет о class-logger, как об одном из вариантов решения проблемы с помощью всего лишь двух декораторов.

            Читать дальше →
          • Несколько сетей для энтузиастов

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

              Фактически эта публикация краткий дайджест статей на Хабре о технических хобби, в основном, на грани IT, программирования и радиолюбительства.

              И первым в списке станет популярный Народный мониторинг.


              The Hitchhiker's Guide to the Habr
            • Как я организовал хранение фотографий

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



                Сразу предупрежу: под катом нет «серебряной пули», которая умножит на 0 проблему хаоса в файлах на ваших устройствах. И даже ни строчки про нейросети, распознавание чего-либо кем-либо и прочие нанотехнологии. Под катом — немного текста и дубовая табличка, которую ещё и заполнять придётся вручную =) Но которая работает.
                Читать дальше →
              • Правда про парсинг сайтов, или «все интернет-магазины делают это»

                  В этой статье я постараюсь наиболее просто рассказать о парсинге сайтов и его основных нюансах. Моя компания занимается парсингом сайтов уже более трёх лет и ежедневно мы парсим около 300 сайтов. Я обычно открыто пишу об этом в соц.сетях (плюс мы много чего из итогов парсинга крупнейших магазинов России выкладываем бесплатно — публично), что вызывает бурные обсуждения и неодобрение со стороны пользователей. Забавно после прочтения комментариев заглядывать к себе в личку и читать сообщения с предложениями о сотрудничестве от тех же людей, кто только что осуждал нас в комментариях под постом :) Вся статья будет в формате наиболее часто задаваемых вопросов и честных ответов (материал маркетинговый, не технический).
                  Читать дальше →
                • Шутки и отсылки из «Симпсонов» на английском, которые нужно объяснять



                    Сегодня поговорим о мультиках. А конкретно — о самом длинном мультсериале в истории человечества — «Симпсонах».

                    Авторы сериала не стесняются затрагивать самые злободневные и спорные темы вроде религии, политкорректности, однополых браков, феминизма. Собственно, это одна из причин, почему «Симпсоны» настолько знамениты.

                    Еще одна причина — это великолепный юмор и разнообразные отсылки. При переводе на другие языки часть из них теряет смысл, поэтому мы рассмотрим оригинальные шутки и отсылки, которые действительно стоят внимания. Поехали!
                    Читать дальше →
                  • Разрабатывать приложения под Android — словно быть (демонетизированным) ютубером

                    • Translation
                    Как известно, некоторые авторы на YouTube крайне недовольны условиями, которые предлагает эта платформа. Аналогичное сражение сейчас ведут разработчики Android-приложений на платформе Google Play. Попытаюсь за 20 минут объяснить, что не так с Android.

                    Когда-то Android считался лучшей мобильной платформой: контроль, настраиваемость, продвинутые функции, реальная многозадачность, поддержка даже редких случаев использования и свобода разработчиков. Это была лучшая платформа для науки и образования: во-первых, инструменты разработки свободны и кросс-платформенны, во-вторых, Android был очень гибкой ОС, которая не мешала экспериментировать с инновационными концепциями и возиться с оборудованием. Теперь всё это быстро исчезает.

                    Раньше основные релизы Android приносили новые функции, которые радовали и разработчиков, и пользователей. Но с какого-то момента я уже начал бояться анонсов новых версий, и до сих пор ищу в себе силы (хех), чтобы посмотреть на список изменений и рекомендации для разработчиков к последнему релизу. И новые версии — это не единственная причина для нервотрёпки: изменения в политике Google Play Store тоже всегда забавно читать.
                    Читать дальше →
                  • Когда «Zoë» !== «Zoë», или почему нужно нормализовывать Unicode-строки

                    • Translation
                    • Tutorial
                    Никогда не слышали о нормализации Unicode? Вы не одиноки. Но об этом надо знать всем. Нормализация способна избавить вас от множества проблем. Рано или поздно нечто подобное тому, что показано на следующем рисунке, случается с любым разработчиком.
                    «Zoë» — это не «Zoë»
                    Читать дальше →
                  • «Как перестать гореть», или о проблемах входящего потока информации современного человека



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

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

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

                      Как с этим жить — чтобы оставалось время на жизнь вне работы? И можно ли применить какие-то рабочие алгоритмы менеджмента в повседневной, бытовой жизни? 3 месяца назад я кардинальным образом поменял всю систему постановки задач и контроля за ними. Хочу рассказать, как я к этому пришёл и что в итоге получилось. Пьеса будет в 2 частях: в первой — немножко про, если так можно выразиться, идеологию. А вторая — целиком про практику.
                      Читать дальше →
                    • Древности: когда телефоны были странными

                        Этот пост представляет собой ностальгическую подборку старых телефонов с нетривиальным дизайном, и написал я его, чтобы намекнуть: история повторяется. Сейчас, в 2019 году, индустрия смартфонов находится в том странном состоянии, когда убеждать потребителя, что новый девайс гораздо лучше старого, становится все труднее. А реальных инноваций, чтобы даже убеждать не надо было — их что-то пока не видно. Что-то пошло не так еще пару лет назад, с выпуском первых телефонов с вырезом прямо посреди экрана. В попытке спрятать камеру для селфи возрождены даже телефоны-слайдеры, есть попытки сделать отдельную выдвижную фотокамеру.

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

                        Почему так выходит? Это сейчас, через 12 лет после выпуска первого Apple iPhone мы знаем, что экран нужно делать побольше и сенсорный, а кнопки, например, вовсе не обязательны. Пятнадцать лет назад, или еще раньше, это не было очевидно. Потребовалась масса экспериментов, нужно было набить шишки и получить опыт производства неудачных устройств, чтобы понять, куда двигаться дальше. Я не знаю, будут ли смартфоны будущего все сплошь оборудованы гибкими экранами. Зато могу показать, как экспериментировали с формой мобильников в начале века, в доайфонную эпоху, и как из этого почти ничего не получилось. И начну я, пожалуй, не с телефонов Nokia, а с производителя, ушедшего с рынка мобильников гораздо раньше — компании Siemens.
                        Читать дальше →
                      • Создание собственного Android-диктофона с помощью Kotlin

                        • Translation
                        • Tutorial

                        Создание собственного Android-диктофона с помощью Kotlin


                        Мультимедийный фреймворк Android поддерживает запись и воспроизведение аудио. В этой статье я покажу, как разработать простое приложение для звукозаписи, которое будет записывать аудио и сохранять его в локальном хранилище Android-устройства с помощью MediaRecorder из Android SDK.


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

                        Читать дальше →
                      • Как разработчики процедурно создали кучу «мусорных» мобильных игр и заработали 50 тысяч долларов

                        • Translation

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

                        На проводимой в этом году Game Developers Conference выступили два разработчика игр, способные написать новую главу романа-антиутопии о будущем: они рассказали историю о том, как заработали деньги, позволив делать всю работу роботам. В их случае этой работой была процедурная генерация игр для смартфонов.

                        Участие в обычном гейм-джеме привело к созданию машины обработки данных, которой в результате удалось заработать приличную сумму: 50 тысяч долларов за два с лишним года. Спустя годы, имея на руках данные (и деньги), разработчики этой машины по изготовлению игр, которая создавала только «мусорные» слот-автоматы с моделью free-to-play, использовали GDC как трибуну, чтобы подать тревожный сигнал индустрии, в которой «правильное» поведение часто ограничивается вниманием к игрокам, заискиванием перед издателями и сбором положительных обзоров критиков. В случае этих разработчиков нарушение всех этих правил привёл к слишком успешным результатам, вызвав у них сильный дискомфорт.

                        Побеждаем в «гонке ко дну»


                        Вернёмся в 2013 год: в то время два разработчика видеоигр уже несколько лет пытались добиться успеха на растущем рынке мобильных игр. Один из них, Алекс Шварц, помогал в создании качественной мобильной игры Jack Lumber. (В прошлой жизни я даже написал о ней хороший отзыв в уже несуществующем журнале The Daily, работавшем только на планшетах.) Второй, Зиба Скотт, разработал приятную мобильную головоломку Girls Like Robots.

                        Обе игры использовали модель «заплати один раз» без микротранзакций. Обе получили награды, известность, хорошие отзывы на выставках и обрели издателей. Обеим не удалось добиться успеха.
                        Читать дальше →
                      • Ловушка (тарпит) для входящих SSH-соединений

                          Не секрет, что интернет — очень враждебная среда. Как только вы поднимаете сервер, он мгновенно подвергается массированным атакам и множественным сканированиям. На примере ханипота от безопасников можно оценить масштаб этого мусорного трафика. Фактически, на среднем сервере 99% трафика может быть вредоносным.

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

                          Чаще всего тарпиты применяют для защиты. Технику впервые разработали для защиты от компьютерных червей. А сейчас её можно использовать, чтобы испортить жизнь спамерам и исследователям, которые занимаются широким сканированием всех IP-адресов подряд (примеры на Хабре: Австрия, Украина).
                          Читать дальше →
                        • У нас DevOps. Давайте уволим всех тестировщиков

                            Можно ли автоматизировать всё, что угодно? Потом всех тестировщиков уволим, конечно. Зачем они теперь нужны, «ручного» тестирования не осталось. Правильно ведь?

                            Это рассказ о будущем тестирования с точки зрения DevOps. Здесь будут конкретные цифры и чисто практические выводы, как так получается, что у хороших специалистов всегда есть работа. (Или нет работы! Глядите на фотографию Шекспира и бойтесь, сейчас будет решаться ваша судьба).



                            В основе материала — расшифровка доклада Баруха jbaruch Садогурского, Developer Advocate в компании JFrog. Текстовая версия и видео доклада — под катом.
                            Читать дальше →
                          • Чего мне никогда не говорили о CSS

                            • Translation

                            Фото Джантин Дурнбос на Unsplash

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

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

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