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

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

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

Релиз GitLab 5.0

Время на прочтение1 мин
Количество просмотров12K
Вчера, то есть 22 марта, увидел свет релиз 5 версии GitLab. GitLab — замечательный аналог таким продуктам, как GitHub, Bitbucket. Однако он устанавливается на ваш личный сервер и полностью подконтролен вам. Это отличное решение для компаний, занимающихся разработкой программного обеспечения, web студиям ну или просто тем, кто хочет иметь свой собственный git репозиторий.



Что же нового в версии 5.0? Для ознакомления с подробностями прошу под кат
Читать дальше →
Всего голосов 111: ↑110 и ↓1+109
Комментарии22

Экспорт фотоальбомов из ВКонтакта

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

Преамбула


Дело было вечером, делать было нечего и тут мне в голову пришла мысль: «Как же мне выгрузить все фотографии из ВКонтакта на компьютер?» Недолго думая, я написал утилиту для этого и решил поделиться с общественностью, возможно я не один такой.

Поехали


В качестве инструмента для работы с API, путём кратких поисков, была выбрана библиотека vk_api. Для работы с сетью она использует Requests, поэтому и эта библиотека требуется для запуска.

Пощупать


GitHub Pages проекта
Исходный код с примерами
Всего голосов 68: ↑55 и ↓13+42
Комментарии39

Получить видео с vk.com при помощи PHP

Время на прочтение5 мин
Количество просмотров45K
Получить видео с ВК при помощи PHP

У меня возникла проблема — как получить видео с всеми известной соц.сети vkontakte.ru. и установить его на сайте. Ключевой момент, я не хотел использовать IFRAME или же ещё какие-то сервисы ВК, я хотел чтобы видео выглядело так, как будто оно лежит у меня на сайте. Облазив пару десятков сайтов, максимально что я нашёл, это сайты для загрузки видео, такие как ВИДЕОСЕЙВЕР и тп. Это всё не подходило, поскольку мне нужен был код которой я мог интегрировать в свой PHP движок.
Нашлось пару самописных PHP скриптов – которые стоили от 30 до 500 у.е. Но половину из них были закодированы Zend Encoder – ом или же просто использовали свои сервера для поиска видео-файлов и не имели особой ценности для меня.
Так началось вдохновение. Я решил использовать мобильную версию поскольку она намного проще. Первым дело я составил алгоритм получение видео с ВК.

image

Вход В ВК


Первым куском кода был вход в ВК. Я порылся в интернете и нашел нечто подобное:

Подробности
Всего голосов 63: ↑17 и ↓46-29
Комментарии44

Избавляемся от дублирования сквозного кода в PHP: рефакторинг кода с АОП

Время на прочтение12 мин
Количество просмотров44K
Думаю, каждому программисту знаком принцип единственной ответственности, ведь не зря он существует: соблюдая его, можно написать код лучше, он будет более понятным, его будет легче дорабатывать.

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

Эта статья о том, как можно избавиться от дублирования сквозного кода, и как сделать его чуточку лучше с помощью АОП.

Читать дальше
Всего голосов 93: ↑89 и ↓4+85
Комментарии48

Внутреннее устройство Git: хранение данных и merge

Время на прочтение9 мин
Количество просмотров88K
В процессе перехода с SVN на Git мы столкнулись с необходимостью переписывания наших внутренних инструментов, связанных с развёртыванием кода, которые ориентировались на существование линейной истории правок (и разработку в trunk). На Хабре уже публиковались возможные решения этой проблемы через Git-SVN, но мы пошли другим путём. Нам нужна поддержка таких возможностей Git, как branching и merge, поэтому мы решили разобраться в основах, как же работает Git и каким способом должна осуществляться интеграция с ним.
Читать дальше →
Всего голосов 77: ↑77 и ↓0+77
Комментарии10

Книги для тимлидов и руководителей проектов. Часть 2

Время на прочтение3 мин
Количество просмотров81K
Предыдущая статья очень хорошо была воспринята читателями, поэтому, как и обещал, сегодня подготовил статью-бонус.

Итак, я просил ответить на вопрос какие книги из статьи вы читали?

Результаты опроса:
Название книги
Количество голосов
Процент
Том ДеМарко. Deadline. Роман
об управлении проектами
247
54%
Фредерик Брукс. Мифический человеко-месяц, или Как создаются
программные системы
174
38%
Джоэл Спольски. Джоэл о программировании
165
36%
Том Демарко и Тимоти Листер. Человеческий фактор. Успешные
проекты и команды
148
32%
Джейсон Фрайд, Дэвид Хайнемайер Хенссон. Rework.
Бизнес без предрассудков
108
24%
Джеффри Янг и Уильям Саймон. iКона. Стив
Джобс
94
21%
Том ДеМарко, Тимоти Листер. Вальсируя с Медведями: управление
рисками в проектах по разработке программного обеспечения
70
15%
Том Демарко, Тимоти Листер. Балдеющие от адреналина и зомбированные
шаблонами. Паттерны поведения проектных команд
51
11%
Кармин Галло. iПрезентация. Уроки
убеждения от лидера Apple Стива Джобса
48
11%
Патрик Ленсиони. Смерть от совещаний
21
5%
Патрик Ленсиони. Пять пороков команды. Притчи о
лидерстве
19
4%
Патрик Ленсиони. Пять искушений руководителя: притчи о лидерстве
16
4%
Патрик Ленсиони. Три признака унылой работы. История со смыслом
для менеджеров (и их подчиненных)
11
2%

А теперь еще один бонус — список книг по заданной тематике, которые прислали нам читатели:
Читать дальше →
Всего голосов 89: ↑81 и ↓8+73
Комментарии12

Книги для тимлидов и руководителей проектов

Время на прочтение2 мин
Количество просмотров171K
Какими свойствами должен обладать хороший тимлид? Он, несомненно, должен быть технарем, иметь разносторонний опыт, уметь налаживать диалог внутри команды и с начальством, вести дискуссии и принимать решения, брать на себя ответственность, понимать бизнес-процессы, думать как заказчик и владелец бизнеса. Ну и быть немного психологом.

В отечественном IT я часто наблюдаю следующую картину: тимлидом часто становился лучший (?) разработчик из команды (aka 23-летний сеньор). А чтобы стать руководителем проекта (project manager) иногда достаточно просто знать английский и «павэрпойнт» на уровне пользователя. Это реалии отечественного аутсорсинга и с этим нужно как-то жить.

В итоге часто получается как-то так:
Потому что на десять сеньоров по статистике девять тупят.
Читать дальше →
Всего голосов 84: ↑74 и ↓10+64
Комментарии53

Автоматическая оптимизация настроек MySQL, PostgreSQL

Время на прочтение3 мин
Количество просмотров45K
Оптимизация настроек всегда дело тонкое и выставить именно те параметры, которые дадут максимальную производительность, зачастую можно только уже в процессе работы приложения, когда уже есть статистика нагрузки и видны узкие места.
Но очень полезно сделать и первичную оптимизацию при запуске СУБД. В этом посте рассмотрены пути автоматической оптимизации MySQL и PostgreSQL утилитами mysqltuner и pgtune.

Читать дальше →
Всего голосов 27: ↑23 и ↓4+19
Комментарии21

Как развернуть несколько версий сайтов на одном инстансе YII

Время на прочтение10 мин
Количество просмотров16K
В этой статье мы расскажем, каким образом мы организовали работу наших сайтов в одном проекте на фреймворке yii. В первой части приведем немного теории о том, в каких случаях такое может потребоваться и что для этого нужно. А во второй части приступим к технической реализации.

Часть 1


Введение

Многие компании поддерживают работу нескольких сайтов для продвижения своих товаров на разных рынках. Так делаем и мы. У нас есть сайты для русского, американского, европейского и других рынков, отдельные сайты для mobile-устройств, сайты партнерских программ, которые также различны для разных стран. В разработке мы используем фреймворк yii, на который мы в прошлом году перевели наш главный сайт Alawar.ru, а в этом году также Alawar.com, Alawar.pl и сайты iOS-устройств. Одна из особенностей деплоймента наших сайтов на yii заключается в том, что все они работают на одном инстансе этого замечательного фреймворка.

Проблемы в решении этой задачи нет, мы рассмотрим одну конкретную реализацию.
Читать дальше →
Всего голосов 36: ↑28 и ↓8+20
Комментарии9

Continuous Delivery PHP приложений

Время на прочтение3 мин
Количество просмотров8.8K
Хочу поделиться опытом попытки внедрения непрерывной интеграции и «безболезненного» деплоинга для php приложений. Я попытаюсь рассмотреть некоторые аспекты по данному вопросу:
  • Что такое Continuous Integration
  • Что такое деплоинг, как он вписывается в CI
  • Немного о тестировании в рамках этого «конвеера»

Читать дальше →
Всего голосов 23: ↑15 и ↓8+7
Комментарии11

Руководство по работе с Apple Push Notification Service

Время на прочтение13 мин
Количество просмотров263K
Статья представляет собой вольный перевод руководства по работе с Apple Push Notification Service сайта raywenderlich.com и некоторые мои дополнения.

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

Но что если происходит что-то интересное и вы хотите сообщить об этом пользователям, даже если ваше приложение у них не запущено?
Читать дальше →
Всего голосов 53: ↑49 и ↓4+45
Комментарии33

Каталог сервисов для поиска контактов заказчиков и исполнителей на free-lance.ru

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

картинку предоставили free-free-lance.com

Сразу после объявления администрацией free-lance.ru запрета на публикацию контактных данных заказчиков и фрилансеров на сайте, начали появляться проекты, позволяющие обойти этот бредовый запрет. Пока я знаю три таких сайта:

free-lance-contacts.ru — запустился раньше всех, включает в себя базу в 17 тыс. контактов, собранных из открытого доступа в августе. Есть функционал добавления своих контактов, аппрув (чтобы левые люди не выдавали себя за раскрученных фрилансеров) посредством личного сообщения автору проекта на фрилансе.

free-free-lance.com — разработка бывших сотрудников free-lance.ru, есть функционал добавления своих контактов. База пополняется самими фрилансерами. Работает верификация аккаунтов с помощью кодовой фразы, которую выбирает пользователь.

freelancecontacts.net — запустились, сайт пополняется данными фрилансеров после верификации.

freefreelance.ru — не хватает верификации аккаунтов

find-freelancer.pro — отличается наличием открытого каталога фрилансеров, поиск фрилансеров работает по собственной базе и популярным биржам фриланса (например, если контакты пользователя закрыты на free-lance.ru, вы сможете связаться с ним на weblancer — очень удобно).

free-lance-surveys.ru — сервис обмена отзывами и поиска контактов фрилансеров.

Заказчики, работодатели, не проходите мимо! Упростите жизнь фрилансерам и себе. По своему опыт могу сказать, что фрилансеры часто гуглят тех, чьи заказы заинтересовали — поэтому не ленитесь, добавляйте свои контакты в эти базы. Давайте уже дадим понять некоторым любителям грести всё под себя, что опускать железные занавесы на вебе — бесполезно.
Читать дальше →
Всего голосов 151: ↑114 и ↓37+77
Комментарии75

Что такое Ivideon?

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


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

Но самое важное, мы оставили сервис бесплатным почти для 100 000 аккаунтов, которые были зарегистрированы до ввода тарифов, независимо от количества подключенных камер. Мы не хотели терять наших клиентов из-за желания заработать больше.

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

Но речь не об этом. С момента появления нашего блога и нашей первой статьи на Хабре о том как создавался Ivideon, мы ни разу не рассказали о том, а что же мы сделали и зачем? То, что обычно компании первым делом публикуют на Хабре в виде собственной рекламы, мы пропустили. Позвольте нам сделать это сейчас и не получить уж слишком много минусов. Тем более мы просто хотим рассказать о нашем продукте, который позволяет не только в реальном времени наблюдать за яйцами.
Если просто, то Ivideon дает удобную возможность объединить в одном интерфейсе личного кабинета неограниченное количество камер, разбросанных географически. Они могут находиться как в одном офисе, так и на разных континентах.
Читать дальше →
Всего голосов 105: ↑85 и ↓20+65
Комментарии79

oDesk для начинающих

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

Зачем?

Вообще, идея этого поста пришла мне в голову в тот самый момент, когда я, не имея до этого за плечами полноценного опыта фриланса, решил всерьез освоить oDesk. Да, если кто не знает, oDesk — это одна из крупнейших в мире фриланс-бирж. Итак, дело было в июле этого года. Официальной работы к тому времени у меня уже полгода как не было, все подработки закончились, новых серьезных заказов не предвиделось, и oDesk представлялся мне весьма перспективным вариантом. Аккаунт, как водится, был зарегистрирован «про запас» еще за год до того, но висел все это время без дела, поэтому начинать нужно было с нуля. При этом я был почти уверен, что руководство, хотя бы самое краткое, на тему, как и с чего начинать, я где-нибудь (уж на Хабре-то точно!) да найду.
Возможно, я плохо искал. Однако все, что мне попалось по теме, сводилось только к тому, что не нужно сразу загибать цены, лучше начинать с небольших. Примерная цитата: «начинайте с $10 в час, со временем, дорастете и до $15». Дорастать до $15, да еще и со временем, мне категорически не хотелось, я был уверен, что можно зарабатывать значительно больше. Да и кроме того, меня волновало огромное количество вопросов. Как заполнять профиль? На какие проекты откликаться? Как составлять cover letter? Как, черт побери, получить этот первый заказ, когда все тебе отказывают?
В тот момент я решил, что если все у меня получится, обязательно напишу то самое руководство для новичков, которого я не нашел.

Читать дальше →
Всего голосов 192: ↑175 и ↓17+158
Комментарии385

Приведение к типам в Yii::app()->request

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

Хочу поделиться с вами небольшим решением проблемы, с которой столкнулся при переносе части данных проекта в mongodb.
Изначально у нас использовалась только Mysql и все параметры приходящие от клиента вполне себе позволяли получать данные из базы без каких-либо проблем.

<?php
   $id = Yii::app()->request->getParam('id', 0);
   $data = Data::getForId($id);
?>

А суть в том, что для mysql нет разницы [select * from data where id = 1] или [select * from data where id = '1'].
Но mongodb типы данных различает, по этому нельзя найти запись используя условие id == '1' если id в mongodb является числом.

посмотреть решение
Всего голосов 19: ↑11 и ↓8+3
Комментарии19

Триггеры — спасители

Время на прочтение5 мин
Количество просмотров102K
Уже много статей в интернете есть про sql триггеры, но добавлю еще одну с адекватными примерами, что бы закрепить материал для тех, кто «в теме» и что бы лучше понять материал тем, кто только начал постигать «дзен sql». Заодно и создам дискуссию по теме.

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

Читать дальше →
Всего голосов 38: ↑34 и ↓4+30
Комментарии183

Sypex Geo — быстрое определение города по IP

Время на прочтение3 мин
Количество просмотров117K
В начале года я публиковал статью Определение страны по IP: тестируем скорость алгоритмов, в которой упоминался мой «велосипед» отличающийся высокой скоростью работы. Одним из популярных вопросов стала возможность определения города по IP.

И вот несколько месяцев спустя, проект начинавшийся, как «for fun» перерос в самостоятельный проект.
Открыт отдельный сайт посвященный проекту Sypex Geo, на котором можно скачать свежие версии API и баз данных, а также ознакомиться с документацией.

Для желающих скорее протестировать правильность определения города по IP — вот ссылка на демо-страницу. А под хабракатом, я опишу некоторые технические подробности и приведу результаты небольшого тестирования.
Читать дальше →
Всего голосов 68: ↑67 и ↓1+66
Комментарии84

Опыт эксплуатации MySQL Master-Master — как пережить аварию датацентра

Время на прочтение6 мин
Количество просмотров81K
Всем привет!

Сегодня поговорим о том, для каких задач на самом деле полезна MySQL Master-Master репликация, для каких — полностью бесполезна и вредна, какие мифы и заблуждения с ней связаны и какую практическую пользу можно быстро получить от данной технологии. Приведу конкретные примеры настройки и схемы архитектур.

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


Читать дальше →
Всего голосов 86: ↑73 и ↓13+60
Комментарии70

Кластеризация на клиенте или как показать 10000 точек на карте

Время на прочтение7 мин
Количество просмотров31K
Существует несколько типов проектов,
для которых вывод геоинформации является
необходимым: сайты по недвижимости, каталоги компаний,
каталоги достопримечательностей, доски объявлений и другие.
Для этих сайтов я решил разработать плагин к goolge API 3 и Яндекс API 2.

Основные требования:
  1. Возможность подключения без глубокой подготовки данных на сервере, а именно, используя только уже имеющиеся географические координаты объектов.
  2. Простой протокол подготовки и передачи данных.
  3. Быстрый клиентский кластеризатор с ДВУМЯ типами меток: кластер и группа. Кластер — несколько объектов, расположенных рядом. При клике кластер “раскрывается”, то есть увеличивает зум пока объекты будут на расстоянии, большем чем расстояние кластеризации. Группа — несколько объектов в одной точке (на минимальном расстоянии). При клике на группу на любом зуме выводится список объектов в группе.
  4. Отображение до 10000 точек с использованием кластеризатора.
  5. Отображение в ie7, на мобильных устройствах (iPad первого поколения).
  6. Шаблонизация на клиенте двух инфоокон — группового кластера и самого объекта.
  7. Использование спрайта для меток.
  8. Возможность использования неограниченного количества типов меток (иконок) для разных типов объектов.
  9. Возможность использования нескольких размеров иконки для разного диапазона зума.

В статье я опишу несколько подходов, которые были использованы для реализации этого плагина.
Читать дальше →
Всего голосов 53: ↑52 и ↓1+51
Комментарии22

Простая настройка .htaccess для production

Время на прочтение2 мин
Количество просмотров19K
Иногда, когда сайты хостятся на shared-хостинге или работа идет только с Apache, нужно сделать максимальную оптимизацию работы сервера и сайта соответсвенно. В статье приводятся несколько настроек, которые позволят вашему сайту работать лучше.

Читать дальше →
Всего голосов 94: ↑70 и ↓24+46
Комментарии49

Информация

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