Здесь решил составить список моих познаний в тех областях, которые меня интересуют больше всего.
Со временем будет пополняться (надеюсь).
- Linux и системное администрирование:
- Linux:как таковой
- Ubuntu – сам использую в качестве основной ОС на десктопе/рабочей станции. Настраивал и использую в качестве веб-сервера. Многих знакомых подсадил на десктоп.
Debian – настраивал и использоавл на веб-сервере.CentOS – настраивал и использовал на Development сервере.
LAMP (Linux Apache MySQL PHP): ставил, настраивал, виртуалхосты там всякие, учетные записи, PHP отладчики и кешеры… Теперь апач не использую т.к. предпочитаю Nginx.- NGINX: fcgi, proxy, uWSGI виртуалхосты, балансировка, кеширование, url-rewrite
- Gitolite: установка, настройка, разграничение доступа, интеграция с Redmine
- bind9 (named): установка, простейшая настройка
- OpenVPN: настройка, маршрутизация, ключи
- Bacula: установка, настройка.
- SphinxSearch: установка, настройка (см. так же в разделе PHP)
- PostgreSQL: установка, настройка (!!!). Весьма хорошо разбираюсь. При разработке отдаю предпочтение этой БД.
- uWSGI: установка, настройка.
- RabbtMQ: настраивать – то особо нечего
- Redis: немного
- MongoDB: досталась в качестве legacy, выпилил везде где можно
- debhelper: умею собирать DEB-пакеты
Windows: хорошо разбираюсь, но усиленно стараюсь забыть как страшный сон
- Linux:как таковой
- Программирование (работаю в Emacs под Ubuntu):
PHP: с PHP завязал. Предпочитаю Python.- ООП
- Архитектура Контроллер – Модель – Представление (MVC)
- Smarty (уже не использую, предпочитаю XSLT)
- DOM, XML, SimpleXML, XSLT, XPath
- SOAP
- GD2, Image Magick
- PDO, MySQL, Memcache
- SphinxSearch – помимо обычного поиска реализовывал довольно продвинутые поисковые техники вроде Suggest, коррекция опечаток и группировка результатов по категориям
- Отладка, профилирование, трассировка PHP скриптов (xdebug, KCachegrind, Eclipse)
- JavaScript:
- FireBug использую на полную катушку
- Работа с “чистым” JavaScript, DOM
- jQuery
- Knockout.js – интерактивные data-driven интерфейсы. Очень нравится.
- D3.js – хорошая библиотека для визуализации данных
- Socket.IO (на сервере – Python; в следующий раз взял бы SocksJS)
MooTools немногоYUI немногоRaphaël – работа с SVG
- Python: основной язык.
- Django в основном Python использую с Django (модели/ORM, формы, шаблоны, авторизация (в т.ч. через LDAP) Middleware, настройка веб-сервера под uWSGI/Nginx, django-rest-framework, django-nonrel)
- Twisted (не очень много работал, есть опыт интеграции с QT; довольно интересная штука, но в целом не нравится)
- Tornado – сойдет, если приложение очень простое
- SQLAlchemy – очень мощная ORM, нравится.
Pylons – (SQLAlchemy, mako, кеш в Redis) есть явные плюсы и явные минусы. В целом – довольно много недочетов.- Flask – (SQLAlchemy + alembic, Jinja2, WTForms) очень гибкий фреймворк, но приходится слишком много писать самому.
- Celery – весьма интересный обработчик отложенных задач, но ужасно глючный. Приходится активно использовать.
- gevent – неплохая штука, но не мейнстрим. Довольно большой опыт использования в качестве HTTP-паука. Предпочитаю Erlang.
- Приложения с GTK GUI (Glade, PyWebKit) и Qt (PySide, PyQt4)
- Работа с DBus и прочим Linux-desktop окружением
- Сетевые приложения (HTTP, сокеты)
- Многопоточные приложения (очереди, блокировки и пр.), работа с дочерними процессами (subprocess)
- Неблокирующие сокеты (asyncore, epool, Twisted, TornadoWEB)
- Работа с XML и DOM, XPath (lxml)
- Работа с MySQL, PostgreSQL, Sqlite3 базами данных
- Работа с AMQP (RabbitMQ) – синхронно и асинхронно, библиотеки pika, puka. Exchanges, routing etc довольно плотно.
- Работа с изображениями PIL – немного
- Numpy – немножко
- PyGame – немного
- AST – из интереса написал неполный транслятор Pyhton кода в JavaScript
- Scrapy – веб-краулер
- Реализовал на Python ОЧЕНЬ МНОГО Пауков/грабберов/краулеров + клиентов для различных API
- Юнит-тесты
- Отладка, профилирование, отладка потребления памяти (Eclipse, cProfile, pyprof2calltree, KCachegrind)
- Erlang/OTP: Очень нравится, планирую использовать как можно чаще.
Писал веб-приложение для конкурса (писал почти без OTP; использовал MochiWeb, Django Templates, PostgreSQL /в т.ч. epgsql_pool/, работа с сервером SphinxSearch через MySQL протокол)- Дописал движок XPath для mochiweb_html
- Интерпретатор jsonpath
- Написал сложного веб-паука, успешно заменил им в продакшне предыдущую реализацию на Python (OTP; lhttpc, mochiweb_html, mochiweb_xpath, epgsql + poolboy, AMQP)
- Вообще несколько web-crawler и ботов различной сложности и нагруженности написал на Erlang
- Запустил сервис временной почты DropMail.me (gen_smtp, cowboy, erlydtl)
- C + Linux: на среднем уровне
- GTK+, Glib, GObject, DBus – значительная доработка и поддержка L2TP vpn плагина к NetworkManager
- pthread, sigaction, неблокирующие сокеты – значительная доработка высокопроизводительной утилиты нагрузочного тестирования веб-сервера “wrk”
- Rust: в реальных проектах пока не применял, но язык очень понравился.
- SQL: есть опыт работы с MySQL, PostgreSQL и SQLite, немного MSSQL. Предпочитаю PostgreSQL. SQL люблю.
- Обычные (и не очень) запросы
- Немного реляционной теории и теории множеств
Хранимые процедуры- Транзакции
- Представления (Views)
- R: немного работал с ним, классная вещь
- ggplot2 – сложные настраиваемые графики
- data.table – расширенный data.frame (продвинутая круппировка, быстрая сортировка и фильтрация)
- db – экспорт данных из БД
- bash: куда-ж без него
- Makefile: иногда очень полезен
- Elisp: в Emacs без этого никак…
- XML, DOM
XSLT ОЧЕНЬ МНОГО на нем делал всяких вещей, в том числе HTML/XHTML шаблонизация на XSLT.
- Командная работа и контроль версий
- GIT репозиторий, gitolite, GitHub
- Mercurial работал с ним, Git нравится больше
SVN через git-svnBazaar – вел один проект на Launchpad. Не нравится.- Redmine, в т.ч. установка и настройка самого Redmine
- GitLab есть опыт разворачивания и настройки.
- Верстка
- Умею, но, по возможности избегаю, т.к. не особо люблю это дело.
- Графика и дизайн: разве что наброски какие-то
- GIMP.
- В векторе SVG Inkscape
- Веб – фреймворки/CMS:
- Django (см раздел Python)
- Flask
Pylons (sqlalchemy понравилось, остальное – нет)WordPress (довольно глубоко приходилось залезать. Есть опыт создания тем)
- Сторонние API
- Службы Google для доменов (Google apps, http://www.google.com/apps/)
- YouTube API (“API данных” через Zend GData и “API проигрывателя” через JS)
- Google Analytics “Data Export API” (через PHP библиотеку gapi, на другом месте работы похожее реализовал на Python)
- Google Base API (аналог Яндекс-маркет) через Python библиотеку (даже патчик им отослал)
eBay SOAP/XML API (будь оно неладно)- Facebook social graph API (через Python обертку – совсем немного)
- Vkontakte desktop API (делал Open Source плагин для Gwibber на Python), разрабатывал игру для Vkontakte
- Twitter REST API (совсем немного)
- Планы на будущее:
- Пощупать Haskell (??)
- Научиться работать с нейросетями
- Научиться программировать микроконтроллеры
Для полноты ощущений добавь в раздел CMS ModX 🙂
Капча зачетная.
С ModX я поработать пока не успел, но, думаю, в ближайшее время и он появится в этом списке!
А капча обычная ReCaptcha api
Я начинаю работать с Python. Работаю с примером из одной книги, но почему-то не работает. Нужно получить список лэптопов из категорий сайта eBay. Вы не могли бы мне подсказать, что я делаю неправильно. Я получила все ключи этого аукциона, внесла их в программу, но не работает. Можно ли переслать Вам файл с программным кодом?
Да, можно. Ответил на почту.