• Preventing a timing attack with CodeQL

    A message authentication code (MAC) or a digital signature may be used to authenticate a message and to protect its integrity. When checking a signature, it is better to use constant-time algorithm. Otherwise, an attacker may be able to forge a valid signature for an arbitrary message by running a timing attack. Although it is a pretty sophisticated attack, sometimes it can be a real threat. Let’s see how such issues may be detected with CodeQL in Java applications.

  • Detecting Jackson deserialization vulnerabilities with CodeQL

    If you use Jackson Databind library and run a security scanner, you might have received quite a lot of alerts about deserialization vulnerabilities. In the past, a new CVE pop up nearly every month when someone discovered a new deserialization gadget that could be used to exploit an application. Fortunately, the project doesn’t assign CVEs for new deserialization gadgets anymore. It makes sense because an application that uses Jackson libraries is not vulnerable by default. However, if the application uses Jackson libraries in a certain way, it may be in danger.

  • Detecting dangerous RMI objects with CodeQL

    Java RMI uses the default Java deserialization mechanism for passing parameters during remote method invocations. In other words, RMI uses ObjectInputStream that is a well-known unsafe deserialization mechanism. If an attacker can find and send a deserialization gadget to a vulnerable remote method, in the worst case it can result in arbitrary code execution.

  • Detecting Jakarta Expression Language injections with CodeQL

    Recently I wrote a post about detecting JEXL injections with CodeQL. JEXL is a library that provides an interpreter for a simple expression language (EL). This time, I’ll talk about injections with Jakarta Expression Language, and how they can be found with CodeQL.

  • WS-2016-7107: CSRF tokens in Spring and the BREACH attack

    Recently WhiteSource security scanner started reporting WS-2016-7107 against Spring-based applications. This is an old issue in Spring Security that was reported in 2016. Unfortunately, at the moment of writing it, the issue has not been fixed yet. But there is a pull request that should address it. The problem is that CSRF tokens generated by Spring Security are vulnerable to the BREACH attack. The attack is even older – it was published in 2013. The BREACH attack is similar to the CRIME attack but BREACH doesn’t need TLS compression.

  • В поезде

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

  • Detecting dangerous Spring service exporters with CodeQL

    In this blog post, I’ll talk about detecting unsafe Spring Exporters with a CodeQL query. First, I’ll describe the issue that received CVE-2016-1000027. Next, I’ll show what a vulnerable code looks like and how the issue can be mitigated in an application. Then, I’ll describe how the CodeQL query works. In addition, I’ll show a couple of vulnerabilities that have been found by the query.

  • Fosstars: a framework for defining ratings for open source projects

    I recently wrote a blog post about a project I have been working on at SAP for a year. The project is called Fosstars. It is an open-source Java-based framework for defining ratings that help to assess security, activity and other properties of open source projects. Currently, Fosstars offers a comprehensive security rating that helps to identify open source components that can be a security risk for an application. The blog post describes how Fosstars work:

  • Detecting JEXL injections with CodeQL

    In this post, I’ll talk about a CodeQL query for detecting JEXL Expression Language injection vulnerabilities. First, I’ll give a brief overview of expression languages in general and JEXL in particular. Next, I’ll explain what Expression Language injection is and how to prevent it. Then, I’ll describe how the CodeQL query works. In addition, I’ll show a couple of vulnerabilities that have been found by the query.

  • Reading a photoresistor on ESP32 with MicroPython

    A photoresistor or a light-dependent resistor (LDR) is a resistor that changes its value (resistance) depending on light intensity. More precisely, when light falls upon it, the resistance decreases. It is normally used as a light or dark detector. For example, it may be used in a circuit that turns lights in a room on when it gets dark. Let’s see how we use a photoresistor with ESP32 and MicroPython.

  • Measuring CO2 with MH-Z19B on ESP32 with MicroPython

    In the previous posts, I described a simple weather station that measures temperature and humidity and sends the measurements to a Google sheet. The system is supposed to be used at home. Therefore, one of the next possible improvements can be measuring air quality in a room. That can be done, for example, by adding an MH-Z19B sensor for measuring CO2 level. We’ll use again a ESP32 board and MicroPython.

  • Könnte ich Stadtführer werden?

    Seit einiger Zeit überlege ich mir, ob ich gerne Stadtführer wäre. Ich glaube, dass dieser Beruf auch richtig für mich ist, obwohl ich arbeite gerne zwölf Jahren als Softwareingenieur. Es gibt zwei Gründe: sowohl ich lerne gerne die Geschichte als auch ich erzähle gerne, was ich gelernt habe. Am besten würde ich gerne über die moderne Geschichte erzählen und dann zeigen, wie das Heute ist.

  • Tankstellen in Oregon

    Einmal habe ich mit meinen Freunden eine Reise in der USA gemacht. Als wir in Oregon waren, sind wir an eine Tankstelle gefahren. Es gab eine Frau, die in der Tankstelle gearbeitet hat. Ich habe bezahlt, dann hat die Arbeiterin den Schlauch in den Tank meines Autos eingesteckt und angefangen, den Tank auszufüllen. Als der Tank voll war, konnte die Arbeiterin lang nicht zu uns kommen, um den Schlauch zu entnehmen, weil es viele Kunden an der Tankstelle gab. Ich habe deshalb selbst den Schlauch entnommen. Als ich losgefahren bin, habe ich bemerkt, dass die Frau sich sehr geärgert hat. Sie hat mir etwas gesagt, aber leider habe ich nicht verstanden. Das nächste Mal, als wir bei der Tankstelle gestoppt haben, hat der Arbeiter mir erklärt, dass es in Oregon verboten ist, selbst zu tanken. Leider habe ich das nicht gewusst. Außerdem weiß ich leider auch nicht, warum es in Oregon verboten ist. Ich finde es sehr merkwürdig.

  • New Switch Expressions in Java 14

    Java 14 is going to be released on March 17, 2020. The new version of Java contains one major update to the Java language: new switch expressions. Let’s see how the new switch expressions can be used, what kind of advantages they offer, and what can potentially go wrong. In the end, you are going to find a tricky question about the switch expressions.

  • Ich beginne auf Deutsch zu schreiben

    Obwohl ich vor zwei Jahren nach Deutschland umgezogen bin, habe ich nur letzen Sommer angefangen, Deutsch zu lernen. Fragen Sie, warum? Natürlich, weil ich sehr faul bin. Nun, seit sieben Monaten habe ich einen Deutschkurs besichtigt. Obwohl ich habe viele Hausaufgaben, möchte ich in meinem Blog angefangen, in Deutsch zu schreiben. Ich hoffe, das kann mir helfen, Deutsch zu lernen. Ich glaube, dass ich viele Fehler mache. Aber ich habe keine Ahnung, wer meine Texten lesen möchte. Niemand seht deshalb die Fehler. Vielleicht meine Frau. Sie lernt auch Deutsch.

  • Светлое пиво и счастливое детство

    • Хочешь пива? - предлагает мне немец, любезно пригласивший меня к себе домой.
  • What is new in Java 14?

    Java 14 is going to be released on Mar 17th, 2020. Besides ~2400 bug fixes and small enhancements, the new version of Java contains 16 major enhancements which are also called JEPs (Java Enhancement Proposals).

  • CVE-2020-1925: Requests to arbitrary URLs in Apache Olingo

    Some time ago I wrote about unsafe deserialization and DoS vulnerabilities I’ve discovered in Apache Olingo. This post describes one more issue in the library. This time, it’s a little flaw in the Olingo client which may allow sending some HTTP requests to arbitrary URLs. The issue has been fixed in the 4.7.1 release.

  • CVE-2019-17556: Unsafe deserialization in Apache Olingo

    Some time ago I wrote about one security issue which I found in the library. This post describes another little vulnerability in Apache Olingo. The issue has been fixed in the 4.7.0 release as well.

  • CVE-2019-17555: DoS via Retry-After header in Apache Olingo

    Apache Olingo is a Java library that implements the Open Data Protocol (OData). This protocol allows the creation and consumption of queryable and interoperable RESTful APIs in a simple way.

  • Safer deserialization in Spring Security OAuth2

    The Java standard library provides the ObjectInputStream class which offers a convenient way for deserializing Java objects. Unfortunately, this way is not safe by default. Using this class may open the doors for Java deserialization attacks which in the worse case may result in arbitrary code execution.

  • Фрайбург

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

  • CVE-2019-12415: XML processing vulnerability in Apache POI

    Apache POI is a popular Java library for working with Microsoft documents. For example, it allows you reading and writing Microsoft Excel files using Java. When I was recently looking into the library, I noticed a little vulnerability which then became CVE-2019-12415. The issue has been fixed in POI 4.1.1. Below are the details.

  • Safer deserialization with new Jackson 2.10

    New Jackson 2.10 was released on Sep 26th, 2019. Everyone who uses the library and also scans their applications for known vulnerabilities knows about the problem with endless CVEs that have been reporting against Jackson. Let’s try to understand what makes an application vulnerable and how the new version of Jackson can help to prevent deserialization vulnerabilities.

  • Life in a bubble

    Moving to a new country doesn’t sound like the hardest thing to do. There are harder tasks such as researching dark matter and energy or maybe crochet. However, moving abroad doesn’t sound like the easiest exercise either. When you move to a new place, you usually need to learn many new and not always easy things. Those may be laws, traditions, cultural differences, and of course, the language in which people speak in the country. Otherwise, you may end up living in a bubble.

  • Жизнь в пузыре

    Переезд в другую страну, пожалуй, не самое сложное мероприятие. Есть куда более трудоемкие задачи, как например, изучение таинственных темных энергий или материй, или, скажем, вязание крючком. Однако, самым простым занятием переезд в другую страну тоже не получается назвать. Как правило, нужно изучить довольно много новых и не всегда понятных вещей. Это и законы, и традиции, и культурные особенности, и конечно же тот язык, на котором говорят в новой стране. Иначе можно оказаться в пузыре.

  • TLS enhancements in Java 13

    Java 13 was released on Sep 13th, 2019. Although the new Java doesn’t contain major updates in security libraries, nevertheless it has several notable updates in the TLS implementation. Let’s take a closer look at how Java 13 helps to make your TLS connections faster and more secure.

    TLS enhancements in Java 13
  • Что нового в Java 13

    Java 13 выйдет в свет 17го сентября 2019 года. Помимо ~2300 мелких изменений новая версия Java содержит пять существенных нововведений, которые принято именовать JEP, что означает Java Enhancement Proposal. Посмотрим, что же это за новинки: text blocks, switch expressions, новая начинка для старых Socket API, изменения в сборщике мусора ZGC и динамические CDS архивы.

  • What's new in Java 13

    Java 13 is going to be released on Sep 17th, 2019. Besides ~2300 bug fixes and small enhancements, the new version of Java contains 5 major enhancements which are also called JEPs (Java Enhancement Proposals). Let’s take a closer look at these major updates: text blocks, switch expressions, re-implemented the legacy Socket API, updates to ZGC and dynamic CDS archives.

  • Летим в Россию

    Первого августа начался мой большой отпуск. Летим в Россию. Из нашей немецкой деревни путь неблизкий: начинаем путь в половине седьмого на автобусе до местной железнодорожной станции, потом на электричке до Манхайма, там на пассажирский поезд до аэропорта Франкфурта-на-Майне, три часа в самолете до Москвы, дальше на электричке от Шереметьево до Белорусского вокзала, быстро в метро до Комсомольской площади, где Ленинградский вокзал, бегом на скорую электричку до Твери, и такси до места. В пути, конечно, интересно понаблюдать за публикой.

  • Weather station based on ESP32 and MicroPython

    In one of the previous posts I briefly described sending data to Google Sheets from a ESP32 board using MicroPython. As I mentioned earlier, the code is available on GitHub. Here are the main features:

  • MicroPython на ESP32: отправка данных в Google Sheets

    Однажды в один прекрасный летний выходной вместо того, чтобы пойти на на пляж или куда-нибудь еще, я находился дома и размышлял, как бы отправить что-нибудь с ESP32 в документ Google Sheets, используя MicroPython. Пусть даже ситуация будет совсем классической, и роль данных будут играть температура и влажность, героически измеренные всенародно любимым датчиком DHT22. Так всё и началось.

  • MicroPython on ESP32: sending data to Google Sheets

    On a wonderful weekend in summer time, instead of going out to a beach or somewhere else, I was staying at home and wondering if it’s possible to send data from an ESP board to a Google sheet using my favorite MicroPython. Let’s say it can send temperature and humidity measured by a DHT22 sensor. That’s how the project started.

  • Баден-Баден

    В конце прошлого года волею судеб я переехал на юг Германии, а именно в Баден-Вюртемберг со столицей в Штутгарте. Помимо всего прочего меня сильно подкупило расположение и наличие всяких интересных мест: до Франции, швейцарские и австрийские Альпы тоже недалеко, на юге Германии много старинных замков ну или хотя бы их скромных развалин, рядом расположился и знаменитый немецкий лес Schwarzwald. Настолько знаменитый, что все конечно же о нем знают, вне всяких сомнений. Как не знать о лесе с таким изысканным и запоминающимся названием “Черный лес”. И вот на западной окраине этого всемирно-известного леса расположился чуть менее известный городок под названием Баден-Баден.

  • Transistor delay circuit

    The transistor delay circuit may be helpful to learn some electronics basics. The circuit is pretty simple. It only contains a transistor, a capacitor, several resistors, a switch and an LED. The circuit uses an RC filter to turn an LED on with a little delay. Let’s see how we can choose elements for the circuit, and how the delay depends on parameters of the elements.

  • Small hydroponic system at home

    Increasing living space unavoidably results in filling up the new available space. In the end of last year I moved to a bigger apartment. Since I still have the same furniture, the unused space and volume keep bothering me. In the winter I built a shelving and now I store some useful stuff on it. In spring I got an idea to make a small garden at home. On weekend I built several wooden boxes, and put cherry tomatoes, onions and dill into it. But then I thought it’s not enough. I bought a couple of plastic containers and put more tomatoes. But I thought even that was not enough, and I got an idea to make a hydroponic system.

  • Компактная гидропоника дома

    Увеличение доступного жизненного пространства неминуемо ведет к его планомерному, а порой и стремительному заполнению. В конце прошлого года я переехал в чуть более просторную квартиру. А так как мебель осталась практически той же самой, то теперь мне не дают покоя неиспользуемые площади и объемы. Зимой я соорудил себе деревянный стеллаж и теперь складирую на нем всяких полезный хлам. Весной пришла в голову идея создания меленького домашнего садика. На выходных наколотил деревянных ящиков и посадил маленькую помидору cherry, лук и укроп. Маловато будет: принес из магазина еще два пластмассовых корыта и туда тоже посадил помидору. В результате, получился не садик, а огородик. Но этого оказалось мало, и я вспомнил про давнюю задумку сделать гидропонную установку.

  • Немецкий первомай

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

  • Детские занятия

    Так получилось, что теперь пишу небольшие заметки в ежемесячный детский журнал. Называется журнал “Кот в мешке”. Кот молод и хорош. Задания придумывает редактор в зависимости от темы номера, ну а я воплощаю в жизнь. Никогда бы раньше не подумал, что буду этим заниматься. Темы интересные, требуют иногда некоторой подготовки. К примеру, нужно было описать кратко, как летает бумеранг и почему он, собственно, возвращается. Оказалось, что дело это не совсем простое: там и подъемная сила появляется, и смещения всякие с заваливаниями, и даже гироскоп. Вы вот знаете, что такое гироскоп? А читатели журнала могли и не знать ввиду своего малого возраста. В итоге рассказ про бумеранг был написан, но работой своей я бы не очень доволен. Теперь иногда задумываюсь, а что бы я такого мог описать. Что-то такое, что я знаю, что делал, ну скажем, в детстве. И каждый раз заканчиваю размышления на том, что лучше в журнал такого не писать.

  • Немецкий корпоративный интернационал

    Так получилось, что за год с небольшим жизни в Германии я уже успел поработать в двух разных конторах. Я немного непоседлив, да и дурная голова ногам покоя не дает. Обе компании были основаны в Германии. Одна из них довольно крупная и относительно молодая: недавно ей исполнилось десять годиков. Другую компанию, пожалуй, можно назвать гигантом, который чем-то похож на Карлсона: он уже не молод, но в самом расцвете сил. Как вы думаете, какой же национальный состав в этих немецких организациях?

  • Что нового в Java 12

    В Java 12 содержится в половину меньше больших нововведений в сравнении с предыдущей версией: в Java 12 засунули восемь JEPов, а в Java 11 из было аж целых семнадцать. Как вы конечно же помните, JEP означает JDK Enhancement Proposal. Иными словами, это единица измерения больших изменений в JDK. Что касается малых изменений в Java, то их количество в Java 11 и 12 не слишком сильно отличается: Jira говорит нам, что в Java 11 из было порядка 2700, а в Java 12 их около 2400. Мы же сосредоточимся только на больших новинках.

  • What's new in Java 12

    Let’s take a look what is inside Java 12. The new Java release contains less major enhancements than the previous version: 8 JEPs in Java 12 vs 17 JEPs in Java 11. As you of course remember, JEP stands for JDK Enhancement Proposal. Java 11 also had more closed entries in Jira: ~2700 in Java 11 vs ~2400 in Java 12. But it’s only mid of Feb 2019, maybe they can deliver 300 Jira entries by Mar 19th 2019 when Java 12 is planned to be released. Now let’s take a closed look what is in Java 12.

  • Велосипед в немецкой деревне

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

  • Security testing for REST API with w3af

    Nowadays more and more companies provide web APIs to access their services. They usually follow REST style. Such a RESTful web service looks like a regular web application. It accepts an HTTP request, does some magic, and then replies with an HTTP response. One of the main differences is that the reply doesn’t normally contain HTML to be rendered in a web browser. Instead, the reply usually contains data in a format (for example, JSON or XML) which is easier to process by another application.

  • Кто ходит в гости по утрам

    “Кто ходит в гости по утрам,
    Тот поступает мудро.
    Известно всем, тарам-парам,
    На то оно и утро!”
    Винни-Пух

  • Полиция в Германии, США и России

    “Из-за леса выезжает конная милиция …”
    Сектор Газа

  • Немецкий тротуар

    Кто-нибудь уже писал о немецких тротуарах? Может быть, я буду первым. Кое-что интересное можно заметить и на простых немецких улочках. Если, конечно, смотреть себе под ноги. Коротко о немецком тротуарном камне, его использованию не по назначению и берлинских сквотах.

  • Сколько водительских удостоверений нужно человеку

    Сколько водительских удостоверений нужно одному человеку? Кто-то скажет, что нужно лишь одно, а кто-то даже скажет, что не нужно ни одного. Но вряд ли кто-то скажет, что нужно больше одного. У меня вот их три. Ну если быть точным, то два с половиной: российское, американское и российское международное. Расположил я их в порядке убывания сложности получения.

  • Configuring security for REST API in Spring

    In most cases, REST APIs should be accessed only by authorized parties. Spring framework provides many ways to configure authentication and authorization for an application. Another good thing is that the framework usually provides relatively good default settings. But nevertheless, it may be better to understand what’s going on rather then rely on the defaults.

  • What's new security features in Java 11?

    Java 11 was released on Sep 25th, 2018. This is the first long-term support release produced under the six-month cadence release model. Besides a huge number of small improvements and bug fixes, the new release contains 17 major enhancements including:

  • Вальдорф и немецкие пасторальные виды

    Выдалась еще одна поездка по делам. На этот раз в Вальдорф (Walldorf). Мне очень трудно далось освоение названия этого населенного пункта: всегда хотелось сказать Вальсдорф. Видимо у меня есть тайная любовь к вальсам.  Находится этот городок на юго-западе Германии недалеко от берегов Рейна. Там уже и до Франции недалеко, и крошечный Люксембург совсем рядом, и Бавария чуть на восток, а на юге уже начинается Швейцария и Альпы. Если пересекать Германию с севера на юг, то местность становится все более холмистой, а поезд все чаще идет по тоннелям. Горами это очень сложно назвать, но холмами вполне можно. Из окон скорых немецких поездов видно, как на склонах этих холмов мирно пасутся коровки с лошадками, как луга и поля сменяют друг друга, и как мимо проносятся милые одноэтажные городки с беленькими домиками, крыши которых покрыты красной черепицей. Такая пасторальная идиллия.

  • An example of TLS 1.3 client and server on Java

    Java 11 supports TLS 1.3 protocol which was published in August 2018. During implementing the new TLS protocol, Java security-libs team significantly re-worked Java Secure Sockets Extension (JSSE). I used to work on security-libs in Java for 6 years, so I can tell that was not an easy task for sure. But nevertheless, Java security-libs team delivered TLS 1.3 implementation in Java 11. Great job!

  • Гамбург

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

  • How does TLS 1.3 protect against downgrade attacks?

    TLS 1.3 standard was finally published in August 2018. The authors tried to address the problems which unfortunately exist in older versions of the TLS protocol. One of the problems is a lack of protection against downgrade attacks.

  • Потсдам

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

  • Про Берлин: транспорт, велосипеды и пиво

    Продолжим бытописание Берлина: общественный транспорт, велосипеды и пиво (Ja-Ja, sehr gut!)

  • Отпуск

    • Я тоже первые два года в отпуск в Россию ездил, - говорит мне коллега, - а потом перестал. Не переживай, и у тебя пройдет.
  • Рейхстаг

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

  • Fuzzing and code coverage analysis

    Code coverage analysis is used in software testing to discover untested pieces of an application. Gathering code coverage data may also be useful for fuzzing. Basically it may help to figure out which parts of a program were not reached during fuzzing. This info can then be used to improve the fuzzer.

  • Про Берлин: курение, стройки и зверушки

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

  • Зансе-Сханс

    Недалеко от Амстердама есть местечко, которое называется Зансе-Сханс. Это музей под открытым небом, который посвящен голландским традиционным постройкам и занятиям. Там можно посмотреть на голландские домики, ветряные мельницы и сыроварни. В сырном магазине дают пробовать сыр, так что если вы человек не стеснительный, то можете даже наесться. Довольно милое место, особенно если вы хотите отдохнуть от шумной толпы на улицах Амстердама. Однако, лучше ехать в Зансе-Сханс пораньше, а то к полудню деревушка тоже наполняется толпой туристов. Хотя там попросторнее, чем на узеньких амстердамских улочках.

  • Амстердам

    • Наш автобус проследует … в Амстердам, - неторопливо обнадежил нас водитель, как только мы отъехали от берлинского автовокзала. - Путешествие займет около восьми часов … хотя, конечно, зависит от дорожной обстановки … В пути мы сделаем одну остановку … Да, у нас есть туалет … В автобусе потряхивает, поэтому прошу мужчин не делать это стоя … Ну и женщин, конечно, тоже прошу …
  • Кёкенхоф

    Едешь смотреть тюльпанчики в Голландию, а попадаешь на Кухонный двор. Он у них называется Keukenhof, и, как это ни странно, именно там и собрались все тюльпанчики. А еще нарциссы, гиацинты и даже японская сакура. Кюхенхоф или же Кёкенхоф, как вам удобней, это парк цветов в Нидерландах. Нет, не просто какой-то там парк, а, на минуточку, королевский парк цветов. И ходят слухи, что королевская семья не отлынивает и принимает участие в жизни парка.

  • Running picotls TLS 1.3 server with AddressSanitizer and Docker

    Picotls is a TLS 1.3 implementation written in C. At the moment of writing this post, picotls implements TLS 1.3 draft 26.

  • Integrating OWASP Dependency Check in to development process

    OWASP Dependency Check is a well known open-source tool which can track dependencies in your project and identify components with known published vulnerabilities. The tool supports multiple languages and platforms such as Java, .NET, Ruby and Python. One of the simplest ways how you can use Dependency Check in your project is just to run it manually. This way has at least one disadvantage: you have to make sure that you run the tool regularly. Fortunately there is a couple of ways how you can automate this process.

  • An overview of secure usage of TLS

    The article describes how TLS protocols can be used for establishing a secure connection: First, we’ll briefly discuss the protocol works. Next, we’ll talk about secure protocol versions and parameters. Finally, we’ll describe how TLS can be configures securely.

  • Дрезден

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

  • Сдача бутылок в Германии

    Мое счастливое детство было хоть и не босоногим, но без изысков. Осознанная его часть большей частью прошла в небольшом городке Осташков, который заботливо окружен с трех сторон озером Селигер. Одними из любимых мест времяпрепровождения были разные мусорки и свалки, где мы искали разные полезные в подростковом хозяйстве вещи. Например, старые телевизоры. Найдя очередной шедевр советской бытовой техники, первым делом мы кидали полкирпича в кинескоп. Уж очень нас радовал хлопок при разрыве кинескопа и последующий разлет осколков. Далее телевизор разбирался на части: извлекались динамики, трансформаторы и радиотехническая начинка. Все это добро относилось домой для дальнейшей переработки. Дома радиодетальки старательно выпаивались, чтобы потом из них сделать какое-нибудь бесполезное устройство. Схемы устройств брались из старинных радиотехнических журналах 70-80х годов прошлого века, которые можно было отыскать в местной библиотеке. Современные радиодетали и литературу в моем детстве достать было затруднительно. Из современной литературы раз в месяц можно было достать лишь журнал “Радио”, и то если укараулить его в ларьке с журналами в начале месяца. Но на журнал нужны были деньги. Тут и помогали трансформаторы, а точнее их медная начинка, которую можно было сдать в пункте приема цветного металла. Так мы приобщались к recycling’у.

  • Прага

    Видимо автовокзалы выглядят одинаково по всему миру. Они часто являются неуклюжими каменно-бетонными зданиями, к которым подъезжают и тут же уезжают автобусы, и где снует разного рода и калибра пассажир. Пассажир на автовокзале всегда разношерстный и интересный. Есть солидные пузатенькие мужчины в пальто, а иногда даже и в шляпе. Тут же рядом стоит пассажир куда менее презентабельный с огромным рюкзаком и поедает сосису на булочке с горчицей. Иной пассажир давно не мыт, другой не брит, а некоторый даже и вовсе живет на вокзале.

  • Берлинская весна

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

  • На машине из Калифорнии в Сиэтл и обратно

    Однажды мне пришло в голову доехать на машине из Калифорнии до Сиэтла. Жил я тогда в районе Сан-Хосе, что в свою очередь не так далеко от Сан-Франциско. Когда смотришь на карту, то кажется, что от Сан-Франциско до Сиэтла не очень далеко. Однако присмотревшись и спросив Google Maps начинаешь понимать, что затея эта будет довольно долгоиграющей. Путь туда и обратно составляет примерно 1700 миль или 2700 километров.

  • Японский садик в Портленде

    Я испытываю некоторую страсть к японским садикам. К сожалению, в Японии мне не довелось побывать. Но в США можно встретить их во многих крупных городах. Портленд не является исключением. Японский садик в Портленде просто прекрасен. У входа в сад стоят несколько традиционных японских домов. Рядом расположилась выставка деревьев-бонсай. Это японское искусство выращивать копии больших деревьев в миниатюре. Просто потрясающе. Никогда раньше я их не видел. А сам сад большой и тенистый, с ручейками и дзенским садиком камней. Надо постараться таким обзавестись.

  • Божественные встречи

    Как-то я прочитал в новостях, что Федор Чистяков, который был лидером группы Ноль, уехал в США. То ли насовсем, то ли пока еще нет. Оказалось, что Федор Чистяков является членом церкви Свидетели Иеговы, которую не так давно на территории России предали анафеме. Хоть я и не слежу за жизнью ни Федора Чистякова, ни Свидетелей Иеговых, но почему-то был немного удивлен, когда узнал, что он состоит в этой организации. Потом я начал вспоминать, с какими церквями я имел счастье познакомиться.

  • Что нового в Java 10: часть вторая

    Java 10 уже не за горами, а именно её обещают выпустить уже совсем скоро в марте. В новой версии Java нас ждет довольно много улучшений в JVM. Но кажется, что все в основном заинтересованы лишь в одном нововведении в самом языке, а именно новом слове “var”. Помимо улучшений языка и виртуальной машины Java 10 содержит еще одно нововведение, которое совместно с новой моделью релизов Java наделало много шуму в сообществе любителей Java.

  • Поездка в Дортмунд

    Меня недавно отправили в мою первую командировку на новом рабочем месте. Это была поездка в Дортмунд, что находится в западной части Германии. Если ехать в Дортмунд из Берлина, который находится в восточной части, то пересекаешь всю страну. Ехал я на поезде. Весь путь занял три часа. Вот так, всю Германию проехал всего лишь за три часа.

  • Extracting secrets from machine learning systems

    For those who are interested in machine learning and/or security, here is a research which discusses extracting secrets from machine learning systems:

  • Контрафакт

    Прочитал новость. Только ради таких новостей я и читаю новости.

  • Кризис среднего возраста

    • Вот меня последнее время мучают всякие вопросы из разряда “А зачем?”, - говорю я по пути из магазина. - Хочется что-то такое сделать, чтобы непременно большое было и полезное. Чтоб, так сказать, посильно след оставить в историческом процессе. А то все суета одна. Нет чтобы вот по-настоящему … Всё не то … Это наверное кризис среднего возраста.
  • What's new in Java 10: Episode 2

    Java 10 is coming in March 2018. This release contains quite a lot of enhancements in the JVM. But it looks like JDK users are mostly interested in one particular update in the Java Language - type inference to declarations of local variables with initializers. Besides updates to the Java Language and JVM, Java 10 contains another update which together with the six-month release model has been bothering the Java community for several months.

  • Орегонский Талант

    Для большинства Америка может ассоциироваться с большими городами такими как, Нью-Йорк, Чикаго, Майами, Сан-Франциско, где в узких downtown’ах высятся небоскребы, сигналят таксисты, бегают деловые люди с портфельчиками и туристы с рюкзачками. Однако в Америке куда больше городков маленьких, уютненьких, население которых исчисляется тысячами, сотнями, а порой и десятками человек. Ильф и Петров в тридцатых годах двадцатого века писали, что все эти городки похожи друг на друга, как две капли воды. Чем-то они действительно похожи до сих пор, но иногда попадаются и довольно оригинальные. Например, Randsburg на самой окраине Калифорнии возле Долины Смерти, который весь является маленьким музеем Дикого Запада времен Золотой Лихорадки. Или Solvang, который уже ближе к Тихому океану, основанный датчанами и сохранивший датский колорит. Кстати, кто-нибудь когда нибудь слышал о датском колорите? Но мне нравятся простые тихие заурядные американские городки. Вот, например, в Орегоне есть простой городок с простым названием Talent.

  • Что нового в Java 10: часть первая

    Java 10 должна увидеть свет в марте 2018. Это будет следующий большой short-term release после Java 9, которая была выпущена недавно в сентябре 2017.

  • На электричке в Шпандау

    Если в Берлине сесть на городскую электричку номер девять, например, на Александр-плац и поехать на ней почти до самого конца, то вы окажетесь в милом и старинном городке Шпандау.

  • What's new in Java 10: Episode 1

    Java 10 should be released in Mar 2018. It’s going to be the next short-term release after Java 9 which was released in Sep 2017.

  • Немецкая налоговая

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

  • Переполнение буфера в глобальной области памяти

    Написано много статей, постов и даже книг о переполнении буферов в стеке. Чуть меньше про переполнение буфера в куче. Но есть еще одна вещь, которую можно переполнить, и о которой пишут мало. Это буфер в глобальной области памяти (global memory). Хотя все эти проблемы сильно похожи друг на друга, тем не менее попробуем заполнить этот небольшой пробел с переполнениями буфера в глобальной памяти.

    English version

  • Examples of DNS rebinding attacks

    DNS rebinding attacks have been known for quite a long time. For example, Stanford Web Security Research Team posted a whitepaper about DNS rebinding attacks in 2007. But even if it's a well-known type of attacks, nowadays you still can find software systems which are vulnerable to DNS rebinding attacks. For example, Google Project Zero recently discovered such problems in Blizzard Update Agent and BitTorent Transmission Daemon.

  • Running an SSH server in a Docker image as a debugging mode

    I was recently debugging one Python application which ran in a Docker container. At some point, I’d like to debug the app in the container. At first, I was wondering if there is a way to run a Python application with a debug agent like you can do with Java, so that the agent listened in a port for incoming connections from a remote debugger. Unfortunately I didn’t find a convenient way how I could remotely debug my Python app. I found an article which describes how you can debug a Python application remotely with PyCharm IDE and SSH. If I understood correctly, PyCharm can deploy your application to a Docker container via SSH, then do some magic which is called “remote interpreter”, so as a result, you can debug the application from your local PyCharm installation. Looks like this feature is available only in a commercial PyCharm version, but I had only a community edition.

  • Немецкая прописка

    А знаете ли вы, что в Германии есть прописка? Каждый понаехавший на постоянное место жительства в немецкий город должен зарегистрироваться в специальном учреждении, имя которому Bürgeramt (ах, эти умляуты, милашки).

  • Орегонкие чудеса

    Как-то летом 2017го года мне довелось проехаться из Силиконовой Деревни до Сиэтла. Проехали мы три штата: Калифорнию, Орегон и Вашингтон. В этот раз на Орегоне остановимся чуть подробней.

  • Новогодний фейерверк в Берлине

    (Кто-то справедливо может заметить, что совсем сдурел, новый год уж давно наступил, а он все пишет. Просто давно написал, но все забывал разместить)

  • Берлин в первый раз

    Уже летим над пригородами Берлина. Внизу городки с красными крышами домов. Между ними бегут крошечные машинки. Вот уже видно панельные многоэтажки, они похожи на те, что стоят в спальных районах российских городов, которые строились в 70-80х годах. Наследие ГДР. Посадка в аэропорте Тегель.

  • Запуск Java вместе с AddressSanitizer

    OpenJDK и AddressSanitizer довольно известные open-source проекты. OpenJDK содержит код на C/C++, который в отличие от кода на Java, может напрямую работать с памятью, что в свою очередь может привести к известным проблемам связанными с доступом за пределы выделенной памяти. Это всем известные и всевозможные переполнения буферов, use-after-ftee и прочие проблемы. Подобные проблемы могут быть обнаружены с помощью инструментов, которые называются runtime memory checkers. Одним из таких инструментов является AddressSanitizer. И теперь стало гораздо легче использовать AddressSanitizer вместе с OpenJDK.

  • Большие дороги Америки

    Поздним вечером я лежал на койке в излюбленном Motel 6 и занимался самообразованием, а именно, читал про организацию дорог в США. Оказывается, что есть целая система шоссе между штатами, которая названа в честь президента Эйзенхауэра. Слышали о таком? А он был. И-таки начал строить эту самую систему шоссе, которая была призвана связать все необъятные просторы Соединенных Штатов благословенной Америки. Затея эта была отчасти оборонительная: надо было проложить хорошие дороги, которые пересекают США с юга на север, и с запада на восток, прямо всю страну насквозь, чтоб в случае войны и оккупации коммунистами можно было патроны возить туда-сюда. Ну а в мирное время население могло бы по этим дорогам возить помидоры, картошку и всякие другие важные предметы.

  • LDAP-инъекции

    Каждый знает про SQL-инъекции (SQL injection). Это как знаменитость в мире ИБ. Но кроме них еще существует множество других разновидностей инъекций, которые могут лишь позавидовать популярности SQL-инъекций. И это не совсем справедливо. Устраним же эту несправедливость и поговорим о LDAP-инъекции (LDAP injection).

  • Ни джоуля мимо: отопление биткойнами

    Кажется, я нашел следующий проект для себя из категории “Сделай сам”.

  • Running Java with AddressSanitizer

    OpenJDK and AddressSanitizer are well-known open source projects. OpenJDK sources contain C/C++ code which may be affected by memory corruption issues and memory leaks. Such issues may be detected at runtime with memory checkers like AddressSanitizer. Now it’s going to be easier to use AddressSanitizer for OpenJDK development to check for memory corruptions and leaks.

  • Сиэтл и первый Starbucks

    Как-то я писал об одной американской забаве под названием “road trip” или “дорожное путешествие”. Забава мне эта очень пришлась по душе, и таких путешествий было совершено уже три: одно по Калифорнии, Неваде и кусочку Аризоны, другое в Санта-Барбару к местам съемки одноименного сериала, и третье по Флориде.

  • Кошачьи дела

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

  • New bug bounty programs on HackerOne for open source libraries

    There are a couple of new bug bounty programs on HackeOne for popular open source libraries:

  • Cанта-Барбара

    Есть в Америке такая народная забава, которая называется “road trip”. Или дорожное путешествие. Мне эта забава пришлась очень по душе, поэтому я стараюсь на нее находить время. Например, в последний понедельник мая в США отмечают “Memorial Day”, в который американцы вспоминают тех, кто погиб при исполнении воинских обязанностей. Это федеральный праздник, который отмечается во всех штатах США, и в этот день на работу ходить не полагается. В прошлом году я встретил Memorial Day в Сан-Диего, где гулял по прекрасной набережной и иногда даже слышал, как мне почему-то говорят “Thank you for your service”. Видимо моя лысая голова вместе с наличием в Сан-Диего базы военно-морского флота США заставляли некоторых думать, что я матрос с одного из американских эсминцев или даже крейсера. В этом году я тщательно постригся перед праздником и поехал в Санта-Барбару. Правда, пишу об этом с небольшим опозданием всего в три месяца.

  • Хакеры в Лас Вегасе (BlackHat 2017)

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

  • Едем по Флориде (часть вторая)

    Пора, пора заканчивать писать о Флориде. Сколько можно уже? Хотя место хорошее, слов нет. Еще немножко, чуть-чуть про Disney World, Микки Мауса и толстых крокодилов.

  • Едем по Флориде (часть первая)

    Я недавно был во Флориде. Что сказать - место хорошее. После Флориды я начал думать, что в Калифорнии довольно холодно. Похоже, что я вконец изнежился и расслабился под калифорнийским солнышком.

  • Другой Санкт-Петербург

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

  • Вечер предпринимателей

    Наверное все знают про startup’ы. Тут startup открылся, там закрылся, здесь купился, там продался. В околопрограммистской среде, где я по долгу службы провожу много времени, разговоры о startup’ах случаются часто. Особенно в Силиконовой Деревне, где я по долгу службы тоже оказался. Еще я оказался в коммунальной квартире, где моим соседом является человек, который занимается чем-то вроде развития этих самых пресловутых startup’ов на начальной стадии. У него есть свои “Рога и копыта”, и он периодически устраивает вечера для всяких предпринимателей и просто сочувствующих startup’ам людей. На один из таких вечеров мой сосед любезно пригласил лысого человека в шортах и мятой футболке. То есть меня.

  • Florida Keys

    Florida Keys это цепочка островов, которая тянется от материковой части Флориды на юго-запад прямо в самый Мексиканский залив. Острова соединены мостами. Путь от самого западного острова до самого восточного занимает несколько часов - надо преодолеть более ста миль. На этом мы прекратим образовательную часть и перейдем к обывательской.

  • Майами

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

  • LDAP injections

    Everybody knows about SQL injections. It’s like a celebrity in the world of software security. But there are much more many different types of injection attacks which may feel jealous about popularity of SQL injections. That’s not fair. Let’s try to feel the gap, and talk about LDAP injections.

  • Первомай в Новом Орлеане

    C трапа самолета мы попадаем в просторные залы аэропорта Нового Орлеана. Аэропорт назван в честь Луи Армстронга. Вон и его трехметровая статуя в углу. Луи в белом пиджаке играет на трубе. А вокруг любезно включены кондиционеры, от чего в залах так прохладно и хорошо. Но пора покидать небесные гавани. “Как в бане …” - подумал я, как только вышел на улицу. Был уже поздний вечер и темно, но воздух был влажный и теплый.

  • Москва китайсткая

    “Кто в Москве не бывал - красоты не видал.”

  • MicroPython на ESP8266: отправка данных на ThingSpeak

    Традиционным “Hello World!” в мире микроконтроллеров можно по праву назвать мигание светодиодом. Это и было сделано после установки MicroPython на ESP8266. Но время идти двигаться дальше и реализовать второй традиционный проект для микроконтроллера - измерение температуры и влажности со всеми любимым датчиком DHT22. Но мы не ограничимся тихими измерениями, а вместе с этим будем отсылать эти важные данные в интернеты. Для этого у нас есть, например, прекрасный сервис ThingSpeak. Пополним армию Internet of Shit!

  • Долина смерти в два дня

    Есть в Калифорнии место с очень страшным названием - Долина Смерти. Это пустыня. Известна она тем, что там очень жарко. Особенно летом. А еще это американский национальный парк, который, как и многие другие американские национальные парки, прекрасно оборудован для посещения всеми желающими повидать виды. В результате туристов там много даже несмотря на такое страшное название.

  • Трудности с запуском MicroPython на ESP8266 с 512K памяти

    ESP8266 могут иметь разное количество памяти на борту. У MicroPython на этот случай есть две версии: ограниченная для бедных устройств с объемом памяти меньше 512K и полная версия для счастливых устройств с объемом памяти более 512K. Прошлый раз мы баловались с ESP-07, которая как раз имела лишь 512K памяти, поэтому использовалась урезанная версия MicroPython. Этого было достаточно, чтобы помигать светодиодом подключившись к ESP8266 через USB-Serial адаптер, но дальше начались трудности.

  • Как запустить MicroPython на ESP8266

    Мне нравится идея Интернета вещей, и последнее время идея эта становится довольно популярной. У нас уже есть куча вещей, которые подключаются к интернету: телевизоры, принтеры, холодильники, автомобили и даже зубные щетки. Более того, у нас еже есть целые ботнеты, которые укомплектованы IoT устройствами, и которые успешно используются для массивных DDoS атак. Иногда я предпочитаю называть все это “Internet of Shit”, потому что порой непонятно, зачем некоторые устройства пытаются выйти в интернеты. Кстати, есть интересный twitter, который так и называется “Internet of Shit”. Очень рекомендую.

  • Американский митинг

    Это история о том, как я шел к американскому митингу.

  • Сложности перевода

    Мне иногда говорят, что коли я живу в Америке и работаю в американской компании, то значит я прекрасно говорю по-английски. Это не совсем так.

  • Американская физкультура

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

  • Global buffer overflow

    There are a lot of articles, posts, and even books which describe a stack buffer overflow. There are a little less stuff about heap buffer overflows. But there is one more thing which you can overflow - buffers in global memory. Although all of those types of issues are very similar, let me try to fill this little gap with global buffer overflows.

    Русская версия

  • Math, beer, freeze, police

    It’s 3pm, we came into the room at 8am, so we’ve been taking our mathematical analysis exam for 7 hours.

  • Аэрофлот в первый раз

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

  • MicroPython on ESP8266: sending data to ThingSpeak

    When you play with new microcontroller, first thing you usually do is driving an LED. That’s a classic “Hello World!” project for microcontrollers. That’s what I did when I was playing first time with ESP8266 and MicroPython. Let’s move on, and implement another classic project - measuring temperature and humidity with DHT22 sensor. But we don’t want to be quiet, so we are going to share this so important data on the Internet. ThingSpeak will help us with it. Let’s add a new warrior to the army of Internet of Shit!

  • Матан и алгебра доведут до цугундера

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

  • Problems with running MicroPython on ESP8266 with 512K

    In my previous post about running MicroPython on ESP8266, I mentioned that ESP8266 boards may have different amount of flash. Similarly there are two versions of MicroPython: limited version for 512K, and full version for boards which have more than 512K of flash. In that post, I played with ESP-07 which had only 512K, so I had to use a limited version of MicroPython. This limited MicroPython version was enough just to turn on/off an LED, but it turned out that it actually doesn’t work well.

  • Getting started with ESP8266 and MicroPython

    I like the idea of Internet of Things (IoT) which is becoming so popular. We have everything connected to the Internet: TVs, printers, fridges, cars, even teeth brushes, etc. We already have botnets which consist of IoT devices, and are used for massive DDoS attacks. I personally prefer calling it “Internet of Shit” because sometimes it’s not clear why some devices connect to the Internet. By the way, there is a twitter called “Internet of Shit”. I highly recommend to follow.

  • Больше комнат хороших и разных

    Тернист и тяжел путь человека без определенного места жительства. Не задумывались ли вы, что человек без определенного места жительства это нечто большее, чем тот, кто мирно живет в теплом подвале многоквартирного дома в Купчегагине, или на уютном чердаке в каком-нибудь абстрактном Алкоголищенске? Вот слово, а точнее аббревиатура “бомж” подразумевает бездомного члена общества. Но сам по себе человек без определенного места жительства охватывает куда большую категорию людей. Вот например, к этой категории принадлежу и я - ведь у меня нет своего жилья в солнечной и иногда, а впрочем даже почти всегда радужной Калифорнии. Ввиду наличия отсутствия собственного жилья, таким как я приходится его снимать.

  • Водительское удостоверение в Америке

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

  • Gorky city (if we're back to USSR)

    If you are visiting Russia, than you are probably in Moscow. Or, you may be in Saint Petersburg (by the way, there is another one in Florida). Just because those two cities are the most famous and popular places in Russia.

  • Нью-Йорк и жизнь с оперной певицей

    Я проснулся в Бруклине в 7 утра. Умылся и вышел на улицу.

  • В поисках американских коммуналок

    В Силиконовой деревне вопрос аренды жилья стоит остро, как и во многих других густонаселенных районах нашей бедной планеты. На самом деле, долина вовсе не силиконовая, а кремниевая, как многие ее жители не устают повторять. Но ведь язык не поворачивается перевести на русский язык “Silicon Valley” как “Кремниевая долина”. Написано же - силикон. Просто нерусскими буквами. А силикон, я думаю, ни чем не уступает кремнию по своей важности в хозяйстве и быту. Я даже склонен подозревать, что многие могут и не знать о существовании кремния и транзисторов, но вот о существовании силикона и предметов на его основе они скорее всего знают или хотя бы догадываются глядя на картинки в интернете, или случайно увидев клей на силиконовой основе в хозяйственном магазине. Может быть, если бы долина действительно была силиконовой, то цены на аренду жилья были немного приятнее. Но увы, долина кремниевая и мы имеем то, что имеем. Прожив год в милом сарайчике, я собрался переезжать, и выбор пал на американские аналоги коммунальных квартир. Объявления о сдаче комнат не оставили меня равнодушным.

  • MessagePack fuzzing

    MessagePack is a binary serialization format. There are lots of open source implementations of this protocol on various languages including C/C++. It’s good to do something good in new year. For example, it can be a little contribution to an open source project. Let’s check quickly if the implementation on C/C++ has any memory corruption issues. One of the best ways is of course fuzzing.

  • Через США на поезде

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

  • Божественный день в Salt Lake City

    “И началась великая борьба за бессмертную душу шофера.”

  • Чикаго

    Cредний запад США. Интересно, почему не средний восток? Ведь если посмотреть на карту США, пригласить господина Шарикова и поделить страну пополам, то Чикаго будет расположен все-таки на восточной ее части. Да, речь пойдет о Чикаго. Он, кстати, является крупным транспортным узлом. Зачем я это сказал? Для того, чтобы потом заявить, что из Чикаго отправляются поезда в разные уголки страны. А так как я путешествовал именно поездом, то и никак не мог избежать встречи с городом отставных бутлегеров и гангстеров.

  • Бостон и окрестности

    Мне давно хотелось побывать в Бостоне. Очень историческое место, а я люблю историю: первые поселенцы в Новом Свете, бывшая английская колония, Бостонское Чаепитие, война за независимость США - все это связано с Бостоном. А в пригороде совсем неподалеку уютно расположились одни из самых известных и престижных учебных заведений мира: Гарвардский университет и Массачусетский технологический институт.

  • Fuzzing GUI applications: AbiWord

    Usually there is no problem if you want to fuzz a headless application. A headless application can be run just in a terminal, and doesn’t have any GUI. You can pick up your favorite fuzzer, and feed fuzzed data to the application. Normally, a headless application just processes data, and then quits or crashes right away. But it may be different if you are trying to fuzz an application with GUI. Let’s try to fuzz an open source text editor AbiWord.

  • Из Калифорнии в Мексику

    Калифорния и Мексика самые настоящие соседушки: южная граница Калифорнии как раз примыкает к северной мексиканской. А город Сан-Диего находится у самой границы с Мексикой, и там ее можно запросто перейти. Мексика страна гостеприимная, и скорее всего вам не понадобится никакой визы для ее посещения в роли беспечного туриста.

  • Музейный рай Washington DC

    Есть такие города, где музеи встречаются на каждом шагу. Один из них это Питер, где есть не только Русский музей и Эрмитаж, но и Музей гигиены с Музеем сновидений Зигмунда Фрейда. Другой пример такого города музеев это столица США - Washington DC. Когда идешь по столице США, то складывается впечатление, что город состоит только из государственных учреждений и музеев, которые разбавлены небольшим количеством отелей, магазинов и ресторанов.

  • Accessing private fields with synthetic methods in Java

    In Java, you can define one class B inside another class A. Class B is called an inner class, and class A is called an outer class. It looks like the following:

  • Вокруг Белого дома

    Washington DC это столица США, которая, как известно, находится на восточном побережье страны. Важно упоминать именно “DC”, потому что без этого столица сразу превращается в штат Washington, который находится совершенно в другой части США на самом-самом северо-западе. Волею судеб мне там довелось побывать этой осенью.

  • Что можно увидеть в американском отеле

    Это сугубо бытовой рассказ о пребывании в американском отеле. Признаться, мне сначала даже было как-то неудобно писать на такую обывательскую тему. Но вот начав перечитывать “Одноэтажную Америку” товарищей Ильфа и Петрова, я обнаружил, что авторы нисколько не смущаясь переходят к этой теме уже в третьей главе, которая называется “Что можно увидеть из окна гостиницы”. И я подумал, что если такие писатели не побрезговали такой темой, то и мне нечего стесняться, ведь я не выдерживаю никакого сравнения с ними. Чтобы разнообразить жизнь, я также приведу несколько цитат из указанной выше главы, дабы неглубоко окунуться в Америку тридцатых годов прошлого века, а потом быстро вынырнуть в современную.

  • Небольшой маршрут по Калифорнии, Неваде и кусочку Аризоны

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

  • 17 миль полей для гольфа

    Чуть к югу от Мортерея (Monterey) в Калифорнии есть городок Кармел (Carmel-By-The-Sea). А между ними и немного западнее находится место, которое называется “17 mile drive”. Как можно догадаться из названия, это некая дорога длиной в 17 миль. Мне года четыре рекомендовали туда съездить многие люди, потому что там очень красиво. Через четыре года я все-таки собрался.

  • Тяжелая жизнь пешехода в Сан-Франциско

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

  • Sending text commands to STM32 with USART

    If you think that your STM32 board feels lonely, you can connect it to your laptop. One of the ways how you can do that is USART. That’s probably the easiest way. For example, let’s say that we want to send text commands from a laptop to STM32 board. One command should turn on an LED, and another one should turn it off. And of course, STM32 should curse us in case of invalid command.

  • Незаметные детали Золотых Ворот

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

  • Неполное впечатление о Сан-Диего

    Сан-Диего это город, который забрался в самый-самый Юго-Запад США. Он просто примыкает к границе с Мексикой. И говорят, это очень удобно, ведь можно поехать туда на выходные, одеть сомбреро и хлобыстнув текилы расхаживать с гитарой по улице. В Сан-Диего мне довелось побывать лишь один раз, и всего лишь один день, и без посещения Мексики. Поэтому мое впечатление о Сан Диего еще не сложилось полностью, но тем не менее …

  • Python marshal module fuzzing

    The marshal module provides a serialization mechanism for Python values. In other words, the module contains functions for writing/reading Python objects in a binary format. Unfortunately the format is undocumented, and Python maintainers may change the format in backward incompatible ways between Python version. The marshal module is used internally by other Python components, for example, for reading and writing .pyc files which contain pseudo-compiled Python code. But Python also has public API to access this serialization mechanism.

  • Бухта серого кита

    “На небе только и разговоров, что о море и о закате. Там говорят о том, как чертовски здорово наблюдать за огромным огненным шаром, как он тает в волнах. И еле видимый свет, словно от свечи, горит где-то в глубине…”

  • Java и свет в конце DNS туннеля

    Часто компании имеют свою внутреннюю сеть, которая подключена к интернету через маршрутизатор (или роутер, router). Обычно на таком маршрутизаторе работает firewall, который может фильтровать сетевой трафик. Бывает, что компания не хочет, чтобы компьютеры (и прочие устройства) из внутренней сети имели доступ к интернету. Это может уменьшить вероятность просачивания важной, секретной и не очень информации в интернет. Или начальство просто не хочет, чтобы работники сидели в их любимых социальных сетях в рабочее время. В таком случает firewall может быть настроен на блокирование большинства TCP/UDP соединений с интернетом. “DNS tunneling” может помочь при обходе такого firewall’а при условии, что он пропускает запросы к DNS серверам в интернете.

  • Автомобиль в Америке

    “Ударим автопробегом по бездорожью и разгильдяйству.”

  • DNS tunneling with Java

    DNS tunneling may help you to bypass a firewall if DNS requests are allowed. Or, it can just get you a free Wi-Fi. There are a number standalone tools which allow you to setup a TCP-over-DNS tunnel. Here is a simple implementation of DNS tunneling with pure Java. It’s not ready for using in real world, but it shows an idea how DNS tunneling can be implemented. The implementation works with standard JRE, and doesn’t require any additional library.

  • Сан-Франциско: Japanese Tea Garden

    По Калифорнии разбросаны маленькие уголки Японии. Например, в центральном парке Сан-Франциско есть японский садик “Japanese Tea Garden”.

  • Java Cryptographic Roadmap

    The Java team has published the “Oracle JRE and JDK Cryptographic Roadmap” at http://java.com/en/jre-jdk-cryptoroadmap.html which contains upcoming changes for crypto algorithms and protocols supported in Oracle’s JRE and JDK.

  • Американский общепит

    “Всё полезно, что в рот полезло”

  • Universal Studios: Водный мир и все-все-все

    Возможно вы помните старинный фильм Водный мир (Waterworld) с Кевином Костнером. Я очень хорошо помню, и даже помню, что мне этот фильм очень нравился в нежном возрасте. Как будущему инженегру, мне был очень симпатичен кораблик главного героя, а еще его забавные жабры за ушами. Хотя кораблик мне хотелось заполучить, но вот жабры как-то не очень. Но все-таки речь пойдет не о моих махровых воспоминаниях о беззаботной части моей жизни, а опять об аттракционах Universal Studios (или Юниверсал парк, кому как нравится).

  • Большой каньон (Гранд-каньон)

    Если вы находитесь в Лас-Вегасе, и уже съездили на плотину Гувера, и конечно же спустили всё нажитое непосильным трудом, то самое время посмотреть на Большой каньон (Grand Canyon). Это такой национальный парк в США.

  • Дамба Гувера (Лас-Вегас, Невада)

    Если вы случайно оказались в Лас-Вегасе, уже просадили все денежки и думаете, чем бы еще заняться, то поезжайте смотреть дамбу Гувера (Hoover Dam), которая как раз располагается недалеко от американской столицы казино.

  • A template project for STM32 on Linux

    I am a beginner in electronics and programming for microcontrollers, so traditionally I started from driving an LED which is a ‘Hello World!’ project in microcontrollers world. I started with STM32 controller (STM32F103) which is ARM, and I can use C language.

  • Cеребряный город

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

     

    [peg-image src="https://lh3.googleusercontent.com/-SWK_XQPhXJg/V13MG51uV0I/AAAAAAAAEgw/vionx4-D_X0BMdv0quBAsc0ts4PV9BqQQCHM/s144-o/IMG_0814.JPG" href="https://picasaweb.google.com/103813056835863838724/6295412273977508897?locked=true#6295412273111258946" caption="Silver City" type="image" alt="Silver City" image_size="2052x1532" ]

  • Current limiting resistor for an LED

    I am a beginner in electronics, and just learned that LEDs and microcontroller’s I/O ports are so sensitive … Thanks Mr. Ohm whose law saves us!

  • Национальный парк Секвойя

    • Сэры! - сказал он наконец. - Мы должны заехать в Секвойя-парк. Это тут недалеко. 
  • Что есть в пустыне Мохаве

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

  • Как не надо ездить в Лас-Вегас

    Каждый знает, как надо ездить в Лас-Вегас. Я же расскажу, как не надо туда ездить.