Pull to refresh
28
0.1
Евгений А. Симоненко @easimonenko

Любитель

Send message

Алгоритмы на кристалле. Глава 1 (продолжение). Схемы простейших устройств

Reading time25 min
Views5.5K


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

Предыдущие черновики:
… Примерное оглавление.
… Вычислительная модель.
… Быстродействие логических схем.

Возможно, в вашем браузере с первого раза не будут правильно отображаться формулы. Если так, попробуйте перезагрузит страницу — на моем компьютере этот фокус работает.
Желаю приятного чтения.
Читать дальше →
Total votes 15: ↑13 and ↓2+11
Comments31

Зачем оформлять документы о создании программного обеспечения (мнение практикующего юриста)

Reading time14 min
Views5.8K

Согласно данным опроса сервиса SuperJob, в 51% опрошенных компаний есть сотрудники "на удаленке". При чем, чаще всего на дистанционную работу переводят сотрудников из сферы информационных технологий.

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

Состав документов может варьироваться от количества задействованных в разработке лиц (особенно если речь идет об авторских коллективах, крупных контрактах с длинными «цепочками» заказчиков, подрядчиков, субподрядчиков и т.д.).

Разберемся по порядку, в каком случае какие документы нужны, что будет, если их не оформлять, и что предусмотреть наперед.

Читать далее
Total votes 4: ↑4 and ↓0+4
Comments25

Мы стоим на пороге кризиса «Фальшивой науки»

Reading time9 min
Views54K


Журналы все чаще отзывают научные статьи, потому что оказывается, что написаны они не теми, кем заявлено. Необходимо выработать более эффективные способы решения проблемы, в противном случае мы рискуем полностью утерять общественное доверие к науке.
Читать дальше →
Total votes 84: ↑77 and ↓7+70
Comments372

Люди работают не так много, как вы думаете

Reading time7 min
Views47K

Как ты расслабляешься, да я особо и не напрягаюсь. Именно этот анекдот хотелось привести в преамбуле к данной переводной заметке. Это прямо манифест лени as is. Весьма любопытное столкновение западной и восточной культуры. Нам в М.Видео-Эльдорадо особо прокрастинировать некогда, но дискуссию можно продолжить в комментариях.    

Читать далее
Total votes 103: ↑96 and ↓7+89
Comments67

Чем хуже, тем лучше

Reading time7 min
Views16K

Я, как и почти каждый Common Lisp и CLOS разработчик, очень хорошо знаком с подходом к проектированию MIT/Стэнфорда. Суть этого подхода можно выразить фразой “the right thing” (то, что нужно/как следует). Для таких разработчиков важно соответствовать всем нижеизложенным характеристикам:

Читать далее
Total votes 12: ↑6 and ↓60
Comments6

Частичное применение и «каррирование» функций в Лиспе

Reading time8 min
Views2.9K
Одно из известных преимуществ Лиспа над другими языками программирования состоит в том, что в Лиспе проще, чем где бы то ни было, реализуются различные новые механизмы, появляющиеся в современных языках программирования. Причин тому несколько: это и гомоиконность Лиспа (единая форма представления программ и данных) и уникальная по своим возможностям система макро. В общем, Лисп не зря называют «программируемым языком программирования».

В этой небольшой заметке мы рассмотрим, как можно реализовать в Лиспе такой, весьма популярный ныне программный механизм, как частичное применение функций. При этом я буду использовать свою реализацию Homelisp (это чистый интерпретатор Лиспа с некоторыми дополнительными возможностями).

Вероятно, использование частичного применения в Common Lisp будет не очень простым (в связи с тем, что для вызова вычисляемого функционального объекта нужно использовать funcall/apply); в Scheme дело должно обстоять проще. В ближайшее время я планирую опубликовать новую версию HomeLisp, в котором для вызова вычисляемого функционального объекта не требуется funcall/apply. В тех случаях, когда поведение кода отличается, я буду это подчёркивать.

Частичное применение — это строгая математическая операция. Но мы рассмотрим ее «на пальцах», без обращения к лямбда-исчислению и комбинаторной логике.
Читать дальше →
Total votes 14: ↑13 and ↓1+12
Comments1

Сказка про антипаттерны: как мужики град стольный строили

Reading time11 min
Views7.2K

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

Под Новый Год мне захотелось немного созорничать, и я решил написать легкий текст-сказку про не самые правильные практики и их последствия. Конечно, мне бы хотелось сказать, что все ситуации выдуманные, но, увы, часть из них основана на личном опыте или опыте своих друзей. Думаю, вы тоже сможете увидеть ситуации, с которыми сами сталкивались в работе.

Я постарался образно описать антипаттерны из разных дисциплин: не только из ИТ-архитектуры, но и из разработки, а также проектного или продуктового управления, ведь архитектор часто сталкивается с этими дисциплинами. Посмотрим, сколько антипаттернов вам удастся найти – в конце сказки я приведу ряд примеров, которые точно присутствуют в тексте :)

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

Приятного чтения!

Читать далее
Total votes 18: ↑15 and ↓3+12
Comments5

Самый древний и один из самых красивых кораблей Европы, сохранившийся до наших дней. Загадка корабля из Осеберга

Reading time6 min
Views84K

Автор Лысый Камрад (@LKamrad)

Осебергский корабль удивительно красив. Построенный двенадцать веков назад он выглядит так, как будто совсем недавно спущен на воду, такова его сохранность. Это не реконструкция– 90% деревянных деталей подлинные, даже 60% железных болтов* те же самые, что использовались при его постройке. Нос и корма судна украшены великолепной резьбой и имеют навершия спиральной формы, имитирующие хвост и голову дракона или морского змея.

Уверен, что даже через века после нас с вами – в эпоху межзвездных кораблей судно из Осеберга будет все так же восхищать зрителей. Невероятно кропотливый труд, любовь и мастерство корабелов, что вложены в него – делают корабль настоящим произведением искусства, достойным самых громких слов восхищения.

Читать далее
Total votes 137: ↑130 and ↓7+123
Comments62

В поиске почти тонкого множества целых

Reading time4 min
Views4.3K

Если не бухать, то чем ещё заняться на новогодних праздниках, если у тебя нету девушки, как не абстрактной математикой и теорией чисел в частности?

Я решил с помощью вычислительных и аналитических методов нащупать границу между 'большими' и 'тонкими' бесконечными множествами натуральных чисел. Что это? Объясню под катом.

Читать далее
Total votes 23: ↑22 and ↓1+21
Comments6

Как белорусы уже 30 лет делают искусственный интеллект при помощи ТРИЗ

Reading time4 min
Views56K
image

«Это не программисты, это не разработчики, это — камикадзе.»

  • Минские студенты в 1987 году во главе с Валерием Цуриковым принялись программировать «Изобретающую машину» — софт, который бы усиливал интеллект инженеров и помогал изобретать. Кооператив был успешен и захватил 95% рынка бывших в странах СССР.
  • Когда СССР прекратил существовать, Валерий Цуриков перебрался в Бостон и основал свой «стартап» в 1992 году: Invention Machine Corp. Им заинтересовались Samsung, Boeing, NASA, Sony, Procter&Gamble.
  • В 1998 году журнал NASA провел опрос среди подписчиков и по результату голосования «Изобретающая машина» стала «the most innovative product in USA».
  • В 2012 году IHS inc купила Invention Machine Corp за 40 миллионов долларов.


30 лет назад Валерий Цуриков в спортивной сумке провез через границу 5000 фунтов и в Лондоне купил лицензионный язык «Пролог» (пожалуй, единственный лицензионный пакет на территории бывшего СССР). «Пролог» тогда был запрещённым к экспорту в страны СССР.

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

Через год профессору Ковальски, создателю языка «Пролог», показали рабочую систему и он не поверил, что она работает. Это был первый промышленный софт на «Прологе».
Читать дальше →
Total votes 81: ↑57 and ↓24+33
Comments209

Мечтательный программист

Reading time5 min
Views23K

Если у вас есть дети – скорее всего, вы быстро поймёте, что тут к чему, и чем история закончится. Но в конце текста я, на всякий случай, поясню. История короткая, шутливая, без претензии на что-либо, кроме пары минут вашего внимания и улыбки.

Жил-был на свете программист. Днём, сидя на работе, он программировал. Иногда программировал и по вечерам.

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

Так продолжалось много лет. Пока не пришёл какой-то парень и не сказал: «ты можешь намного больше, ты достоин, ты много теряешь». И программисту стало интересно. Он снял наушники, и огляделся вокруг.

Читать далее
Total votes 82: ↑71 and ↓11+60
Comments27

Чем на самом деле занимаются гуманитарии?

Reading time6 min
Views3.7K

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

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

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

Читать далее
Total votes 32: ↑15 and ↓17-2
Comments36

HyperModem: Девайс для доступа в децентрализованный peer to peer интернет будущего

Reading time3 min
Views25K

Интернет в наше время излишне централизован и держится на костылях. Не всех это устраивает. Для технологии 1970-х годов он еще неплохо справляется, но зачем нам в 2022 году такие вещи, как централизованные интернет-провайдеры, BGP, IPv4, TLS? Можно ведь сделать лучше!

Все технологии для этого есть
Total votes 62: ↑59 and ↓3+56
Comments127

Кунг-фу стиля Linux: делиться — это плохо

Reading time7 min
Views29K
В детском саду вы узнали о том, что делиться — это хорошо. Но, если речь заходит о компьютерной безопасности, часто оказывается, что не всё так однозначно. Концепция пространств имён (namespaces) появилась в ядре Linux начиная с версии 2.6.24. Это случилось много лет назад, но использование пространств имён не стало массовым явлением, несмотря на то, что существуют инструменты для работы с ними. Разумеется, задумываться о пространствах имён нужно далеко не всегда. Но это одна из тех вещей, которые, если в них возникает необходимость, дают нам просто бесценные возможности. Если описать эти возможности в двух словах, то получится, что пространства имён позволяют предоставить процессу его собственные, приватные ресурсы, и, что важнее, запретить процессу доступ к ресурсам из других пространств имён.



На самом деле мы, работая в Linux, постоянно пользуемся этой концепцией. Каждый запускаемый нами процесс существует в среде, описываемой неким набором пространств имён. Почему я говорю тут о «наборе» пространств имён? Дело в том, что существуют пространства имён, используемые для управления различными ресурсами. Например, можно настроить особое сетевое пространство имён, которое позволит предоставить процессу его собственный набор сетевых ресурсов — таких, например, как таблицы маршрутизации и правила файрвола.

Поговорим о том, как в Linux организована работа с пространствами имён, и о том, что они скрывают.
Читать дальше →
Total votes 48: ↑46 and ↓2+44
Comments4

Краудфандинг для науки

Reading time3 min
Views9.7K
Благодаря Kickstarter и Indiegogo краудфандинг стал трендом для всего мира, и область применения коллективного финансирования расширяется постоянно. Теперь и представители академической науки решили обойти сложную систему получения грантов на свои исследования и обратиться непосредственно к любителям знаний. Ниже подборка сайтов, которые помогают ученым найти финансирование для своих проектов.

В этом году открылся сайт Microryza. Его создатели уверены, что научные исследования – это то, что позволяет обществу развиваться, и нельзя ограничивать ученых грантами, на получение которых тратится огромное количество времени. На их странице приводятся такие цифры: 12 недель в среднем тратится на подготовку описания проекта, и 80% из всех заявок них будут отклонены после длительной процедуры изучения. Причина лежит в положении мировой экономики и политики, которое не позволяет финансировать долгосрочные исследовательские проекты с высоким фактором риска. Поэтому и был создан подобный сайт, на котором исследователи не только получают средства для научных работ, но и не вынуждены отдавать интеллектуальную собственность в руки инвесторов, зато предоставляя доступ к ней неравнодушным людям.

Читать дальше →
Total votes 20: ↑15 and ↓5+10
Comments19

Yggdrasil Network: Заря бытовых меш-сетей, или Интернет будущего

Reading time11 min
Views40K

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

Читать далее
Total votes 23: ↑23 and ↓0+23
Comments52

NewNode — децентрализованная CDN нового поколения

Reading time2 min
Views11K

Привет! Сто лет сюда не писал, но теперь появился повод. 

Когда-то, я рассказывал в России про Firechat. Сегодня, все та-жа команда работает над новым решением - распределенной сетью передачи данных. Этот пост, приглашение к диалогу. 

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

Сеть NewNode состоит из трех типов узлов: инжекторов, пиров и пиров, которые становятся прокси инжекторами. Инжекторы - это доверенная служба, работающая в облаке, в то время как каждый пользователь контента по умолчанию является одноранговым узлом. Узел, который устанавливает соединение с инжектором, становится прокси-сервером инжектора. Каждый инжектор обладает личным ключом инжектора, в то время как каждый одноранговый узел имеет жестко закодированную копию всех открытых ключей инжектора. 

Вот как работу сети изобразили авторы, практически на салфетке, в наших лучших традициях:

Read more
Total votes 10: ↑7 and ↓3+4
Comments28

Добавляем поддержку Vendor-команд к USB3.0 устройству на базе FX3

Reading time11 min
Views2.2K
В предыдущих статьях мы сделали достаточно интересную железку, состоящую из контроллера FX3 и ПЛИС Cyclone IV. Мы научились гонять через шину USB 3.0 потоки данных с достаточно высокой скоростью (я доказал, что поток 120 МБ/с из ULPI будет проходить через эту систему без искажений и потерь). Всё хорошо, но система, которая просто гонит данные, не имеет смысла. Любую систему надо настраивать. То есть, хочешь — не хочешь, а кроме скоростных данных надо слать не очень спешные команды.

У шины USB для передачи команд предназначена конечная точка EP0. Сегодня мы потренируемся дорабатывать «прошивку» FX3 так, чтобы она обрабатывала команды от PC, а также транслировала их через GPIO в сторону ПЛИС. Кстати, именно здесь проявляется преимущество контроллера над готовым мостом. Что меня в текущей реализации Redd сильно удручает – я не могу посылать никаких команд. Их можно только упаковать в основной поток. В случае же с контроллером – что хочу, то и делаю. Начинаем творить, что хотим…


Читать дальше →
Total votes 12: ↑11 and ↓1+10
Comments3

Мёртвая Arduino, или Как спасти плату

Reading time2 min
Views16K

Привет, Хабр!

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

Итак, нам дана плата Arduino (неважно, какая), в которую не вгружается скетч. Что же с ней делать?

Читать далее
Total votes 20: ↑10 and ↓100
Comments15

Эльфы в памяти. Выполнение ELF в оперативной памяти Linux

Reading time15 min
Views19K


Бесфайловое распространение вредоносного ПО набирает популярность. Что не удивительно, ведь работа таких программ практически не оставляет следов. В этой статье мы не будем касаться техник выполнения программ в памяти Windows. Сконцентрируемся на GNU/Linux. Linux по праву доминирует в серверном сегменте, обитает на миллионах встраиваемых устройств и обеспечивает работу подавляющего большинства веб-ресурсов. Далее мы сделаем небольшой обзор возможностей исполнения программ в памяти и продемонстрируем что это возможно даже в затруднительных условиях.

Total votes 36: ↑36 and ↓0+36
Comments11

Information

Rating
3,149-th
Location
Краснодар, Краснодарский край, Россия
Registered
Activity

Specialization

Embedded Software Engineer, Application Developer
Linux
Git
Database
Embedded system
Programming microcontrollers
C
System Programming
Assembler