Новости информационных технологий - 29024

… и функциональное программирование тоже.

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

Потому что программирование — это искусство оперирования абстрактной информацией. Это очень сложное искусство — поскольку человеческий мозг вообще не приспособлен для оперирования абстракциями.

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

Почему я люблю функциональное программирование? Потому что оно позволяет мне держать в голове workflow моих объектов в виде конвейера, где на каждом шаге применяется новая операция.

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

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

В те времена, когда я следил за группой comp.lang.forth в Usenet, я был не единственным, кого неприятно удивляло отсутствие людей, способных выделывать интересные штуки с Фортом. Элизабет Ратер, сооснователь Forth, Inc., предложила такое объяснение: есть люди, занимающиеся реальными проблемами языка, но в ньюсгруппе они не сидят. Она это знала наверняка: её компания была создана для поддержки создания коммерческих проектов на Форте.

В 1996 году я работал над портированием игры The Need for Speed на Sega Saturn. (Эта игровая приставка вам кажется необычной для того, чтобы с ней связываться? А я занимался разработкой под 3DO и посетил конференцию Jaguar в головном отделе Atari.) Уже в 90-х было некоторое количество известных разработчиков, но ведущие специалисты, занимавшиеся оригинальной версией выпущенной в 1994 году The Need for Speed, были никому неизвестными людьми. И это несмотря на то, что они написали игру, основанную на физике твердых тел, до того, как большинство других узнали, что эти слова вообще относятся к разработке 3D-видеоигр. И сделали они это без математического сопроцессора: весь движок использовал арифметику с фиксированной запятой.Читать полностью »

Улучшаем релевантность поиска в sphinxsearchSphinxsearch является поисковым движком для быстрого fulltextsearch, может получать данные из mysql, oracle и mssql, может выступать сам хранилищем(realtime индексы). Также sphinx имеет режим работы через api и через sphinxql — аналог протокола sql(с некоторыми ограничениями), что позволяет подключить поиск через sphinx на сайте с минимальным изменением кода. Это один из немногих великих, крупных и открытых проектов разработанный в России. На моей жизни я видел как sphinx обрабатывает порядка 100-200 поисковых запросов на 2 миллиона записей из mysql и при этом сервер свободно дышал и его не тошнило, mysql начинает умирать уже на 10 запросах в секунду на аналогичном конфиге.

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

Sphinx содержит две независимые программы indexer и searchd. Первый строит индексы по данным взятым из базы данных, второй производит поиск по построенном индексу. А теперь перейдем к настройкам поиска в sphinx.

morphology

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

Пример нормализации слова стеммингом на русском.
Слова “яблоко”, “яблока”, “яблоку” будут обрезаны в “яблок” и любой поисковый запрос с вариацией слова “яблока” будет тоже нормализован и найдет записи со словами которые были описаны выше.
Читать полностью »

Некоторые художники не выносят вида своих творений когда они закончены. А я свой самый большой поклонник. O.W. Grant (Interstate 60)

Ivideon запустил облачное хранение видео

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

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

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

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

Разработчики "открытой" платформы Ouya, собравшие около 5 миллиона долларов на Kickstarter (при запрошенном миллионе), на самом деле только начали разогреваться с деньгами и продолжат поиск средств за пределами краудфандинговой площадки, заявляет глава проекта Джули Урман.

Ouya: $5 млн с Kickstarter это только начало

"Это по настоящему большое дело и оно будет дорогим", — сказала она. "Мы ищем дополнительные фонды, но что более важно, ищем их отдельно от Kickstarter".Читать полностью »

Когда я первый раз услышал об объектно-ориентированном программировании — сразу отнёсся к нему скептически. Честно говоря, даже не знаю, почему. Просто оно показалось мне каким-то неправильным. Но ООП очень быстро стало популярным (почему — я объясню ниже) и критика в его адрес превратилась в этакую «ругань в церкви». А объектно-ориентированность стала обязательной составляющей любого уважаемого языка программирования.

С ростом популярности Erlang часто стали задавать вопрос «— А Erlang — объектно-ориентированный?». Правильный ответ был бы «— Да что вы, нет!». Но мы не могли так заявлять в полный голос, поэтому пришлось выкручиваться. Мы придумали несколько достаточно нетривиальных ответов, которые бы представляли Erlang типа-объектно-ориентированным языком (для тех, кто больше всего тянет руку с этим вопросом), но при этом и не объектно-ориентированным для тех, кто на самом деле в теме.
Читать полностью »

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

О том, можно ли заработать в Китае, споры идут довольно часто. Есть издатели, утверждающие, что просто «надо уметь», есть те, кто говорит, что даже пытаться не стоит. Согласно данным, опубликованном на китайском портале tech.sina.com, правы последние: в среднем, с каждой загрузки IOS-приложения в Китае разработчик получает всего $0,03 (т.е. всего 3 цента).

image

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

В минувшую пятницу, 13 Июля, как и было обещано, состоялось открытие коворкинг-инкубатора в Самаре.

Предлагаем вам фотоотчет с этого события. Теперь мы официально работаем и ждем всех в гости.

Было очень интересно пообщаться со всеми посетившими нас людьми и мы благодарны всем за визит.

image

К открытию подготовили небольшой фуршет с канапе и шампанским. Вроде всем понравилось.
Читать полностью »


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