Как стать автором
Обновить
33
0

Управление проектами в IT

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

Dan Piponi

Время на прочтение11 мин
Количество просмотров3.2K
Резюме: В статье приводятся примеры задач, для решения которых могут понадобиться монады.

Вместо вступления (перевод начался):

Во многих «введениях в монады» монады подаются как нечто сложно-объяснимое. Я же хочу показать, что это на самом деле, они не являются чем-то сложным. В действительности, сталкиваясь с различными проблемами в функциональном программировании вы будете непреклонно приходить к различным решениям, которые часто являются примерами монад. И я надеюсь, что вы научитесь изобретать их, если вы ещё не научились. Забегая вперёд скажу, что эти решения по сути являются одним и тем же решением. После прочтения вы наверное будете лучше понимать другие работы по монадам потому, что будете узнавать всё, что вы увидите как то, что вы уже сами изобрели.
Читать дальше →
Всего голосов 36: ↑31 и ↓5+26
Комментарии47

Аутичный onPHP: обзор

Время на прочтение10 мин
Количество просмотров7.1K
Приветствую, хабралюди.

onPHP OnPHP — это фреймворк, как не трудно догадаться, написанный на PHP. Как и любой подобный инструмент он обладает своими преимуществами и недостатками и, как я считаю, первых у него больше.

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

Читать дальше →
Всего голосов 81: ↑58 и ↓23+35
Комментарии84

Nagios: оповещение с помощью SMS без Google Calendar

Время на прочтение2 мин
Количество просмотров7K
Прочитал топик SMS-уведомления из Nagios малой кровью и удивился почему автор называет это «малой» кровью…
Хочу рассказать про свой способ оповещения при помощи SMS, при котором время получения сообщения как минимум меньше и как максимум вездесущий Google не узнает номера вашего мобильного телефона.
Читать дальше →
Всего голосов 12: ↑7 и ↓5+2
Комментарии17

Отправить POST через file_get_contents()

Время на прочтение3 мин
Количество просмотров86K
Чтобы получить содержимое веб-страницы все с удовольствием используют file_get_contents(), например file_get_contents('http://www.habrahabr.ru/'). Но я уже давно наблюдаю, что, как дело доходит до того, чтобы отправить POST, разработчики используют либо CURL, либо открывают сокеты. Я не считаю, что это плохо или что не надо так делать, просто для решения простых задач можно использовать простые решения.

Я и сам так раньше делал, пока на наткнулся на понятие контекстов потоковых операций в PHP. Контекст позволяет передать дополнительные параметры потоковому обработчику. Для http например, можно сконфигурировать POST-запрос или передать дополнительные заголовки.

file_get_contents() принимает 3 параметром «контекст», который собственно и конфигурирует сам запрос.
Ниже пример такого запроса или RTFM

Читать дальше →
Всего голосов 97: ↑89 и ↓8+81
Комментарии71

Обращение к облачным хостинг-провайдерам

Время на прочтение2 мин
Количество просмотров4.6K
Прочитал анонс нового облачного хостинга и, признаюсь, очень рад тому, что облачный хостинг в рунете развивается. Будет конкуренция, будет и качество.

Исходя из собственного опыта хостинга в облаке Rackspace и желания как-то поспособствовать развитию облачного хостинга в России хочу обратиться ко всем нашим облачным хостинг-провайдерам с просьбой сделать более явную политику тарификации хостинга. Буквально такую:

Хабраэффект за 7 баксов

Обращение и предложение
Всего голосов 100: ↑95 и ↓5+90
Комментарии63

SMS-уведомления из Nagios малой кровью

Время на прочтение2 мин
Количество просмотров17K
Стоял как-то раз админ в курилке и думал — а как бы ему так в нерабочее время вдали от компьютера и интернетов узнать, что на каком-то из его серверов проблема возникла. Можно конечно посадить студента за монитор с Nagios, чтоб он если что звонил админу и говорил «Тут красненькое что-то появилось»… Стоп. Звонил. На мобильный. Нафиг студента, SMS можно получать. На этом мысль остановилась и админ пошёл пить кофе. Потом вернулся и сел за рабочее место, где в браузуре был загружен Google Calendar… и решение пришло само.
Решение
Всего голосов 33: ↑30 и ↓3+27
Комментарии120

Блочное кеширование на стороне клиента

Время на прочтение6 мин
Количество просмотров6.9K
В последнее время в высоконагруженных сайтах стали все чаще применять технику Partial Caching или блочного кеширования. Достигается это, как правило, за счет применения, казалось бы уже давно забытого, SSI или близких ему технологий (например, ESI). Например, в связках Nginx + Memcached + SSI или Varnish + ESI.

Недавно и на Хабре тоже появился топик в котором автор описывал данный метод кеширования.

В данном топике в 3м варианте решения автор предложил читателям топика привести свои варианты решения относительно данной задачи.

Этому, собственно, и посвящается этот топик.
Читать дальше →
Всего голосов 48: ↑37 и ↓11+26
Комментарии105

Smokescreen — «Flash-плеер, написанный на Javascript»

Время на прочтение3 мин
Количество просмотров2.3K
Увидел недавно топик-ссылку Smokescreen — конвертер flash в html5\js, решил сделать перевод той информации, которую я уже читал в сети про этот новый инструмент. Если коротко: Smokescreen — новый проект с открытыми исходниками, направленный на преобразование Flash в JavaScript/HTML5 для лучшего взаимодействовия с веб-страницей там, где раньше это было невозможно.
С его помощью вы можете расширить поддержку своего проекта на новые платформы без изучения новых инструментов, Flash автоматически преобразуется в JavaScript/HTML5. Smokescreen будет выпущен под open source лицензией и будет распространяться бесплатно. Стоимость поддержки и обслуживания будет низкой, чтобы вы могли убедиться, что Smokescreen работает именно так, как вам необходимо. Библиотека даст вам широкий выбор инструментов для разработки, включая разработку на JavaScript, без использования ActionScript, и разработку с подключением Flash к HTML-страницам проекта.
Читать дальше →
Всего голосов 67: ↑59 и ↓8+51
Комментарии34

WebSocket: будущее уже здесь!

Время на прочтение3 мин
Количество просмотров15K
Сегодня я вкратце расскажу о технологии WebSocket, о предпосылках к её появлению, о текущих проблемах и об их решениях.
Читать дальше →
Всего голосов 80: ↑67 и ↓13+54
Комментарии122

Мобильные — налево, компьютеры — направо

Время на прочтение1 мин
Количество просмотров8.8K
Вы обращали внимание, что при заходе на сайт www.yandex.ru, мы пытаемся определить, используете вы компьютер или мобильное устройство, чтобы показать подходящую версию главной страницы Яндекса?

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

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

http://api.yandex.ru/detector

С его помощью можно легко перенаправлять пользователей на ту или иную верстку страницы.

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

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

Наш опыт говорит, что внедрение такого кода на странице заметно увеличивает число мобильных пользователей, которые в противном случае «не переварили бы» страницу большого сайта.

Смотрите, внедряйте, делитесь результатами!

Команда с определёнными взглядами на мобильное устройство мира.
Всего голосов 127: ↑110 и ↓17+93
Комментарии110

Кеширование блоков с помощью nginx

Время на прочтение6 мин
Количество просмотров15K
nginx + SSIМногим разработчикам знакома ситуация когда кешировать страницы сайта, скажем, на 5-10 минут нельзя всего из-за одного небольшого блочка, актуальность которого нужно поддерживать если не в реальном времени, то с временем «старения» не больше 5-10 секунд. При этом посещаемость сайта продолжает расти, растет время генерации страниц и c этим надо что-то делать…
  • Вариант решения 1: Подкрутить то, до чего не доходили руки последнее полгода. Все Вас поймут и передвинут сроки на другие задачи. Вы будете в роли «Супермена» один спасать сайт от непомерной нагрузки, решая проблему «бесплатно» (без доп. вливаний в оборудование). Вам может пригодиться статья «Тюнинг nginx».
     
  • Вариант решения 2: Улучшить техническую базу (докупить мозгов на сервер, улучшить дисковую систему, поставить под БД отдельный сервер). В принципе проблема не решена, а скорее отложена. Теперь у Вас есть время «окопаться» и подготовиться ко второй волне наплыва нагрузки, она будет больше и накроет сильнее.
     
  • Вариант решения 3: Ваш вариант, о котором я, вероятно, узнаю из комментариев.
     
Позвольте предложить и мне проверенное и относительно простое решение на базе одной из старейших технологий в Web-разработке.
Читать дальше →
Всего голосов 116: ↑107 и ↓9+98
Комментарии63

Fugue Icons 2.9.3a

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

Совсем недавно существенно обновился набор замечательных иконок 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
Всего голосов 134: ↑126 и ↓8+118
Комментарии29

Исправление работы MySQL при поломке innoDB-таблиц

Время на прочтение3 мин
Количество просмотров58K
Здравствуйте!
mysql innodb
Я (быть может, как и вы) — разработчик сайтов, и мне, чтобы все мои наработки не потерялись нужен SVN. А так как я работаю не один, то еще, как минимум, и общая БД. Несколько лет назад мы приобрели NAS-сервер Synology DS-101 (Tom`s Guide или Nix), устроили там хранилище, включили базу (правда, MySQL4). Несколько лет служил он нам верой и правдой, пережил приход пьяных электриков (когда нас сначала подключили на 380В, а потом спохватились — почти все погорело), но вот… несколько недель назад база не хотела загружаться. Пришлось исправлять.

Все бы ничего, если бы этот случай не повторился…
Читать дальше →
Всего голосов 9: ↑8 и ↓1+7
Комментарии11

2000 часов в одиночестве, или как был сделан RSS reader / Я робокоп

Время на прочтение14 мин
Количество просмотров6.7K
I. Am. Robocop.Всем привет,

Собираюсь поделиться с вами технической стороной того, как я за 16 недель сделал новый вебовый rss ридер, и чуть не сошел с ума.
Отходя от долгой предыстории, будем считать, что все началось в феврале этого года, когда мы с Дэвидом (dmiloshev, UI-дизайнер) решили сделать прототип нашего детища вдвоем.
«В одиночестве» — потому, что не было никаких скрамов, совещаний, «коллективного разума», а всю техническую часть, довелось делать самому.

Если бы меня попросили описать всю статью в одном предложении, то получилось бы:
No-SQL, mongodb, node.js, фак мой мозг, Evented I/O, очереди, выводы, git, nginx, memcached, Google Reader, Atom, TTL, PHP, ZF, jQuery, выводы.
Читать дальше →
Всего голосов 258: ↑231 и ↓27+204
Комментарии173

Визуализация активности сайта с помощью codeswarm

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

Codeswarm


эта утилита визуализирует историю комитов репозитория. Она умеет сохранять кадры в отдельные файлы, которые потом можно объединить в видео с помощью, например mencoder. Для этого codeswarm нужен файл в формате xml с активностью в репозитории. Вместе с codeswarm идет скрипт, который конвертирует логи из svn, cvs и др. в собственный.

Access log


Получается, codeswarm без разницы что визуализировать, программе нужен лишь правильный xml. Поэтому я подумал, что можно применить эту утилиту для генерации видео активности на сайте. Для этого был написан конвертор access лога апача или nginx в event log. За основу был взят родной конвертор.
Читать дальше →
Всего голосов 40: ↑31 и ↓9+22
Комментарии8

Практический опыт разработки интернет-магазина на OpenCart

Время на прочтение4 мин
Количество просмотров119K
В ноябре 2009 года я познакомился с www.opencart.com и остался очень доволен этой CMS построенной с соблюдением основных принципов MVC. Это просто замечательная система код которой можно легко адаптировать под собственные нужды. Файлы системы разделены по папкам controller, model, view, language.
image
Гениально и просто. Настолько просто, что я за считанные часы понял как работает система и уже смог адаптировать несколько файлов контроллеров под свои нужды. Как CMS эту систему лучше не рассматривать в принципе! Все очень скудно и печально. Но площадка для коммерческой деятельности очень приличная. Главный лозунг сайта интернет-магазин с минимальными усилиями при разработке.

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

А теперь немного подробностей, которые могут быть интересны тем, кто интересуется Опенкартом. Публикую инфу, которая на мой взгляд может оказаться полезной и что самое важное основанную не на теоретическом опыте, а на примере использования в конкретном проекте.
Читать дальше →
Всего голосов 48: ↑40 и ↓8+32
Комментарии49

Что нужно настроить в mySQL сразу после установки?

Время на прочтение5 мин
Количество просмотров148K
Вольный перевод довольно старой статьи с MySQL Performance Blog о том, что лучше сразу же настроить после установки базовой версии mySQL.
Читать дальше →
Всего голосов 95: ↑88 и ↓7+81
Комментарии24

Облачная платформа Hivext для web разработки

Время на прочтение3 мин
Количество просмотров1.2K
image
Для читателей хабра уже не секрет что такое облачные платформы и для чего они предназначены. Тема неоднократно рассматривалась. Hivext Platform является одной из таких облачных платформ для разработки интернет приложений, но с другой «проекцией» по сравнению с GAE, Azure или Amazon.

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

Мы продолжаем развитие платформы и хотим рассказать о тех достижениях и наработках которые появились за последнее время.


Содержание

  • О платформе
  • Разработка на Java, серверном SSJS и клиентском JavaScript (HTML, CSS, XML и т.д.)
  • Клиенты для ActionScript (Flash, Flex), J2ME разработчиков
  • Библиотека решений
  • Ближайшие планы

Читать дальше →
Всего голосов 35: ↑28 и ↓7+21
Комментарии20

Отличная идея: цветовая индикация ввода пароля

Время на прочтение1 мин
Количество просмотров1.9K
Разработчик Mattt Thompson предложил, на мой взгляд, очень оригинальную и интересную идею цветовой индикации ввода пароля в поля формы. Для введенного пароля считается хэш который представляется в виде трех цветных полосок рядом с полем ввода пароля. Таким образом, во-первых, производится валидация повторного ввода пароля. А во-вторых и это самое главное, зная свой цветовой код вы сможете сразу узнать ошиблись вы или нет при первом вводе пароля.


Более подробно о идее в блоге автора. Попробовать идею на живом примере можно здесь.
Плагин для jQuery с реализацией идеи github.com/mattt/Chroma-Hash доступен по лицензии MIT.

PS: НЛО! Введи такую фичу на Хабре, поддержи оригинальную идею!
Всего голосов 181: ↑148 и ↓33+115
Комментарии101

Отладка PHP средствами Firebug

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

Отладка PHP-скриптов определенно недостаточно освещена в интернете. Потому многие, очень многие довольствуются print_r-ками. Очевидный недостаток такого способа — нельзя отладить AJAX, SOAP-сервисы, генераторы картинок и вообще скрипты, не отдающие непосредственно HTML-документов.

Javascript-разработчики используют для отладки Firebug. Как я им всегда завидовал. Лепота — выделенная консоль, net-монитор, отладчик, и все это в любимом браузере.

Так вот, нашел такое расширение Firebug — FirePHP. Оно позволяет выводить информацию в консоль Firebug непосредственно из PHP. Делается это довольно простым вызовом:
Читать дальше →
Всего голосов 84: ↑76 и ↓8+68
Комментарии69

Информация

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