Pull to refresh
22
0
Лёша Картошин @kartoshin

Пользователь

Send message

Видео-плеер на основе VLC. Часть 1

Reading time2 min
Views23K

Вступление, или как все начиналось...


Когда я пришел устраиваться на работу, мне показали макет того, что я должен буду сделать. Это был видео-плеер с довольно симпатичным интерфейсом. Предполагалось, что мой плеер будет использовать плеер VLC (а точнее его библиотеку LibVLC) в качестве видео-движка. Дело в том, что плеер, который все привыкли видеть на своем рабочем столе — VLC по сути лишь интерфейс для библиотеки LibVLC, которая позволяет загружать и декодировать видео файлы с локального диска, мультикаст поток.

С языком разработки определились сразу же — С++. Что касается среды разработки, то у меня, как и у начальства были свои предложения (Visual Studio IDE) — в итоге сошлись на Qt IDE, т.к. SDK имеет множество классов, позволяющих ускорить разработку приложения с пользовательским интерфейсом.
Читать дальше →

Требования к вёрстке под drupal

Reading time4 min
Views12K
Не раз сталкивался с проблемой, когда присылают вёрстку и там вроде бы всё хорошо, но вот как начинаешь прикручивать к drupal, то сталкиваешься с тем, что либо надо вёрстку переделывать либо функции темы переписывать. И в итоге процесс темизации из-за этого может значительно увеличиться. Поэтому мы на работе решили написать требования к вёрстке под drupal. Ниже привожу требования к основным элементам.
Читать дальше →

Создание приложений на GTK+ с использованием среды Glade

Reading time10 min
Views47K
Данный пост посвящен созданию приложений с использованием кроссплатформенной библиотеки GTK+. Ориентирован он в основном на новичков? поэтому какие-то вещи возможно для многих покажутся очень простыми и банальными, но я постарался максимально подробнее всё описать, чтобы было понятно для всех.

Немалым достоинством этой библиотеки является то, что она бесплатна для коммерческого использования. В интернете не так много документации и действительно качественных статей по работе с GTK+. В очень многих примерах интерфейс программы пишется «ручками», что порой очень неудобно. Я сам с этим столкнулся и довольно часто больше времени тратил на то, чтобы правильно расположить виджеты (объекты) на форме, в контейнеры, а не сосредоточиться на решении поставленной задачи.

Я продемонстрирую как можно очень быстро создать интерфейс для GTK+ с помощью приложения для визуального создания графических интерфейсов Glade и интегрировать его в вашу программу. Glade не является ни компилятором, ни отладчиком. Он позволяет лишь описать интерфейс и представить его в файлах XML-формата GladeXML.

Базовым интерфейсом для библиотеки GTK+ является язык C. Но я в данном примере буду ипользовать C++. Соответственно появятся небольшие особенности, о которых я обязательно расскажу. Дистрибутив Linux я использую Ubuntu 10.04.

Задача будет такая: написать небольшое приложение состоящее из холста, бокового меню (выбора того, что нарисовать на холсте), главного меню и строки состояния. При этом боковое меню и холст при изменении размера всего окна приложения должны оставаться постоянного размера. Но тот контейнер, в котором находится холст может изменять свой размер в зависмости от увеличения/уменьшения размеров главного окна. И при необходимости должны появляться полосы прокрутки.
Читать дальше →

Objective-C с нуля

Reading time23 min
Views440K
У любого желающего писать программы для продукции фирмы Apple в жизни наступает такой момент, когда ему приходиться изучить новый язык программирования — Objective-C. Когда-то этот счастливый момент постиг и меня. А чтобы лучше запомнить основные особенности этого языка, решил законспектировать свои мысли во время осмысления его документации, которыми и делюсь с вами.
Читать дальше →

Макет бизнес модели

Reading time1 min
Views31K
Недавно под руку попался png файл, позволяющий соориентироваться при создании бизнес-плана. Он представляет собой простой макет, в который нужно просто вписать значения, присущие вашему бизнесу. Для упрощения есть подсказки, примеры и ключевые вопросы. Так же этот документ может пригодится во время подготовки презентации для встречи с инвесторами. Под катом превью макетов и ссылки на оригинал, переведенный мною вариант и на него же в формате psd.
Читать дальше →

История развития и оптимизаций одного высоконагруженного ресурса

Reading time5 min
Views14K


Введение

Все началось с того, что я стал системным администратором у одного провинциального Интернет-провайдера. Помимо администрирования различного рода ресурсов, мне в присмотр достался один молодой, но бурно развивающийся ресурс. Ресурс представлял из себя классический LAMP проект. Сайт, на котором генераторами контента являлись обычные пользователи.
* К слову, в то время я ничего не понимал в *nix системах, хоть и все сервера которые мне достались, были именно на нем, разбирался я во всем этом достаточно быстро.

Как обычно бывает с ресурсами, набирающими популярность, железки на которых все крутится, перестают справляться. Ресурс стоял на стареньком двухпроцессорном сервере, на котором крутились практически все сервисы для пользователей. В то время начальство не воспринимало ресурс как нечто стоящее вложений, поэтому, к моему сожалению (а позже – счастью), денег под новую железку мне не выделяли.
Читать дальше →

Создание расширения для Google Chrome

Reading time8 min
Views119K
Тема создания расширений достаточно хорошо раскрыта в сети, есть множество статей, документации на эту тему. Но я не нашел ни одного ресурса, который бы описал процесс создания расширения от начала до конца. Я собираюсь исправить эту ситуацию, и рассказать о том как создать расширение, как хранить, читать настройки, как добавить поддержку нескольких языков.

Для работы с расширениями вам понадобится переключить канал обновлений на Dev или Beta.
Читать дальше →

Красивые конфиги Django

Reading time3 min
Views19K
За то время, пока я занимаюсь внедрением проектов, написанных на Django, накопились простые приемы упрощающие деплой. Разберем settings.py, который был использован в одном из последних проектов. Полностью файл доступен на http://gist.github.com/214361
Начнем.

Локальные настройки:

Локальные настройки позволяют иметь разные конфигурации одного проекта на разных машинах. В конце каждого моего файла settings.py есть подключение local_settings.py. Это позволяет переопределить любые значения переменных из settings.py. Например, на продакшн сервере я использую mysql, а на локальной машине — sqllite.
try:
    from local_settings import *
except ImportError:
    pass

Читать дальше →

А как сделать X на языке Y?

Reading time1 min
Views640
Часто, когда требуется решить какую-то задачу на новом или старом и позабытом языке возникают довольно простые вопросы, например у меня сегодня возник вопрос как сделать проверку на null (nil, none, nothing, empty) в Tcl.

RosettaCode — хрестоматия программирования, содержит решения типовых задач на разных языках, вот например решение моей.

Просмотреть решения можно по задачам, языкам, библиотекам.

Конечно, ответы на такие вопросы поисковая машина дает довольно быстро путем ввода аналогий из других языков, равно как и любой мануал по языку, но наличие такого «конвертора» знаний на новый язык весьма удобно.

Как поймать «поток», и как сделать так, чтобы он не сорвался

Reading time6 min
Views49K

Вступление


Я, как руководитель проектов, всё больше и больше замечаю, что эффективность работы команды (и каждого программиста в частности) – это ключевой фактор, определяющий успех проекта. При эффективной работе даже самые тяжёлые проекты со сжатыми сроками удаётся завершить успешно, а неэффективная способна «завалить» простейшие проекты с минимумом рисков. Поэтому, я хотел бы поделиться своими мыслями об одном из ключевых понятий – понятии «работы потоком».

Читать дальше →

Разработка приложения на основе протокола oAuth для Twitter API на PHP

Reading time5 min
Views11K

В этой статье расскажу про работу с Twitter API по протоколу OAuth на PHP.
Протокол OAuth предоставляет приложению доступ к данным пользователя без передачи ему логина и пароля пользователя. Новые правила авторизации приложений требуют использование технологии “OAuth” для работы с Twitter начиная с 31 августа.
Тестовое приложение, которое получится в итоге, будет уметь выводить ленту сообщений пользователя, ленту последних статусов его фолловеров и по нажатию на кнопку рядом с каждым статусом фолловера или друга можно будет читать всю ленту этого пользователя.
Читать дальше →

Не строим с нуля. Теперь у Вас есть шаблон для верстки HTML5

Reading time2 min
Views17K
Любовь к HTML5 продолжает вдохновлять Поля Айриша. Во-первых, он подарил нам Modernizr, а сейчас он объединился с Divya Manian для создания шаблона HTML5, который использует передовые техники, чтобы Вы могли начать использовать его в своей практике.

Он, в сущности, является хорошей отправной точкой, состоящей из HTML и CSS, предлагающим также и структуру папок, которая работает. Но созданным с учётом многих лет передового опыта профессионалов в разработке клиентской части. Загляните в исходные тексты, чтобы почувствовать, что находится внутри. А если вы думаете, что этого слишком много, просто удалите лишнее.
Читать дальше →

Сажаем деревья с jqGrid

Reading time9 min
Views16K
Недавно впервые довелось «пощупать» такой плагин для jQuery как jqGrid. Многим этот плагин, думаю, знаком. Но в рунете не так много материалов по его использованию. Чтож… будем это исправлять!

Итак, jqGrid — довольно мощный плагин для создания различного рода таблиц в своих веб-приложениях. Он позволяет создавать не только обычные двумерные таблицы, но и таблицы с вложенными таблицами (нечто вроде экселевского pivot table), а также деревья (tree). Но обо всем по порядку и в данной статье рассмотрим основные свойства grid'ов и процесс «посадки деревьев».
Читать дальше →

Manager's schedule vs «maker»'s schedule

Reading time3 min
Views7.3K
Под катом — мой вольный перевод (части) одной любопытной статьи Пола Грэма, описывающей принципиальную разницу между расписанием типичного менеджера и типичного «maker-a» — разработчика в частности.

Вольный — потому что я перевожу мысль в мысль, а не слово в слово. Почему части статьи? Потому что я перевел то, что составляет ее основное содержимое, и хотел сделать перевод простым и четким.

Пропущенное по большей части — это примеры из жизни оригинального автора статьи, которые я опустил. Всем интересующимся — добро пожаловать по ссылке в конце.

читать дальше.

История в картах

Reading time1 min
Views5.8K
Идея, которой я хочу поделиться, очень проста, а потому наверняка не нова. И если вы уже знаете реализации этой идеи, скажите мне об этом в комментарии, и я скрою топик.
Картой, будь то Google Maps, Yandex.Карты или OpenStreetMaps, сейчас никого не удивить.
Все мы видели неоднократно карты типа вот этой:
Celts in Europe
Многие, я думаю, видели и более продвинутый вариант:
Reconquista

Так почему ещё никто не сделал Google Map-карту с ползунком года? Чтобы для каждого года (десятилетия, столетия, тысячелетия — чем глубже в историю, тем менее точны цифры) показывать границы государств, границы расселения народов, крупные города, центры культуры, военные действия?
Возможно, где-нибудь рядом показывать основные события, обстановку в мире?
Ведь это был бы универсальный источник информации об истории человечества.
Понятно, что реализация такого проекта неизбежно столкнётся с множеством трудностей. Наиболее очевидной из них является недостаток информации: о границах, о времени разделения народностей, да и ещё много о чём. И несмотря на то, что множество информации уже имеется в открытом доступе (посмотрите статью википедии про 1050 год, например), построение такой карты — задача для большой научной/образовательной организации.
Но я хочу дожить до того момента, когда я смогу увидеть на одной карте, что в то время, когда в Германии была записана «Песнь о Нибелунгах», в Древней Руси произошло Ледовое побоище, а в Италии изобрели очки.

Автоматизируем работу с сайтом за 5 минут на примере Yandex.Почты с помощью NetExport

Reading time7 min
Views10K
Иногда, бывает нужно автоматизировать некоторые процессы на чужом сайте. Залогиниться на сайт, скачать какой нибудь файл, открыть страничку. Часто приходится разбираться в коде сайта, чтобы найти, как правильно написать запрос curl.

Предлагаю Вашему вниманию способ, которым я сам пользуюсь, чтобы значительно облегчить себе жизнь и автоматизировать все и вся, от проверки почты, до загрузки данных в телебанке. Я постараюсь, на примере Yandex.почты показать, как можно очень быстро и почти без программирования сгенерить curl php скрипт для захода на любой сайт и загрузки контента в автоматическом режиме.
Читать дальше →

Система домашнего учета финансов — koshelek.org

Reading time5 min
Views2.9K
Image Hosted by ImageShack.us
Приветствую всех. Сегодня я хотел бы немного попиариться и рассказать о своем небольшом проекте, посвящённом системе домашнего учета финансов «koshelek.org»
и о том как я его делал.

P.S Хочу сказать, что — это не моя система, если я заработаю инвайт, то приглашу человека сюда.
P.P.S Сайт испытывает хабро эффект. Нагрузка на БД. Хостер сказал, что не будет включать ее.
Если у вас есть на примете хостер с поддержкой JAVA, отпишитесь в комментариях.

Читать дальше →

Устанавливаем и настраиваем LAMP и Trac+SVN на Ubuntu

Reading time4 min
Views16K
Прочитав эту статью, я осознал, что Trac+SVN очень помогут в работе и решил настроить эту связку у себя на машине.

С недавних пор я использую Убунту линукс, потому установка и настройка проходили с учетом особенностей данной системы. LAMP у меня уже был установлен ранее, так же как и inadyn. В итоге я получил достаточно гибкую и удобную систему управления своими проэктами, к которой есть доступ по сети. Интересно, как сделать?
Делюсь опытом

Рулим трафиком в Linux. Аккаунтинг, сбор статистики

Reading time6 min
Views22K
Каждый админ должен в своей жизни настроить сендмейл, написать биллинг и обругать маздай :)
© bash.org.ru

Сендмейл мы настраивать не будем, как и ругать детище Билли, а попробуем создать что-то вроде биллинга, т.к. этот вопрос рано или поздно встает практически перед всеми системными администраторами.

Статья ориентирована на новичков в администрировании и опытным спецам навряд ли будет интересна.
Читать дальше →

zenity + wget = GUI wget

Reading time5 min
Views9K
Топик посвящается тем, кто не любит качать тяжелые файлы браузером из файлообменников, а также для тех кто хочет получше понять работу zenity.

В Linux есть много различных качальщиков от консольных до тяжелых java-приложений и мой скрипт это не еще один новый качальщик, это всего лишь приятная для глаз (eye-candy) обертка для стандартного Wget. Хотя в потенциале он умеет все что умеет Wget, но я реализовал только самые его основные функции. Цель данного скрипта — запустить закачку через wget (отвязав ее от браузера) и показывать ход ее выполнения.
Читать дальше →

Information

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