Блог - Linux, программирование, Я!

Без рубрикиПознания

Здесь решил составить список моих познаний в тех областях, которые меня интересуют больше всего.
Со временем будет пополняться (надеюсь).

  • Linux и системное администрирование:
    1. Linux:как таковой
      1. Ubuntu - сам использую в качестве основной ОС на десктопе/рабочей станции. Настраивал и использую в качестве веб-сервера. Многих знакомых подсадил на десктоп.
      2. Debian - настраивал и использую на веб-сервере.
      3. CentOS - настраивал и использую на Development сервере.
    2. LAMP (Linux Apache MySQL PHP): ставил, настраивал, виртуалхосты там всякие, учетные записи, PHP отладчики и кешеры... Теперь апач не использую т.к. предпочитаю Nginx.
    3. NGINX: с апачем на бэкенде либо с php-fcgi, виртуалхосты, балансировка, кеширование, url-rewrite
    4. ProFTPd, VsFTPd: не слишком разбирался, но ставил, немного настраивал
    5. Memcached
    6. Gitosis: установка, настройка, разграничение доступа, интеграция с Redmine
    7. bind9 (named): установка, простейшая настройка
    8. Bacula: установка, настройка.
    9. SphinxSearch: установка, настройка (см. так же в разделе PHP)
    10. PostgreSQL: установка, настройка.
    11. uWSGI: установка, настройка.
    12. RabbtMQ: настраивать - то особо нечего
    13. Redis: шустрый, гад!
    14. debhelper: умею собирать DEB-пакеты
    15. Windows: хорошо разбираюсь, но усиленно стараюсь забыть как страшный сон
  • Программирование (работаю в основном в Eclipse+Aptana+PyDev+Mylyn Emacs под Ubuntu):
    1. PHP: с PHP завязал. Предпочитаю Python.
      1. ООП
      2. Архитектура Контроллер - Модель - Представление (MVC)
      3. Smarty (уже не использую, предпочитаю XSLT)
      4. DOM, XML, SimpleXML, XSLT, XPath
      5. SOAP
      6. GD2, Image Magick
      7. PDO, MySQL, Memcache
      8. SphinxSearch - помимо обычного поиска реализовывал довольно продвинутые поисковые техники вроде Suggest, коррекция опечаток и группировка результатов по категориям
      9. Отладка, профилирование, трассировка PHP скриптов (xdebug, KCachegrind, Eclipse)
    2. JavaScript:
      1. FireBug использую на полную катушку
      2. Работа с "чистым" JavaScript, DOM
      3. jQuery (предпочтительно)
      4. Socket.IO (на сервере - Python)
      5. MooTools немного
      6. YUI немного
      7. Raphaël - работа с SVG
      8. AJAXify - AJAX интерфейс сайта, доступный для индексации поисковикам и нормально работающий при отключенном JS
    3. Python:очень нравится.
      1. Django (модели/ORM, формы, шаблоны, авторизация (в т.ч. через LDAP), Middleware, настройка веб-сервера под uWSGI/Nginx/Apache, django-nonrel)
      2. Twisted (не очень много работал, довольно интересная штука, но в целом не нравится)
      3. Tornado - сойдет, если приложение очень простое
      4. SQLAlchemy - очень мощная ORM, нравится, активно использую.
      5. Pylons - (SQLAlchemy, mako, кеш в Redis) есть явные плюсы и явные минусы. В целом - довольно много недочетов.
      6. Celery - весьма интересный обработчик отложенных задач, но ужасно глючный
      7. gevent, eventlet - классная штука, но не мейнстрим к сожалению.
      8. Приложения с GTK GUI, Glade, PyWebKit
      9. Работа с DBus и прочим Linux-desktop окружением
      10. Сетевые приложения (HTTP, сокеты)
      11. Многопоточные приложения (очереди, блокировки и пр.), работа с дочерними процессами (subprocess)
      12. Асинхронные сокеты (asyncore, epool)
      13. Работа с XML и DOM, lxml, XPath
      14. Работа с MySQL, PostgreSQL, Sqlite3 базами данных
      15. Работа с AMQP (RabbitMQ) - синхронно и асинхронно, библиотеки pika, puka. Exchanges, routing etc довольно плотно.
      16. Работа с изображениями PIL
      17. Numpy - немножко
      18. PyGame - немного работал с ним
      19. AST - из интереса написал транслятор Pyhton кода в JavaScript
      20. Scrapy - веб-краулер
      21. Реализовал на Python ОЧЕНЬ МНОГО Пауков/грабберов/краулеров + клиентов для различных API
      22. Юнит-тесты
      23. Отладка, профилирование, отладка потребления памяти (Eclipse, cProfile, pyprof2calltree, KCachegrind)
    4. Erlang/OTP: писал HighLoad приложение для конкурса. Очень понравился.
      1. Веб-приложения (на основе MochiWeb и Django Templates)
      2. Работа с PostgreSQL, в т.ч. pooling открытых соединений
      3. Работа с сервером SphinxSearch из Erlang (через MySQL протокол)
    5. C: на довольно базовом уровне
    1. GTK+, Glib, GObject, DBus - разработка vpn плагина к NetworkManager
  • SQL: есть опыт работы с MySQL, PostgreSQL, немного MSSQL и SQLite. Предпочитаю PostgreSQL.
    1. Обычные (и не очень) запросы
    2. Хранимые процедуры
    3. Транзакции
    4. Представления (Views)
  • bash: куда-ж без него
  • Makefile: иногда очень полезен
  • регулярные выражения PERL: очень много писал различных шаблонов.
  • XML, DOM
  • XSLT ОЧЕНЬ МНОГО на нем делал всяких вещей, в том числе HTML/XHTML шаблонизация на XSLT, мультиязычность.
  • Командная работа и контроль версий
    1. GIT репозиторий, gitosis, GitHub
    2. Mercurial работал с ним, Git нравится больше
    3. SVN через git-svn
    4. Bazaar - веду один проект на Launchpad. Не нравится.
    5. Redmine, в т.ч. установка и настройка самого Redmine
  • Верстка
    1. Валидный HTML/XHTML, CSS. С версткой стараюсь не заморачиваться т.к. не особо люблю это дело.
  • Графика и дизайн:
    1. Photoshop, в основном  GIMP.
    2. В векторе SVG Inkscape
  • Веб - фреймворки/CMS:
    1. Django (реализовал довольно сложное intranet веб-приложение с LDAP авторизацией и разделением прав, несколько Intranet - приложений попроще)
    2. Pylons (sqlalchemy понравилось, остальное - нет)
    3. Joomla CMS (из админки, разработка MVC компонентов)
    4. WordPress (довольно глубоко приходилось залезать. Есть опыт создания тем)
    5. Bitrix CMS (из админки)
    6. CodeIgniter (Intranet веб-приложение) (фреймворк не понравился)
  • Сторонние API
    1. Службы Google для доменов (Google apps, http://www.google.com/apps/)
    2. YouTube API ("API данных" через Zend GData и "API проигрывателя" через JS)
    3. Google Analytics "Data Export API" (через PHP библиотеку gapi)
    4. Google Base API (аналог Яндекс-маркет) через Python библиотеку (даже патчик им отослал)
    5. eBay SOAP/XML API (будь оно неладно)
    6. Facebook social graph API (через Python библиотечку)
    7. Vkontakte desktop API (пишу Open Source плагин для Gwibber на Python), на работе разрабатываем игру для Vkontakte
    8. Twitter REST API (совсем немного)
  • Планы на будущее:
    1. Применить на практике Erlang
    2. Написать пару расширений для Python на C
    3. Пощупать Haskell
    4. Научиться работать с нейросетями
    5. Научиться программировать микроконтроллеры
  1. 2010-01-22 13:53:17 | #

    Для полноты ощущений добавь в раздел CMS ModX :)
    Капча зачетная.

    • 2010-01-22 20:09:17 | #

      С ModX я поработать пока не успел, но, думаю, в ближайшее время и он появится в этом списке!
      А капча обычная ReCaptcha api

  2. Мария
    2011-02-03 22:45:11 | #

    Я начинаю работать с Python. Работаю с примером из одной книги, но почему-то не работает. Нужно получить список лэптопов из категорий сайта eBay. Вы не могли бы мне подсказать, что я делаю неправильно. Я получила все ключи этого аукциона, внесла их в программу, но не работает. Можно ли переслать Вам файл с программным кодом?