Pull to refresh
0
0

User

Send message

Паттерны проектирования

Reading time2 min
Views48K
Здравствуй хаброчеловек!

Так уж случилось, что с этого семестра в своем вузе я записался на спецкурс по паттернам проектирования. Курс проходит в виде семинаров, на которых ты (студент) должен рассказать чему научился за неделю (имеется ввиду, какие паттерны изучил и применил на практике).
Читать дальше →
Total votes 47: ↑37 and ↓10+27
Comments29

FizzBuzz, или почему программисты не умеют программировать

Reading time4 min
Views292K
[Автор этой статьи — Джеф Этвуд (Jeff Atwood), один из основателей stackoverflow.com. Сама же статья, несмотря на довольно приличный возраст (она написана в 2007 году) до сих пор популярна, а введенный в ней термин «FizzBuzz question» стал общеупотребительным. Оригинал можно найти здесь.]

Я весьма скептически отнесся к следующему наблюдению Реджинальда Брейтвайта (Reginald Braithwaite):

«Меня немного удручает тот факт, что 199 из 200 соискателей программистских вакансий не умеют программировать. Повторю: они не умеют писать код. Вообще.»

Читать дальше →
Total votes 130: ↑119 and ↓11+108
Comments584

Перестаньте называть себя программистом и другие карьерные советы

Reading time19 min
Views258K
Есть один курс, который я бы добавил в программу обучения по всякой инженерной специальности, и он не о компиляторах или сложности алгоритмов. Это “Введение в реальность индустрии”, ибо об этом не говорят и это приводит к никому не нужным обломам. Эта статья претендует стать README.txt для молодого инженера в деле построения карьеры. Ее цель — сделать вас счастливее, заполнив пробелы в образовании относительно того, как работает реальный мир. Я не призываю следовать написанному как подробному руководству, но я надеюсь, что эта информация окажется для вас более ценной, чем то ничто, что вам рассказали об этом в университете.
Читать дальше →
Total votes 251: ↑212 and ↓39+173
Comments175

Полуавтоматическая регистрация юнит-тестов на чистом С

Reading time4 min
Views8.8K
После прочтения книги Test Driven Development for Embedded C я начал знакомство с миром юнит-тестирования с фреймворка cppUtest. Не в последнюю очередь потому, что в нем свеженаписанный тест регистрируется и запускается самостоятельно. За это приходится платить — использованием C++, динамическим выделением памяти где-то в глубинах фреймворка. Может быть, можно как-то попроще?
Совсем недавно я узнал о минималистичном фреймворке minUnit, который умещается всего в 4 строчки.
Читать дальше
Total votes 13: ↑13 and ↓0+13
Comments15

Android приложение на QML: Picker

Reading time4 min
Views18K
Можно ли написать обыкновенное мобильное приложение на Qt Quick? Не игру, а именно традиционное приложение? Если полгода назад у меня были серьезные сомнения в осуществимости этого предприятия, то теперь сомнений не осталось — можно!

Конечно, на этом пути поджидало (и поджидает) множество проблем, большинство из которых описано тут. На данный момент накопилось уже приличное количество наработок, надеюсь эта статья положит начало циклу по систематизации и документированию опыта. Начнем с чего-нибудь простого и нужного, а именно с виджета выбора цифрового значения, по английски именуемого Picker. Такой используется в Android, когда нужно ввести дату, время, или какое-нибудь специфическое значение.
Читать дальше →
Total votes 14: ↑13 and ↓1+12
Comments3

Таблица виртуальных методов и техника безопасности

Reading time10 min
Views43K
Техника безопасностиВ качестве небольшой разминки перед статьёй хотелось бы, чтобы читатель задал себе следующий вопрос: нужно ли фотографу для получения качественных снимков знать, как работает фотоаппарат? Ну, по крайней мере, должен ли он знать понятие «диафрагма»? «Отношение сигнал-шум»? «Глубина резкости»? Практика подсказывает, что даже со знанием таких сложных слов снимки могут получиться у наиболее «рукастых» не особо лучше снятых на мобильник через 0.3-МПикс-дупло. И наоборот, по-настоящему хорошие снимки могут получаться благодаря исключительно опыту и наитию при полном незнании матчасти (хотя это, скорее, исключения из правил, но всё же). Однако вряд ли со мной кто-то будет спорить, что профессионалам, которые хотят выжать из своей техники всё (а не только количество мегапикселей на квадратный миллиметр матрицы), эти знания нужны в обязательном порядке, поскольку в противном случае ему и называться профессионалом-то нельзя. И верно это не только для отрасли цифровой фотографии, но и для практически любой другой.

Верно это и для программирования, а для программирования на языке С++ – вдвойне. В этой статье будет описано важное понятие языка, известное как «Виртуальный табличный указатель», что присутствует почти во всех сложных классах, и то, каким образом его можно случайно повредить. Это может, в свою очередь, вести к едва поддающимся отладке ошибкам. Сначала напомню, что это вообще такое, а затем и поделюсь своими соображениями по поводу того, как и что может там сломаться.
Читать дальше →
Total votes 70: ↑66 and ↓4+62
Comments33

СПУ = PMBok, или все новое – хорошо забытое старое?

Reading time4 min
Views15K
Известно, что контуры проектного управления как современной научно-инженерной дисциплины начали оформляться в 50-х годах XX века в США. В этот период было положено начало методике календарно-сетевого планирования.

Однако не стоит забывать, что еще в 20-х годах активными темпами развитие проектных технологий шло и у нас. Страна с крупнейшей в мире плановой экономикой, СССР с 30-х годов прошлого столетия начал реализовывать ряд масштабных проектов, а названия некоторых стали известными на весь мир.

Немногим известно, что в СССР существовала отдельная дисциплина под названием «Научная организация труда» (сокращенно – НОТ), включавшая в себя ключевые методы и инструменты проектирования, которые успешно применяются сегодня в PMBok.

Но обо всем по порядку.

Читать дальше →
Total votes 8: ↑8 and ↓0+8
Comments6

RAR Print — самодельный 3D принтер из CD rom'ов

Reading time2 min
Views184K


В начале декабря 2013 попался в руки фотополимерный 3D-принтер Muve3D. Принтер пришел кит набором, напрямую из США. Проект этот был запущен на краудфандинговой платформе в апреле 2013 и успешно реализован. Однако конструкция потребовала достаточно трудоемкой сборки и настройки. Ко всему прочему были различного рода недоработки. Тем не менее получилось собрать и запустить принтер. Получил первый опыт.
Читать дальше →
Total votes 68: ↑65 and ↓3+62
Comments23

Децентрализованная система обмена сообщениями

Reading time5 min
Views35K
Мир IT-разработок идет по спирали. Основатели UNIX считали, что пусть программ будет много, но каждая из них выполняет свою задачу на «отлично». В начале 2000х основным трендом были программы-комбайны, выполняющие все, что только можно и даже больше. Сейчас вектор направления разработок начал движение в обратную сторону. И если раньше для обмена данными использовался в основном стандартный поток ввода/вывода, то теперь из-за того, что системы делают все более распределенными, передачей данными между узлами занимаются специализированные интеграционные комплексы (англ. Message Bus или Message broker).

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

Пример реализации я хотел бы представить.
Читать дальше →
Total votes 43: ↑40 and ↓3+37
Comments7

Системы оплаты проезда на основе DSRC снаружи и внутри

Reading time7 min
Views54K
Платные дороги в России становятся суровой реальностью. Кто-то этим доволен, учитывая тот очевидный факт, что оператор платной дороги обеспечивает «более лучшие» условия проезда. Кто-то указывает на многокилометровые очереди на пунктах оплаты, а кому-то в принципе не нравится идея платить за то, что раньше предлагалось бесплатно. Независимо от нашего отношения к вопросу платных дорог, они уже есть, и они будут создаваться в будущем. В рамках данной статьи мне хотелось бы более подробно рассмотреть электронные средства безостановочной оплаты проезда, применяемые на современных российских платных дорогах.

В качестве средства безостановочной оплаты проезда в Европе и в России используются транспондеры DSRC — недорогие «коробочки», крепящиеся к лобовому стеклу и обеспечивающие обмен информацией по радиоканалу с антеннами на пунктах взимания платы. Коллеги из компании ОССП, оператора трассы М-4, предоставили мне для опытов один из своих транспондеров, который мы разберем с целью изучения. Но перед тем как начать ломать транспондер, нужно отдать должное тематике хаба и рассмотреть архитектуру, лежащую в основе системы безостановочной оплаты проезда.
Читать дальше →
Total votes 12: ↑11 and ↓1+10
Comments19

Подключаем Arduino к счетчику электроэнергии

Reading time5 min
Views178K
Нет, эта статья не об очередном способе обмануть этот злосчастный прибор. Здесь пойдет речь о том, как с помощью Arduino и среды LabView превратить свой счетчик электроэнергии в средство мониторинга потребляемой мощности или даже в амперметр!


Читать дальше →
Total votes 63: ↑62 and ↓1+61
Comments50

Простая реализация шифрования и расшифровывания файлов в Qt

Reading time4 min
Views28K
Приветствую, почтенное хабрасообщество.

Недавно столкнулся с необходимостью шифровать и расшифровывать файлы в Qt проекте. Основное условие – простота и прозрачность, так как, по сути, нужно заменить работу с файлами через QFile на что-то, что может писать данные в зашифрованном виде и читать их из зашифрованного файла. В итоге родился небольшой класс. Затем появилось желание поделиться с общественностью им, может кому-то пригодится и сэкономит время, а может кто-то доработает его и изменит жизнь к лучшему.
Читать дальше →
Total votes 25: ↑21 and ↓4+17
Comments10

Создаем отдел тестирования

Reading time5 min
Views36K
Разработка программного обеспечения невозможна без контроля качества, а в этом ключевую роль играет процесс тестирования. Надо заметить, что тестирование ‒ это не единственная и тем более не достаточная мера для создания качественного ПО, но совершенно необходимая.



Что такое тестирование? Упрощенно, это процесс проверки того, что программа соответствует всем поставленным требованиям. Еще более упрощенно ‒ тестирование есть поиск ошибок. При этом обычно программа рассматривается как “черный ящик”, и проверка производится многократным запуском с разными исходными данными и в разных условиях.
Мы убеждены, что полноценное тестирование программного продукта в компании может выполнять только обособленное подразделение ‒ собственно, отдел тестирования. Перекладывание функций тестировщиков на разработчиков, бизнес-аналитиков или даже менеджеров ‒ путь неэффективный. В этой статье мы расскажем, как можно построить отдел тестирования.
Читать дальше →
Total votes 14: ↑9 and ↓5+4
Comments27

Тестируем VoCore в хакспейсе — микро-компьютер с WiFi на Linux/OpenWrt

Reading time4 min
Views146K


VoCore — это такой микрокомпьютер с Linux/OpenWrt на борту, который совсем недавно с помощью краудфандинга собрал более $100к (из заявленных $6k). Внутри этой штучки: MIPS процессор 360МГц, WiFi 802.11n, Ethernet 10/100Мбит/с, и куча GPIO. Все уместилось на платке размерами 25х25мм!

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

А самое главное, мы объявляем конкурс на раздачу трех VoCore тем, кто предложит самые лучшие идеи его применения. Подробности, опять же, под катом!

Читать дальше →
Total votes 74: ↑72 and ↓2+70
Comments140

Бесшумный компьютер: только кусачки и паяльник. История успехов

Reading time8 min
Views148K

У нас — десктоп. Мы сидим работаем — код пишем или котиков смотрим, а этот ящик ревет рядом. У нас есть кусачки, паяльник, синяя изолента, немного проводов, чуть термоусадочного кембрика и начальные знания в электротехнике и устройстве компьютера. Можно ли как-то поковырять этот ящик, чтобы он хоть чуть тише ревел?
Можно и нужно!
Total votes 84: ↑47 and ↓37+10
Comments95

The FLIR One: что умеет тепловизор для телефона?

Reading time3 min
Views93K


Инфракрасная камера для телефона, вмонтированная в кейс — неплохая идея, которая была реализована создателями The FLIR One. Один из экземпляров устройства попал в руки журналистов Wired, которые и составили довольно подробный обзор возможностей устройства.

Сразу стоит сказать, что FLIR One пока выпущен только для смартфонов Apple, iPhone 5 и iPhone 5S. Сейчас уже существуют аналоги, которые подходят для многих других моделей смартфонов, включая Android-смарты. О таких аналогах будет опубликована одна из последующих статей, а сейчас давайте посмотрим на возможности FLIR One.

Читать дальше →
Total votes 47: ↑42 and ↓5+37
Comments31

Как убеждать людей в сети: семнадцать малоизвестных джедайских трюков

Reading time11 min
Views305K


Хотите узнать, как на просторах интернета убеждать людей и получать от них желаемое?

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

В этой статье не будет ни слова о взаимном обмене, дефиците, социальном доказательстве и прочих широко известных принципах убеждения. Вы наверняка и так все о них знаете
Читать дальше →
Total votes 149: ↑108 and ↓41+67
Comments78

Создание печатных плат для мелкосерийного производства

Reading time9 min
Views70K
На Хабре много статей по настройке и сопровождению IP телефонии и сопутствующего оборудования. Встречаются статьи и по разработке печатных плат. Есть статьи и о том, как самому сделать печатную плату при помощи ЛУТ технологии. Например, «ЛУТ на виниле или домашняя Arduino Mini». Есть описание разных систем проектирования печатных плат: Cadence, Eagle , DipTrace или описание отдельных процессов при разработке печатных плат, таких как передача информаци из Altium в AutoCAD.

Хочу представить статью о том, как происходит постановка на производство печатной платы на основе опыта фирмы и собственного опыта по другим работам. Моей задачей является модернизация существующей платы для усовершенствования существующих качеств и, возможно, открытия новых, доселе не виданных для нее горизонтов.
Читать дальше →
Total votes 59: ↑57 and ↓2+55
Comments12

Доступ к HID-устройствам из программы на Qt под Android

Reading time4 min
Views13K

Введение


С выходом Qt 5 появилась удобная возможность расширить список поддерживаемых программой платформ и на мобильные ОС, в частности на Android.
Сам процесс портирования программы с десктопной версии Qt на мобильную свелся к банальной перекомпиляции. Интерфейс и логика завелись сразу, за исключением той части, без которой, собственно, программа бесполезна: обмену с HID-устройством.
Читать дальше →
Total votes 15: ↑15 and ↓0+15
Comments6

Универсальная метасистема на C++

Reading time8 min
Views16K
Привет, Хабрхабр!

Хочу поделиться своим опытом разработки метасистемы для C++ и встраивания различных скриптовых языков.
Сравнительно недавно начал писать свой игровой движок. Разумеется, как и в любом хорошем движке встал вопрос о встраивании скриптового языка, а лучше даже нескольких. Безусловно, для встраивания конкретного языка уже есть достаточно инструментов (например, luabind для Lua, boost.python для Python), и свой велосипед изобретать не хотелось.
Читать дальше →
Total votes 30: ↑29 and ↓1+28
Comments24

Information

Rating
Does not participate
Registered
Activity