Search
Write a publication
Pull to refresh
26
0
olegi @olegi

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

Send message

Простая GSM-сигнализация из подручных материалов

Level of difficultyEasy
Reading time3 min
Views134K
На днях к нам обратился старый знакомый. Он живет в частном доме и пару раз к нему пытались зайти без приглашения неизвестные личности. Назрела необходимость в установке сигнализации. Ставить дом на пульт оказалось слишком дорого. Оптимальным решением показалось просто оповещать хозяина звонком на мобильник при сработке одного из датчиков движения.


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

Как платить налоги с продажи ссылок на своем сайте

Reading time3 min
Views8.5K
Привет, Хабр.

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

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

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

Видеозаписи с нашего MeeGo-тренинга

Reading time2 min
Views4.2K
Привет, Хабр!

26 августа в нашем московском офисе проходил тренинг, посвященный разработке ПО для операционной системы MeeGo Harmattan. Тренинг вёл старший специалист по программированию компании Digia Тино Пусисало. Компания Digia выступает субподрядчиком Nokia по программированию и проведению обучающих тренингов. Компания представлена в 12 городах мира, включая Москву и Санкт Петербург. Головной офис находится в Хельсинки, а суммарное число сотрудников компании насчитывает более 5 тысяч специалистов.

Тренинг был посвящён не только разработке приложений для MeeGo, но и основным принципам дизайна для MeeGo Harmattan. В своём выступлении Тино Пусисало успел рассказать об устройстве системы и основных постулатах дизайна ПО (навигации, цветовой гамме, иконках, паттернах пользовательского интерфейса) на примере стандартных и популярных приложений для N9. Хотя, разумеется, в большей мере речь шла именно о разработке приложений. Докладчик очень подробно разобрал IDE Qt Creator 1.1.2, а также процесс отладки приложений непосредственно на устройствах с MeeGo Harmattan (на примере N950). Разумеется, было много информации о MeeGo 1.2 Harmattan API, Platform API (и его поддержке) и Mobility API.

Видеозаписи и презентацию с тренинга можно посмотреть под хабракатом.
Читать дальше →

Фоновая подгрузка списков

Reading time2 min
Views11K
При загрузке больших списков из медленного источника (например HTTP запрос) нет смысла загружать весь список сразу, особенно если пользователю потребуется лишь небольшое количество данных (результаты поиска, новостные статьи). В этом случае целесообразно реализовать постраничную подгрузку списка. В этой статье показан простой способ с использованием footer view контрола ListView. Подразумевается, что у нас уже есть список и его адаптер, который загружает элементы (пусть несколько первых, или весь) используя например ассинхронный HTTP запрос. Удобнее вынести запрос данных в отдельный класс, в котором добавить возможность подгрузки очередной страницы.

План действий


  1. Подготавливаем layout для элемента сообщения о процессе загрузки
  2. Подготавливаем контрол ListView
  3. Добавляем в адаптер списка код запуска загрузки следующей страницы
  4. Обрабатываем результат загрузки очередной страницы

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

Startup Genome Report Extra о преждевременном масштабировании теперь можно читать на русском

Reading time2 min
Views846
Startup Genome Report — это огромный отчет, основанный на анализе 3200+ стартапов со всего мира. Состоит он из огромного количества графиков, показывающих сходства и различия между успешными и неудачными стартапами.
Недавно вышло большое дополнение на 60 страниц о том, что для стартапов, которые начинаются вполне успешно, основной причиной итогового фейла является преждевременное масштабирование. То есть когда стартап начинает расширяться, не будучи к этому готовым.
Этот отчет теперь доступен на русском, почитать и скачать его можно здесь.
Первая версия отчета, также переведенная на русский, лежит тут.

Это первая версия перевода, будем благодарны за фидбеки и т.д.

Краткая выжимка признаков того, что проекту еще рано масштабироваться с точки зрения уровня развития разных направлений:

Потребитель
  • Тратится больше денежных средств на привлечение клиентов, чем на соответствие продукта рынку и на повторяющуюся способную масштабироваться бизнес-модель;
  • Отсутствие соответствия продукта рынку замещается развитием маркетинга компании и сотрудничеством с прессой.


Продукт
  • Создается продукт, но нет готовности решать возникающие проблемы;
  • Вкладываются средства в масштабирование продукта прежде, чем продукт готов соответствовать требованиям рынка;
  • Добавляются дополнительные характеристики, которые продукту «хорошо бы иметь».


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

Жизненный цикл UIViewController'a

Reading time10 min
Views157K
Большинство прикладных приложения под iOS таким или иным образом используют UIViewController'ы. Там где UIKit фрэймворк — там и UIViewController'ы. Их много, они повсюду, они сидят в засадах и выглядывают из-за каждого угла. Поэтому, любой программист под iOS — будь он зеленым новичком, едва ступившим на тропу программирования, либо матерым профессионалом своего дела, должны знать о UIViewController'aх все.

Причиной написания данной поста является то, что, как оказалось, можно преспокойно программировать под iOS полгода, и не знать полностью о жизненном цикле UIViewcontroller'ов. И на небольших проектах это даже получается. Однако, когда приходится иметь дело с серьезным, достаточно большим проектом, то появляются определенные проблемы с нехваткой памяти, «неправильной» и «непонятной» работой контроллеров, пропажей данных, и еще со многими типичными проблемами, о которых будет написано ниже.

Так вот. В данном посте, я еще раз расскажу о жизненном цикле UIViewController'ов, расскажу о том, что и где стоит делать, и в каком случае. Пост ориентирован на разработчиков разных уровней, так что кто-то узнает для себя что-то новое, а кто-то найдет повод отпинать моменты, на которые стоит обратить внимание Junior'ов в команде.

Всех заинтересовавшихся, прошу
под кат

Russian Code Cup: итоги финального раунда

Reading time9 min
Views13K
18 сентября состоялся финальный раунд всероссийского кубка по программированию Russian Code Cup. В этом году в финал олимпиады вышли 50 программистов — 27 из России, 11 из Украины, 7 из Беларуси, двое из США и по одному из Армении, Грузии и Швейцарии.



Победителем стал Петр Митричев из Москвы. Он получил приз в 10 тыс. долл. США. Второе место занял Евгений Капун из Санкт-Петербурга, он получил 5 тыс. долл. США. На третьем месте — Михаил Дворкин из Санкт-Петербурга с призом в 3 тыс. долл. США. Поздравляем ребят и желаем им дальнейших успехов!

В этой статье мы проведем разбор задач из финального раунда.
Читать дальше →

Презентации стартапов. Как презентовать свой проект?

Reading time3 min
Views2.8K
Бум интернет-стартапов не спадает. И большое количество народу ринулось заниматься венчурными инвестициями. Все больше стартап-фабрик, выискивающих перспективные проекты. Как они это делают?
Один из способов — организация стартап-конференций.

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

И жили бы все долго и счастливо

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

Выпадающий jQuery.Treeview

Reading time5 min
Views24K

Вступление


image
В ходе реализации текущего проекта мне понабилось выпадающее дерево. Так как я уже пользовался jQuery плагином TreeView, и его функционал меня устраивает, было принято решение cделать выпадающее дерево на его основе. В результате родился плагин DropDownTreeView которым я хочу поделится.

Функционал


Плагин позволяет создавать выпадающие деревья с AJAX загрузкой (пример). При создании дерева к объекту обертки добавляется кнопка открытия дерева, и подгружается дерево. Дерево можно подгружать как целиком так и частями (актуально для больших деревьев). HTTP запросы могут выполнятся POST и GET методами. Параметры HTTP запроса определяются пользователем. Дерево строится посредством jQuery.Treeview. Дерево сворачивается при выборе пункта и клике вне зоны дерева.
Читать дальше →

Электронные деньги. Без купюр

Reading time7 min
Views27K
Нам в Эльбе довольно часто задают вопросы по типу «Я „упрощёнщик“, у меня есть электронный кошелёк в Яндекс.Деньгах, как его в доходах-расходах учитывать и перед налоговой отчитаться?».

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

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

Alpha-blending за одно умножение на пиксель на Windows Mobile

Reading time4 min
Views3.7K
Те, кто занимался графикой на Windows Mobile, наверняка слышали о графической библиотеке GapiDraw. Если заглянуть в их Feature List, то в разделе High Performance можно обнаружить следующие слова: «drawing surfaces with opacity will only require one multiplication per pixel». То есть, они утверждают, что для рисования полупрозрачных картинок требуется всего по одному умножению на каждый пиксель.

В данной статье я попытаюсь объяснить, как это возможно.
Читать дальше →

Особенность работы со смарт-поинтерами в Qt

Reading time3 min
Views36K
Смарт-поинтеры является очень важным механизмом управления временем жизни объектов. В Qt присутствует модель управления временем жизни объектов, когда объекты наследуются от базового класса QObject и задается “родство” — parent/child. При удалении объекта, он удаляет всех своих child. Эта модель управления временем жизни объектов очень хорошо сочетается с технологией взаимодействия между объектами “Signals & Slots” и при использовании смарт-поинтеров могут возникнуть тяжело отлаживаемые баги.
Читать дальше →

Защита от DDOS атаки подручными средствами. Получение доступа к своему серверу

Reading time4 min
Views77K
За последнее время, наш сайт часто подвергается достаточно мощным DDOS атакам, к слову последняя атака была самой крупной за последнее время, размер ботнета по нашим оценкам — около 10 тысяч машин, мощность — 100 Mbits/s.

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

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

Атака была типа HTTP Flood. Система на которой у нас работает сайт — Apache под Linux. Мы написали несколько скриптов, которые будут приведены в тексте статьи. В принципе аналогичный подход можно применять и для Windows/IIS.

Попытаюсь рассказать, какие основные шаги мы сделали для отражения атаки, и какие проблемы возникали по ходу:
Читать дальше →

Qt и мобильная камера. Часть 1, Symbian

Reading time7 min
Views4.7K
Доброго времени суток, Хабр!

За время моей работы в области разработки мобильных приложений, в частности для Symbian, было создано несколько решений для работы с камерой телефона. Со временем решения эти эволюционировали, о чем я и хочу рассказать в двух следующих статьях.
В первой речь пойдет о нетривиальном, но гибком получении изображения с Symbian-телефона средствами QtMobility 1.1.3, во второй — о проблемах и их решениях при переносе кода на платформу Meego 1.2 Harmattan под управлением которой в данный момент работают Nokia N900, N950, N9.
Данный материал может быть полезен начинающим Qt-разработчикам мобильных приложений.

Итак, Qt для работы с Symbian-камерой.
Читать дальше →

Штриховое кодирование: программная реализация на С#

Reading time3 min
Views21K
Приветствую! Речь пойдет о создании программы, которая сможет кодировать информацию в штрих код. Рассмотрим мы два варианта: EAN13 и Code 128.

Для начала разберемся что же предоставляет собой штрих код, и начнем с формата EAN 13. Внешне штрих код состоит из черных и белых полос. Каждая из полос согласно стандарту имеет ширину 0,33мм. А теперь посмотрим немного глубже. Согласно стандарту, информация в штрих коде алгоритмом конвертируется в последовательность нулей и единиц. Черная полоса соответствует «1» а белая соответственно «0». Таким образом мы получаем штрих код. То, что описано выше, справедливо для обоих форматов, а теперь перейдем к специфике форматов. EAN 13 код фактически может иметь 12 символов информации (обычно она разделяется на код страны, код завода, и.т.д., но никто вам не мешает создать штрих код с любыми цифрами). 13 цифра в штрих коде ( а он EAN 13 имеет их именно 13) является контрольной суммой. Она используется для проверки правильности декодирования, а также в зависимости то нее выбирается соответствующая таблица кодирования. Вот и все по формату EAN 13. Детальная информация об алгоритме кодирования и о расчете контрольной цифры есть тут:

Итак, что нам нужно сделать для программной генерации штрих кода (причем обоих форматов):
  1. Настроить графический интерфейс так, чтоб 1 юниту соответствовало 0.33 мм
  2. Конвертировать код в двоичную последовательность (из «0» и «1»)
  3. Отобразить последовательность таким образом что каждая единица- прямоугольник с шириной 0,33 мм. Замечу, что можно изменять величину штриха, но по стандарту сказано 0,33мм.


Создавая программу, я сделал так:
Создал форму, на которой есть поля для выбора формата, ввода кода, регулятор ширины штриха ну и кнопка генерации кода и сохранение изображения в буфер обмена. Получилось так: Дизайн
Проверял я с помощью Abbyy FineReader 10 Professional:
Проверка
Каждый из форматов штрих кода я оформил в виде отдельного класа, который из кода образует двоичную последовательность. Кстати, формат EAN 13 мне показался немного тяжелее в реализации в силу того, что там в зависимости от кода меняется таблица. в результате чего сам код рисовался так:
Читать дальше →

Механизм реализации своих законных прав владельцами персональных данных

Reading time6 min
Views7.8K
В предыдущей статье я рассказал о возможностях, которые предоставляет закон № 152 владельцу персональных данных. В этой частью статьи представлен сам механизм и формы запросов для реализации своих прав. В статье не рассматриваем вопрос, когда оператор вообще не имеет права обрабатывать персональные данные. Задача — сделать так, чтобы оператору персональных данных незаконная обработка этих данных стоила серьезных финансовых и временных затрат.

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

Мгновенный поиск в 75 гигабайтах

Reading time8 min
Views35K
Речь пойдет о том, как был реализован быстрый поиск по большим объемам данных на этой страничке. Там можно искать пароль по хешу, для игрового сервера PvPGN, и генерировать эти же хеши.
Поиск написан на чистом PHP, без использования модулей и сторонней БД. В принципе, таким образом можно наращивать объемы до многих терабайт, было бы место — скорость от этого не сильно пострадает.

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


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

Пишем письма из iOS приложения

Reading time5 min
Views5.6K
Проблема

Хочу отправлять письмо из приложения под iOS без выхода из приложения (не использовать mailto URL) и без открытия дополнительного экрана (не использовать MFMailComposeViewController).

Решения

Дорогое: поднять на своем сервере web-сервис, который будет заниматься рассылкой писем, из приложения обращаться к нему.
Дешевое: использовать SMTP клиент внутри своего приложения.

Проблема

Нужно написать свой SMTP клиент

Все уже написано до нас

Что делать, если некогда писать бизнес-план

Reading time4 min
Views5.8K

Детальный бизнес-план или «на салфетке»?


Бизнес план — это документ, который инвесторы заставляют написать, но который они не читают" — Стив Бланк (Steve Blank)

Детальный бизнес-план новой идеи, проработанный, на нескольких десятках страниц, конечно, выглядит солидно. И, возможно, некоторым внушает больше доверия — ведь стопка бумаги предполагает, что есть не только идея, но уже было проведено и исследование рынка (вопрос качества этого исследования не затрагивается), конкурентов, в конце концов вложены силы и время!
Читать дальше →

Information

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