Как стать автором
Обновить
0
0
Кирилл Березин @Offenso

Пользователь

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

Восстановление расфокусированных и смазанных изображений. Повышаем качество

Время на прочтение5 мин
Количество просмотров210K
Представляю вашему вниманию заключительную статью из трилогии «Восстановление расфокусированных и смазанных изображений». Первые две вызвали заметный интерес — область, действительно, интересная. В этой части я рассмотрю семейство методов, которые дают лучшее качество, по сравнении со стандартным Винеровским фильтром — это методы, основанные на Total Variaton prior.
Также по традиции я выложил новую версию SmartDeblur (вместе с исходниками в open-source) в которой реализовал этот метод. Итоговое качество получилось на уровне коммерческих аналогов типа Topaz InFocus. Вот пример обработки реального изображения с очень большим размытием:


Читать дальше →
Всего голосов 355: ↑352 и ↓3+349
Комментарии86

Приложения из высокоскоростного будущего от Mozilla

Время на прочтение3 мин
Количество просмотров7.7K
В июне Mozilla и Национальный научный фонд объявили конкурс Mozilla Ignite. В течение первого этапа конкурса с бюджетом в $500 000, две организации пригласили всех желающих делиться идеями приложений, которые могли бы использоваться в сверхбыстрых сетях нового поколения. Эти идеи должны были быть связаны с образованием, здравоохранением, общественной безопасностью, экологически чистой энергией, транспортом, развитием трудовых ресурсов и перспективными технологиями. Сегодня Mozilla и Национальный научный фонд объявили восемь победителей и запустили второй этап программы, которая направлена на воплощение этих идей в жизнь.

Вот победившие идеи:

Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии3

LZW-сжатие строк на javascript и распаковка средствами PHP

Время на прочтение2 мин
Количество просмотров14K
Буквально вчера столкнулся с ситуацией, что не смог найти рабочих классов/модулей по сжатию/распаковке строк алгоритмом LZW. Точнее сказать: jsCompress-jsDecompress — работает. PhpCompress-PhpDecompress — работает. А вот jsCompress-PhpDecompress либо возвращает вообще что-то неведомое, либо пустую строку. Честно сказать не знаю, может такой проблемы с ANSI и нет, но вот с utf-8 она очень явно проявляется. Потратив несколько часов на решение проблемы я решил опубликовать готовые к работе функции на хабре.
Читать дальше →
Всего голосов 16: ↑15 и ↓1+14
Комментарии9

Вслед за malware, Punto (Yandex) тоже решил нарушать интерфейс

Время на прочтение2 мин
Количество просмотров74K
В последние дни, наверное, все, использующие Punto Switcher (начиная с некоторой, не очень старой версии) и имеющие выход в интернет, получили такое сообщение, как на скриншоте:
Punto Switcher: доступно обновление.

Что же в этом криминального, спросит читатель?
Суть ситуации подсказывает слово «все» в первом предложении. «Все» — это означает "даже те, кто не собирался узнавать и обновлять". Иллюстрацию поясняет следующий скриншот:
на котором видно, что в настройках проверка обновлений отключена
Всего голосов 151: ↑116 и ↓35+81
Комментарии122

Потрясающая, но невидимая глубина

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


Вы только что зашли на страницу Google.

Просто, не так ли?

Что же на самом деле произошло?

Ну, если вы немного понимаете, как работают браузеры, то все не так просто. Вы только что задействовали HTTP, HTML, CSS, ECMAscript и прочее. В действительности, это такие невероятно сложные технологии, что от них у любого инженера голова пойдет кругом, стоит лишь попробовать поглубже вникнуть в них. И нет ни одной компании, которая могла бы справиться с ними в одиночку.

Давайте упростим.

Вы только что установили соединение с www.google.com.

Просто, не так ли?

Что же на самом деле произошло?
Читать дальше →
Всего голосов 309: ↑245 и ↓64+181
Комментарии307

Одно предложение, которое делает нас сильнее

Время на прочтение2 мин
Количество просмотров93K
Это мой самый короткий топик, суть которого в одном предложении. Часто именно с этого предложения начинается успешный стартап, бизнес и любое другое начинание.

Это шаблон описания сути вашей компании или проекта в одном предложении. Я открыл его для себя во время стажировки в США. Составив его, мы реально становимся сильнее. В последствии мне это помогло выбрать правильный курс, сфокусироваться и расставить приоритеты.
Читать дальше →
Всего голосов 198: ↑168 и ↓30+138
Комментарии51

Непрерывная интеграция за доллар в день

Время на прочтение7 мин
Количество просмотров3.4K
Данная статья является переводом статьи Джеймса Шора "Continuous Integration on a Dollar a Day". Ссылка на эту статью попалась мне в книге "Непрерывное развертывание ПО".

Есть более простой и дешёвый способ осуществления непрерывной интеграции, чем использование сервера сборки подобно CruiseControl. На самом деле, это настолько просто, что вы можете начать её выполнять прямо в эту секунду и прекратить плохо себя чувствовать из-за отдела IT, пока ещё не одобрившего ваш запрос на сервер сборки.
(Хотите небольшой неэтичный секрет? То, что я собираюсь вам рассказать, лучше, чем использование CruiseControl!)
Читать дальше →
Всего голосов 11: ↑8 и ↓3+5
Комментарии12

Удобные классы для получения статусов IM на PHP

Время на прочтение3 мин
Количество просмотров1.5K
Вдохновившись темой получения статусов мессенджеров на PHP, я решил структурировать код получения статусов, так и родился мой небольшой проект.

Основная концепция моего проекта такова:
1. ООП
2. Использование универсальных и удобных велосипедов классов для основных и вспомогательных функций
3. Получение статуса как описанного в enum кода, но не текстовым или иным сообщением, отделение вида от контроллера.

Подробное описание проекта
Всего голосов 16: ↑10 и ↓6+4
Комментарии3

Facebook хранит данные в одном дата-центре и обрабатывает 500 Тб данных в день

Время на прочтение2 мин
Количество просмотров3.3K
Вице-президент по инфраструктуре крупнейшей социальной сети мира, которая переживает не лучшие дни на фондовой бирже, Джей Перикх (Jay Parikh) рассказал журналистам о некоторых статистических показателях работы своей компании, что позволяет оценить масштаб данных и число пользователей, активно работающих с Facebook.

Прежде всего оказалось, что в отличие от многих компаний, которые строят распределённую сеть дата-центров для облегчения доставки контента пользователям из различных регионов, Facebook хранит все данные в одном «кластере» объёмом более 100 Пб, что больше любого из кластеров дата-центров компаний, сравнимых по масштабам с Facebook. Это позволяет инженерам оперативно получать доступ к сети и контролировать её состояние.

Узнать подробности
Всего голосов 30: ↑25 и ↓5+20
Комментарии52

Как написать эффективное коммерческое предложение

Время на прочтение3 мин
Количество просмотров252K
В очередной раз сел писать типовое коммерческое предложение для новой услуги нашей компании, и словил себя на мысли, что хорошо было бы иметь для себя какой-то краткий мануал на эту тему. Так как коммерческие предложения я пишу по мере надобности (а это достаточно редко), навыки теряются, и каждый раз приходиться рыться в своих записках сумасшедшего записях на эту тему и каждый раз заново «изобретать велосипед». А чтобы мои труды не пропадали зря, я решил из всего этого составить статью для хабра.
Читать дальше →
Всего голосов 39: ↑31 и ↓8+23
Комментарии37

PuperGrep — логи в браузере в реальном времени

Время на прочтение2 мин
Количество просмотров13K
Вы не любите смотреть логи в консоли или вам не позволяют их любить, а следить за ходом дел как-то нужно?

PuperGrep — просмотрщик логов в браузере, который работает как tail -F, grep и подсвечивает самое интересное в вашем браузере. Или даже на вашем android, iPhone или iPad.

Скриншот PuperGrep

Возможности и демо
Всего голосов 82: ↑76 и ↓6+70
Комментарии29

PHP: фрактал плохого дизайна

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

Предисловие


Я капризный. Я жалуюсь о многих вещах. Многое в мире технологий мне не нравится и это предсказуемо: программирование — шумная молодая дисциплина, и никто из нас не имеет ни малейшего представления, что он делает. Учитывая закон Старджона, у нас достаточно вещей для постижения на всю жизнь.

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

PHP — единственное исключение. Фактически каждая деталь PHP в какой-то мере поломана. Язык, структура, экосистема: всё плохо. И даже нельзя указать на одну убийственную вещь, настолько дефект систематичный. Каждый раз, когда я пытаюсь систематизировать недостатки PHP, я теряюсь в поиске в глубину обнаруживая всё больше и больше ужасных мелочей(отсюда фрактал).

PHP — препятствие, отрава моего ремесла. Я схожу с ума от того, насколько он сломан и насколько воспеваем каждым уполномоченным любителем нежелающим научиться чему-либо ещё. У него ничтожно мало оправдывающих положительных качеств и я бы хотел забыть, что он вообще существует.
Читать дальше →
Всего голосов 450: ↑392 и ↓58+334
Комментарии538

Правильная обработка ошибок в PHP

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

Что я понимаю под правильной обработкой:


  • Универсальное решение, которое можно вставить в любой существующий код;
  • Легко расширяемое решение;
  • В PHP аж три «механизма ошибок»: собственно ошибки (error), исключения (exception) и утверждения (assertion). Свести три механизма к одному — exception. В комментариях к предыдущей статье на эту тему выражалось мнение, что exception это плохой и/или сложный метод обработки ошибок. Я так не считаю и готов это обсудить в комментариях;
  • Опциональное логирование;
  • Общий обработчик exception, который будет поддерживать разные форматы вывода и debug/production режимы;
  • В debug режиме должен выводится trace. Требования к trace: компактный, понятный и по возможности ссылки на открытие файлов в IDE.

Теперь по порядку
Всего голосов 105: ↑84 и ↓21+63
Комментарии102

Google прекратит отслеживать поведение пользователей в своём браузере

Время на прочтение2 мин
Количество просмотров5.9K
Скандалы, постигшие Google на этой неделе, когда поисковому гиганту пришлось отвечать на обвинения в использовании нестандартных манипуляций с cookie в Safari и Internet Explorer, привели к тому, что компания в лице её вице-президента Susan Wojcicki пообещала к концу этого года внедрить с Chrome функциональность «Do not track».

Механизм «Do not track» для предотвращения отслеживания пользователей в сети был изначально предложен сообществом Mozilla и впервые реализован в web-браузере Firefox 4. Немногим после, этот же механизм появился и в Internet Explorer 9; Safari имеет его с версии 5.1. В Mozilla не остановились и в недавней версии Firefox 9, кроме HTTP-заголовка DNT и соответствующего блока настроек, добавили DOM-интерфейс для проверки и управления работой «Do not track» из JavaScript. Только Google, бизнес которой основан на таргетированной рекламе и изучении предпочтений пользователей, медлила. (Opera две недели назад выпустила экспериментальный билд с Do not track).
Узнать подробности
Всего голосов 36: ↑26 и ↓10+16
Комментарии38

ГЛОНАСС модуль ГЕОС-3: подключение и использование

Время на прочтение3 мин
Количество просмотров18K
Давно хотел потрогать руками Глонасс, но до недавнего времени цена встраиваемых модулей с поддержкой Глонасс была совершенно неприличной, как и их доступность. Волей случая, оказался у меня инженерный образец Глонасс+GPS модуля Геос-3 (он выходит в серийное производство в марте-апреле 2012г.), и моими результатами работы с ним я и хотел бы поделиться.

Зачем нужен Глонасс, если и GPS работает нормально? Справа как раз такой пример. При 23 спутниках выше горизонта, в окно видно только 3, 1 GPS и 2 GLONASS. В таких условиях каким бы крутым GPS приёмник ни был, он не сможет определить координаты вообще, а для комбинированного GPS+Глонасс приемника тут фатальных проблем нет.
Читать дальше →
Всего голосов 50: ↑47 и ↓3+44
Комментарии27
12 ...
11

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Зарегистрирован
Активность