Pull to refresh
0
0
tukhfatullin @tukhfatullin

User

Send message

Что делать если Instagram не дал доступ к API?

Reading time3 min
Views103K
1 июня 2016 года Instagram отключит от своего API все приложения, которые не прошли модерацию. Что делать если вы в их числе?

Предыстория


Мы делаем сервис для постинга в Instagram по расписанию и используем API для получения информации об аккаунтах. Самим постингом занимаются телефоны в автоматическом режиме. Нам отказали в доступе к API после 1 июня (пробовали пройти модерацию два раза) поэтому было решено найти замену.

Сначала расскажу как мы использовали официальный API:
  1. При добавлении аккаунта забираем из Instagram информацию об аккаунте: имя, фото профайла, количество постов, подписчиков, подписок.
  2. Перед тем как опубликовать фото/видео мы запрашиваем количество постов, и тоже самое после публикации, если число постов увеличилось считаем публикацию успешной.
  3. Если публикация прошла успешно забираем ссылку на последнее фото в профайле.
  4. Если пользователь удаляет фото из нашего сервиса, то перед тем как выполнить задачу нужно проверить существует ли такой пост в Instagram (или его удалили).

Реализация


У Instagram есть веб-версия. С помощью нее в приватных аккаунтах можно получить информацию о количестве постов, подписок и подписчиков, а в публичных еще и сами посты, комментарии и лайки. Поэтому, в силу простоты получения, я подумал, что уже написаны подобные библиотеки. Пошел гуглить и нашел только для NodeJS. И для PHP нашелся какой-то код, но всем четырем пунктам не соответствовал. В итоге было решено писать свою библиотеку.
Читать дальше →
Total votes 14: ↑10 and ↓4+6
Comments72

Я хочу, чтобы сайты открывались мгновенно

Reading time10 min
Views139K
Здравствуйте, меня зовут Александр Зеленин и я веб-разработчик. Я расскажу, как сделать так, чтобы ваш сайт открывался быстро. Очень быстро.


Я хочу, чтобы мой сайт открывался быстро
Total votes 130: ↑122 and ↓8+114
Comments87

Отказоустойчивый кластер Master-Slave на PostgreSQL

Reading time9 min
Views119K
Приветствую, хаброжители!
В этой статье я хочу поделиться опытом развертывания кластера Master-slave на СУБД PostgreSQL. Отказоустойчивость достигается с помощью возможностей pgpool-II (failover, online recovery).
pgpool — это прекрасное средство для масштабирования и распределения нагрузки между серверами и, думаю, немногие знают о возможностях автоматического создания failover на ведомом сервере при отказе ведущего и как добавить новые мощности в уже работающий кластер без отключения всего кластера.
Читать дальше →
Total votes 47: ↑47 and ↓0+47
Comments18

Свой облачный хостинг за 5 минут. Часть 1: Ansible, Docker, Docker Swarm

Reading time11 min
Views137K
Cloud hosting

Привет Хабр! Последние 1.5 года я работал над своим проектом, которому был необходим надежный облачный хостинг. До этого момента я больше 10 лет занимался веб-программированием и когда я решил построить свой хостинг у меня были относительно поверхностные знания в этой области, я и сейчас не являюсь системным администратором. Все что я буду рассказывать может выполнить обычный программист в течение 5 минут, просто запустив набор сценариев для Ansible, которые я подготовил специально для вас и выложил на GitHub.
Читать дальше →
Total votes 64: ↑63 and ↓1+62
Comments42

Объединение узлов Proxmox в кластер при помощи OpenVPN

Reading time5 min
Views33K
Использование среды виртуализации Proxmox, а именно контейнеров OpenVZ, для создания виртуального хостинга ни для кого не станет новостью. Сервер, арендованный на площадке Hetzner, достаточно долго успешно справлялся со своими обязанностями.

Но время шло, количество данных увеличивалось, клиенты множились, рос LA… Арендован новый сервер, установлен и настроен Proxmox, администратор рвется в бой настроить кластер, чтобы мигрировать нагруженные контейнеры на новый сервер. В google найдены залежи инструкций, да и на wiki самого проекта Proxmox есть необходимая информация.
Казалось бы, что может пойти не так?
Total votes 12: ↑12 and ↓0+12
Comments29

Прекратите использовать location.hash, да здравствует HTML5 History API!

Reading time2 min
Views77K
Много лет location.hash был способом в AJAX-приложении заставить работать кнопки «Назад» / «Вперёд» и, например, добавить определенное состояние страницы в избранное и вернуться к нему позже.

Сейчас, когда HTML5 считается нормой, пора обратить свое внимание на History API и забыть про location.hash. HTML5 History API проще для понимания и позволяет сделать URL чуточку красивее (без кракозябры # или #! если вы имеете дело с индексированием ajax приложения).
Читать дальше →
Total votes 63: ↑46 and ↓17+29
Comments38

Полная кастомизация select без использования JS

Reading time4 min
Views83K
imageСколько я не мучил поисковик, а решения этого вопроса так и не нашлось. Конечно, всегда можно использовать JS и это нормально, но иногда заказчик душа просит изысков.
Читать дальше →
Total votes 47: ↑40 and ↓7+33
Comments90

А вы совершаете эти 5 ошибок при подключении клиентов?

Reading time5 min
Views16K
Привлечение клиентов — задача не из легких, но многие компании теряют завоеванных пользователей сразу после первого запуска системы. Как не стать одной их них?

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

1. Делаете ставку на интерфейс при описании ценности продукта


В бизнесе программного обеспечения отмечают феномен под названием момент «все, беру!». Это момент, когда ценность продукта становится кристально ясной для клиента, и он говорит «Ооо, окей, беру сейчас!». Момент «все, беру!» часто приходит слишком поздно, поскольку пользователи вынуждены повозиться с интерфейсом, чтобы понять достоинства продукта.
Читать дальше →
Total votes 23: ↑22 and ↓1+21
Comments2

Как самостоятельно зарегистрировать ООО

Reading time7 min
Views52K
Всем привет! Сегодня мы расскажем о том, как самостоятельно зарегистрировать ООО.

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

Мы расскажем о каждом этапе самостоятельной регистрации ООО, поделимся советами и ссылками, которые помогут вам справиться с ней максимально просто и быстро.



Инструкция по самостоятельной регистрации ООО от «Я люблю ИП»

Читать дальше →
Total votes 71: ↑56 and ↓15+41
Comments77

Анатомия Ember.js (часть первая, теоретическая)

Reading time5 min
Views32K
image Ember.js сложный в обучении. Хотя даже не так. Концепты Ember.js сложны в освоении и понимании. Мне кажется, что любой курс обучения Ember.js должен начинаться с этих слов.

Я разработчик, работающий с Ruby on Rails (до этого я программировал в .NET и Python). Для меня было довольно проблематично понять магию, заставляющую Ember.js работать. Иногда я общаюсь с другими начинающими разработчиками, вставшими (или пытающимися встать) на путь Ember.js — все их проблемы начинаются из-за того, что они не понимают, как устроен данный фреймворк.

Да, с одной стороны есть официальная документация в которой детально описаны все аспекты данного фреймворка. Но ей не хватает концепции; для начинающего разработчика это просто осколки информации разбросанные случайным способом. Из документации, например, можно узнать что у нас есть в арсенале контроллеры, модели и виды (controller, model, view). Но для того что-бы узнать за что они отвечают и как работают начинающему разработчику предлагают сначала наступить на грабли пару десятков раз. Плюс в нагрузку к контроллерам, моделям и видам Ember.js нам дает целый взвод разношерстых объектов типа компонентов, шаблонов, маршрутизатора и путей (component, template, router, route).
Читать дальше →
Total votes 28: ↑28 and ↓0+28
Comments20

Running Lean. Пересказ одной из лучших книг о стартапах

Reading time14 min
Views108K
Cover
Ниже — вольный пересказ книги Running Lean, автор — Ash Maurya. Рейтинг Амазона — 4.8 из 5. Книга, насколько я знаю, на русский язык еще не переведена.

Здесь изложена суть книги в объеме меньшем 1% объема книги, по моей оценке. Все вопросы освещены так, как я их понял, что необязательно совпадает с тем, как их хотел донести автор.

Допускаю, что нарушаю чьи-то права: пересказ лицензии не требует, но иллюстрации взяты из книги. Автору я писал в попытке прояснить этот вопрос, но ответа не получил.

Блог автора кгиги: practicetrumpstheory.com.

Структура пересказа

  • Введение в процесс Running Lean
    • Три важнейших методологии
    • Roadmap
  • Описание процесса Running Lean
    • Составьте «План А»
      • Определите кто клиенты
      • Создайте бизнес-модели
      • Ранжируйте бизнес-модели
    • Протестируйте и измените план
      • Подготовьтесь к проведению экспериментов
      • Категории рисков и четыре фазы тестирования плана
        • Фаза 1. Поймите проблему
        • Фаза 2. Найдите решение
        • Фаза 3. Валидируйте качественно
        • Фаза 4. Верифицируйте количественно
  • Три стадии стартапа
    • Соотношение трех стадий стартапа и четырех фаз тестирования плана
    • Держите правильный фокус
    • Привлекайте финансирование вовремя
    • Масштабируйте правильно
Читать дальше →
Total votes 60: ↑58 and ↓2+56
Comments14

Синхронизация Gmail и GCalendar «over the air»

Reading time1 min
Views4.5K
image
Я так давно ждал этой новости! Только что Gmail mobile блог порадовал нас тем, что теперь мы сможем синхронизировать свои контакты и календарь с помощью технологии PUSH.
Читать дальше →
Total votes 64: ↑60 and ↓4+56
Comments132

Маки. Гид по выживанию. Часть 1

Reading time12 min
Views93K
Это первая часть большой переводной статьи. Здесь и далее все мои комментарии выделены курсивом.

Маки — очень надёжные компьютеры, но это не значит, что они не страдают от ошибок, несчастных случаев и, в некоторых случаях, просто глупости. Мишель Делио (Michelle Delio) из MacLife составила список самых критических моментов на Маке и расскажет вам, как их исправить и избежать таких неприятностей в дальнейшем.

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

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

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

How to Survive 17 Worst Mac Disasters: Chaper One

В этой статье представлены 17 тактик, следование которым помогут пережить достаточно распространённые бедствия, которые могут постигнуть ваш Мак, iPhone или iPod, от самых серьёзных до просто раздражающих. Если у вас есть какие-либо сомнения, что делать с проблемой, всегда лучше не заходить на неизвестную территорию, чтобы не сделать всё ещё хуже. В таких случаях лучше просто отнесите машину профессионалу. И не забывайте регулярно делать бэкап важных данных. Если вы не делаете бэкап, даже маленькая проблема может перерасти в огромный кризис. Кстати, пользователи Leopard, у вас уже есть средство для простого и удобного осуществления бэкапа: встроенная в ОС функция Time Machine, так что от вас отговорки не принимаются! Вы можете найти пошаговые инструкции, как создавать резервные копии ваших основных файлов в статье «How to Back Up Your Mac with Time Machine».

Читать дальше →
Total votes 118: ↑75 and ↓43+32
Comments71

Про Антарктиду

Reading time1 min
Views3.1K
Не стану писать «не ожидал такой реакции» — если честно, то да, ожидал, что придется написать еще пару комментов после того, как написал вот это в теме «Начать жизнь с нуля».
Но количество вопросов в личке побуждает меня к написанию подробного отчета о своей поездке. Вы уж извините, копировать в блог весь текст я не буду, а просто дам ссылки на гугльдокс со своими заметками. Но перед тем, как идти по ссылкам, ознакомьтесь с историей про Переворачивателя Пингвинов — это настроит вас на соответствующий лад для восприятия моих заметок:
Читать дальше →
Total votes 74: ↑69 and ↓5+64
Comments42

Загрузка обложек с Last.fm в Amarok

Reading time1 min
Views788
Привожу тут свою музыкальную коллекцию в порядок.
В качестве музыкального плеера я использую Amarok, чего и всем линуксоидам советую. Среди прочих вкусностей у этого плеера есть возможность загружать обложки альбомов с Amazon.com. И все замечательно, если вы слушаете только популярную «International» музыку, но если в вашей коллекции есть русские исполнители, как, например, у меня, то Amazon вам врядли поможет.
Вот, собственно, в поисках решения этой проблемы наткнулся на скрипт Cover Fetcher.
Это скрипт для Amarok, который устанавливается через Tools->Script Manager.
Скрипт позволяет скачивать обложки с Discogs.com и более полезного нам Last.fm, кликнув по любому треку в плейлисте и выбрав Fetch Cover->For Currently Playing Track.

Вот и всё. Упорядоченной коллекции вам =)
Total votes 1: ↑1 and ↓0+1
Comments8

Бэкап в Time Machine используя домашний сервер под Ubuntu в качестве iSCSI — таргета

Reading time2 min
Views5.8K
Добрый вечер, уважаемое хабросообщество!

Долгое время из за отсутствия TimeCapsule или внешнего USB винчестера я использовал Time Machine для бэкапа на домашний сервер по протоколу SMB (подробно о том как это сделать смотри, например здесь) Однако совершенно не зря на мой взгляд данный метод не поддерживается Apple официально, метод плохой, негодный. Дважды образ для бэкапов оказывался испорченым без всяких видимых на то причин но данные удалось спасти, на третий раз чаша моего терпения переполнилась и я стал искать альтернативный вариант. Представляю сообществу свой вариант решения проблемы бэкапа путем предоставления доступа к отдельному диску домашнего сервера по протоколу iSCSI. Что это такое, для чего оно нужно а также преимущества и недостатки по сравнению с SMB/nfs можно узнать, например здесь.

Итак, дано:
1. Сервер под управлением Ubuntu 9.04 server (сделан dist-upgrade с 8.10). Выступает в роли iSCSI-target. Для бэкапа будем использовать отдельный жесткий диск.
2. iMac под управлением MacOS 10.5.7 Выступает в роли iSCSI-initiator
Читать дальше →
Total votes 32: ↑29 and ↓3+26
Comments42

Распакован первый iPhone 3G

Reading time1 min
Views2.4K
Если вы собираетесь приобрести новый iPhone, то эти фото заинтересуют вас. Появился первый счастливчик (счастливица?) из Португалии, который уже имел удовольствие первым раскрыть коробку и впервые включить девайс. Осталось всего три дня до начала продаж нового iPhone, когда можно уже будет детальнее рассмотреть содержимое упаковки.
Между тем, по последним данным большего всего повезло жителям Дании. Они могут получить разлоченный телефон уже через полгода после заключения контракта. Бельгийцам же наоборот не повезло. У них начало продаж айфона вообще отложено.

А под катом еще пара фотографий, одна из которых раскрывает сущность загадочного SIM removal tool.
Читать дальше →
Total votes 68: ↑49 and ↓19+30
Comments131

Фотошопим на PHP

Reading time2 min
Views4K
Уменьшаем изображение разными библиотеками и сравниваем результат Для многих задач автоматической обработки фотографий не подходит качество и функционал библиотеки GD. Поскольку возможности обратиться к Photoshop из PHP или Perl пока не существует, решаем проблему с помощью ImageMagick.

Речь пойдет о PHP инрефейсе к ImageMagick MagickWand, который в репозитарии Fedora называется php-magickwand. Хочу обратить Ваше внимание, что MagickWand API отличается от классического ImageMagick тем что позволяет работать как с элементами растровой графики, так и с элементами векторной графики.

Для php есть еще одна реализация интерфейса к ImageMagick, которая называется IMagick, но функционал этой библиотеки, на мой взгляд, уступет MagickWand.


В первой статье рассмотрим на примерах несколько типичных задач по обработке изображений и сравним результаты с php-gd.



Читать дальше →
Total votes 66: ↑64 and ↓2+62
Comments31

Виртуализация как средство распространения ПО

Reading time1 min
Views5.1K
Думаю, что большинство ITшников слышало о VirtualPC и VMware.

То, насколько этот рынок сейчас на пике лишний раз подтвердил уход одного из топ-сотрудников из MS в правящий состав VMware.
(уже не помню где читал, но было этой зимой)

Но совсем недавно обнаружил, что VMware Server абсолютно бесплатный!
VMware Server отличается от VMware Workstation тем, что устанавливается как сервис и может при включении автоматом поднимать все виртуальные машины.

Но VMware пошли дальше.
Читать дальше →
Total votes 33: ↑30 and ↓3+27
Comments46

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity