Pull to refresh
1
0
Максим @gradmax

User

Send message

Набор социальных иконок

Reading time1 min
Views133K


Доброго времени суток! Сегодня я хочу поделиться шестью наборами социальных иконок ICON.PACK, которые отрисовал на днях. Все иконки разбиты на 6 групп, отличающихся по форме.
Лицезреть иконки
Total votes 96: ↑69 and ↓27+42
Comments54

Разработка клиент-серверной инфраструктуры на javascript (часть 1 — клиент)

Reading time5 min
Views81K
image

О чем эта статья. Я хочу поделиться опытом разработки мобильного приложения на phonegap. В итоге получился целый програмный комплекс с RESTfull сервером, клиентами, да еще хостится на PaaS. Поэтому я опишу отдельно архитектуру клиентского приложения (html5 single page app, завернутое в phonegap), серверного (nodejs с swagger-node-express + node-orm2), и как разместить все это на openshift PaaS.
Читать дальше →
Total votes 13: ↑9 and ↓4+5
Comments12

Сравнение библиотек для работы с Memcached на Node.JS

Reading time5 min
Views13K
image
Хочу поделиться проделанной работой по исследованию производительности различных библиотек для работы с memcached в Node.JS. Для исследования были отобраны 4 кандидата.

Краткие описания взяты прямо из источников и приведены в оригинале. Вот получившийся список с версиями и ссылками.

  • mc v1.0.6 — The Memcache Client for Node.js (mc)
  • node-memcache v0.3.0 — A pure-JavaScript memcached library for node. (node-memcache)
  • node-memcached v0.2.6 — Fully featured Memcached client for Node.js (node-memcached)
  • memjs v0.8.0 — MemJS is a pure Node.js client library for using memcache. (memjs)

Читать дальше →
Total votes 12: ↑9 and ↓3+6
Comments12

Видео: полный цикл разработки на JavaScript

Reading time1 min
Views50K
Здравствуй, Хабр!

В этой открытой лекции я попытался сжато рассказать и показать полный цикл (full stack) разработки веб-приложений на JavaScript.

Начнем мы с короткого введения в язык, потом в двух словах поговорим о клиентской части, в частности, об MVC фреймворках вроде Angular.js, после чего перейдем на серверную часть: Node.js и MongoDB. В конце обсудим возможность автоматизации разработки и сборки проектов с помощью Grunt.js.



Скачать слайды и исходные коды.

Лекция была записана в офисе компании Chocolife, зрители – разработчики этой компании.
Total votes 57: ↑47 and ↓10+37
Comments27

Пишем HTML5-игру за 20 минут, или введение в Phaser framework

Reading time9 min
Views191K
Эта статья посвящена разработке стильных, модных и молодежных HTML5 приложений с помощью нового фреймворка Phaser. В ней описан процесс установки библиотеки и создание классической игры Pong.

Введение


Phaser — это движок для разработки мобильных и десктопных HTML5 игр, базирующийся на библиотеке PIXI.js. Поддерживает рендеринг в Canvas и WebGL, анимированные спрайты, частицы, аудио, разные способы ввода и физику объектов. Исходники доступны как для просмотра, так и для свободной модификации. Он создан Ричардом Дейви (Richard Davey), известному благодаря активному участию в сообществе программистов, использующих Flixel framework. Ричард не скрывает, что вдохновлялся Фликселем, поэтому некоторые вещи в Фазере будут знакомы опытным флешерам. Первая версия нового движка вышла 13 сентября этого года, сейчас ведется не только активное развитие библиотеки, но и написание документации, поэтому в данный момент уроков по ней, мягко говоря, немного. Что, по моему скромному мнению, следует исправлять, и прямо сейчас.
Читать дальше →
Total votes 64: ↑56 and ↓8+48
Comments23

Шесть загадок по С++

Reading time5 min
Views38K
В очередной раз наступив на досадные необязательные грабли, я решил систематизировать свои знания о них. Если вы какое-то время разрабатываете на C++, то можете и не найти здесь ничего нового, но кому-то приведенный в статье материал точно поможет. Если бы я знал это лет пять назад, то однозначно сэкономил бы несколько безвозвратно потерянных дней жизни и нервных клеток.

Чтобы было интереснее, материал представлю в виде простых задачек. Сразу подчеркну, что я не считаю приведенные примеры просчетами языка. Во многом появляется смысл и логика, если вопрос обдумать. Это скорее случаи, когда может отказать интуиция, особенно если голова забита чем-нибудь еще. Есть и пара примеров вида «Ну чего этому компилятору надо, только что то же самое работало!»

И последнее замечание. Это не будут задачи на внимательность типа «Тут я поставил точку с запятой сразу после for — а никто и не заметил». Проблемы не в опечатках. Все необходимые библиотеки можно считать подключенными — не относящийся к описываемой ситуации код я опускал, чтобы не загромождать статью.
Читать дальше →
Total votes 98: ↑63 and ↓35+28
Comments86

Создаём сайт, используя Laravel и Recurly. Часть 1

Reading time9 min
Views42K
Планирование и обработка платежей это легко, но не так легок прием регулярных платежей. Сложности могут возникнуть очень быстро. Вы должны решить, как обрабатывать отказы, данные о платежах должны быть постоянно актуальны, и поддерживать актуальность данных на сайте. И пожалуй, самый важный вопрос — держать своих пользователей в курсе платежной информации на сайте.
К счастью, Recurly — это сервис, который выполняет большую часть задач, связанных с обработкой регулярных платежей. Используя JavaScript-библиотеки, вы сможете создавать защищенные формы для отправки и обновления платежной информации, включающие в себя все важные данные платежной карты.
После того, как вы определили сумму и частоту платежей, Recurly заботится о расписании и принятии платежей, до тех пор, пока клиент не будет отписан. Recurly, также учитывает изменения тарифных планов, расчетов, внесении и вычетов дополнительных платежей.
В первой статье из двух, я покажу Вам как создать платную подписку используя сайт, созданный с использование php-фреймворка Laravel и сервиса приема платежей Recurly. Мы начнём с создания сайта с простой регистрацией, авторизацией и правами пользователя. Затем мы добавим обработку платежей, свяжем её с процессом регистрации, что позволит пользователям покупать различные тарифные планы.
Читать дальше →
Total votes 20: ↑15 and ↓5+10
Comments21

Архитектура интеллектуального Интернет-паука

Reading time4 min
Views16K

Понадобилось как-то выудить информацию из Интернета. Нашёл подходящий сайт, посмотрел на устройство страниц. Оказалось, что скрыто многое от ока всё скачивающего wget. Не помогла и стандартная сборка HTTrack. Хотел было паука для Scrapy написать, но не пришло ощущение надёжности и масштабируемости. Стал думу думать, да и велосипед изобретать, точнее свой web crawler писать.

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

Про свои предыдущие поделки на время забыл, в сторону отложил, а всё сосредоточение направил на архитектуру, статью о которой не срамно и на Хабре будет выложить.

Упрощения ради повествования было имя выбрано «ИнКр» (InCr), что является сокращением от Intellectual Crawler, а также является началом слова Incredible (невероятный).

ИнКр должен представлять собой платформу, которая сама реализует базовые функции по управлению заданиями, скачиванию и хранению документов. Со стороны же разработчика требуется написание парсеров для конкретного сайта. В ходе анализа были сформулированы следующие основные требования:
1. Возможность гибкой настройки загрузки: ограничение количества потоков, приостановка обработки для аутентификации, распознаванию captcha и т.п.;
2. Независимость загрузки страниц и их разбора, возможность повторного разбора ранее скаченных страниц;
3. Поддержка процесса разработки парсера: отдельно отмечаются все документы, которые не смогли быть полностью разобраны;
4. Возможность дополнения данных, полученных на основе информации нескольких страниц;
5. Продолжение процесса загрузки страниц после остановки;
6. Корректная обработка изменений;
7. Одновременная работа сразу с несколькими сайтами и наборами правил.

Продолжение
Total votes 24: ↑15 and ↓9+6
Comments16

Расширение для PHP или все будет в Zephir'e

Reading time2 min
Views25K
imageНаверное у каждого PHP разработчика (и не только PHP) есть мечта — написать своё расширение для PHP, которое по определению работает быстрее интерпретируемого кода, при этом не вникая в тонкости Zend Engine, а еще лучше — не зная C++. И вот близится тот день, когда мечта станет явью. Хочу вам рассказать об очень интересном языке программирования, который называется Zephir. Кому лень читать, проходите на сайт и следуйте инструкциям, а я расскажу о том, как написать свое расширение и о подводных камнях, которые встречаются на сием пути.
Читать дальше →
Total votes 50: ↑41 and ↓9+32
Comments37

Impress: многоцелевой сервер приложений для Node.js

Reading time7 min
Views17K
Несмотря на заметные успехи, Node.js все еще остается специализированной технологией, которой преимущественно закрывают узкие места в системах, написанных в другом стеке технологий. Причина такого положения кроется в том, что сама по себе нода не имеет многих библиотек, к которым мы привыкли на других языках и которые обеспечивают быструю разработку именно прикладного ПО. Например, для того, чтобы разделить в коде обработчики разных URL, отдавать статические файлы, организовывать сессии, запускать нескольких потоков, иметь доступа к БД, кешировать данные в памяти, разграничивать права пользователей, иметь логи и ротировать их, создавать сетевое API, рендерить шаблоны, настраивать URL-реврайтинг, обеспечивать быструю доставку событий с сервера на клиенты, для всего этого, и многих других задач, используются отдельные библиотеки (модули). Разные модули написаны разными разработчиками, сложно стыкуются, конфликтуют. В общем, мы решили, весь этот набор обязательного функционала, необходимого практически в каждом веб-приложении, объединить в один сервер приложений и повысить, таким образом, связанность кода, сделать ядро сервера приложений монолитным и более согласованным, чем решения, собранные из отдельных библиотек. Проект Impress уже анонсировался как прототип, а сейчас предоставляет весь необходимый арсенал для быстрой разработки приложений, что протестировано на десятке живых проектов. Impress значительно отличается от другой широко распространенной платформы так же, как импрессионизм отличается от экспрессионизма, то есть, производит целостное, хорошо продуманное эстетическое впечатление, в противоположность внезапному выбросу эмоций. Но мы, не вовлекаясь в критику чужого кода, перейдем к демонстрации конструктивных особенностей Impress.
Читать дальше →
Total votes 37: ↑33 and ↓4+29
Comments15

Собственный сервер Git на базе Ubuntu или Debian/GNU Linux

Reading time2 min
Views81K
Я встречал в сети много tutorial'ов по установке своего сервера git как на gitweb, так и на webdav, но, увы, они либо были только по одному из вышеназванных пунктов, не освещая другой, либо банально не работали. Вчера возникла необходимость поднять свой сервер репозиториев. Потратил пару часов — поднял, теперь хочу поделиться опытом, потому что считаю проблему актуальной :)

Читать дальше →
Total votes 41: ↑37 and ↓4+33
Comments22

RESTful API на Node.js + MongoDB

Reading time16 min
Views259K
Я, будучи разработчиком мобильных приложений, часто нуждаюсь в backend-сервисах для хранения пользовательских данных, авторизации и прочего. Конечно, для подобных задач можно использовать BaaS (Parse, Backendless, etc…). Но свое решение — это всегда более удобно и практично.

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

В данной статье будет рассмотрено построение REST API для мобильного приложения на Node.js с использованием фреймворка Express.js и модуля Mongoose.js для работы с MongoDB. Для контроля доступа прибегнем к технологии OAuth 2.0 с помощью модулей OAuth2orize и Passport.js.

Пишу с позиции абсолютного новичка. Рад любым отзывам и поправкам по коду и логике!

Содержание

  1. Node.js + Express.js, простой web-сервер
  2. Error handling
  3. RESTful API endpoints, CRUD
  4. MongoDB & Mongoose.js
  5. Access control — OAuth 2.0, Passport.js

Читать дальше →
Total votes 44: ↑41 and ↓3+38
Comments63

PHP IPC — Межпроцессное взаимодействие в PHP

Reading time6 min
Views28K

Целью данной заметки является ознакомление PHP-разработчиков с возможностями межпроцессного взаимодействия в данном языке. Заметка не предполагает во всех деталях рассказать о каждой из возможностей, деталях реализации или показать рабочие примеры кода.

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

Хотите узнать больше?
Total votes 47: ↑42 and ↓5+37
Comments78

База GeoIP – страны и города, сентябрь 2013

Reading time2 min
Views70K
Вышла в свет обновленная версия русскоязычной базы данных стран и городов.

База распространяется в двух модификациях: «Страны и города» (13Mb, после установки ~74Mb)  и «Только страны» (2Mb, после установки ~9Mb). Также в архивах находится небольшой пример использования базы данных на php.
Читать дальше →
Total votes 35: ↑31 and ↓4+27
Comments31

Кодирование и декодирование PHP кода

Reading time8 min
Views70K
Я занимаюсь восстановлением исходников PHP из закодированного вида.
В этой статье я расскажу о том, как обстоят дела с кодированием и декодированием PHP в настоящее время.

Очень краткий ликбез по внутреннему устройству интерпретатора PHP


При выполнении PHP-скрипта, он парсится и компилируется в опкоды внутренней виртуальной машины PHP.
Из каждого файла PHP получаются:
— массив классов: в каждом классе — информация о классе, свойства класса и массив методов класса
— массив функций
— «тело скрипта» — код вне классов и функций
Читать дальше →
Total votes 46: ↑38 and ↓8+30
Comments25

Много бесплатных книг по программированию

Reading time7 min
Views346K
Читать дальше →
Total votes 202: ↑192 and ↓10+182
Comments42

RESTful PHP — 5 простых советов

Reading time4 min
Views83K
REST (Representational state transfer) — это архитектурный стиль или свод соглашений для web-приложений и сервисов, основанный на манипулировании ресурсами и спецификацией HTTP. Впервые об этом заговорил Рой Филдинг (Roy Fielding) — один из отцов основателей HTTP (Hypertext Transfer Protocol).

Web-приложения зачастую игнорируют спецификацию HTTP и двигаются вперёд используя полюбившиеся возможности: GET и POST, 200 OK и 404 NOT FOUND. Так как используются программируемые web-приложения, со своими собственными API, то решение игнорировать спецификацию HTTP, может создать проблемы в дальнейшем. Как следствие — имеем множество приложений с интерфейсами GET и POST. Например интерфейс удаления пользователя: GET /user/1/delete против POST /user/delete {id=1}; в случае REST можно указать /user/1 это ресурс, а удаление HTTP метод DELETE.
Читать дальше →
Total votes 72: ↑62 and ↓10+52
Comments122

REST vs SOAP. Часть 1. Почувствуйте разницу

Reading time6 min
Views477K
Некоторое время назад я гуглил интернет по поводу “REST vs SOAP”, прочитал пару статей и вроде бы все понял, но не почувствовал от этого никакого удовлетворения. Что-то было не так, то ли я не почувствовал основную идею, то ли просто читал, одновременно слушая новый музон и думая о новой фиче в проекте. Как появилось время, решил восполнить этот пробел, заодно написав полезную статью по этому поводу.
Читать дальше →
Total votes 117: ↑106 and ↓11+95
Comments101

Дайджест интересных новостей и материалов из мира PHP за последние две недели №22 (15.07.2013 — 28.07.2013)

Reading time5 min
Views19K


Предлагаем вашему вниманию очередную подборку с ссылками на новости и материалы.

Приятного чтения!
Читать дальше →
Total votes 90: ↑79 and ↓11+68
Comments5

Курс лекций «Стартап». Питер Тиль. Стенфорд 2012. Занятие 17

Reading time25 min
Views51K

Весной 2012 г., Питер Тиль (Peter Thiel), один из основателей PayPal и первый инвестор FaceBook, провел курс в Стенфорде — «Стартап». Перед началом Тиль заявил: «Если я сделаю свою работу правильно, это будет последний предмет, который вам придется изучать».

Один из студентов лекции записывал и выложил транскипт. В данном хабратопике barfuss, переводит семнадцатое занятие, редактор astropilot.

Занятие 1: Вызов будущего
Занятие 2: Снова как в 1999?
Занятие 3: Системы ценностей
Занятие 4: Преимущество последнего хода
Занятие 5: Механика мафии
Занятие 6: Закон Тиля
Занятие 7: Следуйте за деньгами
Занятие 8: Презентация идеи (питч)
Занятие 9: Все готово, а придут ли они?
Занятие 10: После Web 2.0
Занятие 11: Секреты
Занятие 12: Война и мир
Занятие 13: Вы — не лотерейный билет
Занятие 14: Экология как мировоззрение
Занятие 15: Назад в будущее
Занятие 16: Разбираясь в себе
Занятие 17: Глубокие мысли
Занятие 18: Основатель — жертва или бог
Занятие 19: Стагнация или сингулярность?
Читать дальше →
Total votes 44: ↑39 and ↓5+34
Comments9

Information

Rating
Does not participate
Location
Минск, Минская обл., Беларусь
Date of birth
Registered
Activity