Search
Write a publication
Pull to refresh
2
0

Пользователь

Send message

Правильный выбор: практическое исследование когнитивных способностей человекообразных обезьян

Reading time10 min
Views3.7K


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

Человек способен делать выгодный для себя выбор, а как обстоят дела с этим умением у человекообразных обезьян? Ответ на этот вопрос решили найти ученые, которые провели ряд тестов с участием «лесных людей», то есть орангутанов. Способны ли они выбирать более выгодные условия и более удобные инструменты или нет, мы узнаем из доклада исследовательской группы. Поехали.

ООП мертво, да здравствует ООП

Reading time18 min
Views60K
image

Источники вдохновения


Этот пост возник благодаря недавней публикации Араса Пранцкевичуса о докладе, предназначенном для программистов-джуниоров. В нём рассказывается о том, как адаптироваться к новым ECS-архитектурам. Арас следует привычной схеме (объяснения ниже): показывает примеры ужасного ООП-кода, а затем демонстрирует, что отличным альтернативным решением является реляционная модель (но называет её «ECS», а не реляционной). Я ни в коем случае не критикую Араса — я большой фанат его работ и хвалю его за отличную презентацию! Я выбрал именно его презентацию вместо сотен других постов про ECS из Интернета потому, что он приложил дополнительные усилия и опубликовал git-репозиторий для изучения параллельно с презентацией. В нём содержится небольшая простая «игра», используемая в качестве примера выбора разных архитектурных решений. Этот небольшой проект позволил мне на конкретном материале продемонстрировать свои замечания, так что спасибо, Арас!

Слайды Араса выложены здесь: http://aras-p.info/texts/files/2018Academy — ECS-DoD.pdf, а код находится на github: https://github.com/aras-p/dod-playground.

Я не буду (пока?) анализировать получившуюся ECS-архитектуру из этого доклада, но сосредоточусь на коде «плохого ООП» (похожего на уловку «чучело») из его начала. Я покажу, как бы он выглядел на самом деле, если бы правильно исправили все нарушения принципов OOD (object-oriented design, объектно-ориентированного проектирования).

Спойлер: устранение всех нарушений OOD приводит к улучшениям производительности, аналогичным преобразованиям Араса в ECS, к тому же использует меньше ОЗУ и требует меньше строк кода, чем ECS-версия!

TL;DR: Прежде чем прийти к выводу, что ООП отстой, а ECS рулит, сделайте паузу и изучите OOD (чтобы знать, как правильно использовать ООП), а также разберитесь в реляционной модели (чтобы знать, как правильно применять ECS).
Читать дальше →

Как правильно обрабатывать ошибки: тишина — не всегда хорошо

Reading time5 min
Views6.6K


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

Но недавно я столкнулась с проблемой, багом, который проявлялся из-за «тихой» ошибки в коде. Я поняла, что здесь есть над чем поразмыслить. Возможно, я не могу изменить способ обработки ошибок во всей базе кода, над которой работаю, но что-то определенно можно оптимизировать.
Читать дальше →

Первое знакомство с протоколом HTTP через написание простейшего Web сервера на Java

Reading time4 min
Views41K
Думаю что не будет преувеличением утверждать, что знание и понимание сути протокола HTTP необходимо любому, кто решил сколь-нибудь серьезно заняться любым из направлений современной Web разработки. Мой личный опыт говорит о том, что понимание это приходит не сразу. Стыдно сказать, что были времена, когда слова GET и POST были для меня сродни магическим заклинаниям, а о существовании PUT, PATCH и DELETE я даже не подозревал.

Несколько месяцев назад помимо собственно разработки я занялся также преподаванием, и возник вопрос о том, как проще и понятнее рассказать о сути протокола HTTP будущим Java разработчикам. После нескольких дней возни и ряда неудачных попыток сделать презентацию возникла идея, а почему бы не написать простейший HTTP сервер на Java, потому как ни что так хорошо не объясняет суть протокола, как его простейшая, но работающая реализация.
Читать дальше →

ИИ в медицине: науки о жизни и открытие лекарств

Reading time18 min
Views6.8K
Привет, Хабр! Сегодня я покажу тебе свой перевод одного замечательного интервью с Александром Жаворонковым. Надеюсь тебе будет так же интересно читать, как и мне переводить.

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

Интересные факты об истории Китайской лунной программы и космической миссии «Чанъэ-4»

Reading time17 min
Views12K


Многое скрыто за заборами полигонов и стенами лабораторий Китайской академии космических технологий при реализации лунных научно-исследовательских космических программ, но часть информации потом все равно любезно предоставляется в открытый доступ.
Читать дальше →

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

Reading time10 min
Views14K

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



В игрушечных «голографических» вселенных (даже если и не в нашей, настоящей) ткань пространства-времени возникает на основе сети квантовых частиц. Физики обнаружили, что это работает по принципу квантового исправления ошибок.

В 1994-м математик из исследовательского подразделения AT&T по имени Питер Шор мгновенно прославил квантовые компьютеры (КК), открыв, что эти гипотетические устройства могли бы быстро раскладывать большие числа на множители – тем самым ломая большую часть современной криптографии. Но на пути реального создания КК стояла фундаментальная проблема: естественная неустойчивость их физических компонентов.

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

Билеты на Марс будут стоить менее $500,000

Reading time2 min
Views18K


Иллюстрация кораблей SpaceX Starship на поверхности Марса. Изображение предшествует новейшему дизайну Starship, который предусматривает изготовление кораблей из нержавеющей стали.

Корабли SpaceX будут переправлять всех желающих на Красную планету и обратно, если всё пойдёт по плану Илона Маска.
Цена за место на борту межпланетного корабля SpaceX Starship в конечном итоге упадёт настолько, что станет доступной для большей части населения промышленно развитого мира, написал Маск.
«Зависит от количества человек, но я уверен, что переезд на Марс (обратный билет бесплатный) в один прекрасный день будет стоить менее $500,000. А может быть, и менее $100,000. Более чем мало, чтобы большинство людей в странах с развитой экономикой могли продать свой дом на Земле и переехать на Марс», – написал Маск в Twitter 10 февраля.

Как устроено сознание: выводы из книги Александра Невзорова

Reading time7 min
Views14K
Для интересующихся вопросами сознания, предлагаю небольшую выборку из книги Александра Невзорова «Происхождение личности и интеллекта человека. Опыт обобщения данных классической нейрофизиологии».

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

Почему Google нуждалась в графе знаний

Reading time15 min
Views12K
Когда я представляюсь и говорю, чем занимается наш стартап, у собеседника сразу возникает вопрос: вы раньше работали в Facebook, или ваша разработка создана под влиянием Facebook? Многие знают об усилиях Facebook по обслуживанию своего социального графа, потому что компания опубликовала несколько статей об инфраструктуре этого графа, который она тщательно выстроила.

Google рассказывала о своём графе знаний, но ничего о внутренней инфраструктуре. Однако в компании тоже есть для него специализированные подсистемы. На самом деле сейчас графу знаний уделяется большое внимание. Лично я поставил на эту лошадку минимум два своих повышения по службе — и начал работу над новым графом ещё в 2010 году.
Читать дальше →

Откуда растут ноги у Java Memory Model

Reading time19 min
Views78K
Современное железо и компиляторы готовы перевернуть с ног на голову наш код, лишь бы он работал быстрее. А их производители тщательно скрывают свою внутреннюю кухню. И все прекрасно, пока код выполняется в одном потоке.

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

Но все уже осознали, ведь жить с этим как-то надо. А Java программисты даже неплохо живут. Потому что в Java есть модель памяти — Java Memory Model (JMM), которая предоставляет достаточно простые правила для написания корректного многопоточного кода.

И правил этих достаточно для большинства программ. Если вы их не знаете, но пишите или хотите писать многопоточные программы на Java, то лучше как можно скорее ознакомиться с ними. А если знаете, но вам не хватает контекста или интересно узнать откуда растут ноги у JMM, тогда статья может вам помочь.
Читать дальше →

Бухгалтерские машины, IBM 1403, и почему 132 колонки – это стандарт для принтеров

Reading time10 min
Views7K
Задумывались ли вы о том, почему у принтеров так популярна ширина текста в 132 символа? Многие принтеры выдавали строки по 132 символа, например, прорывной Centronics 101 матричный принтер (1970), повсеместный терминал DECwriter II (1975), матричный принтер Epson MX-80 (1981), и Apple Daisy Wheel Printer (1983). Даже на ЭЛТ терминалах, например, на DEC VT100 (1978) была поддержка 132 колонок. Но откуда пошла популярность 132 колонок?

Изучив вопрос, я пришёл к выводу о наличии двух ответов. Первый состоит в том, что в 132 колонках нет ничего особенного. Ранние принтеры были удивительно разнообразны в вопросе длины строк – среди них встречались строки длиной 50, 55, 60, 70, 73, 80, 88, 89, 92, 100, 118, 120, 128, 130, 136, 140, 144, 150 и 160 символов. Это говорит об отсутствии убедительных технических или коммерческих причин для использования именно 132 колонок. Вместо этого 132 колонки стали фактическим стандартом из-за популярности компьютера IBM 1401 и его высокоскоростного линейного принтера 1403, который печатал по 132 колонки.

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

HTML, который мы потеряли

Reading time5 min
Views52K

Привет, Хабр! Представляю вашему вниманию перевод статьи "The HTML we never had" автора Сергея Кучерова.


В этом году исполняется 30 лет с тех пор, как Бернерс-Ли начал разрабатывать язык HTML. С тех пор мы прошли долгий путь, начиная с восхищения новой технологией, и заканчивая лечением интернет-зависимости и цензурой. Каких только бед не принес нам Интернет, взломанные пароли, кража личных данных, компьютерные вирусы, черви, а теперь даже вирусы-вымогатели. Вы когда-нибудь задумывались, почему Сеть до сих пор остается такой нестабильной и уязвимой? Где-то на этом длинном пути мы свернули не туда? Давайте разбираться.

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

Внутри Quake: всегда рассматривайте альтернативы

Reading time15 min
Views20K
image

Программист Майкл Абраш, в середине 90-х приглашённый Джоном Кармаком для работы над движком первого Quake, написал в процессе разработки серию статей. Это вторая колонка из данной серии. Перевод первой находится здесь.

Должен признаться: меня достал классический рок. В последний раз я с радостью слушал что-нибудь из Cars или Boston довольно давно, около 20 лет назад. Кроме того, меня никогда особо не привлекали Боб Сигер и Queen, не говоря уже об Элвисе, так что здесь мало что изменилось. Но я понимал, что нечто изменилось, когда мне хотелось переключить радио, услышав Allman Brothers, или Steely Dan, или Pink Floyd, или, господи, прости, Beatles (но только на таких вещах, как «Hello Goodbye» и «I’ll Cry Instead», а не «Ticket to Ride» или «A Day in the Life»; я ещё не зашёл настолько далеко). Долго искать причины этого не пришлось; я слушал одни и те же песни четверть века, и просто от них устал.

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

Мы говорим о десятилетней девочке, росшей на постоянной диете из старых хитов. Ей нравятся мелодии, легко запоминающиеся песни и хорошие певцы. Ничего из этого не найдёшь, слушая станцию про альтернативный рок. Поэтому неудивительно, что когда я включил радио, она первым делом сказала «Фу!»

Но вот что меня удивило: послушав какое-то время, она сказала: «Знаешь, папа, а на это на самом деле интересно».

Это не только намекнуло мне о том, какая музыка будет грохотать по всему дому, когда она станет тинейджером. Её быстрое принятие альтернативного рока (по сравнению с моим длящимся десяток лет увлечением музыкой собственной юности) напомнило мне кое о чём, что легко забывается, когда становишься старше и образ жизни становится устоявшимся. Это напомнило мне, что необходимо сохранять открытость сознания и быть готовым — более того, стремиться — пробовать новые вещи.
Читать дальше →

Как превратить спутниковые снимки в карты. Компьютерное зрение в Яндексе

Reading time10 min
Views34K
Один из главных источников данных для сервиса Яндекс.Карты — спутниковые снимки. Чтобы с картой было удобно работать, на снимках многоугольниками размечаются объекты: леса, водоёмы, улицы, дома и т. п. Обычно разметкой занимаются специалисты-картографы. Мы решили помочь им и научить компьютер добавлять многоугольники домов без участия людей.

За операции с изображениями отвечает область ИТ, которая называется компьютерным зрением. Последние несколько лет большую часть задач из этой области очень удачно решают, применяя нейронные сети. О нашем опыте применения нейронных сетей в картографировании мы и расскажем сегодня читателям Хабра.

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

Принципы проектирования справочников номенклатуры в 1С Управление Предприятием 2 (ERP 2.4.6)

Reading time18 min
Views84K
Оглавление
Основные принципы работы
Справочники и связанные с ними объекты
Перечисление «Типы номенклатуры»
Справочник «Виды номенклатуры»
Справочник «Товарные категории»
Справочник «Товарные характеристики»
Дополнительные реквизиты и сведения
Функционал «Номенклатура, продаваемая совместно»
Справочник «Производители»
Справочник «Номенклатура поставщиков»
Справочник «Ценовые группы»
Справочник «Сезонные группы номенклатуры»
Справочник «Политики учёта серий»
Справочник «Группы доступа номенклатуры»
Резюме

Принципы системного подхода к проектированию справочников номенклатуры в 1С Управление Предприятием 2 (ERP 2.4.6) или как избежать замусоривания.

В 1С Управление предприятием 2 используется целое семейство справочников для работы с номенклатурой. Эти справочники являются частью НСИ. Правильно организованный подход к НСИ гарантирует контроль работы конфигурации и пользователей. Поэтому работа с НСИ требует жёсткого и, самое главное, систематического подхода, в противном случае, справочники мгновенно превращаются в заполненные мусором списки. Кроме того, правильно организованные справочники упрощают работу с составлением запросов и выборок. Помимо этого, систематически организованные и заполняемые справочники позволяют применять математический аппарат для работы с ними (в основном аппарат из теории графов). И, независимо от этого, правильно организованные справочники позволяют вести корректную кодировку товаров.

Какие же принципы позволяют организовать систематическую работу со справочниками в 1С ERP?
Читать дальше →

Налогообложение ИП в Казахстане: как быть фрилансеру?

Reading time6 min
Views21K
Рассказывая на IT тусовках и в интернете о том, как посчитать и заплатить налоги дизайнерам, программистам и другим фрилансерам меня часто просили написать об этом простой и понятный пост. Простого в налогообложении мало, но я постарался чтобы он был хотя бы понятным. ПОд катом информация для тех кто живет в Казахстане и хочет спать спокойно.

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

Неразгаданная тайна зрения

Reading time19 min
Views18K
Вопрос устройства зрения заметная часть нейробиологии. Данному вопросу посвящены огромные объемы литературы и четыре нобелевские премии, но в сложившейся ситуации нельзя не заметить то, что изложенное в учебниках устройство зрения млекопитающих не справляется с поставленной задачей. Цель данного эссе показать свод причин, почему не стоит закрывать на это глаза. По сути, будет предъявлен портрет тайны зрения, начиная от разнообразия мелких деталей в самом начале потока зрительной информации у млекопитающих, угрозы от их игнорирования, и заканчивая ворохом проблем в понимании обработки мозгом в конце пути.

Устройство системы зрения


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

Увеличь это! Современное увеличение разрешения

Reading time21 min
Views183K

Я уже перестал вздрагивать и удивляться, когда звонит телефон и в трубке раздается жесткий уверенный голос: «Вас беспокоит капитан такой-то (майор такой-то), вы можете ответить на пару вопросов?» Почему бы не поговорить с родной полицией…

Вопросы всегда одни и те же. «У нас есть видео с подозреваемым, пожалуйста, помогите восстановить лицо»… «Помогите увеличить номер с видеорегистратора»… «Здесь не видно рук человека, пожалуйста, помогите увеличить»… И так далее в том же духе.

Чтобы было понятно о чем речь — вот реальный пример присланного сильно сжатого видео, где просят восстановить размытое лицо (размер которого эквивалентен примерно 8 пикселям):


И ладно бы только русские дяди Степы беспокоили, пишут и западные Пинкертоны.
Читать дальше →

Винил вернулся, и он разный

Reading time5 min
Views19K
Мир переживает «виниловый бум» — заметный скачок популярности пластинок среди меломанов. Рассказываем, почему винил вернулся и кто занимается его производством.

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

Information

Rating
Does not participate
Location
Казахстан
Date of birth
Registered
Activity