Pull to refresh
21
0
Павел Андреев @IrQ

User

Send message

Должен ли out-параметр быть проинициализирован до возврата из метода?

Reading time 15 min
Views 18K

0800_OutParamsCs_ru/image1.png


Наверняка каждый, кто писал на C#, сталкивался с использованием out-параметров. Кажется, что с ними всё предельно просто и понятно. Но так ли это на самом деле? Для затравки предлагаю начать с задачки для самопроверки.

Читать дальше →
Total votes 98: ↑98 and ↓0 +98
Comments 67

Как я научился проходить архитектурные секции

Reading time 4 min
Views 30K
Архитектурные секции у многих вызывают чувство неопределенности и тревоги: формулировки не изобилуют деталями, как проверить ответ — непонятно. При этом способность пройти архитектурную секцию отличает вчерашнего выпускника от человека, которому можно доверить строить нечто большее, чем обход бинарных деревьев. В определенный момент я решил как следует подготовиться секции по дизайну, потратил на это около пары недель и выработал системный подход, которым хочу с вами поделиться.
Читать дальше →
Total votes 45: ↑43 and ↓2 +41
Comments 18

Осторожный переезд в Нидерланды с женой и ипотекой. Часть 1: поиск работы

Reading time 12 min
Views 108K
На Хабре да и вообще в русскоязычном Интернете есть немало инструкций о том, как перебраться в Нидерланды. Я и сам немало полезного почерпнул из одной статьи на Хабре (ныне, видимо, скрытой в черновике уже нет, вот она). Но я все-таки расскажу о своем опыте поиска работы и переезда в эту европейскую страну. Помнится, и когда я только собирался рассылать резюме, и когда уже проходил собеседования, мне было очень интересно почитать об аналогичном опыте других коллег по цеху.

image

В общем, если вам интересен рассказ о том, как C++ программист из Подмосковья искал работу в Европе, желательно в Великобритании, а нашел-таки в Нидерландах, переехал туда сам и привез жену, все это с непогашенной ипотекой в России и с небольшими приключениями — добро пожаловать под кат.
Читать дальше →
Total votes 216: ↑202 and ↓14 +188
Comments 306

CsConsoleFormat: форматирование в консоли по-новому (.NET)

Reading time 10 min
Views 12K

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


Код быстро превращается в нечитаемое месиво, в котором не разобрать, где логика, где текст, где форматирование. Это ужасно! Когда мы пишем GUI, у нас в распоряжении все прелести современной разработки: паттерны MV*, байндинги и прочие крутые штуки. После работы с GUI написание консольных приложений сродни возвращению в каменный век.


CsConsoleFormat спешит на помощь!

А что это?
Total votes 39: ↑39 and ↓0 +39
Comments 18

Продвижение мобильных приложений: выученные уроки

Reading time 14 min
Views 24K
Предвидя комментарии бывалых по поводу этой статьи, что все из написанного давно уже известно, и ничего нового в ней не сказано, спешу сказать, что это не абстрактная статья о том, каковы стандартные приемы и методы продвижения на мобильном рынке. Статья о том, как мы использовали эти методы, и какие результаты получили в итоге. Все это сопровождается реальными цифрами и графиками. Мы готовы поделиться такой информацией. Думаю, даже бывалым будет интересно почитать и сравнить со своим опытом, и, возможно, даже обсудить его в комментариях к статье.

История такова, что наша команда программистов в связи с отсутствием перспективы в основном направлении разработки из-за достаточного количества больших конкурентов (.NET компоненты для репортинга и визуализации данных) решила пойти совершенно в другую сторону — разработку мобильных приложений. Благо, есть инструменты, позволяющие использовать предыдущий накопленный опыт разработки, а не начинать с нуля.

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

Флагманским продуктом в этом направлении стало приложение для создания и управления базами данных для Android устройств.

Все статьи, прочитанные на эту тему (а их было немало), англо- и русскоязычные, в один голос утверждали, что необходимо в первые дни после публикации (1-3 дня) нагнать как можно больше посетителей на вашу страничку в магазине и заставить посетителей установить приложение. Приложение, показавшее быстрый рост в первые дни после публикации, привлекает внимание издателей, и есть шанс, что оно попадет в список Featured Apps в своей категории или даже в целом в магазине, что несомненно принесет еще больше пользователей и, как следствие, прибыли (вы же для этого разрабатывали свое мобильное приложение). Такая стратегия была оправдана, когда приложений в магазине было не так много и новые появлялись не со скоростью света.

Результат такого подхода выглядит примерно так:

image

Эффект кратковременный, и если за 3 дня вы не попали в желаемый список Featured apps, считайте, что усилия и затраты не оправдались. Количество установок неминуемо снизится в разы.

Хочу рассказать о способах продвижения, о которых мы узнали из статей, и о том, как они работают и работают ли.
Читать дальше →
Total votes 25: ↑25 and ↓0 +25
Comments 5

Инструменты, необходимые разработчику для маркетинга приложений

Reading time 6 min
Views 29K


Исследование рынка


  • Google’s Keywords Tools
  • Google Trends
  • App Annie – Анализ приложения, Аналитика, Исследование рынка
  • Distimo – Анализ приложения, Загрузка оценок и исследования
  • Xyologic – Новый подход к поиску мобильных приложений
  • Apptrace – Исследование App Store
  • AppMonsta – Данные о рынка приложений
  • Vision Mobile – Экосистема аналитики фирмы
  • MetricsCat –Анализ данных приложения

Маркетеривание/Прототипирование


  • POP (Прототипирование на бумаге) – Прототипирование мобильных приложений
  • Mockabilly – Приложение для создание макетов для iPhone
  • Interface – Продвинутое макетирование и прототипирование под iOS
  • Blueprint – Макетирование приложений для iPad и iPhone
  • Proptotypes – Меняет статический дизайн в кликабельный прототип для iPhone
  • FieldTest – Создание мобильного интерактивного прототипа
  • Keynotopia – Keynotopia превращает Keynote и PowerPoint в лучшие инструменты быстрого прототипирования для создания макетов приложений
  • Justinmind – Интерактивные каркасы для создания веб- и мобильных приложений
  • Fluid UI – Прототипирование под iOS, Android и Windows Приложений
  • UI Stencils – Трафареты, эскизы и аксессуары для дизайна пользовательского интерфейса
  • App Cooker – Продвинутый генератор макетов для мобильных приложений под iOS
  • Proto.io – Мобильное прототипирование
  • UXPin – Средства проектирования UX
  • AppGyver’s Prototyper – Меняет каркасы в прототипы интерактивных мобильных приложений
  • App Mockup Tools – Создание прототипов для iPhone приложений
  • WireKit – Комплект каркасов для iPhone приложений
  • DevRocket – Панель плагина Photoshop для iOS — разработчиков
  • Flinto – Быстрое создание прототипов для iOS
  • App Icon Template – Шаблоны иконок для iOS 7 и Android приложений
  • PortKit – UX Metaphor Эквивалент для iOS и Android
  • iOS 7 Wireframe Kit – «Набор для Иллюстратора, чтобы сделать ваш вайфрейминг днем на пляже»
  • SketchMirror –Превью дизайна мобильных приложений со своего девайса
  • Invision – Веб и Мобильное прототипирование, а также инструмент для UI прототипирования
  • Framer –Инструмент для прототипирования анимаций
  • Marvel – Бесплатный инструмент для прототипирования
  • Sketch – Профессиональный цифровой дизайн для Mac
Читать дальше →
Total votes 16: ↑15 and ↓1 +14
Comments 5

GammaRay — средство интроспекции Qt-приложений

Reading time 4 min
Views 15K
Фреймворк Qt предоставляет неплохие средства разработки — входящая в него IDE Qt Creator включает дизайнер, отладчик, профайлер и другие удобные вещи. К сожалению, даже со всем этим иногда не очень понятно, почему приложение в данные момент выглядит так, как выглядит: чего-то не видно, что-то выглядит не так, как ожидалось, где-то неподходящий размер шрифта или неверная картинка.

Часть этих проблем может быть решена в Qt Designer, но только часть. Qt Designer имеет несколько существенных недостатков: во-первых, он неверно отображает положение Qt Quick компонентов в случае активного использования Javascript при расчете их координат и размеров, во-вторых в дизайнере мы видим состояние только «пустой» формы, без загруженных в неё данных. В общем, очень не хватает чего-то вроде инструментов разработчика в любом современном браузере: чтобы можно было посмотреть всё дерево компонентов, найти нужный, увидеть его положение относительно других, свойства, поправить на лету что-то, подобрать цвет\шрифт\размер, увидеть какие обработчики повешены на события и т.д.

И такой инструмент в мире Qt появился! Встречайте — GammaRay, средство интроспекции приложений на Qt. GammaRay понимает, что такое Qt, из чего состоит ваше Qt-приложение, как в нём взаимодействую компоненты, как они выглядят, как генерируются и обрабатываются события и т.д. Давайте посмотрим, что умеет GammaRay.


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

Библиотека для встраивания электронной подписи в приложения С++

Reading time 16 min
Views 13K


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

Некоторое время назад мы поддержали Рутокен ЭЦП в openssl, затем выпустили кроссплатформенный плагин для браузера, а теперь сделали высокоуровневую криптобиблиотеку для встраивания в С++ приложения.

Концептуально данные решения выполнены идентично: используется аппаратная реализация российских криптоалгоритмов на чипе Рутокен ЭЦП, обеспечивается поддержка цифровых сертификатов X.509, запросов на сертификаты PKCS#10, подписанных и зашифрованных сообщений CMS.

Новая библиотека пригодится тем, кто пишет «толстые клиенты», десктопные приложения, свои браузерные плагины и т.п.

Поддерживаемые устройства:
  • USB-токен Рутокен ЭЦП
  • Смарт-карта Рутокен ЭЦП
  • Bluetooth-токен Рутокен ЭЦП
  • Trustscreen-устройство Рутокен PINPad
  • USB-токен Рутокен WEB (HID)


Основные сценарии применения библиотеки с примерами кода под катом.
Читать дальше →
Total votes 14: ↑11 and ↓3 +8
Comments 4

Как легально получать деньги из-за пределов России

Reading time 5 min
Views 202K
Дано: заказчик за рубежом, желающий работать с Вами и платить вам евро или доллары.
Найти: оптимальный способ организовать работу с ним, чтобы платить налоги и спать спокойно.

Сразу скажу, что получение денег на пластиковую карту без уплаты налогов может вылиться в серьезные проблемы (про ответственность написано в конце топика). Объяснения, что деньги «от бабушки внучку на мороженное» при суммах больше 10К$ в год уже не прокатывают, особенно если в реквизитах «бабушки» будет стоять что-то вроде «GMBH Star Development» Вероятность того, что возьмут за задницу достаточно высокая и поэтому лучше не рисковать и делать все по Закону, тем более, что ничего сложного в этом нет
Читать дальше →
Total votes 144: ↑142 and ↓2 +140
Comments 192

Qt + MVP + QThread. Строим свой велосипед

Reading time 15 min
Views 28K
image
Всем добрый день!

Недавно передо мной встала довольно интересная задача, сделать интерфейс пользователя для общения с одной железкой. Связь с ней осуществлялась посредством COM-порта. Так как работа предполагалась с системой реального времени (эта самая железка) в операционной системе Windows, для того, чтобы GUI не тормозил, было решено работу с COM-портом вынести в отдельный поток. Так как требования к самой системе постоянно менялись, для минимизации и ускорения исправлений также было решено писать используя паттерн проектирования MVP. В качестве среды разработки был выбран Qt. Просто потому, что мне нравится данная среда и ее возможности. Так и получилась связка Qt+MVP+Qthread. Кому интересно, что из этого всего вышло и по каким граблям я ходил, прошу под кат.
Читать дальше →
Total votes 18: ↑14 and ↓4 +10
Comments 47

Поговорим о VPN-ах? Типы VPN соединений. Масштабирование VPN

Reading time 82 min
Views 185K
Коллеги, здравствуйте. Меня зовут Семенов Вадим и я хочу представить статью, посвященную вопросу масштабируемости VPN-ов, причем тех VPN-ов, которые доступны для настройки в обычной корпоративной сети предприятия, а не со стороны провайдера. Надеюсь, данная статья станет справочным материалом, который может потребоваться при дизайне сети, либо при её апгрейде, либо для того, чтобы освежить в памяти принцип работы того или иного VPN-на. 
Читать дальше →
Total votes 54: ↑53 and ↓1 +52
Comments 39

Как вывести Яндекс-деньги на бесплатную карту Сбербанка

Reading time 2 min
Views 95K
UPD 02.10.2014. Этот пост почти два года находился в песочнице. Но нашелся кто-то добрый, кто подарил мне за него инвайт. Значит пригодилось.

Теперь я могу его опубликовать, но предупреждаю, что многое уже поменялось. Многие сервисы уже работают с картами Maestro, больше не требуют только Visa или MasterCard. Банковский перевод с Яндекс-денег стал сложнее, теперь требуется пройти идентификацию.

UPD 03.10.2014. formasha подсказывает, что сейчас Яндекс может переводить на любую карту (включая Maestro) напрямую, а не банковским переводом. Страница платежей. Особой необходимости узнавать свои реквизиты для Яндекс-денег больше нет.



У меня оказалось две тысячи рублей на Яндекс-деньгах. Захотелось их вывести. Цена вопроса соизмерима со стоимостью владения VISA или Mastercard. Платную карту заводить не хотелось.

Ниже я расскажу, как:
  • получить бесплатную карту Сбербанк-Maestro «Momentum»;
  • подключить сбербанк-онлайн;
  • перевести Яндекс-деньги на карту.

Читать дальше →
Total votes 38: ↑21 and ↓17 +4
Comments 24

Мелкосерийное производство несложной электроники: в России или в Китае?

Reading time 3 min
Views 161K
Недавно я разработал одно простое устройство. Пришлось решать вопрос, как изготовить пробную партию в 50 плат. Думаю, этот опыт будет полезен всем DIY энтузиастам, кто уже думает о том, что делать дальше после того, как девайс готов.

Замечу, что настоящая заметка — это не маркетинговое исследование или что-то подобное, претендующее на объективное освещение вопроса. Это исключительно один частный личный опыт.
Читать дальше →
Total votes 87: ↑79 and ↓8 +71
Comments 134

Разоблачение 12 юридических заблуждений о программах для ЭВМ

Reading time 7 min
Views 182K


Заблуждение / опасная привычка На самом деле … Наш совет прост:
1. Мы создали программу и автоматически стали ее авторами и правообладателями. Для охраны и продажи программы никаких документов оформлять не нужно, ведь она охраняется авторским правом — ©! Действительно: программа для ЭВМ охраняется авторским правом как литературное произведение (п.1 ст. 1259, ст. 1261 ГК РФ).

Но то, что для возникновения авторских прав не требуется регистрация или соблюдение каких-либо иных формальностей (п.4 ст. 1259 ГК РФ), ни в коем случае не освобождает:
− от соблюдения набора критериев, установленных законом;
− от необходимости документально доказать факт создания программы и свои права на них.

Неоформленный SOFT закон не охраняет.

Всё просто: если у вас спор о правах на программу, то без документов вы не сможете доказать, что (1) у вас были права и (2) ваши права нарушены, (3) что сама эта совокупность данных и команд на языке программирования является интеллектуальной собственностью (ведь различные версии и релизы никакой новой интеллектуальной собственности не создают).
То же самое – при постановке на бухгалтерский учёт и оформлении бухгалтерских проводок.

Коротко говоря: нет документов = нет интеллектуальной собственности = нет нарушений прав = нет компенсации за нарушение прав.
Оформляйте много хороших и разных документов при создании программ для ЭВМ:
— договоры с авторами;
— договоры с подрядчиками;
— технические задания;
— протоколы совещаний и тестов;
— соглашения между соавторами;
— авторское свидетельство;
— сертификат признания интеллектуальной собственности;
— спецификация РИД;
— свидетельство о регистрации программы для ЭВМ (Роспатент).
Читать дальше →
Total votes 149: ↑119 and ↓30 +89
Comments 210

Домашний минисервачок. Часть железная

Reading time 4 min
Views 26K
Один раз меня посетила идея собрать сервер для дома. Маленький тихий и быстрый. Но я как то быстро отошел от идеи — на самом первоночальном этапе — выборе корпуса с большим количеством отсеков для винтов. На этом мой пыл угас и я про все забыл. Но читая обзоры железа через какое то время — я наткнулся на обзоры корпусов фирмы Fractal — и после прочтения обзоров по ним я понял что осуществить первоначальную идею не так то и сложно. И так — я начал сборку своего домашнего минисервачка.

Начнем по порядку.

Выбор комплектующих.
После небольших раздумий и читаю сайт интела — я вспомнил что сталкивался с замечательной технологий Intel AMT. Суть технологии в том что с помощью vnc можно подрубится к удаленному компу на аппаратном уровне. В связи с этим накидал первоначальный конфиг:
Мать с поддержкой Intel vPro — ASUS P8Q67-M DO/TPM.
Проц — самый заряженный i5 Intel Core i5-3570 3,4 Ghz 6Mb кэш на LGA 1155. Куллер Scythe Kozuti либо Noctua NH-L9i. Как раз то что я искал — тихо и низко.
Опера DDR3 Kingston 1600 MHz (KVR16N11/8) 8Gb две штуки.
Блок питания с кабель менеджментом Chieftec APS-650C — последнее время очень нравиться продукция этой марки — отличное качество за приемлемые деньги.
Корпус Fractal Design Define R3, либо Fractal Design Define R4, либо Fractal Design Define Mini. Почему они? Они с шумоизоляцией, и вмещают 8 3,5 дисков(либо 6 если версия мини). Вообще склоняюсь к мини — в принципе даже 6*2 Тб более чем достаточно на будущее.
Винты — что нибудь зеленое (в рейд 5 в будущем) под файлы 3*2Тб для начала.
ОС на железо — XenServer.

И так это был первоначальный конфиг. К моменту покупки кое что поменялось — и в итоге я приобрел:
мать ASUS P8Q77-M2
проц i5 Intel Core i5-3570
опера Kingston 1600 MHz (KVR16N11/8) 8Gb две штуки
куллер Zalman CNPS8900 Quiet
блок питания Chieftec APS-650C
корпус Fractal Design Define Mini
винт был seagate на 200 гигов для начала.
Все железо обошлось мне примерно в 20000 рублей.
Сеть, RAID, телефония.

В дальнейшем планируется докупить 2х портовую карту, RAID контролер, и плата для подключения аналоговой телефонной линии для asterisk.
Обзоры железа, сборка под катом.

Читать дальше →
Total votes 48: ↑22 and ↓26 -4
Comments 25

Лампа накаливания или люминесцентная или светодиодная

Reading time 2 min
Views 398K
Представляю вашему вниманию обзор посвященный сравнению 3-х типов лам: лампа накаливания, люминесцентная, светодиодная. Я попробую ответить на вопрос что же покупать накал/люмен/светодиод?
Итак. В нашем эксперименте будут участвовать 5 ламп разных мощностей и типов.
image
Слева направо:
Лампа накаливания 60 Вт (на фото отсутвует — заимствовал в подъезде ибо дома не нашел. Лампа возвращена в подъезд и в фотосессии не участвует)
Лампа накаливания 93 ВТ
Светодиодная лампа 3 В Теплый белый
Светодиодная лампа 9 Вт Теплый белый
Ртутная лампа фотон 26 Вт 4200 К Холодный белый
Читать дальше →
Total votes 69: ↑48 and ↓21 +27
Comments 186

Доставка из США за 5-10 дней по цене USPS

Reading time 4 min
Views 161K
До наступления 2013 года оставалось 30 дней, когда я решил подарить жене ipad mini. Официальный store.apple.com не справлялся со спросом на mini, о чем красноречиво свидетельствовала надпись est shipping in 2 weeks.

Отказываться от mini в качестве подарка не было никакого желания, поэтому был штурмом взят ebay, цены на котором заметно подросли, и 16gb+cellurar модель ушла за $500.

До наступления 2013 года оставалось 15 дней, у меня был выигранный лот и туманная перспектива получить его в Спб до 31 числа…
И я ее получил, за 10 дней, тариф за отправку составил $48.5.
Читать дальше...
Total votes 150: ↑138 and ↓12 +126
Comments 160

О глупости умных людей

Reading time 3 min
Views 343K


Для затравки — простая математическая загадка. Бейсбольный мяч и бита вместе стоят 1 доллар и 10 центов. При этом бита стоит на 1 доллар дороже мяча. Сколько стоит мяч?
Читать дальше →
Total votes 179: ↑155 and ↓24 +131
Comments 347

Business Intelligence

Reading time 14 min
Views 23K
imageЯ познакомился с книгами Савчука В.П. много лет назад. Именно эти книги позволили мне разобраться в финансовом менеджменте как владельцу бизнеса. Сегодня, по просьбе автора, я размещаю на Хабре его статью, главный девиз которой: автоматизация учета и управления начинается в мозгах людей.

Business Intelligence: принципы, технологии, обучение


В.П. Савчук
Управляющий партнер группы компаний
«Стратегический Партнер»


В современных условиях проявляется повышенный интерес многих собственников и руководителей бизнеса к Business Intelligence, или более коротко BI. Этот короткий термин подразумевает взаимосвязанный комплекс современных методов управления бизнесом, построенный на современных информационных технологиях и позволяющий обеспечить максимальную эффективности бизнеса.
Многие топ менеджеры отечественных компаний связывают это понятие с соответствующей функциональностью современных информационных систем. И здесь кроется существенное заблуждение многих отечественных менеджеров. Дело в том, что BI начинается в мозгах топ-менеджеров компаний, а потом уже реализуется с помощью информационного продукта. Менеджеры отечественных компаний должны дорасти до понимания важности BI, а потом уже покупать адекватное программное обеспечение.
Что же входит в портфель инструментов управления, объединенных общим названием Business Intelligence?.. Статья преследует сразу две цели:
1) сформулировать принципы BI,
2) представить структуру и дать краткую характеристику инструментариев BI.
Читать дальше →
Total votes 33: ↑28 and ↓5 +23
Comments 9

Как положить спасибо в карман

Reading time 6 min
Views 4.3K
Эссе Джоэля Спольски (Joel Spolsky) о мотивации, о денежных премиях и о том, что делать с сотрудником, если его идея принесла вашей компании миллион долларов. Оригинал статьи на английском языке можно прочитать здесь.

Джоэль Спольски — один из создателей сайта stackoverflow.com и ведущий блога joelonsoftware.com.


Два года назад студент по имени Ноа Вайс (Noah Weiss), проходивший летнюю стажировку в нашей фирме Fog Creek, поделился со мной отличной бизнес-идеей. Он обратил мое внимание на то, что довольно много сайтов IT-тематики размещают платные объявления о вакансиях, и предложил мне делать то же самое на страницах моего блога Joel on Software. По словам Ноа, написать систему показа таких объявлений будет проще простого («Это же просто еще одна таблица в базе!»). А для других продуктов у нас уже были готовые модули для приема банковских карт и генерации платежек, так что проект действительно выглядел несложным.

Но я колебался. До этого я не размещал рекламу в своем блоге, и, честно говоря, вовсе не планировал переводить его в коммерческое русло.

Читать дальше →
Total votes 132: ↑123 and ↓9 +114
Comments 140

Information

Rating
Does not participate
Location
Хабаровск, Хабаровский край, Россия
Date of birth
Registered
Activity