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

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

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

  • 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: хорошо разбираюсь, но усиленно стараюсь забыть как страшный сон
  • Программирование (работаю в 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: на среднем уровне
    • 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-svn
    • Bazaar - вел один проект на 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 (??)
    • Научиться работать с нейросетями
    • Научиться программировать микроконтроллеры
  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. Вы не могли бы мне подсказать, что я делаю неправильно. Я получила все ключи этого аукциона, внесла их в программу, но не работает. Можно ли переслать Вам файл с программным кодом?

  3. Dicategr44u
    2017-02-11 03:09:26 | #

    http://www.sportfans.pl/konsekwencje-jazdy-na-rezerwie.html
    Looking for a used or new automobile can be quite a tough procedure unless you know what you really are performing. By teaching yourself about car store shopping before you visit the car dealership, you possibly can make points simpler yourself. The following tips might help your upcoming shopping vacation be satisfying.

    Usually deliver a technician alongside when shopping for a whole new vehicle. Auto dealers are popular for selling lemons and you do not wish to be their after that target. Whenever you can not get yourself a auto mechanic to think about vehicles along, at the very least be sure that you have him review your last choice before you purchase it.

    Know your restrictions. Prior to starting shopping for your upcoming auto or truck, make a decision how much you can manage to pay out, and adhere to it. Don’t neglect to add fascination with your computations. You can expect to spend about twenty percent as a down payment at the same time, so be ready.

    Well before visiting a car dealership, know what kind of motor vehicle you desire. Study all you choices ahead of shopping to help you determine what works best for your finances and family demands. Seek information to determine just how much you should pay to get a probable automobile.

    Before you sign any deal take the time to read through each and every series, such as the small print. If you have anything at all outlined that you simply do not recognize, will not indication before you get an solution that you recognize. Unsavory salesmen can use a legal contract to put in several costs which were not talked about.

    In the event you keep the preceding advice in mind next time that you just go shopping for a automobile, you will certainly be very likely to get a good offer. Getting a automobile does not have to be a head ache. Just use the tips out of this write-up and you could obtain the auto you would like at a excellent price.