** Thrift API – Everfeeds project core subsystem.
The first aim: to provide consistent API for remote clients, with cache and simple methods.
Core Thrift/Mongo for Everfeeds
Home Page: http://everfeeds.com
** Thrift API – Everfeeds project core subsystem.
The first aim: to provide consistent API for remote clients, with cache and simple methods.
Нужно фильтры реализовать, которые ленты отдают.
Реализовано remote api for twitter. Следует покрыть его тестами с имитацией ответов сервера в TwitterRaw.
Нужно срочно поднять мавен. И засунуть в него, для начала, twitter-text жарку.
Сейчас у монго не прописаны ключи + нужны lazy references.
Нужно добавить все требующиеся аннотации в монго-модельки.
http://code.google.com/p/morphia/wiki/AllAnnotations#Indexes
Подразумевается в обозримом будущем возможность перепощивать записи.
Записи, которые их автором помечаются как приватные, НЕЛЬЗЯ перепощивать.
Поэтому мы делаем соотв. флажок, который означает -- вправе пользователь манипулировать приватностью контента или нет.
Нужно сделать его для фейсбука.
Gmail даёт возможность юзать IMAP без логина-пароля, по специальному OAuth. Мне кажется, это обалденная штука, которую маст хэв.
Нужно реализовать AtomPublishingProtocol [http://abdera.apache.org/], [http://codex.wordpress.org/AtomPub]
Он поддерживается вордпрессом, жж, блоггером. Их отнаследуем потом (может быть), или сделаем конструкторы.
Есть домены трифтовые, есть монго. В монго и в хандлерах есть методы, приводящие одни в другие.
Нужно вынести их в группу классов-адаптеров, чтобы не искать метод, которым что конвертится.
Нужно все поля валидировать перед укладкой в БД.
Для этого легче всего заюзать валидатор морфии:
http://code.google.com/p/morphia/wiki/ValidationExtension
http://www.hibernate.org/subprojects/validator.html
они улучшают своё апи -- надо заюзать то, что есть
Многие штуки кросспостятся в разные сети. У юзера появляется один и тот же контент. Хорошо бы научиться анализировать такой контент, связывать его, предлагать создать групповой профиль юзера -- связать профили френдов в разных социалках.
Не все возможности можно вообще публиковать.
Например, привязка доступов, работа с аппликейшнами -- пользователями АПИ, и тд.
Но покуда база данных единая, нужно и это давать через апи. Самим себе.
Для этого будем второй порт оккупировать при запуске, второй сервер запускать. Маленький.
То, что фигачится в папку thrift/gen-java, нужно уметь билдить в жарку. Сейчас оно билдится с помощью Анта, но делает это безграмотно. Нужно сделать грамотно.
Нужно уметь искать с помощью стороннего АПИ, если АПИ это позволяет.
Нужно сделать, чтобы сырцы легко билдились в запускаемую жарку. Вроде для этого всё приготовлено в мавене проекта, но нужно проверить, оттестировать, сделать по уму.
Когда жарка будет билдиться, нужно организовать её разворачивание на сервере, пока без доступа снаружи. Разворачивание в деплойменте рабочее -- критерий выполнения тикета.
Нужно уметь искать в нашей базе. Можно употребить Lucene.
Есть у токенов и аппликейшнов list scopes.
Нужно помедитировать на апи, написать список scopes, контролировать, есть ли нужные права у приложения и юзер-токена для совершения действия.
Очень важно не выкладывать наружу что-то нестабильное.
Для этого было б славно покрыть всё тестами.
Нужно в монго записи сохранять инфу о координатах
Там, где она возвращается как полигон, брать центр полигона, остальные данные сохранять в отдельном поле.
Логично, что пулл/пуш, доступаторы, парсинг и тп должны быть в ядре АПИ.
Нужно их туда и вынести.
Гугл отдаёт емейл. Фейсбук тоже может.
Это априори подтверждённые адреса.
Нужно их коллекционировать в какую-нибудь табличку (или в список строчек, если монго поднимем)
Есть штуки, где файлы вложены в заметки (атом, емейлы, эверноут)
И где файлы -- основа (дропбокс)
Нужно уметь с ними работать
Нужно уметь обрабатывать файлы. Надо будет закачивать картинки во фликр, фейсбук, пикасу, эверноут и тп. И не только картинки.
Нужно организовать инфраструктуру и архитектуру хранения, обработки и доступа к файлам. Научиться сжимать файлы, определять их типы (например, чтобы закачивать что угодно в эверноут, например)
Нужно уметь пуллить энтри по айди. Обновлять существующую или сохранять.
Конечно, умение фильтровать данные -- это прекрасно.
Однако ж нужно также уметь делать это очень быстро, для чего следует организовать кэш и его пересчёт при добавлении/изменении записи и при изменении фильтра.
Нужно организовать ПЕРЕСЧЁТ и ИСПОЛЬЗОВАНИЕ КЭША
Thrift требует, чтобы все юзерские ошибки были соотв. образом обработаны юзерскими эксепшнами.
Нужно все их систематизировать и прописать.
Нужно сделать простейший runnable клиент, запускать сервер и фигачить тесты от клиента. Научиться хотя бы это делать, junit прикрутить, а потом придумаем, какие тесты писать.
Может быть, лучше тесты делать на Groovy. Быстрее будет.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.