Архив за 18 августа 2014 - 7

Параллельное программирование для начинающих на ЯП Elixir   Erlang VM на примере задачи «конь Эйлера»

Вступление

Чуть больше года назад я сделал очень важный в своей жизни поступок — скачал с сайта Microsoft IDE Visual Studio и написал на языке C++ свою первую в жизни программу, как это ни странно — «Hello, World!». За следующие полгода я прочитал небезызвестную книжку Страуструпа, устроился на работу джуниор С++ разработчиком, попробовал писать на Lua, Python, но каких-либо значительных успехов не добился — мои библиотеки не работали, программы с трудом компилировались и падали в runtime, указатели указывали не на те участки памяти (которая, кстати, всегда куда-то утекала), а попытки использовать больше одного потока (С++11 же!) приводили к порче памяти и дедлокам. О том, как выглядел код, лучше просто промолчать.

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

Примерно полгода назад я понял, что пора что-то менять, и после получаса поиска в интернете нашёл спецификации ЯП Erlang. В статье автор представлял Erlang как «чудесную таблетку» от всех вышеописанных мою проблем, и в общем-то по большей части он оказался прав. Так я начал программировать на Erlang, а затем и на Elixir.

Elixir Language

Elixir — язык, построенный поверх Erlang, результат компиляции — байткод Erlang VM. От Erlang он выгодно отличается простотой синтаксиса и мощным инструментарием для мета-программирования (люди, знакомые с Lisp сразу узнают quote-unquote конструкции). Соответственно, для использования доступен весь функционал Erlang, любые его модули и, что самое главное — фреймворк OTP.

Типы данных — те же самые, что и в Erlang. Данные — неизменяемые, результат действий с ними — новые данные. В Elixir как и во многих функциональных языках работает принцип «Всё — выражение». Любое выражение вернёт значение.

У ЯП Elixir есть отличный интерпретатор, который устанавливается вместе с языком, в нём можно опробовать примеры.
Читать полностью »

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

VCStart: как мы создавали платформу
Читать полностью »

В прошлом месяце я писал о ветровой турбине WindPax. Это походный вариант, вырабатывающий 25W и способный зарядить ваш смартфон. Сейчас же на Kickstarter представили еще одну ветровую турбину, на этот раз родом из Польши и напечатанную на 3D-принтере.

Фото первого прототипа.
image

Читать полностью »

imageНа хабре можно найти множество статей, посвященных некомпетентной технической поддержке пользователей многочисленными хостинговыми компаниями. Также тут полно гайдов и манифестов для организации идеального саппорта. Даже можно найти материалы от 2011 года, в которых рассказывают принципы региональной организации службы технической поддержки ведущих компаний (те самые индусы, которые не помогут, но посочувствуют). Однако есть большое но…

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

1) Оперативный ответ на вопрос пользователя на 19% повышает вероятность получить от него повторный запрос. И, как правило, такой запрос способен решить сам пользователь, уделив на это 3-4 минуты своего времени.

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

Министр связи Николай Никифоров заявил, что за "небыстрые" три года министерство планирует вырастить такую сильную ИТ-отрасль, что зарубежное ПО стране не понадобится.

Читать полностью »

В апреле компания SRI International (Stanford Research Institute) продемонстрировала технологию Diamagnetic Micro Manipulation (DM3) для управления крошечными «микророботами».

Читать полностью »

Kepler: умный детектор утечек газа и СО

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

Централизованная система газоснабжения, водоснабжения и канализации — вот они, блага современного общества. Что касается системы газоснабжения, то кроме удобства, она представляет собой еще и известную опасность: плохо пригнанные стыки труб, поврежденный гибкий трубопровод для подключения плиты, или даже выливающаяся за края кастрюли кипящая вода, вытекающая на газовую конфорку. Все это может привести к утечке газа, увеличению концентрации угарного газа (СО), что напрямую угрожает жизни и здоровью человека.

Читать полностью »

Как мы 5 лет шли к проекту [#tceh] и чего, кроме мозгов, не хватает русским IT стартапам

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

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

Вот прямо сейчас кончаются времена, когда многие делали форменную туфту для получения лёгких денег по аналогу бума доткомов. И заявляли, что «начнём мы, когда найдем инвестора». Модель была простая: бралась идея с потолка, по ней ничего не делалось, но находился инвестор. По возможности — лох, не особо смыслящий в IT. Полученные деньги вкладывались в прототип и массу пиара, затем разыскивался инвестор второго раунда. Дальше стандартно: «когда водка выпита, выясняется, что джип разбит…». И проект заканчивался.

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

Поиск пути через NavMesh на ActionScript – CrossBridge порт Recast Navigation

В этой статье я расскажу об опыте переноса C++ кода на ActionScript с помощью FlasCC компилятора и покажу, как с его помощью мне удалось портировать довольно большой объем полезного кода, решающего задачу поиска пути. В конце будет демо и ссылка на репозиторий с кодом. А пока пара слов о том, с чего вообще все началось.
Читать полностью »

Занудное и не музыкальное вступление

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

image

Так получилось, что мимо, совершенно не навязчиво пробегали «геймерские наушники», и вначале я совсем не обратил на них какого либо внимания. Но чуть позже мелькнула мысль, интересно, а что нынче предлагают на рынке в категории «Наушники для геймеров». В своё время, я искал себе гарнитуру, которая могла бы совместить функции удобной гарнитура для игр и VoIP, и одновременно хороших наушников для музыки.
На тот момент выбор остановился на наушниках Siberia v2 от SteelSeries, это действительно были хорошие наушники, которые отлично показали себя в играх и одновременно достойно «играли» музыку. К моему сожалению, от них мне пришлось отказаться по одной простой причине – они заметно давили мне на голову, и к тому же в них было жарко ушам (моим собственным). И как бы они мне не нравились технически, больше двух часов в них я провести не мог, в общем не сложилось.
Свою проблему я решил с помощью не замысловатой беспроводной гарнитуры для игр и скайпа, а для музыки взял довольно дорогие беспроводные Sennheiser RS180, которые до сих пор полностью устраивают меня и мягкостью посадки и качеством звучания.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js