Как стать автором
Обновить

GitFlic присоединяется к экосистеме ГК «Астра»

Время на прочтение 1 мин
Количество просмотров 1.5K

Мы объявляем о вхождении в контур ГК «Астра» компании «РеСолют», разработчика GitFlic – российского сервиса для работы с исходным кодом.

Главное, что нужно знать о продукте:

Читать далее
Всего голосов 9: ↑8 и ↓1 +7
Комментарии 6

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

Время на прочтение 3 мин
Количество просмотров 52K

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

Читать далее
Всего голосов 33: ↑32 и ↓1 +31
Комментарии 119

DeepMind обучила нейросеть AlphaCode понимать задачи программирования

Время на прочтение 2 мин
Количество просмотров 13K

Инженеры подразделения Alphabet DeepMind AI разработали систему искусственного интеллекта AlphaCode, которая может генерировать код и решать задачи из чемпионатов по программированию. Нейросеть обучали пониманию постановки задачи и поискам её решения.

Читать далее
Всего голосов 21: ↑6 и ↓15 -9
Комментарии 9

Amazon открыла бесплатный доступ к ИИ-помощнику CodeWhisperer — аналогу GitHub Copilot

Время на прочтение 2 мин
Количество просмотров 6.9K

Amazon сделала свой ИИ-помощник по кодированию CodeWhisperer бесплатным для всех разработчиков. Изначально он был доступен только для клиентов Amazon Web Services.

Читать далее
Всего голосов 11: ↑11 и ↓0 +11
Комментарии 8

Nvidia заявила о превосходстве её кодировщика AV1 над решениями AMD и Intel

Время на прочтение 2 мин
Количество просмотров 3.5K

После выхода стабильной версии OBS Studio 29.1, поддерживающей кодировку AV1 для потоковой передачи видео на YouTube, Nvidia заявила о превосходстве своего кодировщика над решениями AMD и Intel.

Читать далее
Всего голосов 6: ↑6 и ↓0 +6
Комментарии 4

Введение в DSL. Часть 1 — Проблематика проектирования и кодирования

Время на прочтение 7 мин
Количество просмотров 28K
На протяжении нескольких десятилетий стоит задача поиска повторяемого, предсказуемого процесса или методологии, которая бы улучшила продуктивность, качество и надежность разработки. Одни пытались систематизировать и формализовать этот, по-видимому, непредсказуемый процесс. Другие применяли к нему методы управления проектами и методы программной инженерии. Третьи считали, что без постоянного контроля со стороны заказчика разработка ПО выходит из-под контроля, что влечет за собой увеличение временных и финансовых затрат.
Информатика как научная дисциплина предлагает и использует на базе методов структурного программирования технологию надежной разработки программного обеспечения, используя тестирование программ и их верификацию на основе методов доказательного программирования для систематического анализа правильности алгоритмов и разработки программ без алгоритмических ошибок.
Данная методология направлена на решение задач на ЭВМ, аналогичной технологии разработки алгоритмов и программ, используемой на олимпиадах по программированию отечественными студентами и программистами с использованием тестирования и структурного псевдокода для документирования программ в корпорации IBM с 70-х годов.
Методология структурного проектирования программного обеспечения может использоваться с применением различных языков и средств программирования для разработки надежных программ любого назначения.
Однако при использовании классического подхода к разработке возникают проблемы, описанные под хабракатом:
Читать, какие
Всего голосов 34: ↑25 и ↓9 +16
Комментарии 29

Русские идентификаторы в коде

Время на прочтение 4 мин
Количество просмотров 11K
Речь пойдет об использовании в программном коде названий (классов, переменных, методов) на родном языке (в моем случае — на русском).

Опыт показал, что русские идентификаторы идеально подходят для создания объектной модели и для обсуждения ее с Заказчиком (для отечественных проектов).

Читать дальше →
Всего голосов 46: ↑16 и ↓30 -14
Комментарии 133

Модульное тестирование — личный опыт

Время на прочтение 2 мин
Количество просмотров 8.4K
Лет пять назад я узнал про модульное тестирование. Как любой нормальный программист, загорелся идеей и ринулся ее реализовывать, попутно перечитал кучу восторженной теории и скептической критики. Так постепенно накапливался практический опыт применения технологии в реальной жизни, в крупных рабочих проектах.

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

Читать дальше →
Всего голосов 62: ↑42 и ↓20 +22
Комментарии 50

Быстрое восстановление данных. Схема бабочки для регенерирующих кодов

Время на прочтение 7 мин
Количество просмотров 4.7K


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

Предположим, что система хранения состоит из n узлов. Рассмотрим файл, состоящий из B символов поля GF(q), который кодируется в nα символов над GF(q) и распределяется по узлам, так, что каждый узел хранит α символов. Код построен таким образом, что данные могут быть целиком восстановлены по информации с k узлов. При этом для восстановления данных одного узла достаточно получить β ≤ α информации с d узлов [1,2], см. рис. 1. Величина γ = dβ называется диапазоном восстановления (repair bandwidth).
Читать дальше →
Всего голосов 9: ↑9 и ↓0 +9
Комментарии 4

Вертикальное письмо в современном IT

Время на прочтение 4 мин
Количество просмотров 7.6K
Привет, Хабр! Двунаправленным письмом в наше время никого не удивить. Оно поддерживается управляющими символами Уникода, для него создан HTML-тег <bdo>. Но горизонтальные письменности – не единственные существующие и применяемые для записи человеческой речи. Кроме обычного слева-направо и справа-налево есть ещё два варианта вертикального письма. Первый – восточно-азиатский, использующийся в языках, основанных на китайском. В них иероглифы идут сверху-вниз, а строки — справа-налево. Этот стиль письма называется "татегаки" по-японски, "шупай" по-китайски и "чонсо" по-корейски. Отмечу, что европейский привычный нам стиль слева-направо в этих трёх языках так же применяется и называется соответственно "йокогаки" по-японски, "хенпай" по-китайски и "хинсо" по-корейски. Именно так, слева-направо, азиатские народы пишут и читают с использованием компьютеров на сегодняшний день. Второй вариант – монгольский, символы идут тоже сверху-вниз, но строки – слева-направо. В современной Монголии этот стиль письма давно заменён европейским, но в некоторых областях Китая до сих пор служит для записи монгольского языка. Так насколько же компьютеры поддерживают такое письмо? Давайте искать вертикальные артефакты в разных приложениях информационных технологий.
Читать дальше →
Всего голосов 25: ↑25 и ↓0 +25
Комментарии 14

Debug Oriented Programming или печаль в глазах Интегратора

Время на прочтение 4 мин
Количество просмотров 5.5K

Так получилось, что в последние несколько лет я сшиваю Франкенштейнов, а не ваяю милые фарфоровые статуэтки пастушек и трубочистов. Я создаю решения на базе Magento 2. Это значит, что исходный материал у меня — мечта любого археолога. Культурный слой со следами различных "эпох" и "цивилизаций". По нему можно изучать развитие программистской мысли в PHP/JS сообществах в течение последнего десятилетия.


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


image


Сшить Франкенштейна из такого материала помогает отладчик (debugger). Ниже идёт мой персональный топ приёмов кодирования, которые способны усложнить жизнь любому, кто, как и я, ежедневно использует отладчик в своей жизни. Он небольшой, на четыре позиции, но каждый раз, когда я сталкиваюсь с подобным при отладке — я печалюсь. Может быть мой пост уменьшит количество скорбей в мире, а может и нет. Я, по крайней мере, попытаюсь.

Читать дальше →
Всего голосов 31: ↑23 и ↓8 +15
Комментарии 43

Еще более секретные Telegramмы

Время на прочтение 7 мин
Количество просмотров 36K

Все привыкли считать телеграм надежной и безопасной средой для передачи сообщений любого сорта. Однако, под капотом у него крутится совершенно обычная комбинация а- и симметричного шифрований, а это ведь совсем не интересно. Да и в конце концов, зачем вообще явно доверять свои сообщения третьей стороне?
КДПВ за авторством Antonio Prohías
TL;DR — изобретаем приватный скрытый канал через блокирования пользователями друг друга.

Читать дальше →
Всего голосов 56: ↑52 и ↓4 +48
Комментарии 35

Стэнфорд, кажется у нас проблемы…

Время на прочтение 3 мин
Количество просмотров 5.5K

На ваш суд скорее статья-вопрос, статья-рассуждение и местами — недоумение. С одной стороны нам презентовали авторитетное мнение Лесли Лэмпорта "Programming Should Be More Than Coding", расставляющее программирование и кодирование в импровизированном табеле о рангах. С оппонирующей стороны — я, не обладающий статусом достаточным для споров с мэтром и легендарным ВУЗом, который он представляет… но отказать себе в таком удовольствии и риске я не могу. Надеюсь, более опытные товарищи поправят мои огрехи в рассуждениях.


Умом я понимаю, что кодирование в современном мире принято воспринимать как низшую ступень инженерной деятельности, которая на эволюционном графике скорее ближе к шимпанзе, чем к программисту. И, возможно, в этом кроется наша большая ошибка, поскольку код — он как ДНК. Всего четыре нуклеотида, а какая пёстрая биомасса в продуктовой линейке.


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

Читать дальше →
Всего голосов 19: ↑16 и ↓3 +13
Комментарии 11

Генерация случайных чисел с помощью ДНК

Время на прочтение 13 мин
Количество просмотров 2.8K


Случайности. Для кого-то все, что происходит вокруг, это одна сплошная случайность. А кто-то утверждает, что случайностей не бывает. Философствовать и спорить на эту тему можно много часов, а выводов все равно будет множество. Перейдя от метафизических размышлений к более реальным, можно увидеть, что случайные числа нашли свое применение во многих аспектах нашей жизни: от игровых автоматов до систем кодирования информации. Процесс, во время которого создается последовательность случайных чисел/символов, которую нельзя предугадать, именуется генерацией случайных чисел (ГСЧ). За долгую историю человечества было создано немало методов ГСЧ. Одни достаточно просты и понятны: игральные кости, монеты (орел/решка), колода карт и т.д.

Другие же применяют куда более сложные физические процессы: к примеру, за счет высокочастотных движений электронов электрическое сопротивление провода не является постоянным, т.е. варьируется случайным образом. Измерив этот фоновый шум, можно получить последовательность случайных чисел. Но методики ГСЧ не ограничиваются исключительно физикой. Группа ученых из Швейцарской высшей технической школы Цюриха (или сокращенно ETHZ) создали новый метод генерации случайных чисел, основанный на синтезе ДНК. Как именно это было достигнуто, насколько случайны полученные число, и можно ли их предугадать? Ответы на эти вопросы ждут нас в докладе ученых. Поехали.
Читать дальше →
Всего голосов 19: ↑19 и ↓0 +19
Комментарии 2

Война и мир

Время на прочтение 3 мин
Количество просмотров 2.5K

— Eh bien, mon prince. Gênes et Lucques ne sont plus que des apanages, des поместья, de la famille Buonaparte. Non, je vous préviens que si vous ne me dites pas que nous avons la guerre, si vous vous permettez encore de pallier toutes les infamies, toutes les atrocités de cet Antichrist (ma parole, j’y crois) — je ne vous connais plus, vous n’êtes plus mon ami, vous n’êtes plus мой верный раб, comme vous dites[1]. Ну, здравствуйте, здравствуйте. Je vois que je vous fais peur[2], садитесь и рассказывайте.

Так говорила в июле 1805 года известная Анна Павловна Шерер, фрейлина и приближенная императрицы Марии Феодоровны, встречая важного и чиновного князя Василия, первого приехавшего на ее вечер. Анна Павловна кашляла несколько дней, у нее был грипп, как она говорила (грипп был тогда новое слово, употреблявшееся только редкими). В записочках, разосланных утром с красным лакеем, было написано без различия во всех:

«Si vous n’avez rien de mieux à faire, Monsieur le comte (или mon prince), et si la perspective de passer la soirée chez une pauvre malade ne vous effraye pas trop, je serai charmée de vous voir chez moi entre 7 et 10 heures. Annette Scherer»[3].

— Dieu, quelle virulente sortie![4] — отвечал, нисколько не смутясь такою встречей, вошедший князь, в придворном, шитом мундире, в чулках, башмаках и звездах, с светлым выражением плоского лица.

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

— Avant tout dites moi, comment vous allez, chère amie?[5] Успокойте меня, — сказал он, не изменяя голоса и тоном, в котором из-за приличия и участия просвечивало равнодушие и даже насмешка.

— Как можно быть здоровой… когда нравственно страдаешь? Разве можно, имея чувство, оставаться спокойною в наше время? — сказала Анна Павловна. — Вы весь вечер у меня, надеюсь?

— А праздник английского посланника? Нынче середа. Мне надо показаться там, — сказал князь. — Дочь заедет за мной и повезет меня.

— Я думала, что нынешний праздник отменен. Je vous avoue que toutes ces fêtes et tous ces feux d’artifice commencent à devenir insipides[6].

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

— Ne me tourmentez pas. Eh bien, qu’a-t-on décidé par rapport à la dépêche de Novosilzoff? Vous savez tout[7].

— Как вам сказать? — сказал князь холодным, скучающим тоном. — Qu’a-t-on décidé? On a décidé que Buonaparte a brûlé ses vaisseaux, et je crois que nous sommes en train de brûler les nôtres[8].

Князь Василий говорил всегда лениво, как актер говорит роль старой пиесы. Анна Павловна Шерер, напротив, несмотря на свои сорок лет, была преисполнена оживления и порывов.

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

В середине разговора про политические действия Анна Павловна разгорячилась.

— Ах, не говорите мне про Австрию! Я ничего не понимаю, может быть, но Австрия никогда не хотела и не хочет войны. Она предает нас. Россия одна должна быть спасительницей Европы. Наш благодетель знает свое высокое призвание и будет верен ему. Вот одно, во что я верю. Нашему доброму и чудному государю предстоит величайшая роль в мире, и он так добродетелен и хорош, что бог не оставит его, и он исполнит свое призвание задавить гидру революции, которая теперь еще ужаснее в лице этого убийцы и злодея. Мы одни должны искупить кровь праведника. На кого нам надеяться, я вас спрашиваю?.. Англия с своим коммерческим духом не поймет и не может понять всю высоту души императора Александра. Она отказалась очистить Мальту. Она хочет видеть, ищет заднюю мысль наших действий. Что они сказали Новосильцеву? Ничего. Они не поняли, они не могут понять самоотвержения нашего императора, который ничего не хочет для себя и все хочет для блага мира. И что они обещали? Ничего. И что обещали, и того не будет! Пруссия уже объявила, что Бонапарте непобедим и что вся Европа ничего не может против него… И я не верю ни в одном слове ни Гарденбергу, ни Гаугвицу. Cette fameuse neutralité prussienne, ce n’est qu’un piège[9]. Я верю в одного бога и в высокую судьбу нашего милого императора. Он спасет Европу!.. — Она вдруг остановилась с улыбкой насмешки над своею горячностью.

— Я думаю, — сказал князь, улыбаясь, — что, ежели бы вас послали вместо нашего милого Винценгероде, вы бы взяли приступом согласие прусского короля. Вы так красноречивы. Вы дадите мне чаю?

Читать далее
Всего голосов 5: ↑1 и ↓4 -3
Комментарии 2

Макраме из света: шифрование данных на оптических узлах

Время на прочтение 10 мин
Количество просмотров 3.3K


Научные изыскания позволяют нам не только лучше понимать окружающий наш мир, но и контролировать некоторые процессы и явления. За долгие годы исследований и экспериментов мы научились менять свойства материалов, манипулировать электромагнитными полями, видеть далекие планеты и звезды, разбирать по кирпичикам клетки и многое другое. Некоторые новообретенные умения сильно удивили бы ученых прошлого. Одним из таких умений является возможность менять форму луча света. Но как это применить на практике? Ученые из Оттавского университета (Оттава, США) предложили создать обрамленный оптический узел, который можно использовать для хранения и кодирования информации. Как ученые завязывали луч света в узел, каковы свойства такой структуры и насколько безопасно хранить данные на оптических узлах? На эти и другие вопросы мы найдем ответы в докладе ученых. Поехали.
Читать дальше →
Всего голосов 18: ↑18 и ↓0 +18
Комментарии 2

Некоторые математические проблемы информационной безопасности

Время на прочтение 9 мин
Количество просмотров 9.1K
     Наряду с политическими, социально-экономическими, организационными, военными, правовыми, специальными и информационными проблемами, решение которых предусматривается на государственном, федеральном уровне, в информационной сфере существуют проблемы математического характера, о которых в работе и пойдет речь. В работе приводятся и конкретизируются некоторые важные понятия и основные положения информационной безопасности и защиты информации. Основными нормативными документами в этой сфере являются Конституция РФ — основной закон, ФЗ О безопасности, Военная доктрина и Доктрина информационной безопасности, а также руководящие документы Федеральной службы по техническому и экспортному контролю (РД ФСТЭК)
Читать дальше →
Всего голосов 37: ↑7 и ↓30 -23
Комментарии 12

ZBase32, Base32 и Base64 алгоритмы кодирования

Время на прочтение 4 мин
Количество просмотров 46K
Привет!

Многие используют Base64 кодирование, реже Base32 и еще реже ZBase32 (вы знаете о таком?), но не все понимают их алгоритмы. В статье я описываю достоинства, недостатки данных кодировок, а также рассказываю о их реализации.
Читать дальше →
Всего голосов 44: ↑38 и ↓6 +32
Комментарии 26

Тестирование производительности различных конфигураций Swift OpenStack

Время на прочтение 6 мин
Количество просмотров 4.7K
Для тех, кто еще не знаком с объектным хранилищем данный Swift OpenStack, общая информация о структуре и алгоритмах уже была приведена в нашем блоге: habrahabr.ru/company/mirantis_openstack/blog/176195, habrahabr.ru/company/mirantis_openstack/blog/176455.
Читать дальше →
Всего голосов 3: ↑2 и ↓1 +1
Комментарии 1

Кодирование и декодирование PHP кода

Время на прочтение 8 мин
Количество просмотров 69K
Я занимаюсь восстановлением исходников PHP из закодированного вида.
В этой статье я расскажу о том, как обстоят дела с кодированием и декодированием PHP в настоящее время.

Очень краткий ликбез по внутреннему устройству интерпретатора PHP


При выполнении PHP-скрипта, он парсится и компилируется в опкоды внутренней виртуальной машины PHP.
Из каждого файла PHP получаются:
— массив классов: в каждом классе — информация о классе, свойства класса и массив методов класса
— массив функций
— «тело скрипта» — код вне классов и функций
Читать дальше →
Всего голосов 46: ↑38 и ↓8 +30
Комментарии 27