Skip to content

О неизменном: история 9 места Russian AI Cup 2019

О неизменном: история 9 места Russian AI Cup 2019 published on Комментариев к записи О неизменном: история 9 места Russian AI Cup 2019 нет

Меня зовут Андрей Рыбалка, я участвую в Russian AI Cup под ником lama и я снова расскажу вам, как не выиграть макбук. Благо, я в этом человек опытный — вот этими вот руками не выиграл уже целых 7 штук.


Итак, задачей этого года был платформер/2D-шутер, для которого нужно было написать бота.
Выглядела игра вот так:



Бот выглядел так:



Если вам интересно, как картинка #2 играла в картинку #1, прошу под кат.

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

[Перевод] Swift Property Wrappers

[Перевод] Swift Property Wrappers published on Комментариев к записи [Перевод] Swift Property Wrappers нет

Если вы использовали SwiftUI, то наверняка обращали внимание на такие ключевые слова, как @ObservedObject, @EnvironmentObject, @FetchRequest и так далее. Property Wrappers (далее «обёртки свойств») — новая возможность языка Swift 5.1. Эта статья поможет вам понять, откуда же взялись все конструкции с @, как использовать их в SwiftUI и в своих проектах.



Автор перевода: Евгений Заволжанский, разработчик FunCorp.


Прим.пер.: К моменту подготовки перевода часть исходного кода оригинальной статьи потеряла свою актуальность из-за изменений в языке, поэтому некоторые примеры кода намеренно заменены.

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

Как Лиза Швец ушла из Microsoft и убедила всех, что пиццерия может быть ИТ-компанией

Как Лиза Швец ушла из Microsoft и убедила всех, что пиццерия может быть ИТ-компанией published on Комментариев к записи Как Лиза Швец ушла из Microsoft и убедила всех, что пиццерия может быть ИТ-компанией нет
imageФото: Лиза Швец/Facebook

Лиза Швец начала свою карьеру на кабельном заводе, работала продавцом в небольшом магазинчике в Орле, а спустя несколько лет попала в Microsoft. Сейчас она работает над ИТ-брендом «Додо Пиццы». Перед ней стоит амбициозная задача — доказать, что «Додо Пицца» не только про еду, а про разработку и технологии. На следующей неделе Лизе 30, и мы решили вместе с ней подвести небольшие итоги ее карьерного пути и рассказать вам эту историю. Читать дальше →

[Из песочницы] Как Hyundai данные оберегал

[Из песочницы] Как Hyundai данные оберегал published on Комментариев к записи [Из песочницы] Как Hyundai данные оберегал нет


(контакты скрыты, но контекст остался, он является общими вопросами, не несет конфиденциальную информацию и служит для валидации сотрудниками hyundai реальности информации указанной ниже)

Статья 29, ч.4 Конституции Р.Ф. – «Каждый имеет право свободно искать, получать, передавать, производить и распространять информацию». Но даже несмотря на это, любая компания о которой вы получите данные будет считать, что вы получили их незаконным путем и будет пытаться разобраться с вами досудебными методами.

Но что делать в случае, если компания сама предоставляет данные?

Добро пожаловать в «Хендэ мотор мануфактуринг рус».
Читать дальше →

[Перевод] 6 рекомендаций по разработке безопасных Go-приложений

[Перевод] 6 рекомендаций по разработке безопасных Go-приложений published on Комментариев к записи [Перевод] 6 рекомендаций по разработке безопасных Go-приложений нет
В последние годы Golang распространяется всё шире и шире. Успешные проекты, вроде Docker, Kubernetes и Terraform, сделали огромные ставки на этот язык программирования. Go стал стандартом де-факто в области создания инструментов командной строки. А если говорить о безопасности, то оказывается, что в этой сфере у Go всё в полнейшем порядке. А именно, с 2002 года в реестре CVE имеется запись лишь об одной уязвимости Golang.

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



Автор статьи, перевод которой мы сегодня публикуем, сформулировал, на основе данных OWASP, 6 рекомендаций по разработке безопасных приложений на Go.
Читать дальше →

Гиперкуб. Как мы обеспечили разработчиков тестовыми устройствами и не потеряли их

Гиперкуб. Как мы обеспечили разработчиков тестовыми устройствами и не потеряли их published on Комментариев к записи Гиперкуб. Как мы обеспечили разработчиков тестовыми устройствами и не потеряли их нет

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


Меня зовут Алексей Лавренюк. Вы можете знать меня как одного из авторов Яндекс.Танка и докладчика на тему нагрузочного тестирования. Потом я измерял энергопотребление мобильных телефонов. Теперь я делаю Яндекс.Ровер в команде беспилотных автомобилей (и иногда подрабатываю Дедом Морозом). А между телефонами и Ровером был Гиперкуб.


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




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

[Перевод] Разбираем цифровые часы с космического корабля «Союз»

[Перевод] Разбираем цифровые часы с космического корабля «Союз» published on Комментариев к записи [Перевод] Разбираем цифровые часы с космического корабля «Союз» нет

Бортовые Часы Космические. Показывают время, имеют будильник («оповещатель») и секундомер

Недавно к нам в руки [в Музей компьютерной истории в Маунтин-Вью, Калифорния] попали часы, летавшие в космос с миссией «Союз» («Бортовые Часы Космические», или БЧК). Часы изготовлены в 1984 году и содержат более 100 интегральных схем (ИС) на десяти печатных платах. Почему же эти часы такие сложные? В данной статье я изучу схему часов и объясню, почему для них потребовалось так много чипов. Также часы дают нам возможность подробнее взглянуть на советскую аэрокосмическую электронику и сравнить её с американскими технологиями.

Космические корабли «Союз» были разработаны в рамках советской космической программы во время лунной гонки. Первый «Союз» полетел в 1966 году, а всего в рамках программы за последние 50 лет было совершено более 140 полётов. Космический корабль (см. фото ниже) состоит из трёх частей. Круглая секция слева – обитаемый модуль, где хранится груз, оборудование и находятся жилые отсеки. В середине находится спускаемый модуль, и это всё, что возвращается на Землю; астронавты находятся в спускаемом модуле во время запуска и возвращения. В сервисном модуле справа находится основной двигатель, солнечные панели и другие системы.
Читать дальше →

[Перевод] Этот восхитительный Юникод

[Перевод] Этот восхитительный Юникод published on Комментариев к записи [Перевод] Этот восхитительный Юникод нет


Перед вами обновляемый список самых замечательных «вкусностей» Юникода, а также пакетов и ресурсов

Юникод — это потрясающе! До его появления международная коммуникация была изнурительной: каждый определял свой отдельный расширенный набор символов в верхней половине ASCII (так называемые кодовые страницы). Это порождало конфликты. Просто подумайте, что немцам приходилось договариваться с корейцами, где чья кодовая страница на 127 символа. К счастью, появился Юникод и унифицировал коммуникации. Стандарт Юникод 8.0 охватывает более 120 000 символов из более 129 письменностей. И современные, и древние, и до сих пор не расшифрованные. Юникод поддерживает текст слева направо и справа налево, наложение символов и включает самые разные культурные, политические, религиозные символы и эмодзи. Юникод потрясающе человечен, а его возможности сильно недооцениваются.
Читать дальше →

А что, если без Python? Julia для машинного обучения и вообще

А что, если без Python? Julia для машинного обучения и вообще published on Комментариев к записи А что, если без Python? Julia для машинного обучения и вообще нет
Мы всегда хотим писать код быстро, но за это приходится платить. На обычных высокоуровневых гибких языках можно быстро разрабатывать программы, но после запуска они работают медленно. Например, чудовищно медленно cчитать что-то тяжелое на чистом Python. Си-подобные языки работают гораздо быстрее, но в них легче наделать ошибок, поиск которых сведет весь выигрыш в скорости на нет.

Обычно эта дилемма решается так: сначала пишут прототип на чем-то гибком, например, на Python или R, а потом переписывают на C/C++ или Fortran. Но этот цикл слишком длинный, можно ли обойтись без этого?



Возможно, решение есть. Julia — высокоуровневый и гибкий, но при этом быстрый язык программирования. В Julia есть множественная диспетчеризация, встроенный умный компилятор и инструменты метапрограммирования. Подробнее о том, что есть в Julia, расскажет Глеб Ивашкевич (phtRaveller) — основатель datarythmics, которая занимается разработкой систем машинного обучения для промышленности и других отраслей, в прошлом физик.

Глеб объяснит, зачем нужны новые языки и почему иногда Python не хватает. Расскажет, что в Julia интересного, о ее сильных и слабых сторонах, сравнит с другими языками, и покажет, какая у языка перспектива в машинном обучении и вычислениях вообще.

Дисклеймер. Здесь не будет разбора синтаксиса. Хабражители опытные разработчики, поэтому нет смысла показывать, как написать цикл, например.
Читать дальше →

[Перевод] Чистые тесты на PHP и PHPUnit

[Перевод] Чистые тесты на PHP и PHPUnit published on Комментариев к записи [Перевод] Чистые тесты на PHP и PHPUnit нет

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

Тесты — это особая разновидность документации. Как я ранее писал о TDD на PHP, тест всегда будет (или хотя бы должен) ясного говорить о том, в чём заключается задача конкретной части кода.

Если один тест не может выразить эту идею, то тест плохой.

Я подготовил набор методик, которые станут подспорьем для PHP-разработчиков в написании хороших, удобочитаемых и полезных тестов.
Читать дальше →

Primary Sidebar