Search
Write a publication
Pull to refresh
11
0
Send message

Функциональное программирование для всех

Reading time33 min
Views354K

Доброго времени суток. Это статья — перевод заинтересовавшего меня поста в блоге аспиранта Университета штата Нью-Йорк в Стоуни-Брук. Статья в доступной форме описывает основные концепции функционального программирования, их преимущества и недостатки. Думаю она будет полезна широкому кругу читателей, которые сомневаются, нужно ли им углубляться в мир функционального программирования или нет. Пожелания, предложения и замечания по переводу и терминологии принимаются по личной почте.

Мнение переводчика может иногда не совпадать с мнением автора, но переводить статью было крайне занимательно.

UPD: альтернативный вариант перевода вы можете найти на rsdn (спасибо flamingo за ссылку).
Читать дальше →

Видеокурс Fundamentals of Magento development

Reading time2 min
Views14K
image

В феврале этого года Magento сделала свой курс «Fundamentals of Magento development» бесплатным. Он стал доступен для желающих в виде видеолекций, которые до сих пор возможно просмотреть на портале training.magento.com. Курс является достаточно обширным, он охватывает все — от объяснения подхода Magento к ООП и MVC, до построения грида в adminhtml.

Читать дальше →

phpDaemon и runkit: новый уровень

Reading time3 min
Views3.9K
Сегодня я поведаю о новых вкусных плюшках phpDaemon, в том числе предоставленных PHP-модулем runkit.

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

Разверзнуть врата рая

Собираем виртуалку с phpdaemon'ном на Ubuntu 10.10

Reading time3 min
Views3.8K

Вступление


Добрый день, всем читателям Хабры. Я бы хотел рассказать всем вам очень простой и быстрый способ собрать виртуалочку с пхп-демоном и при этом не перенапрячь свой отдыхающий и празднующий мозг. Зачастую на рабочих или домашних компьютерах по тем или иным, религиозным или политическим причинам установлен Windows. Ставить на него php или nginx дело неблагодарное и уж если есть необходимость работать с phpdaemon'ом то вариантов и вовсе не остается. Необходима nix система.

В данной статье не рассматриваются вопросы почему я выбрал Ubuntu, а не Debian, зачем использовать phpdaemon а не php-fpm и т.п. Возможно, что кому-то придется столкнуться с подобной проблемой и если эта статья позволит Вам сэкономить драгоценное время и провести его с семьей или за работой — значит моя задача выполнена успешно.
Читать дальше →

phpDaemon: хорошие новости

Reading time1 min
Views3K
В Январе была опубликована статья phpDaemon — фреймворк асинхронных приложений. У многих она вызвала смешанные чувства: с одной стороны проект перспективен, с другой – было трудно вникнуть в недокументированный код, и хуже того – позиция автора была, скажем так, не совсем адекватной требованиям сообщества.
Но позиция автора поменялась, а с ней и многое в проекте.
Проект переехал на GitHub. Теперь методы и свойства задокументированы. API сделано более прозрачным и легким для работы, исправлено множество недочетов, повышена стабильность, изменена структура директорий.
Заполняется WIKI. Добавлено много новых возможностей, включая клиент для Postgresql.
Это принесло свои плоды: phpDaemon твердо обосновался на production-серверах многих проектов, и ведет себя стабильно, что не может не радовать.
Также появилось время на реализацию общественно полезных модулей и других фич, будем рады дельным предложениям.

Заранее благодарю за комментарии!

Gearman — сервер очередей: использование в проектах на PHP

Reading time9 min
Views82K
Не так давно была замечательная статья, описывающая общие принципы работы с сервером очередей Gearman. Мне бы хотелось продолжить материал, дополнив его некоторыми деталями практического применения, а именно:
— установка и управление сервером
— управление очередью — что возможно и как
— PECL и PEAR php-расширения для работы с Gearman
— мониторинг сервера
— примеры кода
— передача данных порциями
— организация параллельных вычислений в PHP

Интересно? Прошу под кат
Читать дальше →

Запуск PhpStorm из ланчера/даша Unity — не всё так просто

Reading time2 min
Views13K
Столкнулся тут с проблемой: PhpStorm — замечательная IDE от JetBrains — не закреплялась в ланчере Unity, вернее закреплялась, но после закрытия, нажатие на иконку ни к чему кроме небольшого жужжания винтом не приводило. Немного покопавшись, понял что проблема в том, что запускаю я /opt/PhpStorm/bin/PhpStorm.sh, а закрепить пытаюсь Java. Погуглив, нашёл спецификацию .desktop файлов, используемых для запуска в ланчере и создал файлик /usr/share/applications/phpstorm.desktop
[Desktop Entry]
Type=Application
Version=1.0
Name=PhpStorm
GenericName=PHP IDE
Comment=Lightweight and Smart PHP IDE
Icon=/opt/PhpStorm/bin/webide.png
Exec=/opt/PhpStorm/bin/PhpStorm.sh
Categories=Development;IDE;

Нашёл его в даше, в категории «Разработка», перетащил на ланчер, запустил и вуаля — PhpStorm запускается.

Но начав работать
Читать дальше →

Семантическая сеть, ARC2 и PHP

Reading time6 min
Views5.7K
Пока семантическая паутина только-только развивается и захолустные веб-студии не взвинчивают цены за слова семантическая и семантический давайте посмотрим на инструменты для работы с этим зверем в php.
Читать дальше →

Разработка сайта — от первой встречи с заказчиком до сдачи проекта, или как быть фрилансером и выжить

Reading time12 min
Views74K
Привет, Хабр!

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

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

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

Кому интересно — добро пожаловать под кат!
Читать дальше →

Новая функциональность в Google Chrome Canary

Reading time1 min
Views22K
Многие наверное знают о Canary — девелоперской ветке Google Chrome, которая получает ежедневные обновления и которую можно поставить параллельно со стабильной версий Хрома.
Сегодня в блоге Google Developers Blog появилась новость об очередном нововведении, которое коснулось нативных инструментов для разработчиков в Google Chrome.
Теперь у нас появилась возможность посмотреть, как будет выглядеть и вести наш сайт или веб-приложение на мобильном устройстве, имитируя нужные нам размеры экрана и тач-ивенты с помощью мыши.
Как это выглядит, можно посмотреть под катом
Читать дальше →

Удаленная замена корневой ФС в GNU/linux

Reading time9 min
Views16K
image
Иногда мне приходится сталкиваться с заменой корневой файловой системы. Имея загрузочный диск и доступ к серверу, это не сложно. Однако, я хочу поделиться опытом замены корневой ФС удаленно, через ssh, без перезагрузки.

Причины для замены коневой ФС бывают разные:
  • перевод / в LVM
  • перевод / в mdraid
  • замена типа файловой системы (ext3 => btrfs)
  • уменьшение размера ФС (resize2fs)

Читать дальше →

Эволюция архитектуры: от «самописных» сервисов к HandlerSocket

Reading time6 min
Views19K


Сегодня мы расскажем о том, как в Badoo изменился подход к проектированию нагруженных “key-value” сервисов. Вы узнаете, по какой схеме такие сервисы создавались нами несколько лет назад (использование БД в качестве репозиториев и специализированного демона как интерфейса к данным), с какими трудностями мы при этом столкнулись и к какой архитектуре в результате пришли, разрешив появившиеся проблемы.
Читать дальше →

Серверное malware или зачем нужны ssh-логгеры

Reading time5 min
Views4.4K
Доброго времени суток. Хочу рассказать вам о полезности ssh-логгеров.
В качестве серверной системы я предпочитаю использовать FreeBSD. И, как правило, устанавливаю termlog – системная утилита для логгирования ssh-сессий всех пользователей. К сожалению, сейчас в 9 версии termlog помечен как broken, потому что utmp был признан устаревшим и заменен на utmpx, поэтому termlog работает максимум только на 8 версии с небольшой правкой исходников:
Файл fileops.c, функция snp_setup
+       logname[rindex(logname,'/')-logname] = 'D';
         sm->fp= fopen(logname, "w");


Будем все же надеяться, что termlog перепишут для 9-й версии, потому что это очень полезная утилита. И вот почему. Однажды на тестовом сервере, который имел dyndns адрес и использовался для экспериментов, я установил termlog и создал пользователя test с паролем test, на котором проверял работу termlog, после чего благополучно забыл об этом пользователе. Спустя некоторое время, я обнаружил записанную ssh-сессию пользователя test, о котором кроме меня никто не знал:
Читать дальше →

Самые популярные игры и приложения для Ubuntu за март 2012 (репозиторий UALinux)

Reading time2 min
Views1.7K
imageКак администратор репозитория игр и приложений для Ubuntu, хотел бы поделится статистическим анализом за март 2012 года.
Стоит отметить, что за те два с небольшим месяца существования репозитория к нему подключилось более 35 тыс уникальных ip-адресов и было более 500 тыс обращений.

Статистика по играм за этот месяц отличается от статистики за прошлый, что говорит о том, что пользователи решили попробовать все игры, доступные в репозитории.
Читать дальше →

Стартап-линч от венчурного инвестора

Reading time3 min
Views6.7K
Привет, Хабр! Сегодня мы анонсируем новый проект — хабралинч от венчурной компании Fast Lane Ventures.



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

Чтобы отправить заявку, нужно описать проект по следующей схеме:
  1. Описание проекта
  2. Модель заработка
  3. Потенциальные клиенты
  4. Партнёры и поставщики
  5. Конкурентное окружение и рынок в целом
  6. Конкурентные преимущества
  7. План развития и стратегические цели
  8. Время на запуск до первого клиента
  9. Имеющиеся достижения (резюме) участников команды
Подробных и честных ответов на эти вопросы вполне достаточно, чтобы наш инвестиционный аналитик мог дать оценку вашему бизнесу. Оценка будет строиться по следующей схеме: сильные/слабые стороны проекта и советы. Пару таких разборов я уже видел, и, должен сказать, что комментарии весьма профессиональные, но многое, конечно, зависит от содержимого заявки — каков вопрос, таков и ответ.

Читать дальше →

Правила для стартапа в период бума инвестиций

Reading time2 min
Views976
В связи с очередным бумом доткомов в США некоторые владельцы стартапов думают только о том, как «поднять» больше денег. Это легко, когда инвесторы выстраиваются в очередь, а начинающие стартапы на посевном уровне получают по семь миллионов долларов. Сооснователь стартапа 42Floors Джейсон Фридман (Jason Freedman) рассказывает, как сейчас проходят презентации стартапов: каждому даётся по две с половиной минуты на презентацию, потом короткая сессия ответов на вопросы, никаких бизнес-планов. Аудитория из полутысячи «ангелов» жаждет вложить капитал в кого-нибудь. За пару дней легко можно закрыть раунд инвестиций с семизначной суммой, а инвесторы будут торговаться, предлагая в два-три раза больше, чем заявленный объём финансирования. Один из таких отправил Джейсону четыре письма по электронной почте, три SMS, потом звонил и прислал сообщение в LinkedIn — лишь бы вписаться до закрытия раунда.

Стартап 42Floors основан в ноябре 2011 года, он предоставляет онлайн-сервис по поиску офисных помещений. Инвестиции к марту 2012-го составили $400K.

Джейсон Фридман сформулировал несколько правил, которые нужно соблюдать стартапу на горячем рынке.
Читать дальше →

Что значат для вас юнит-тесты?

Reading time5 min
Views8K
С технической точки зрения юнит-тесты – это очень простой инструмент, основанный на паре несложных концепций: (1) тестируемый класс, (2) набор тестовых методов, завернутых в некоторый класс и (3) набор методов, с помощью которых можно удостовериться в том, что состояние тестового класса соответствует (или не соответствует) некоторому значению.

Это очень простая штуковина, которая может кардинальным образом повлиять на процесс разработки в целом. С одной стороны существует TDD (“test-first approach"), при котором тесты «драйвят» не только процессом кодирования, но и процессом проектирования (т.е. дизайном системы). С другой стороны существуют разработчики с противоположной точкой зрения, которые считают юнит-тесты пустой тратой времени, потому что они не приносят никакой ценности пользователю.

Читать дальше →

Unity3d. Уроки от Unity 3D Student (B00-B03)

Reading time5 min
Views246K
Добрый день. Предлагаю свой вариант перевода уроков по Unity3d от www.unity3dstudent.com

Введение.


Данная статья представляет из себя первый набор базовых (из раздела Beginner) уроков. Уроки в основном нацелены на изучение скриптинга и использование компонентов.
Поэтому предполагается, что с основами работы в GUI Unity вы слегка знакомы. Если нет, изучите вводный раздел на этом же сайте.
Уроки достаточно ясные и короткие, так что трудностей в процессе их изучения должно возникать минимум.

PS: А хорошо это или плохо — вопрос достаточно сложный.

В некоторых местах уроков есть минимальные косметические изменения, не затрагивающие основную суть.

Перейти к урокам

JavaScript на сервере, 1ms на трансформацию

Reading time8 min
Views32K

Зачем?



Вопрос “Зачем?” — самый главный при принятии любого решения. В нашем случае причин было несколько.

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

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

Но в Mail.Ru Group есть целая команда высококвалифицированных людей, знающих JS, способных самостоятельно написать инструмент, а самое главное — они же им и будут пользоваться.

Во-вторых, задачи. Возьмем проект Почта@Mail.ru. Мы не можем отказаться от шаблонизации на сервере – нам нужна быстрая загрузка при первом входе. Мы не можем отказаться от шаблонизации на клиенте – люди должны видеть высокую скорость реакции на их действия, а значит, обязателен AJAX и шаблонизация на клиенте.

Проблема очевидна: два набора совершенно разных шаблонов на сервере и на клиенте. А самое обидное, что решают они одну и ту же задачу. Дублирование логики нас просто измотало.

v8 — это интерпретатор JavaScript, а значит, мы можем получить один шаблон, который работает как на сервере, так и на клиенте.

В-третьих, скорость. Прочитав много статей, в которых хвалят скорость v8, решили, что надо проверить их справедливость. Но сначала нужно было понять, каким мы хотим видеть новый шаблонизатор.
Читать дальше →

Резервное копирование файлов и баз данных

Reading time2 min
Views7.8K
Возможности скрипта:
— бэкапить директории и базы данных
— загрузка архивов в локальную папку или на фтп
— информирование по email о удачном/не удачном завершении
Читать дальше →

Information

Rating
Does not participate
Location
Кокосовы (Килинг) о-ва
Date of birth
Registered
Activity