Как стать автором
Обновить
12
0
Дмитрий Фалько @lSDriim

Backend-developer

Отправить сообщение

Нативные интерфейсы в Qt

Время на прочтение11 мин
Количество просмотров66K
Qt Logo

Эта статья посвящена программированию GUI на базе фреймворка Qt от Nokia. Мы рассмотрим способы разработки интерфейсов для нативного отображения на платформах Windows, Linux и Mac OS X.

Презентацию[1] вёл Йенс Бач-Вииг (Jens Bache-Wiig) — разработчик Qt (с 2005 года), занимающийся интерфейсами (look and feel).

От переводчика: далее, поскольку это слайд-шоу, по мере возможностей буду давать пояснения к слайдам. Какие то, на мой взгляд менее важные моменты будут опускаться, что-то будет рассмотрено более подробно.

Итак, приступим. Каждое графическое окружение имеет свой свод правил (User Interface Guidelines, UIG) по созданию интерфейсов, предназначенных для этих окружений. Из основных можно отметить такие руководства как Windows User Experience Interaction Guideline, Apple Human Interface Guideline, KDE User Interface Guideline и GNOME HID. Каждое из этих руководств «определяет положение кнопочек и рюшечек» конкретного окружения. Фреймворк Qt, в свою очередь, осуществляет поддержку всех этих руководств, предоставляя разработчику возможность создавать программы с использованием виджетов, «подстраивающихся» под окружение.

Читать дальше →
Всего голосов 116: ↑112 и ↓4+108
Комментарии9

Qt и SQLite и вообще, программирование БД в Qt

Время на прочтение9 мин
Количество просмотров157K
Добрый день.

Ниже пойдет речь о том, как использовать SQLite в Qt. Автор постарался как можно подробнее рассматривать программирование баз данных в Qt.

Об этих двух замечательных продуктах можно прочитать следуя приведенным выше ссылкам, а мы будем конкретно рассматривать программирование БД в Qt, в частности, на примере SQLite. Скажу только, что SQLite несколько отличается от «обычных» баз данных, таких как MySQL тем, что «не обладает» клиент-серверной архитектурой. То есть движок БД не является отдельно работающим процессом, с которым взаимодействует программа. SQLite представляет собой библиотеку, с которой компонуется ваша программа и, таким образом, движок становится составной частью программы. То есть представьте вы решили сохранять все данные, с которыми «сталкивается» ваша программа в обычный файл. В один прекрасный день вы решаете сохранять данные в файле, но организовав это с «реляционной» точки зрения. После этого вы поняли, что новая структура файла должна «распознаваться особым образом». С этого, как минимум, следует, что вам нужно предоставить некоторый API, обеспечивающий связь между этим файлом данных с приложением. В общем, следуя логической постановке приведенного сценария у вас рождается система БД, не требующая сервера БД и собственно, клиента. Получается достаточно быстрая по сравнению с «клиент-серверной» БД система, и сама программа упрощается.
Почему я рассматриваю именно SQLite?
Всего голосов 48: ↑43 и ↓5+38
Комментарии57

Скорости разработки и исполнения, не достижимые на С

Время на прочтение20 мин
Количество просмотров59K
В продолжении статьи о кроссплатформенной и кросс-аппаратной оптимизации, на примере задачи поиска полным проходом по таблице из 5 полей и 10 000 000 строк, и неизбежности этой задачи даже при индексном поиске, я покажу как ускорить такой поиск в 3.5-5.3 раза с использованием C++ независимо от аппаратной платформы.
В предыдущей статье нам удалось ускорить поиск в 1.3 раза: GitHub.com
Мы не будем банально описывать конструкции языка, а покажем преимущества C++ при решении одного из этапов реальной задачи.
Мы по-прежнему пишем кроссплатформенно под MSVC11(MSVS2012) и GCC 4.7.2, и используем в них C и частично реализованный стандарт C++11.
Для упрощения понимания мы все ещё пишем без индексного поиска, но это решение в дальнейшем будет использоваться при индексном поиске.
Читать дальше →
Всего голосов 165: ↑150 и ↓15+135
Комментарии41

Изучаем С используя GDB

Время на прочтение6 мин
Количество просмотров108K
Перевод статьи Аллана О’Доннелла Learning C with GDB.

Исходя из особенностей таких высокоуровневых языков, как Ruby, Scheme или Haskell, изучение C может быть сложной задачей. В придачу к преодолению таких низкоуровневых особенностей C, как ручное управление памятью и указатели, вы еще должны обходиться без REPL. Как только Вы привыкнете к исследовательскому программированию в REPL, иметь дело с циклом написал-скомпилировал-запустил будет для Вас небольшим разочарованием.

Недавно мне пришло в голову, что я мог бы использовать GDB как псевдо-REPL для C. Я поэкспериментировал, используя GDB как инструмент для изучения языка, а не просто для отладки, и оказалось, что это очень весело.
Читать дальше →
Всего голосов 70: ↑66 и ↓4+62
Комментарии30

Как хвост виляет собакой. Азбука пропаганды

Время на прочтение4 мин
Количество просмотров210K
Чем доступнее информация, тем больше её вокруг. Чем быстрее она распространяется, тем меньше остаётся времени на то, чтобы её проверить. Постепенно информационная среда превращается в некое подобие «белого шума». Всё труднее строить внутри себя новые информационные фильтры, чтобы отсеять лишнее: убрать в сторону лозунги, агитацию, пропаганду, а оставить только то, что на самом деле кроется за ними. А манипулировать нашими мыслями пытаются постоянно, и я говорю не о 25-ом кадре (он не работает), а о более земных вещах — приёмах пропаганды, которые так умело (а зачастую — очень топорно) используют политики, рекламщики и вообще, все, кому не лень. Об этих приёмах и пойдёт речь в статье.

Хвост виляет собакой. ("Wag the dog") — чтобы избежать большого скандала или «замять», оставить незамеченным какое-нибудь важное, но неприятное событие, часто используется простой, но хитрый и ловкий приём, который англоязычные политтехнологи называют «Wag the dog», а русскоязычные — «Хвост виляет собакой». Он заключается в том, чтобы вовремя поднять волну обсуждения вокруг вопроса второстепенной важности, на фоне которой другое, более важное событие или действие пройдёт незаметно.
Примеры таких вопросов: Отмена перехода на зимнее время, российское гражданство Депардье, поездка Путина или Саши Грей на Ладе Калине по России, полёты со стерхами и т.д.
Своё название этот приём получил в честь английского выражения tail wagging the dog, который, в свою очередь, появился из следующего народного пассажа:
— Почему собака виляет хвостом?
— Потому, что собака умнее, чем хвост. Если бы хвост был умнее, он вилял бы собакой.

Ещё 7 приёмов - под катом
Всего голосов 402: ↑352 и ↓50+302
Комментарии183

RVM — подробно

Время на прочтение4 мин
Количество просмотров97K

RVM — Ruby Version Manager
Программа для управления версиями Ruby.

Как быть если один проект использует Ruby 1.8.7, а другой 1.9.2? А что если при этом у вас 2 проекта под версией 1.9.2, но с разными наборами гемов? Хотелось бы вам иметь отдельные наборы gem's для каждого проекта?

Основные задачи:
1. Физическое разделение версий ruby и наборов гемсетов
2. Возможность иметь несколько версий ruby и переключаться между ними
3. Возможность для каждой версии ruby иметь несколько gemsets — наборов gem's и переключаться между ними

Под катом будут описаны:
1. Установка RVM
2. Работа с разными версиями Ruby
3. Работа с gemsets
4. Задание окружения под отдельный проект с помощью .rvmrc
5. Команды RVM которые могут оказаться полезными
6. Шпаргалка по основным командам RVM

Читать дальше →
Всего голосов 53: ↑48 и ↓5+43
Комментарии44

Настраиваем OpenVPN на Linux Server'e с авто-подключением iOS устройств за 5 минут

Время на прочтение2 мин
Количество просмотров41K

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

Сегодня я расскажу о том, как за 5 минут настроить работающий VPN On Demand на iOS устройстве при наличии своего Linux сервера.
VPN On Demand — VPN Который подключается по запросу / переподключается при разрыве

Читать дальше →
Всего голосов 43: ↑32 и ↓11+21
Комментарии28

Вы опасно некомпетентны в криптографии

Время на прочтение7 мин
Количество просмотров142K
От переводчика: Хоть посыл статьи Najaf Ali, переведённой ниже, и носит слегка рекламный оттенок («оставьте криптографию нам, экспертам»), но описанные в ней примеры показались мне довольно интересными и заслуживающими внимания.
Кроме того, никогда не будет лишним повторить прописную истину: не придумывайте свою крипто-защиту. И эта статья отлично иллюстрирует почему.

Читать дальше →
Всего голосов 181: ↑168 и ↓13+155
Комментарии143

oDesk для начинающих

Время на прочтение6 мин
Количество просмотров502K

Зачем?

Вообще, идея этого поста пришла мне в голову в тот самый момент, когда я, не имея до этого за плечами полноценного опыта фриланса, решил всерьез освоить oDesk. Да, если кто не знает, oDesk — это одна из крупнейших в мире фриланс-бирж. Итак, дело было в июле этого года. Официальной работы к тому времени у меня уже полгода как не было, все подработки закончились, новых серьезных заказов не предвиделось, и oDesk представлялся мне весьма перспективным вариантом. Аккаунт, как водится, был зарегистрирован «про запас» еще за год до того, но висел все это время без дела, поэтому начинать нужно было с нуля. При этом я был почти уверен, что руководство, хотя бы самое краткое, на тему, как и с чего начинать, я где-нибудь (уж на Хабре-то точно!) да найду.
Возможно, я плохо искал. Однако все, что мне попалось по теме, сводилось только к тому, что не нужно сразу загибать цены, лучше начинать с небольших. Примерная цитата: «начинайте с $10 в час, со временем, дорастете и до $15». Дорастать до $15, да еще и со временем, мне категорически не хотелось, я был уверен, что можно зарабатывать значительно больше. Да и кроме того, меня волновало огромное количество вопросов. Как заполнять профиль? На какие проекты откликаться? Как составлять cover letter? Как, черт побери, получить этот первый заказ, когда все тебе отказывают?
В тот момент я решил, что если все у меня получится, обязательно напишу то самое руководство для новичков, которого я не нашел.

Читать дальше →
Всего голосов 192: ↑175 и ↓17+158
Комментарии385

Покорим Ruby вместе! Капля вторая

Время на прочтение3 мин
Количество просмотров45K
Продолжаем изучать Ruby? Так точно!

В первой части мы получили обзорные знания о Руби и Рельсах и, надеюсь, решили, нужно ли нам это, или нет. Так как мы взялись за язык основательно необходимо обустроить рабочее учебное место. Нам нужны: сам интерпретатор Ruby, фрэймворк Rails, база данных (MySQL, думаю, будет лучшим выбором) и непосредственно среда разработки, которая должна сделать процесс программирования приятным, удобным и увлекательным ;)

Начнем с последнего пункта
Всего голосов 65: ↑51 и ↓14+37
Комментарии94

Первое знакомство с Ruby on Rails

Время на прочтение7 мин
Количество просмотров13K
Ruby on Rails (в дальнейшем просто рельсы) это веб фреймворк, написанный на языке Ruby.
На хабре есть несколько статей о языке, думаю их будет полезно почитать, если возникнут затруднения – читайте википедию, лучшую книгу о языке – Programming Ruby, лучшую книгу о рельсах – Agile Development with Rails, и задавайте вопросы.

Начнем знакомство с установки Ruby и Rails.


Читать дальше →
Всего голосов 33: ↑24 и ↓9+15
Комментарии25

Встать на рельсы за четыре месяца или Finance on rails

Время на прочтение4 мин
Количество просмотров52K

Обойдусь без копипастов и даже ссылок о том, что Ruby за зверь такой, ибо написано было уже сполна. В данном посте просто хочу рассказать о пути изучения Ruby (и, впоследствии фреймворка Ruby on Rails) человека далекого от программирования.

1. Любопытство

«Насколько далекого?», спросите вы, а я отвечу — «Чуть менее, чем полностью», так как в десятом классе в школе у меня были уроки программирования, парочка из которых были уделены Паскалю. Признаюсь, впоследствии о html узнал, и даже мог в Dreamweaver-e сверстать страничку или поставить готовый движок, да по инструкции налепить плагинов, но не более.
Хотя компьютеры мне нравились, пошел я учиться на экономиста* — бакалавриат, магистратура по бух. учету и аудиту, аспирантура по финансам, работа в банке, преподавание, страхование. Но не жилось мне спокойно в финансах, — финансовый калькулятор удовлетворял необходимости решения тривиальных задач, но не удовлетворял мой мозг. А ему хотелось посчитать не только будущую и приведенную стоимость актива, но и создать массив данных из исторических стоимостей этого актива за n лет, высчитать среднюю доходность, дисперсию и, в конце-концов построить красивый график!
Читать дальше →
Всего голосов 87: ↑79 и ↓8+71
Комментарии35

Продолжение видео лекций курса «Операционные системы» с Алексеем Брагиным в МГТУ им. Баумана

Время на прочтение1 мин
Количество просмотров23K
Мы продолжаем выкладывать в общий доступ лекции imageАлексея Брагина, который теперь читает авторский курс лекций об операционных системах в МГТУ им. Баумана.

Прошу принять во внимание, что это пилотный проект. А так конструктивная критика приветствуется, пожелания принимаются.
По просьбам трудящихся качество звука значительно улучшено!
Но смотреть, все равно лучше в HD


Читать дальше →
Всего голосов 53: ↑49 и ↓4+45
Комментарии8

Ресурсы, о которых должен знать каждый Android-разработчик

Время на прочтение6 мин
Количество просмотров189K
Сегодня я хочу поделиться с вами моим вольным переводом статьи, написанной Сергеем Повзнером (Sergey Povzner). Сергей ведёт блог bongizmo.com и занимается разработкой туристических гидов под общим названием Citybot.

В то время как Android продолжает свой невероятный рост, всё больше и больше программистов начинают разрабатывать приложения на этой платформе. Если ты начинаешь свой путь сегодня, то ты определенно — счастливчик. За последние годы Android значительно повзрослел и избавился от множества детских болезней. Информации по платформе более чем достаточно. Я же расскажу о самых важных ресурсах.

Статья будет полезна как новичкам, так и опытным разработчикам. Это гид по миру Android-разработки.
Читать дальше →
Всего голосов 133: ↑128 и ↓5+123
Комментарии33

Vreen — простая и удобная библиотека для работы с vk.api

Время на прочтение7 мин
Количество просмотров39K

Представляю вам новую Qt библиотеку для работы с vk api, которая может пригодиться вам при создании любых настольных и мобильных приложений, взаимодействующих с vk. Проект родился из vkontakte плагина для qutIM'а и перерос в отдельную независимую библиотеку, которой теперь может пользоваться каждый.
Читать дальше →
Всего голосов 75: ↑69 и ↓6+63
Комментарии46

Как создать новый продукт для рынка электроники. Часть 1

Время на прочтение5 мин
Количество просмотров58K


Статьи о разработке продуктов в сфере электроники — это большая редкость на Хабре. Я говорю не о любительских проектах или прототипах, а об успешных коммерческих устройствах для массового рынка.

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

Хочу поделиться своим опытом и видением, которое было сформировано за время моего трудового пути от инженера до руководителя, в компаниях как продуктовых, так и сервисных.

Многие читатели Хабра знакомы с внутренней кухней разработки ПО, а ведь железо — это совсем другая история. Готовы? Тогда поехали.
Дальше о том, в чем разработка электроники отличается от разработки ПО
Всего голосов 88: ↑83 и ↓5+78
Комментарии32

Как создать новый продукт для рынка электроники. Часть 2

Время на прочтение6 мин
Количество просмотров36K

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

В первой части мы убедились, что планирование и разработка концепции нового устройства требует чертовски много времени, посмотрели на подводные камни на этапе разработки софта и железа. А сейчас предлагаю сфокусироваться на производственных аспектах — тестировании, изготовлении опытных образцов, серийном производстве, поставке и послепродажной поддержке.
Хочу все знать про производство
Всего голосов 28: ↑27 и ↓1+26
Комментарии35

Часть 2: если у меня есть 30.000 рублей, куда их можно вложить?

Время на прочтение8 мин
Количество просмотров55K

Вот так хабрасообщество смотрит на инвестиции в отечественные проекты

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

Давайте разберёмся детальнее, о чём же именно речь. Но для начала — короткий ликбез. До прошлого года с 30.000 рублей на рынке инвестирования вы были никому не нужны вообще. В смысле, что на эту сумму есть возможность приобретать акции отдельных компаний. Другое дело, что ни брокерская компания, ни тем паче компания, в которую вы инвестируете, всерьёз вас не воспримет. Никакой фактической пользы от этого взаимодействия никому не было. Причина достаточно прозаична: расходы на заключение сделки в юридическом и бухгалтерском плане были несопоставимы с возможной выгодой. С изменением ситуации, естественно, возникла куча вопросов, на которые я отвечаю ниже.
Читать дальше →
Всего голосов 40: ↑28 и ↓12+16
Комментарии75

Интерактивная обучалка ветвлению в Git

Время на прочтение1 мин
Количество просмотров80K
Некий Питер Коттл (Peter Cottle) сделал интерактивную обучалку по основам ветвления в Git. Есть несколько простых обучающих уровней, где нужно сделать пару коммитов, а затем merge или rebase, есть и сложные уровни, над которыми придется подумать. Можно также сохранять уровни и делиться ими с друзьями.

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

image
Читать дальше →
Всего голосов 162: ↑156 и ↓6+150
Комментарии38

Общаемся с SIM-картой на низком уровне

Время на прочтение5 мин
Количество просмотров49K

f: не могу представить, как крусач может работать) Наши курсачи обычно пыляться где-то на полках
m: Вот у меня есть плата. К ней нужно подрубить сим-карту, и эта плата должна прочитать смс оттуда)
m: плата покупная, а вот программируем ее мы)
f: а нельзя смс с телефона прочитать?

— из жизни, орфография сохранена





Ну а если вам все-таки интересно узнать больше о сим-картах, протоколах передачи и их файловой структуре, прошу под кат. Ну и куда же без кода…

Читать дальше...
Всего голосов 197: ↑191 и ↓6+185
Комментарии37

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность