Pull to refresh
126
0
Валентин @silvansky

Developer

Send message

Простое решение на bash для расшаривания музыки и фоток в Dropbox

Reading time 3 min
Views 1.8K
Всем доброго хабрадня!

Ни для кого не секрет, что Dropbox можно использовать для хранения сайтов-визиток (правда, с некоторыми ограничениями, о них ниже). Так же всем известно, что можно из дропбокса сделать почти ftp-сервер с удобным просмотром содержимого.

Методы эти известны всем, но они имеют и негативную сторону. Во-первых, html-содержимое для пользователей с российскими IP не доступно. Во-вторых, эти варианты использования папки Public не годятся для удобного шаринга большого количества картинок или музыки (пиратам дальше не читать). Исправим же это! Найдём средство создавать сайты в дропе и вставлять в них музыку с прослушиванием онлайн и картинки с превьюшками!

Сразу поговорим об ограничениях. Dropbox не даёт смотреть html, это так, но, как подсказывает нам adminimus вот тут, надо переходить на XHTML. Да, это немного неприятно, но быстро привыкаешь, а для простой вёрстки это и вообще почти не заметно. Значит, нам нужен скрипт, который на входе получит папку с файлами, а на выходе выдаст файлик .xhtml со всем необходимым содержимым.

Если Вам хочется сразу получить код на bash'е, то прошу на гитхаб, а если интересны технические подробности, то — под кат.
Читать дальше →
Total votes 22: ↑19 and ↓3 +16
Comments 10

Qt/Objective-C++11 или сборка Qt-проекта с помощью GCC-4.7 и Clang

Reading time 6 min
Views 12K
Всем доброго хабрадня!

Сегодня я расскажу уважаемым хабражителям об очередном извращении — о сборке проекта, написанного на Qt, под Mac OS X компилятором GCC-4.7.0 с примесью Clang'а (про шланг — в конце статьи, там станет понятно, зачем ещё и его приплетать будем).

Для чего нам GCC 4.7? Ну, например, чтобы использовать все те крутые фичи из стандарта C++11. Разве этого мало? Кроме поддержки нового стандарта, в нём очень много улучшений по сравнению с идущим в комплекте с Xcode GCC 4.2 (хотя он и оказывается на поверку i686-apple-darwin11-llvm-g++-4.2), так что смысл в переходе на 4.7 явно имеется. Но и проблемы присутствуют, о чём ниже.

Мы можем предположить, что нам потребуются некие фичи из Cocoa, а значит, нам потребуется компилятор Objcetive-C, а ещё лучше — Objective-C++, чтобы, например, интегрировать наше Qt-приложение в окружение Mac OS X.
Начнем!
Total votes 41: ↑34 and ↓7 +27
Comments 66

Qt Creator 2.5.0 вышел в свет!

Reading time 1 min
Views 5.9K
Состоялся релиз нового Qt Creator'а, находившегося до того в бете и RC.

Список изменений и нововведений:

  • Быстрый повторный поиск с кнопкой «Search Again»
  • Запуск shell-команд прямо из локатора
  • Плагин TODO, о котором уже писал на Хабре уважаемый Vass, коему в официальной новости выражена благодарность
  • Плагин для работы с autotools
  • Дополнительные возможности рефакторинга в C++: извлечь метод, добавить нехватающий #include, переставить аргументы функции местами
  • Улучшена поддержка C++11 (nullptr, constexpr, static_assert, noexcept, inline namespaces, auto, lambdas)
  • Новые хинты и ворнинги в редакторе QML (и возможность их отключать особыми комментариями)
  • Исправлены многочисленные баги
  • В версии под Windows из установочного пакеты убрали MinGW



Ссылки на новость, changelog и скачивание под катом
Total votes 42: ↑39 and ↓3 +36
Comments 39

Консоль для маководов: Beyond the GUI

Reading time 6 min
Views 219K
Доброго дня, уважаемые хабравчане-маководы!

Сегодня я расскажу как увеличить эффективность работы в Mac OS X за счёт использования консоли.

Лирическое отступление


Думаю, ни для кого не секрет, что Mac OS является Unix-based системой, но переработанной почти до неузнаваемости. Даже консоль засунули куда подальше — не сразу и найдёшь. И вся система нацелена на использование GUI, при дефолтных настройках даже переключение между кнопками по Tab не работает — без мыши никуда. И тем не менее, Мак — это не только окошки, не только док и лаунчер. Мак это ещё и вся мощь shell скриптов и консоли!

Если Вы пришли из мира M$, то для начала неплохо бы поучить общие команды shell'а, например, по вот этому учебному пособию. Как минимум, нужно усвоить команды перехода по каталогам и способы запуска программ и скриптов.

Если Вы пришли в мир Mac OS из мира Linux'а и FreeBSD, то, скорее всего, знаете как минимум основы shell-скриптинга. Но и для вас в статье может оказаться кое-что интересное, ведь в маке есть уникальные консольные команды, которые так же полезно знать.

Вот о некоторых особенностях маковской консоли далее и пойдёт речь.
Поехали!
Total votes 104: ↑91 and ↓13 +78
Comments 126

Хранение шифрованных данных в облаке средствами Mac OS X

Reading time 2 min
Views 11K
Доброго хабрадня!

Сегодня я расскажу вам, уважаемые хабралюди, о том, как хранить свои данные в облаке и не переживать за них. Точнее, я расскажу об интересной возможности сделать шифрованный образ диска в Mac OS X средствами самой системы.

Для опытных пользователей (коих прошу не судить слишком строго) в данном топике пользы нет, можете не отвлекаться. Но многим, я уверен, информация может пригодиться.

Итак, сейчас мы создадим зашифрованный образ с помощью Дисковой Утилиты и сохраним его на Яндекс.Диск (благо теперь он позволяет хранить шифрованные данные).
Подробная инструкция с картинками под катом
Total votes 43: ↑31 and ↓12 +19
Comments 35

SSH и FTP через Dropbox

Reading time 2 min
Views 15K
Всем доброго хабрадня!

Сегодня я расскажу вам, уважаемые хабралюди, об одной бредовой идее, пришедшей в мою голову и даже воплощённой в жизнь.

Внимание! Всё нижеописанное не является руководством к действию и воспринимать это стоит не иначе как юмор. А то больно всерьёз все восприняли… =)

Для начала немного предыстории. Недавно возникла очень острая необходимость в ssh доступе на некоторый unix-based компьютер, дабы выполнить там svn diff > mypatch.diff и перекинуть результат по ftp. Но оказалось, что целевая машина по некоторым причинам не хочет пинговаться! Причём, по словам админов, и не предвидится пинг к ней, хотя выход в интернет она имеет. И я решил, что неплохо бы пробросить ssh через что-то стороннее. В голову сразу начали лезть VPN, reverse ssh, туннели и прочее. Но для большинства решений нужна дополнительная машина и/или дополнительный софт, либо это требует перенастройки самой сети (что для меня совсем не вариант — сеть-то не моя). Я уже готов был отчаяться и гуглить упорнее, но тут в мою не совсем здоровую голову пришла мысль: а что если заюзать дропбокс?
И вот что получилось...
Total votes 61: ↑47 and ↓14 +33
Comments 28

Виджет хаброметра для Dashboard

Reading time 1 min
Views 1.4K
Всем хорошего хабрадня!

По мотивам своего недавнего поста о создании виджетов для дашборда я решил сделать ещё один несложный виджет. Он умеет всего лишь отображать хаброметр выбранного в настройках пользователя.



Скачать архив с виджетом
Исходники на гитхабе

Немного описания
Total votes 28: ↑22 and ↓6 +16
Comments 6

Создаём простейший виджет для Mac OS X Dashboard

Reading time 6 min
Views 10K
Здравствуйте, хабравчане-маководы!
Картинка поста
Сегодня мы с вами попробуем разобраться в азах создания виджета для Dashboard в Mac OS X. Нам понадобится программа Dashcode, предназначенная как раз для этого.

Для начала немного теории. Виджет в Dashboard — это специально сформировання веб-страничка, упакованная в бандл вместе со всем ресурсами. Ну, и немного служебной информации в довесок. Соответственно, используемый язык программирования — JavaScript. Если Вы уже знакомы с ним, а так же с HTML/CSS (хотя это вряд ли понадобится), то Вы уже способны написать простенький виджет. Если же нет, то не стоит расстраиваться, этот язык очень прост и интуитивно понятен, разобраться с ним можно достаточно быстро. Далее я буду считать, что с JS читатель более-менее знаком. Сама же статья рассчитана на новичков, так что прошу не ругать за «слишком простое изложение и детальное разжёвывание элементарных вещей». Кроме того, за дизайн тоже прошу не пинать — ну не дизайнер я, не дизайнер! Если кто хочет помочь с этим делом — welcome =)

Для удобства, все исходники (а так же готовый к использованию виджет) выложены на гитхаб, ссылка в конце статьи. Но не спешите просто скачивать их! Лучше потратить немного времени и разобраться, как создать это всё самому.

Итак, приступим. В качестве цели для экспериментов я, разумеется, выбрал наш любимый хабр. Мы будем шаг за шагом делать виджет, отображающий карму, рейтинг и позицию в рейтинге хабралюдей выбранного хабраюзера.
Картинка для привлечения внимания
Такой виджет (ну, очень похожий) уже был создан хабратоварищем neoromantic аж в 2007 году, но ссылки на скачивание не рабочие, а кроме того, та статья не содержала практического руководства по созданию подобных виджетов.
Создадим же проект с нуля!
Total votes 53: ↑47 and ↓6 +41
Comments 14

Вышла версия Xcode 4.3.2

Reading time 1 min
Views 8.2K

Кратко об изменениях (из описания в AppStore):

  • Включает в себя SDK для iOS 5.1 и MacOSX 10.7
  • Подписывание программ с помощью Apple Developer ID
  • Консольные утилиты устанавливаются из меню загрузоксм. примечания
  • Instruments, File Merge и другие утилиты теперь запускаются прямо из Xcode
  • Утилита миграции на ARC может преобразовывать код из retain/release и GC кода
  • Багфиксы и стабильность — как уж водится


Версия для Mac OS X Lion доступна бесплатно в AppStore. Версии для Snow Leopard, видимо, не будет.
Некоторые особенности релиза
Total votes 43: ↑33 and ↓10 +23
Comments 42

Bitcasa стартанула!

Reading time 1 min
Views 6.6K
Хорошие новости! Bitcasa запускается, и даёт бесконечное место под файлы!

Справка: Bitcasa — аналог Dropbox'а, но изначально нацеленный дать безграничное дисковое пространство. На данный момент есть клиенты для Mac OS X и Windows, версия под Linux в стадии «Coming soon...», будут ли клиенты для мобильных устройств пока не известно.

Сейчас регистрация только по приглашениям, либо по заявкам о предварительной регистрации (как в моём случае). Каждому пользователю выдаётся 10 приглашений.
Топик превратился в раздачу инвайтов. Налетай! =)

Читать дальше →
Total votes 74: ↑60 and ↓14 +46
Comments 266

Синхронная и асинхронная загрузка изображения из сети с последующей обработкой

Reading time 10 min
Views 11K
Доброго всем хабрадня!

Сегодня я хочу рассказать об одном из методов синхронной и асинхронной загрузки изображения из сети. Чтобы статья была не скучной, загруженные изображения мы попробуем каким-либо образом обработать средствами Qt.


Как будем загружать?


Для загрузки изображений мы будем использовать QNetworkAccessManager и QEventLoop, а так же немного мета-объектов. Загружать будем по HTTP изображение в любом формате, из поддерживаемых Qt. Ну, ещё будем обрабатывать редиректы.

Как обрабатывать-то будем?


Есть замечательный класс QGraphicsEffect с подклассами. Но мы с ними работать в рамках данной статьи не будем, смиритесь! И я даже объясню почему. К примеру, в Qt 4.8.0 эти эффекты ведут к крашу приложения в Mac OS X 10.7.+, а в Qt 4.7.4 в той же системе они вообще не работают. Уж не знаю, как так вышло, но багу в багтрекере Qt я поставил.

Значит, будем создавать свой класс для обработки изображений. Он будет у нас уметь слудющее:
  • Переводить изображение в оттенки серого
  • Колоризировать (как это по русски-то сказать?)
  • Добавлять тень
  • Менять прозрачность
  • Вращать вокруг центра
  • Квадратизировать
  • Квадратизировать со скруглением углов
  • Как бонус, научимся считывать пользовательские цвета в формате #RRGGBBAA

Сразу отмечу, что полный код тестового проекта можно скачать на гитхабе, ссылка в конце статьи.
Поехали!
Total votes 44: ↑44 and ↓0 +44
Comments 24

Выборочная сборка плагинов — мы пойдём иным путём

Reading time 2 min
Views 1.3K
Всем хабрапривет!

Маленькая (ну очень маленькая) заметка о том, как дать плагину выбирать самому — собираться в данной системе или нет. Конечно, есть старый добрый способ — просто исключить сам лишний плагин из сборки, к примеру, так:

# plugins.pro

TEMPLATE=subdirs

SUBDIRS+=common
macx: SUBDIRS+=macplugin
win32: SUBDIRS+=winplugin

Но при таком подходе при добавлении каждого нового плагина надо его прописать в plugins.pro и установить для каких систем он будет собираться. Если плагинов всего-то 5 штук и больше не предвидится, то это нормально. Но если уже есть 20 плагинов, и ещё 30 планируется, причём многие из них должны собираться только под некоторые платформы, то plugins.pro превращается в помойку. Если разработчиков несколько, то это вносит ещё большую путаницу.
Распутаем это дело...
Total votes 17: ↑17 and ↓0 +17
Comments 12

Интеграция приложений Qt в среду Mac OS X (с использованием Cocoa и Objective-C++)

Reading time 9 min
Views 14K
Доброго всем дня!

Недавно я писал о кастомизации заголовка окна в Mac OS X и получил реквесты написать поподробнее о взаимодействии Qt и Cocoa. Думаю, тему можно немного развернуть и написать об интеграции приложений, написанных с помощью Qt, в среду Mac OS X. Оговорюсь, что используется в данном случае Qt for Cocoa, если возьмёте Qt for Carbon, то и работать придётся только с карбоном. Но он морально устарел, и использовать его стоит только в крайних случаях.

Обычная Qt-программа имеет ряд несостыковок с Apple HIG. Точнее, может иметь, так как не всем программам нужен дополнительный функционал. Например, не любой программе надо иметь бэдж поверх значка в доке, расширять меню дока или выносить/дублировать некоторые функции в маковское меню.

Но что делать, если такой функционал нужен? Если нужно отображать в доке количество уведомлений (а-ля скайп), обрабатывать клик по иконке в доке, добавлять свои пункты меню в док, да ещё и иметь нормальное меню, в общем, сделать так, чтобы программа смотрелась как родная в Mac OS? Что-то из этого можно сделать с помощью штатных или полудокументированных функций Qt, а что-то — только с использованием Cocoa и, соответственно, Objective-C… Что же делать?

Нам поможет Objective-C-plus-plus!
Total votes 48: ↑46 and ↓2 +44
Comments 25

Кастомизация заголовка окна в Mac OS X

Reading time 6 min
Views 5.8K
Добрый день, %username%!

Не так давно пришла необходимость в кастомизации заголовка окна своей программы в Mac OS X. Если это делают iCal.app и Adress Book.app, то почему бы и мне не сделать так же?

Первые же ссылки из гугла дали мне несколько зацепок, и даже одна тестовая программа (после долгих плясок с бубном) скомпилилась и отобразила свой нестандартный заголовок. Но она требовала подключения приватных хедеров, их модификации (для соответствия новой версии Mac OS X) и т.п… А мне хотелось лучшего, хотелось сделать проще, да ещё и задать цвет текста заголовка окна (для гармонии с новым цветом заголовка). Отбросив все неудачные примеры, начал я копать зацепки…

И выяснил, что в обычной программе за отрисовку окна отвечает недокументированный класс NSThemeFrame, с ним-то мы и будем работать.

Осторожно! Под катом присутствует магия рантайма.
Магию в студию!
Total votes 31: ↑23 and ↓8 +15
Comments 22

Сборка плагинов для Qt Creator в windows

Reading time 1 min
Views 2.1K
Столкнулся с проблемой: как под виндой собрать плагин для Qt Creator'а, поставляемого с Qt SDK или Nokia Qt SDK.

Для начала нужны исходники криейтора, их легко находим на гиториусе или ftp. Забираем оттуда версию 2.0.0 (сейчас такая в обоих SDK), распаковываем, кладём наш плагин в src\plugins. Можно собирать (как только соберётся сам криейтор).

Теперь фишка. Чтобы плагин работал с криейтором из SDK его обязательно надо собирать в релизе и компилятором MSVS2008 с Qt 4.7 (beta2 или RC). Соответственно, скачанные исходники криейтора надо собирать так же.

Собственно, всё, теперь можно копировать длл-ку плагина и .pluginspec файл в %QT_SDK_INSTALL_DIR%\QtCreator\lib\qtcreator\plugins\.

В принципе, плагины от Qt Creator 2.0.0 скорее всего заработают и с версией 2.0.1 (последняя на данный момент), только в файле .pluginspec надо везде 2.0.0 заменить на 2.0.1.

Хабратопик, побудивший меня исследовать этот вопрос
Total votes 7: ↑7 and ↓0 +7
Comments 5

Встраиваем качественный звук в Qt приложение (Qt + FMOD)

Reading time 2 min
Views 8.7K
Помню время, когда я обрадовался мультимедийным возможностям Qt… phonon хорош, это да. Но помню и время разочарования: слишком мало всего умеет этот самый phonon. Как минимум, он не умеет воспроизводить два звука одновременно. Да и интерфейсы у него хромают…

Как бы то ни было, а начал я искать что-то получше, причём кроссплатформенное. После пары неудачных находок, я наткнулся на FMOD Library. Не смотря на отсутствие исходного кода, это бесплатная (для некоммерческого использования) кроссплатформенная библиотека.

Читать дальше →
Total votes 6: ↑6 and ↓0 +6
Comments 5
2

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity