Search
Write a publication
Pull to refresh
-3
0
Levon Ter-Ghazaryan @LevonTerGhazaryan

User

Send message

Про удивительность пчелы, и то, как мы её убиваем

Reading time8 min
Views110K

Заброшенная колода

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

Как довольно быстро выяснилось в СССР, участки около высоковольтных ЛЭП пчёлы не собирают. Собственно, у них как-то отключается навигация из-за электромагнитных помех.

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

Всё началось с заброшенной колоды в Екатеринбурге, когда мы вместо похода в гости к журналистам по поводу магазина поехали в лес. Вот с этой, что на картинке выше.
Читать дальше →

Detecting Web Attacks with a Seq2Seq Autoencoder

Reading time7 min
Views5.7K
image

Attack detection has been a part of information security for decades. The first known intrusion detection system (IDS) implementations date back to the early 1980s.

Nowadays, an entire attack detection industry exists. There are a number of kinds of products—such as IDS, IPS, WAF, and firewall solutions—most of which offer rule-based attack detection. The idea of using some kind of statistical anomaly detection to identify attacks in production doesn’t seem as realistic as it used to. But is that assumption justified?
Read more →

.NET Reference Types vs Value Types. Part 2

Reading time10 min
Views3.2K


The Object base type and implementation of interfaces. Boxing


It seems we came through hell and high water and can nail any interview, even the one for .NET CLR team. However, let's not rush to microsoft.com and search for vacancies. Now, we need to understand how value types inherit an object if they contain neither a reference to SyncBlockIndex, not a pointer to a virtual methods table. This will completely explain our system of types and all pieces of a puzzle will find their places. However, we will need more than one sentence.


Now, let's remember again how value types are allocated in memory. They get the place in memory right where they are. Reference types get allocation on the heap of small and large objects. They always give a reference to the place on the heap where the object is. Each value type has such methods as ToString, Equals and GetHashCode. They are virtual and overridable, but don’t allow to inherit a value type by overriding methods. If value types used overridable methods, they would need a virtual methods table to route calls. This would lead to the problems of passing structures to unmanaged world: extra fields would go there. As a result, there are descriptions of value type methods somewhere, but you cannot access them directly via a virtual methods table.


This may bring the idea that the lack of inheritance is artificial


This chapter was translated from Russian jointly by author and by professional translators. You can help us with translation from Russian or English into any other language, primarily into Chinese or German.

Also, if you want thank us, the best way you can do that is to give us a star on github or to fork repository github/sidristij/dotnetbook.
Read more →

Choosing true wireless earbuds: 6 months later…

Reading time6 min
Views6K


Once I put on true wireless headphones and all the cables after that (even if it's a flexible headband on a “wireless” headset), became annoying. So I’ve tried a lot of AirPods-like earbuds in order to find the best ones. In 2018 aside from the AirPods themselves I tried: Jabra Elite 65+, Samsung IconX 2018 and Sony WF-1000X. The result was a neat table with all the objective data. Everything else — my personal opinion — let's discuss in the comments.

Meet A Content Strategist: An Interview with Dmitry Kabanov, Techstars Startup Digest curator and SXSW Advisor

Reading time3 min
Views962
Dmitry learned the language of business but I think about the world as an engineer. He works with tech brands to create content and promote corporate culture at scale. Apart from it, he is one of the veterans at Techstars Startup Digest, and he is acting as an advisor for the SXSW tech festival.

Here is his interview with the LAMA app platform.

Read more →

Making a DIY thermal camera based on a Raspberry Pi

Reading time6 min
Views61K
image

Hi everyone!

Winter has arrived, and so I had to check the thermal insulation of my out of town residence dacha. And it just turned out a famous Chinese marketplace started to sell cheap thermal camera modules. So I decided to DIY it up and build a rather exotic and useful thing — a heat visor for the home. Why not? Especially since I had a Raspberry Pi lying around anyway… The result is down below.
Read more →

Weak UI, weak programmer

Reading time2 min
Views3.1K

UI facepalm


Why do so many programmers hate UI work? Because it is tedious. Especially, for the Web, but other types of UI are only slightly easier. Layouts, margins, paddings — neverending stream of little tweaks to make it look OK on all sane environments, and somehow this freaking button sometimes overlaps that input field. Rrrr! And yes, it should not hang on button clicks, which means a lot of asynchronous programming, which is a nightmare.


And don’t even speak about aesthetics and usability! Choose right colours, element sizes and locations, find/draw images and put them where they fit, think about user workflows — isn’t it a designers’ or Ux specialists’ job?! Leave me alone, I’m a programmer. I work with backend layers, where everything is straightforward and linear, there are no buttloads of different environments to adjust to, and design is guided by mere logic without pesky fussing with ‘user friendliness’ and ’beauty’!

Read more →

Learning to Computer: How to Gain a New Skill

Reading time5 min
Views1.1K

Most people assume that I studied computer science in university and that I’ve been coding since I was young. They’re usually surprised when I tell them that in fact I studied Marketing and Spanish and that although my brother taught me how to build a very basic web page in the early 2000s, I didn’t really start to learn to program until I was an adult with a job.


The truth of the matter is that my story isn’t unique. It’s simply not true that you have to be a whiz kid who’s been coding since they were 6 years old in order if you want to be able to program as an adult. There are tons of examples of people who also don’t have a technical background who either became full time programmers or just learned a new skill they enjoy using.


In this post, I’ll give you some advice that has served me well on my journey. My path is by no means the only path and depending on the situation you’re in might not be practical or right for you, but it is certainly a path, and I hope it helps you on your path to learning to computer.

Read more →

Vue mixins, the explicit way (by an example of BEM modifiers plugin)

Reading time3 min
Views7.2K


Vue mixins are the recommended way of sharing common functionality between components. They are perfectly fine until you use more than one for them. That's because they are implicit by design and pollute your component's context. Let's try to fix this by giving them as much explicitness as we can.

Read more →

Generic Methods in Rust: How Exonum Shifted from Iron to Actix-web

Reading time13 min
Views6K
The Rust ecosystem is still growing. As a result, new libraries with improved functionality are frequently released into the developer community, while older libraries become obsolete. When we initially designed Exonum, we used the Iron web-framework. In this article, we describe how we ported the Exonum framework to actix-web using generic programming.

Read more →

Александр Белокрылов и Дмитрий Чуйко о Liberica JDK на jug.msk.ru

Reading time3 min
Views5.2K
14 февраля 2019 года на первой в этом году встрече сообщества московских Java-разработчиков jug.msk.ru Александр Белокрылов и Дмитрий Чуйко из компании BellSoft рассказали об особенностях разработки дистрибутива Liberica JDK.


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

Космические последствия американского шатдауна

Reading time3 min
Views43K
Подписание Дональдом Трампом временного бюджета остановило рекордный 35-дневный шатдаун американских государственных агентств. Принятое решение является временным, и после 15 февраля шатдаун может вернуться. Приостановка работы государственных служб серьезно повлияла на жизнь американского общества, и космическая отрасль не осталась в стороне. >95% сотрудников NASA в неоплачиваемом отпуске, задержки с запусками, выдачей лицензий и даже мемориальными мероприятиями — это только часть последствий шатдауна.


Фото: Синьхуа

Цивилизация Пружин, 4/5

Reading time21 min
Views56K

Часть 4. Дороги и перекрёстки.


Предыдущая часть и её краткое содержание.


Читая этот раздел, следует понимать: всё, здесь перечисленное, либо не работает, либо… потенциально опасно. Ибо всякая возможность направлять и концентрировать энергию находит в первую очередь военное применение. Чингисхан подчинил полконтинента, направив энергию растущей травы (через лошадей) на военные нужды. Англия колонизировала половину планеты, оседлав энергию ветра. Первые быстрые концентраторы химической энергии — нефтяные зажигательные снаряды и пороховые бомбы. Двигатель внутреннего сгорания таскал на себе броню двух мировых войн по полям и болотам, и продолжает обслуживать бесчисленные столкновения по всему миру. А атомная энергия сначала принесла миру бомбу, и лишь затем — мирный реактор. Любая возможность обуздать новые потоки энергии, сконцентрировать её, либо быстро высвободить наверняка отслеживается военными.

Но если каждый пункт в разделе — фантазия или война, то зачем писать? Не лучше ли промолчать?

Мда… «Хотелось бы побыть страусом, да пол бетонный.» Я верю, что писать надо. Если что-то работает, пусть об этом знают все. Если нет — что ж, пусть задумаются тоже все.

Как-то так.

Приступим.
Читать

Submit to the Applied F# Challenge

Reading time2 min
Views897

This post was written by Lena Hall, a Senior Cloud Developer Advocate at Microsoft.


F# Software Foundation has recently announced their new initiative — Applied F# Challenge! We encourage you to participate and send your submissions about F# on Azure through the participation form.


Applied F# Challenge is a new initiative to encourage in-depth educational submissions to reveal more of the interesting, unique, and advanced applications of F#.

Read more →

Безумие и успех кода Oracle Database

Reading time4 min
Views81K
На этой неделе пользователи Hacker News решили обсудить вопрос «Каков максимальный объем плохого — но при этом работающего — кода вам доводилось видеть?» (позже к ним присоединились и пользователи Reddit). В комментариях было рассказано немало «веселых» историй про то, с чем мы все время от времени сталкиваемся; но больше всего внимания привлек рассказ про код «передовой СУБД, которую используют большинство компаний, входящих в список Fortune 100».

Победителем в номинации «лавкрафтовские ужасы» заслуженно стал рассказ бывшего разработчика Oracle, который работал над Oracle Database в период разработки версии 12.2. Объем кодовой базы СУБД на тот момент составлял 25 миллионов строк на языке C — и стоило вам изменить лишь одну из этих строк, как ломались тысячи написанных ранее тестов.

За прошедшие годы над кодом успело потрудиться несколько поколений программистов, которых регулярно преследовали жесткие дедлайны — и благодаря этому код смог превратиться в настоящий кошмар. Сегодня он состоит из сложных «кусков» кода, отвечающих за логику, управление памятью, переключение контекстов и многое другое; они связаны друг с другом при помощи тысяч различных флагов. Весь код связан между собой загадочным макросом, который невозможно расшифровать, не прибегая к помощи тетради, в которую приходится записывать, чем занимаются релевантные части макроса. В итоге, у разработчика может уйти день или два только на то, чтобы разобраться, чем же в действительности занимается макрос.
Читать дальше →

Паттерны и анти-паттерны CI/CD. Часть 1

Reading time4 min
Views16K
Всем привет! Друзья, в последний день зимы у нас запустится новый поток по курсу «DevOps практики и инструменты». В преддверии старта курса делимся с вами первой частью статьи: «Паттерны и анти-паттерны CI/CD».



Задача пайплайна развертывания состоит из трех частей:

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

Открытый урок «Создание REST-клиентов на Spring»

Reading time9 min
Views43K
И снова доброго времени суток! Совсем скоро у нас стартует обучение очередной группы «Разработчик на Spring Framework», в связи с чем мы провели открытый урок, что стало уже традицией в преддверии запуска. На этом вебинаре говорили о разработке REST-клиентов с помощью Spring, а также детально узнали о таких технологиях, как Spring Cache, Spring Retry и Hystrix.

Преподаватель: Юрий Дворжецкий — тренер в Luxoft Training Center, ведущий разработчик, кандидат физико-математических наук.

Вебинар посетила совершенно разная аудитория, оценившая свои знания по Spring в пределах 0-6 баллов по 10-бальной шкале, однако, судя по отзывам, открытый урок показался полезным даже опытным пользователям.



Пару слов о Spring 5

Как известно, Spring Framework является универсальным и довольно популярным фреймворком для Java-платформы. Spring состоит из массы подпроектов или модулей, что позволяет решать множество задач. По сути, это большая коллекция «фреймворков во фреймворке», вот, например, лишь некоторые из них:

  • Spring IoC + AOP = Context,
  • Spring JDBC,
  • Spring ORM,
  • Spring Data (это целый набор подпроектов),
  • Spring MVC, Spring WebFlux,
  • Spring Security,
  • Spring Cloud (это ещё более огромный набор подпроектов),
  • Spring Batch,
  • Spring Boot.

Information

Rating
Does not participate
Registered
Activity