Все потоки
Поиск
Написать публикацию
Обновить
1008.74

Программирование *

Искусство создания компьютерных программ

Сначала показывать
Порог рейтинга
Уровень сложности

Высшая математика командной строки — GNU Octave

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

Как я и обещал, перехожу от обзора программ замены калькулятора к более серьезным инструментам. Если помните схему из предыдущего поста, то во второй категории находились табличные: OpenOffice / LibreOffice сотоварищи. Эту партию мы можем смело пропустить, так как к командной строке она не относится, к тому же, среди читателей Хабра трудно найти человека, который бы в них не разбирался. Поэтому перехожу сразу к третьей категории.


Специализированные математические программы, уровень студент+


  1. GNU Octave.
  2. Scilab.
  3. Maxima.
  4. R.
  5. Sage.

На первом месте в этом списке находится Octave, и это не случайность. Исследователи из Университета Мэриленда в США провели сравнительный анализ математических вычислений, используя MATLAB, Octave, SciLab и FreeMat в простом сценарии и в сложном. В первом случае решали систему линейных уравнений а в втором — конечно-разностную дискретизацию уравнения Пуассона в двухмерном пространстве. Основной вывод — GNU Octave справляется с задачами лучше остальных открытых математических пакетов, демонстрируя результат (страницы 23 и 25) сопоставимый с матлабовским.

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

Разработка в InterSystems Caché в вашей любимой IDE

Время на прочтение11 мин
Количество просмотров7.9K
Здравствуйте! В InterSystems Caché есть вполне практичный способ разрабатывать решения без использования интегрированных в неё инструментов. Весь код проекта можно хранить в виде традиционных файлов с исходным кодом, редактировать в любимой среде разработки, индексировать системой контроля версий и одной командой выполнять импорт и компиляцию классов в СУБД Caché. Более того, это предоставляет возможность использовать любые другие внешние инструменты, например, для сборки и препроцессинга кода. В данной статье будет рассмотрен пока что не традиционный для Caché, но достаточно практичный цикл разработки проектов.
Интересно? Продолжайте чтение

Intel Software Guard Extensions, серия учебных материалов. Часть 1, основы Intel SGX

Время на прочтение7 мин
Количество просмотров14K
Первая часть в серии учебных материалов по Intel Software Guard Extensions (Intel SGX) представляет собой краткое описание этой технологии. Дополнительные сведения см. в документации в составе Intel Software Guard Extensions SDK. Список всех учебных материалов в этой серии см. в статье Представляем серию учебных материалов, посвященных Intel Software Guard Extensions.


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

Интервью с Ильёй, который выступит на Moscow Python уже послезавтра

Время на прочтение3 мин
Количество просмотров5.2K
Итак, я выжил после организации INTERCOM, но впереди еще два эвента! И уже послезавтра я с коллегами из Moscow Python соберу разработчиков на одноименной конференции: чтобы пить кофе, общаться, общаться и еще раз общаться! А чтобы было о чем общаться, мы распределили по двум потокам 14 спикеров, которые расскажут самое любопытное из мира Python разработки и зададут темы для обсуждения. Илья Беда, техлид Bro.Engineering – тот самый «full stack developer», который и на Python backend, и на JavaScript фронтенд и на Qt десктоп. На конференции Илья расскажет про конструирование собственных DSL, используя структуры данных Python. А на Хабре – уже ответил на множество каверзных вопросов и рассказал, как смотрит на разработку. Кстати, с предыдущими тремя интервью вы можете ознакомиться здесь, здесь и здесь.
Под катом - ответы на все вопросы

Нежная дружба агентов и исключений в SObjectizer

Время на прочтение9 мин
Количество просмотров4.3K
Рано или поздно в программе что-нибудь идет не так. Не открылся файл, не создалась рабочая нить, не выделилась память… И с этим нужно как-то жить. В небольшом однопоточном приложении довольно просто: можно прервать всю работу и рестартовать. Это один из факторов, благодаря которому Erlang снискал себе заслуженную популярность, ведь идеология fail fast является одним из краеугольных камней Erlang-а с его легковесными процессами. Если же приложение большое, сложное и многопоточное, то не разумно рестартовать все приложение, если лишь одна из его нитей столкнулась с проблемами. Еще хуже в ситуации с реализациями Модели Акторов, в которых сотни тысяч акторов могут работать на десятках рабочих нитей. Проблема одного актора вряд ли должна сказываться на всех остальных акторах.

В данной статье мы расскажем, как мы подошли к обработке ошибок в своем фреймворке SObjectizer.

Исключениям – да, кодам возврата – нет!


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

Логика сознания. Пояснение «на пальцах»

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

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

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

Каково оно учить JavaScript в 2016

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


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

— Это теперь называется Front-End инженер, но да, я — именно он. Я работаю с вебом в 2016. Визуализации, музыкальные плееры, летающие дроны, которые играют в футбол, все что угодно. Я только что вернулся из JsConf и ReactConf, так что я знаю новейшие технологии для создания веб-приложений.

— Круто. Мне нужно создать страницу, которая отображает последние действия со стороны пользователей, так что мне просто нужно получить данные от REST и отобразить их в какой-то фильтруемой таблице, ну и обновлять её, если что-то изменится на сервере. Я думал, может быть, использовать JQuery для извлечения и отображения данных?

— О, Мой Бог! Нет! Никто больше не использует JQuery. Ты должен попробовать React: это — 2016!
Читать дальше →

Приглашаем на Java-конференцию Joker 2016, которая состоится 14 и 15 октября в Санкт-Петербурге

Время на прочтение1 мин
Количество просмотров4.1K
image

Лучшие спикеры из России, США и Европы приедут, чтобы поделиться с вами своими мыслями и идеями.


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


Это будет уже четвертый Joker в Питере. Спикеров и докладов, спонсоров и стендов, участников и экспертов будет больше, чем в прошлые разы, поэтому каждому пришедшему будет чем заняться!

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

Технокубок. Еще раз. Теперь круче

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

Многие интересующиеся программированием старшеклассники планируют связать с ним свое высшее образование и дальнейшую карьеру. Но как поступить в крутой технический вуз благодаря своим успехам в программировании? Где найти подходящие задачи для тренировки? Что важно, а что вторично для разработчика? Ответы на все эти вопросы можно найти на Технокубке — олимпиаде по программированию для учащихся 8-11 классов, организуемой нами совместно с МГТУ им. Баумана и МФТИ. В 2016 году она включена в перечень олимпиад школьников и имеет 3-й уровень, что дает победителям и призерам особые права при поступлении в вузы по всей России (в некоторых из них, например — 100 баллов ЕГЭ по информатике) в течение четырех лет.
Читать дальше →

Как спасти принцессу, используя 8(+45) языков программирования, в пятницу

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


У вас есть JavaScript. Вы тратите несколько часов на сбор библиотек, настройку node и постройку фреймворка для замка. К тому времени, как вы разберетесь с фреймворком, форт уже будет заброшен, а принцесса переберется в другой замок.



У вас есть С. У вас есть библиотека для замка и для принцессы. В атаку! Вы спасаете принцессу, ее собаку, весь ее гардероб и всё, что она когда-либо съела. Fuck, неужели я забыл null-terminator?

Доказательство Большой теоремы Ферма для куба, как ключ

Время на прочтение8 мин
Количество просмотров7.1K
<img src=«http://» alt=«image»/>

Считаю уместным представить доказательство БТФ для третьей степени.
Во-первых: по данной методике любая степень может рассматриваться аналогично.
Во-вторых: до сих пор не существует доказательства для куба, основанного на элементарной математике.
И кроме того, за счёт небольших числовых значений при рассмотрении куба упрощаются расчёты, что облегчает понимание.
Благодарю заранее возможных оппонентов за полезные замечания по оформлению доказательства и, конечно, за помощь.
И немного желчи. В восприятии доказательства на Математическом форуме dxdy МГУ нет признаков понимания по существу.
При этом, необходимо заметить, что там сосредоточена часть математической общественности, занимающаяся проблемой БТФ значительное время, и даже профессионально. Именно на форуме dxdy потребовали, чтобы доказательство основывалось на рассмотрении куба. Такое требование считаю полезным, хотя взаимопониманию оно не помогло. Спрашивал:" Чего не хватает? Что ещё требуется рассмотреть?" Молчание, или, в лучшем случае, рекомендации доказать то, что уже давно доказано и, несомненно оппонентам известно. В настоящее время эта тема на форуме dxdy прикрыта: её можно читать, но отсутствует обратная связь. Может быть, кто-то на Хабрхабре конкретизирует требования. Хочется услышать мнение.
Читать дальше →

learnopengl. Урок 1.4 — Hello Triangle

Время на прочтение20 мин
Количество просмотров189K
В прошлом уроке мы таки осилили открытие окна и примитивный пользовательский ввод. В этом уроке мы разберем все азы вывода вершин на экран и воспользуемся всеми возможностями OpenGL, вроде VAO, VBO, EBO для того, чтобы вывести пару треугольников.
Заинтересовавшихся прошу под кат.
Читать дальше →

Зачем вскрывать черный ящик JVM — Интервью с Charles Nutter, JVM-разработчиком из Red Hat

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


Осень – отличное время для встречи со старыми друзьями, поездок на конференции, прогулок по паркам. Многие уже вернулись из отпусков с новыми впечатлениями, идеями, готовые делиться ими, общаться с окружающими. Наше сегодняшнее интервью не о путешествии, хотя, несомненно, погружение в мир Java тоже можно назвать таковым. Разговор пойдет о JVM. Наш собеседник – Charles Nutter, разработчик JVM в Red Hat, ведущий инженер проекта JRuby.

Итак, запасаемся кофе и начинаем.

— Наше тема сегодня – это JVM и ее «тёмное» содержимое. Charles, скажите, когда для вас JVM перестала быть загадкой?
Читать дальше →

Ближайшие события

Разбор задач заочного тура школы программистов HeadHunter 2016. Часть 1

Время на прочтение5 мин
Количество просмотров16K
Всем доброго времени суток! 30 сентября закончился прием заявок в школу программирования HeadHunter 2016. В этой статье я хотела бы разобрать задачи заочного этапа. Надеюсь, что моя статья будет полезной, учитывая, что при решении задач пришлось посетить не один десяток сайтов. Я имею небольшой опыт в программировании, поэтому я не утверждаю, что мое решение единственно верное. Всегда буду рада услышать Вашу критику!
При решении задач используется язык программирования Java.
Читать дальше →

Intel® Parallel Studio XE 2017: «Python к нам приходит» и другие новинки

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

На первой неделе сентября этого года вышла в свет новая версия продукта Intel Parallel Studio XE 2017. Давайте разбираться, что интересного появилось в ней.
Читать дальше →

Docker in production: «Когда ты это кушаешь, тебе, как минимум, не противно, особенно если знаешь, как готовить»

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


Идея контейнеризации появилась уже давно, однако Docker оказался первой технологией, которая смогла достичь массовой популярности. О том, почему это случилось, насколько Docker «повзрослел» за 3 года, а заодно о том, когда можно перестать волноваться и начать использовать Docker в своем production приложении, мы поговорили с нашими экспертами:

Александр aatarasoff Тарасов — Software Architect в Альфа-Лаборатории. В настоящее время внедряет микросервисную архитектуру и двигает направление DevOps, а больше года назад рассказывал про свой опыт внедрения Docker в Альфа-Банке.

Docker in production: Нельзя использовать инструмент только потому, что он модный


– Почему вы стали использовать Docker?
Читать дальше →

Программирование&Музыка: ADSR-огибающая сигнала. Часть 2

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

Всем привет!
Вы читаете вторую часть статьи про создание VST-синтезатора на С#. В первой части был рассмотрен SDK и библиотеки для создания VST плагинов, рассмотрено программирование осциллятора.
В этой части я расскажу про огибающие сигнала, их разновидности, применение в обработке звука. В статье будет рассмотрено программирование ADSR-огибающей для управления амплитудой сигнала, генерируемого осциллятором.
Огибающие есть в любом синтезаторе, применяются не только в синтезе, а повсеместно обработке звука.


Исходный код написанного мною синтезатора доступен на GitHub'е.



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

Как насчёт класть каждую функцию в свой файл?

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

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




Есть один интересный подход при разработке проектов, который мне в последнее время стал нравиться. Суть простая: когда вы пишете функции — кладёте каждую из них в свой отдельный файл. Я сейчас имею ввиду те функции, которые используются во многих местах вашего проекта, формируя таким образом некоторую "библиотеку" методов.


Мало кто поступает таким образом в современном мире. Какие же профиты от такого подхода? А вот какие.


Красивые url'ы на любую функцию проекта


Многие из вас скорее всего неоднократно отправляли друг другу ссылки на различные отрезки кода на Github'е, вроде такого. Сегодня эта ссылка указывает точно на метод под названием booleanConditional. А вот на что эта ссылка будет указывать спустя пол года — на это мы посмотрим спустя пол года :) Ну, рискну предположить, что через пол года там будет мешанина какого-то совсем другого кода, никак не связанного с booleanConditional.


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


Разве не прелесть?

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

OpenGL ES 2.0. Отложенное освещение

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

В этой статье мы рассмотрим один из вариантов реализации отложенного освещения на OpenGL ES 2.0.


libsodium: Public-key authenticated encryption или как я расшифровал сообщение без закрытого ключа

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

Вклад авторов