Рубрика «Программирование» - 619

Команда связей с сообществом Rust рада сообщить о первом ежегодном соревновании Underhanded Rust. Это соревнование должно проверить наше предположение о готовности языка Rust и его экосистемы к написанию легко читаемого и надежного кода. Воодушевившись примерами Underhanded C и Underhanded Crypto, мы хотим, чтобы вы заставили Rust работать неправильно, используя лёгкий для чтения код, к которому сложно придраться. Нам нужна ваша помощь в поиске брешей в языке и способов их исправления. Сможете ли вы написать стопроцентно безопасный код, скрывающий логическую ошибку, или так спрятать эксплойт в unsafe коде, чтобы он прошел аудит? Попробуйте это сделать!

Читать полностью »

Предыстория

Во время очередной уборки был случайно выключен удлинитель, к которому были подключены работающие системный блок и монитор. Системный блок состоит из:

  • материнская плата — ASRock B75 Pro 3
  • процессор — Intel Core i5-3570
  • блок питания — Corsair CX750M

После включения системник начал издавать пять противных писков, что вроде как соответствует неисправности процессора. Процессор, судя по Яндекс.Маркету, на данный момент стоит от 11000 руб. Покупать довольно накладно, а недорогой, но слабенький не хочется. В общем, немного испугался…

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

В первую очередь подключил другой старенький БП — комп не запускается.

Для дальнейших проверок принес домой автомобильный комп. Состав:

  • материнская плата — ASRock B75M-ITX
  • процессор — Intel Pentium G640T

Как хорошо, что компоненты оказались взаимозаменяемыми.

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

Далее домашний процессор вставил в автомобильный комп — комп заработал. Следовательно, процессор живой, а проблема в материнке. Начал грешить на BIOS (Winbond 25Q64BVAIG).
Читать полностью »

image Привет! Меня зовут Марко Кевац, я системный программист Badoo в команде «Платформа», и я очень люблю Go. Если сложить эти две вещи, то вы поймёте, насколько я люблю ассемблер в Go.

Совсем недавно мы рассказывали на Хабре о том, на каких конференциях побывали. Одной из них была GopherCon 2016, где практически всем запомнился доклад Роба «Командира» Пайка про Go-шный ассемблер. Представляю вам перевод его доклада, оформленный в виде статьи. Я постарался дать в тексте как можно больше ссылок на релевантные статьи в «Википедии».
Читать полностью »

Итоги GeekWeek 2016 и возвращение ужасного БАГа: зима вместе с GeekBrains - 1

14-19 ноября образовательный портал GeekBrains совместно с Mail.Ru Group провёл онлайн-конференцию GeekWeek 2016 для начинающих и опытных IT-специалистов. Для тех, кто не в курсе, IT-сфера является одним из наиболее динамично развивающихся направлений в экономиках большинства стран мира. Для постоянного развития требуется много ресурсов. А главный ресурс — человек.

Именно по этой причине каждый год проводится онлайн-конференция GeekWeek 2016. Главная цель — не просто заинтересовать сферой информационных технологий, но и обеспечить практическими навыками, необходимыми для успешного начала карьеры.
Читать полностью »

image

Вчера Марк Цукерберг рассказал об итогах своего личного проекта, который он запланировал для себя на 2016 год. Целью основателя Facebook было создание функционального AI-помощника с голосовым управлением по аналогии с системой из комиксов и фильмов Marvel о «Железном Человеке».

Разработка Цукерберга носит то же имя, что и система из комиксов — Jarvis. При этом Марк отмечает, что создание подобной системы оказалось даже проще, чем он ожидал.
Читать полностью »

Подборка фреймворков для машинного обучения - 1

В последние годы машинное обучение превратилось в мейнстрим небывалой силы. Эта тенденция подпитывается не только дешевизной облачных сред, но и доступностью мощнейших видеокарт, применяемых для подобных вычислений, — появилась ещё и масса фреймворков для машинного обучения. Почти все из них open source, но куда важнее то, что эти фреймворки проектируются таким образом, чтобы абстрагироваться от самых трудных частей машинного обучения, делая эти технологии более доступными широкому классу разработчиков. Под катом представлена подборка фреймворков для машинного обучения, как недавно созданных, так переработанных в уходящем году. Если у вас все хорошо с английским, то статья в оригинале доступна здесь.Читать полностью »

Открыли мы с другом компанию по подбору автомобилей с пробегом. Если никогда не слышали о таком — мы помогаем людям не купить «ведро». Увы, в Москве большинство машин, предлагаемых на вторичном рынке, заслуживают именно такой оценки.

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

image

Читать полностью »

Lock-free структуры данных. Iterable list - 1 Lock-free list является основой многих интересных структур данных, — простейшего hash map, где lock-free list используется как список коллизий, split-ordered list, построенный целиком на списке с оригинальным алгоритмом расщепления bucket'а, многоуровневого skip list, являющегося по сути иерархическим списком списков. В предыдущей статье мы убедились, что можно придать такую внутреннюю структуру конкурентному контейнеру, чтобы он поддерживал thread-safe итераторы в динамичном мире lock-free контейнеров. Как мы выяснили, основным условием для того, чтобы lock-free контейнер стал итерабельным, является стабильность внутренней структуры: ноды не должны физически удаляться (delete). В этом случае итератор суть просто (быть может, составной) указатель на ноду с возможностью перехода к следующей (оператор инкремента).
Можно ли такой подход распространить на lock-free list?.. Посмотрим…
Читать полностью »

image

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

Читать полностью »

Как не писать лишнего - 1 Все программисты сталкиваются с boiler-plate кодом. Особенно Android-программисты. Писать шаблонный код — дело неблагодарное и, я уверен, что нет программиста, которому бы это доставляло удовольствие. В один прекрасный день я начал искать решения. Несмотря на то, что идея довольно проста: генерировать шаблонный код в отдельный класс и позже вызывать этот код в рантайме, готовых решений не нашлось, и я принялся за дело. Первая версия была реализована как один из подмодулей одного из рабочих проектов. Более двух лет я был доволен этим решением. Оно действительно работало и работало именно так, как я этого ожидал. Время шло, модуль дополнялся новыми функциями, рефакторился, оптимизировался. В целом PoC можно было назвать успешным, и я решил поделиться проектом с комьюнити.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js