Василий @PyroRed
Пользователь
Заказывая оптимизацию сервера у хостера — держи ухо востро
3 min
3.1K
Это была бы рядовая и унылая статья про nginx и opcode-кеширование, если бы сервер не был до этого «прооптимизирован» техподдержкой хостера :-)
О том, что я обнаружил в процессе оптимизации, я и пишу эту небольшую заметку, дабы уберечь других от подобных фокусов хостеров. :-)
+137
Учись правильным вещам
4 min
12K
Я бы хотел сегодня привести очень интересный отрывок из его дневника. Сегодня модно писать о том, как многое успевать, как быть эффективным, ка организовать бизнес и т.д. и т.п. К сожалению, как заметил Стивен Кови в своей книге «7 навыков высокоэффективных людей» (сам бы в жизни не читал по причине такого названия, но друг очень рекомендовал, прочитал книгу, очень доволен) сегодняшняя литература об управлении и личной эффективности сводиться к простому выписыванию рецептов решения стандартных проблем. Что-то типа аспирина на все случаи жизни. Редко встретишь книгу или статью затрагивающую глубинные мотивы, принципы внутренней жизни и целостности человека. Но сейчас не об этом… Хочу поделиться отрывком из дневника Франклина. Этот человек много достиг, поднялся с низов общества не имея официального образования, уверен, что много можно почерпнуть из его жизни.
+104
Дополнительные 24 часа в сутках. Игры со временем
8 min
17KМечта многих моих друзей и знакомых, чтобы у них было больше времени. На что, вопрос второй. Кому-то время нужно на семью, кому-то на любимую работу, кому-то на отдых. Но время, это тот ресурс, которого не хватает у нас всех. Мне удалось спрессовать время и получить в сутках, вначале лишние десять минут, потом час, потом еще несколько часов. За десять лет, время спрессовалось так, что в моих сутках около 48 часов. За неделю я успеваю сделать столько, сколько многие люди за две, три, а то и месяц. Без ущерба личной жизни, качеству работы, не с помощью бессонных ночей и постоянных авралов. В небольшой заметке постараюсь изложить основные положения той системы, которой придерживаюсь, чем она помогает мне, какие слабые и сильные стороны в ней есть. Чтобы изложить все приемы и уловки, понадобится не один материал, рассматривайте эту заметку, как вводную. Если вам понравится, и вы скажете, что желаете прочитать продолжение, то оно появится.
В момент написания понял, что текст получается огромным, поэтому пока даю первый кусочек. Иначе, будет тяжело читать.
Время это не только физическая величина, но и психологическая
У каждого из нас есть часы и мы привыкли, что время окружает нас в повседневной жизни. Мы встаем по будильнику к определенному времени, сетка телепередач привязана к конкретным часам, даже магазины работают в определенные часы. И с детства большинство из нас начинает считать время величиной неизменяемой. Однако, время это еще и психологический параметр. Одни и те же события могут занимать в нашем сознании разные отрезки времени, а в реальной жизни они же займут ровно минуту. Время в каждом из нас течет с различной скоростью и зависит от нашего психологического восприятия. Мы подгоняем наше восприятие времени под внешние ориентиры (часовую сетку), но с разной степенью успешности.
В момент написания понял, что текст получается огромным, поэтому пока даю первый кусочек. Иначе, будет тяжело читать.
Время это не только физическая величина, но и психологическая
У каждого из нас есть часы и мы привыкли, что время окружает нас в повседневной жизни. Мы встаем по будильнику к определенному времени, сетка телепередач привязана к конкретным часам, даже магазины работают в определенные часы. И с детства большинство из нас начинает считать время величиной неизменяемой. Однако, время это еще и психологический параметр. Одни и те же события могут занимать в нашем сознании разные отрезки времени, а в реальной жизни они же займут ровно минуту. Время в каждом из нас течет с различной скоростью и зависит от нашего психологического восприятия. Мы подгоняем наше восприятие времени под внешние ориентиры (часовую сетку), но с разной степенью успешности.
+145
Автоматизация очистки снимков документов с помощью Sikuli
10 min
8.4KНекоторое время назад меня попросили расширить один давний комментарий до полноценного топика. Не думаю, что сам по себе он достаточно интересен, но у меня возникла идея: почему бы не совместить полезное с приятным и не познакомиться поближе с одним любопытным инструментом, новость о котором недавно облетела все айтишные ресурсы.
Основная задача, которую будем решать в рамках данного топика — подготовка сканов и фотографий письменных источников (книг, лекций и т.п.) для их печати, компактного хранения, упаковки в djvu и т.п.
Photoshop и FineReader рассматривать не будем. Хотя они и предоставляют ряд полезных инструментов, но стоят денег, вообще говоря.
При наличии сканера обычно всё просто: получаются изображения достаточно хорошего качества, чтобы можно было обойтись минимальной обработкой.
С фотографиями интереснее: добавляются проблемы с освещением и геометрические искажения. Увы, исправление геометрических искажений автоматизировать, как минимум, сложно. А вот с освещением и фоном вполне можно побороться. Чем и займёмся.
Проблема
Основная задача, которую будем решать в рамках данного топика — подготовка сканов и фотографий письменных источников (книг, лекций и т.п.) для их печати, компактного хранения, упаковки в djvu и т.п.
Photoshop и FineReader рассматривать не будем. Хотя они и предоставляют ряд полезных инструментов, но стоят денег, вообще говоря.
При наличии сканера обычно всё просто: получаются изображения достаточно хорошего качества, чтобы можно было обойтись минимальной обработкой.
С фотографиями интереснее: добавляются проблемы с освещением и геометрические искажения. Увы, исправление геометрических искажений автоматизировать, как минимум, сложно. А вот с освещением и фоном вполне можно побороться. Чем и займёмся.
+24
Немного шаблонизирования
2 min
1.6KНе так давно из лекции Дугласа Крокфорда я узнал об очень интересной технике «шаблонизирования» в JavaScript. Основная цель техники заключается в том, что мы получаем с сервера JSON и потом как-то формируем из этого HTML. Во многих ситуациях этот процесс оставляет желать лучшего потому, что формирование HTML происходит или с помощью конкатенации строк или ряда операций createElement, appendChild и т.п. Возможно многие уже знают об этом решении, но для тех кто не знал надеюсь будет полезно.
+63
Creating Scalable Vector Graphs with PHP
15 min
11KTranslation
Как и большинство разработчиков PHP я знаком с расширением GD, которое позволяет достаточно просто создавать изображения в форматах JPEG, GIF и PNG. Расширение очень удобно, когда надо сделать сложные изображения из динамически получаемых данных в режиме он-лайн.
Обратной медалью GD является то, что изображения создаются в растровом формате. Изменение размеров изображения ухудшают его качество.
Обратной медалью GD является то, что изображения создаются в растровом формате. Изменение размеров изображения ухудшают его качество.
+50
Что могут ERP
2 min
2.7KВот есть рынок ERP-систем. Большой, вроде как растущий рынок (сейчас, правда, очень сомнительно, что он растет). Ежегодно какие-то умные дядьки его оценивают, публикуют страшные для восприятия цифры. На рынке есть некое количество неких программных продуктов, количество которых поддается счету. Это и есть продукты этого рынка. А что могут эти продукты?
+15
Медленные и/или ресурсоёмкие задачи в коде: отложенные задания, очереди, задачи с ручной обработкой
2 min
4.4KПубликую по просьбе eugenioz.
При работе больших Web проектов бывают такие задачи, выполнение которых не является необходимым прямо сейчас, однако действия критические и выполнить их обязательно. Такие действия можно проводить прямо в коде и при неудачной попытке повторять. Но, на мой взгляд, подобное лучше сразу выполнять вне основного кода задачи: этим разгружается код и достигается однообразие выполнения.
Общим подходом здесь является создание очередей выполнение и отложенных заданий. Основные примеры: пересылка/верификация данных у сторонних сайтов; передача данных от реселлерской панели на основной сайт; передача заданий, которые не могут быть выполнены автоматически, на ручную обработку.
В качестве средства распределения задач предлагаю вашему вниманию PHP-класс Tasks.
Код класса
При работе больших Web проектов бывают такие задачи, выполнение которых не является необходимым прямо сейчас, однако действия критические и выполнить их обязательно. Такие действия можно проводить прямо в коде и при неудачной попытке повторять. Но, на мой взгляд, подобное лучше сразу выполнять вне основного кода задачи: этим разгружается код и достигается однообразие выполнения.
Общим подходом здесь является создание очередей выполнение и отложенных заданий. Основные примеры: пересылка/верификация данных у сторонних сайтов; передача данных от реселлерской панели на основной сайт; передача заданий, которые не могут быть выполнены автоматически, на ручную обработку.
В качестве средства распределения задач предлагаю вашему вниманию PHP-класс Tasks.
Код класса
+4
Харумамбу.ру — теперь еще больше орехов!
1 min
950
Около месяца назад я писал о Харумамбу.ру, месте, где отображаются все фриланс-проекты рунета в реальном времени.
Благодаря Хабрасообществу я получил огромное количество обратной связи, которая помогла существенно улучшить сайт, и сегодня я рад представить на суд общественности обновленную версию фриланс-аггрегатора.
Среди прочих нововведений:
- изменился дизайн сайта
- введены категории
- подключено множество новых бирж
- появилась возможность выгружать проекты через RSS
- возможность открывать ссылки в новом/текущем окне
- появилась возможность приостановить подгрузку новых проектов
+39
Установка node.js на Linux, FreeBSD, Windows
6 min
85Knode.js — серверный асинхронный Javascript, превосходный инструмент для создания серверной части COMET приложений, в частности, для игрушек, чатов, и других высоконагруженных проектов, использующий синтаксис Javascript, прекомпилируемый в машинный код, работающий на скорости, сравнимой с кодом на C++, очень быстрый, способный держать 10 — 12 тысяч подключений, и не создающий отдельного процесса/не интерпретирующий себя заново/не запускающий процесс при каждом новом клиенте. Использует в качестве основы V8 — движок Javascript от Google. Удобные возможности, можно установить значение переменной при одном посетителе, и считать это значение при ответе другому.
Обращаю внимание на то, что если вы не программировали, например, на Python или Ruby, только на PHP, не обходите его стороной, это не ещё один незнакомый язык. И в этом его преимущество — Javascript — знакомый язык, особенно для тех, кто программировал на PHP+Javascript, но PHP не позволял очень многих вещей, особенно в связке с Apache, например, аплоад файлов с полосой загрузки (без Flash), возможность низкоуровневого управления сетью (возможность написать, например, клиента или сервер Mysql или прокси-сервер вроде nginx).
О гибкости языка говорит тот факт, что расширения для работы с MySQL, например, написаны на самом Javascript.
Я планировал написать статью с описанием этой замечательной системы, с примерами, но на момент чтения читателю хорошо бы иметь под рукой установленную версию node.js. Поэтому этот пост о том, как установить node.js, в том числе и на Windows, что актуально в связи с недавним появлением порта под cygwin. (Да, есть информация о том, где скачать node.exe)
Обращаю внимание на то, что если вы не программировали, например, на Python или Ruby, только на PHP, не обходите его стороной, это не ещё один незнакомый язык. И в этом его преимущество — Javascript — знакомый язык, особенно для тех, кто программировал на PHP+Javascript, но PHP не позволял очень многих вещей, особенно в связке с Apache, например, аплоад файлов с полосой загрузки (без Flash), возможность низкоуровневого управления сетью (возможность написать, например, клиента или сервер Mysql или прокси-сервер вроде nginx).
О гибкости языка говорит тот факт, что расширения для работы с MySQL, например, написаны на самом Javascript.
Я планировал написать статью с описанием этой замечательной системы, с примерами, но на момент чтения читателю хорошо бы иметь под рукой установленную версию node.js. Поэтому этот пост о том, как установить node.js, в том числе и на Windows, что актуально в связи с недавним появлением порта под cygwin. (Да, есть информация о том, где скачать node.exe)
+56
WebSocket: будущее уже здесь!
3 min
15KСегодня я вкратце расскажу о технологии WebSocket, о предпосылках к её появлению, о текущих проблемах и об их решениях.
+54
Fugue Icons 2.9.3a
1 min
2.4K
Совсем недавно существенно обновился набор замечательных иконок Fugue Icons от Yusuke Kamiyamane. Теперь их 2,926 (16х16) + 210 (24х24) + 46 (32х32) = 3182 качественные иконки для вашего сайта. В архиве также имеется версия без теней.
Лицензия Creative Commons Attribution 3.0 позволяет использовать иконки в любых целях со ссылкой на автора.
Превью 3Mb
Архив 4.9Mb
Архив+исходники 24.8Mb
+118
Аутичный onPHP: обзор
10 min
7.1KПриветствую, хабралюди.
OnPHP — это фреймворк, как не трудно догадаться, написанный на PHP. Как и любой подобный инструмент он обладает своими преимуществами и недостатками и, как я считаю, первых у него больше.
Как ни странно, на хабре я не нашел ни одного топика, посвященного этому фреймоврку. Видимо причина в том, что у фрейморка напрочь отсутствует документация, отчего он напоминает «фреймворк в себе» и «для своих». Однако это не совсем так, но об этом чуть позже.

Как ни странно, на хабре я не нашел ни одного топика, посвященного этому фреймоврку. Видимо причина в том, что у фрейморка напрочь отсутствует документация, отчего он напоминает «фреймворк в себе» и «для своих». Однако это не совсем так, но об этом чуть позже.
+35
Как прокачивать мозг
8 min
174KВ этой теме я хочу поделиться своими знаниями про устройство мозга и тем, как применяю это на практике.

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

Итак, как известно, мозг — важнейший орган нашего тела. Кто-то говорит, что он — самая сложная вещь во вселенной. И незнание некоторых его особенностей может очень плачевно сказать на жизни человека.
Но обо всем по порядку.
Понимание роли мозга
Нет невежества страшнее, чем невежество по отношению к самому себе.
Мозг управляет почти всем в нашем организме — от дыхания, работы органов чувств до сложных мыслительных процессов и воображения. Существует множество методик и советов по развитию, однако, как я убедился, мало какие делают упор на роль мозга в процессе.
+221
Sage: математика open source
2 min
12KМатериал публикуется в рамках проекта Computer Science Student. Блога о математике с удивлением не обнаружил, возможность создать новый блог с удивлением не обнаружил тоже.
Сегодня я хочу познакомить вас с Sage.
Одним из курсов в последнем семестре у меня был Mathematical Software, где мы изучали фундаментальные алгоритмы, лежащие в основе почти всех математических операций, проводимых в компьютере (удобные для вычислений виды представления данных, быстрое умножение, трансформации Фурье, алгоритм Карацубы и т.д.). Курс не был похож на другие: к концу семестра в классе осталось только трое человек; не было никаких тестов или экзаменов, финальная оценка состояла из двух домашних заданий и одного проекта; и, наконец, я давно не исписывал сотню с лишним страниц тетради в течение одного курса. Практическая часть — работа с системой Sage.
Sage (анг. 'Мудрец') — система компьютерной алгебры покрывающая много областей математики, включая алгебру, комбинаторику, вычислительную математику и матанализ. Первая версия Sage была выпущена 24 февраля 2005 года в виде свободного программного обеспечения с лицензией GNU GPL. Первоначальной целью проекта было «создание открытого программного обеспечения альтернативного системам Magma, Maple, Mathematica, и MATLAB». Разработчиком Sage является Уильям Стейн — математик Университета Вашингтона.
Для финального проекта нужно было сделать что-нибудь полезное для сообщества Sage. Учитывая приличную нагрузку из-за других курсов, мы (я и мой друг Темирлан) решили пойти путем наименьшего сопротивления и сделать русскоязычную документацию для Sage. Мы перевели официальный туториал, а я записал четыре скринкаста.
Сегодня я хочу познакомить вас с Sage.
Одним из курсов в последнем семестре у меня был Mathematical Software, где мы изучали фундаментальные алгоритмы, лежащие в основе почти всех математических операций, проводимых в компьютере (удобные для вычислений виды представления данных, быстрое умножение, трансформации Фурье, алгоритм Карацубы и т.д.). Курс не был похож на другие: к концу семестра в классе осталось только трое человек; не было никаких тестов или экзаменов, финальная оценка состояла из двух домашних заданий и одного проекта; и, наконец, я давно не исписывал сотню с лишним страниц тетради в течение одного курса. Практическая часть — работа с системой Sage.
Sage (анг. 'Мудрец') — система компьютерной алгебры покрывающая много областей математики, включая алгебру, комбинаторику, вычислительную математику и матанализ. Первая версия Sage была выпущена 24 февраля 2005 года в виде свободного программного обеспечения с лицензией GNU GPL. Первоначальной целью проекта было «создание открытого программного обеспечения альтернативного системам Magma, Maple, Mathematica, и MATLAB». Разработчиком Sage является Уильям Стейн — математик Университета Вашингтона.
Для финального проекта нужно было сделать что-нибудь полезное для сообщества Sage. Учитывая приличную нагрузку из-за других курсов, мы (я и мой друг Темирлан) решили пойти путем наименьшего сопротивления и сделать русскоязычную документацию для Sage. Мы перевели официальный туториал, а я записал четыре скринкаста.
+76
Визуальный редактор на jQuery
2 min
14K
В мире визуальных редакторов есть CKeditor, есть tinyMCE — монстрообразные, не гибкие, их сложно изменять под задачи сайтов и интерфейсов. Есть небольшие, простые, они часто с ужасным дизайном, не развиваются, не поддерживаются. Как настоящий разработчик, несколько лет назад я решил написать свой редактор и в течение этого времени постоянно развивал его и упрощал. Суть редактора постепенно свелась к простым требованиям:
- он должен быть красивым и одновременно ненавязчивым, чтобы вписывался без внешних изменений почти в любой интерфейс;
- обязательно быстрым и легкий, потому что никому не нравится сидеть даже полминуты в ожидании загрузки всех кнопок и плагинов;
- гибкий для разработки, доработки и встраивания под все возможные нужды;
- с простым и понятным интерфейсом. В идеале визуальный редактор — это просто поле для ввода текстов, без лишних кнопок и функций. Просто люди пишут тексты в вебе и это все что им нужно.
+194
Тренировка памяти
3 min
46KВы когда-нибудь задумывались, насколько важна память для человека и конкретно для вас? Что можно достичь, с помощью хорошей памяти? А давайте прикинем прямо сейчас!? Для начала я думаю, стоит вспомнить образование и работу: прочитали книгу за несколько дней и все запомнили, экзамены за вечер на 5, язык программирования за месяц… можно продолжать долго.
Некоторые люди рождаются с феноменальной памятью, а остальные могут память тренировать и достигнуть хоть и не феноменальных результатов, но очень даже приличных, которые позволят достичь очень больших высот, не говоря уже о довольно простых вещах, перечисленных чуть выше… Поэтому моя заметка именно о тренировке памяти обычных людей: сжато и по сути.
Некоторые люди рождаются с феноменальной памятью, а остальные могут память тренировать и достигнуть хоть и не феноменальных результатов, но очень даже приличных, которые позволят достичь очень больших высот, не говоря уже о довольно простых вещах, перечисленных чуть выше… Поэтому моя заметка именно о тренировке памяти обычных людей: сжато и по сути.
+58
ModularGrid — модульная сетка в браузере (и не только сетка)
1 min
10KModularGrid — это небольшая программка на javascript (около 30 КБ), которая облегчает труд HTML-верстальщика.


Основные возможности ModularGrid
- показ направляющих поверх страницы
- показ модульной сетки поверх страницы
- показ отдельно шрифтовой сетки, горизонтальной или вертикальной модульной сетки поверх страницы
- показ изображения-макета поверх страницы
- изменение размера окна браузера под указанные верстальщиком разрешения
- изменение прозрачности модульной сетки и изображения-макета
+96
phpDaemon: хорошие новости
1 min
3KВ Январе была опубликована статья phpDaemon — фреймворк асинхронных приложений. У многих она вызвала смешанные чувства: с одной стороны проект перспективен, с другой – было трудно вникнуть в недокументированный код, и хуже того – позиция автора была, скажем так, не совсем адекватной требованиям сообщества.
Но позиция автора поменялась, а с ней и многое в проекте.
Проект переехал на GitHub. Теперь методы и свойства задокументированы. API сделано более прозрачным и легким для работы, исправлено множество недочетов, повышена стабильность, изменена структура директорий.
Заполняется WIKI. Добавлено много новых возможностей, включая клиент для Postgresql.
Это принесло свои плоды: phpDaemon твердо обосновался на production-серверах многих проектов, и ведет себя стабильно, что не может не радовать.
Также появилось время на реализацию общественно полезных модулей и других фич, будем рады дельным предложениям.
Заранее благодарю за комментарии!
Но позиция автора поменялась, а с ней и многое в проекте.
Проект переехал на GitHub. Теперь методы и свойства задокументированы. API сделано более прозрачным и легким для работы, исправлено множество недочетов, повышена стабильность, изменена структура директорий.
Заполняется WIKI. Добавлено много новых возможностей, включая клиент для Postgresql.
Это принесло свои плоды: phpDaemon твердо обосновался на production-серверах многих проектов, и ведет себя стабильно, что не может не радовать.
Также появилось время на реализацию общественно полезных модулей и других фич, будем рады дельным предложениям.
Заранее благодарю за комментарии!
+44
Information
- Rating
- Does not participate
- Location
- Санкт-Петербург, Санкт-Петербург и область, Россия
- Date of birth
- Registered
- Activity