Как стать автором
Обновить
5
0
Дмитрий Долгушин @ddolgushin

Разработчик

Отправить сообщение

Проблема логических языков программирования

Время на прочтение5 мин
Количество просмотров11K
Некоторое время назад я писал про «Интернациональное программирование на естественных языках», в которой попытался представить достойную цель для абстрактного языка программирования, попробовав примерить на него роль связующего звена между миром программистов с компьютерами и не программистов.

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

И пользователи, как программисты, так и не программисты, просто хотят решать возникающие перед ними задачи. И хотя задачи бывают совершенно разные, но если способ (алгоритм) её решения известен, то выбрать язык для её решения не составит никакого труда.

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

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

Так почему этого так и не случилось? В чем проблема Пролога, да и любой системы / языка программирования, назначение которых анализировать факты и искать ответы на вопросы?

Эта проблема называется «Комбинаторный взрыв» — экспоненциальная (или более) зависимость времени работы алгоритма от количества входных данных. И есть как минимум два решения этой проблемы.
Читать

Использование GitHub в обучении. Примеры. Часть III

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

Продолжу выкладывание примеров использования GitHub'а как инструмента обучения.
Рассмотрим версию работы нескольких команд над одним большим проектом с подпроектами.

Читать далее

Детям об аудио форматах (+тест)

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

Дочь, постоянно слушающая музыку через mp3-плеер, спросила: "А что, собственно, означает mp3?"

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

Гладкая волна становится лесенкой, но если ступенек в лесенке много, то это незаметно.

Потом рассказал про то, что закодировать лесенку в файл можно по разному:

За эталон берём компакт диск, это очень приличное качество, хотя сейчас есть уже и варианты лучше, всякие High Resolution и Super Audio CD (SACD). Если переписать компакт диск в файл на компьютере или плеере, файлы будут большие. Можно упаковать, например, в формат flac. Будет меньше, но ненамного, разв а 3-4. Зато звук хороший как у CD. А если хочется ещё меньше, то придётся ухудшать качество, и вот мы приходим к сжатию с потерями.

Объяснил про психоакустическую модель сжатия, которая используется в mp3:

Тихий звук после громкого человек слышит плохо - выкидываем. Формально люди слышат звуки высотой до 20 тысяч колебаний в секунду*, но это дети, а с возрастом уши грубеют. Так что отрезаем всё, что выше 18, а то и 16 тысяч. Чем больше выбрасываем, тем меньше становится файл. Бесконечно делать это нельзя, в какой-то момент становится заметно. Можно получить совсем маленькие файлы с отвратительным звуком. Но качество mp3 320 считается хорошим. Для того, чтобы отличить его от компакт диска, нужна качественная аппаратура и уши музыканта.

И тут дочь говорит: "А что, у меня музыкальные уши. Давай попробуем сравнить."

Мне показалось интересно. Мы попробовали.

Read more

Проклятье Циолковского и благодать Оберта

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

Здравствуйте, уважаемые читатели Хабра.

Продолжаем изучать орбитальную механику на пальце и двух энергиях. В этой статье вы узнаете о формуле Циолковского, эффекте Оберта, чем энергия отличается от импульса, как работают ракеты и всё это на максимально простых примерах с крепкой 90 градусной геометрией.

Эффект Оберта


Начнем пожалуй с Эффекта Оберта, хотя это крайне сложный эффект, но зато разобравшись с ним — мы поймем всю орбитальную физику. Для начала давайте зададимся вопросом — В чем сила, брат? — В лошадиных силах!

Сколько лошадиных сил у ракетного двигателя?

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

Давайте сразу рассмотрим 2 хороших и наглядных примера. Один из Ютуба от гаражного учёного Игоря Белецкого продемонстрировавшего эффект Оберта с помощью шприца, резинки и кое чего еще, а второй пример из Википедии.
Читать дальше →

Звёздная карта или как балансировать знания в команде при влиянии Soft Skill-ов

Время на прочтение17 мин
Количество просмотров29K
Многие команды разработчиков сталкиваются с проблемой «бутылочного горлышка», когда слишком много вопросов, связанных с разными аспектами разработки упираются в одного, наиболее квалифицированного специалиста. Менее опытные участники команды при этом не знают, куда им расти, и в какие технологии или специфичные для команды отрасли им нужно углубляться, чтобы быть полезнее для команды. И само собой, когда незаменимый сотрудник всё-таки берёт отпуск или больничный, продуктивность команды существенно падает, а в худших случаях и вовсе будет почти парализована из-за нехватки экспертизы в каких-либо областях.

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

Информация

В рейтинге
Не участвует
Откуда
Омск, Омская обл., Россия
Дата рождения
Зарегистрирован
Активность