Pull to refresh
1
0
Михаил @Prost971

Инженер-программист Qt

Send message

Потоки, блокировки и условные переменные в C++11 [Часть 1]

Reading time8 min
Views446K
В первой части этой статьи основное внимание будет уделено потокам и блокировкам в С++11, условные переменные во всей своей красе будут подробно рассмотрены во второй части
Читать дальше →
Total votes 67: ↑67 and ↓0+67
Comments14

Чеклист по UX из 30 пунктов для мобильных приложений

Reading time7 min
Views31K
image

Эта статья — напминалка о том, что нужно перепроверить в дизайне вашего приложения, прежде чем отсылать его на AppStore/GooglePlay. Список поделен на тематические блоки:

  1. Вход / Регистрация
  2. Первый опыт
  3. Ежедневные взаимодействия
  4. Уведомления
  5. Параметры аккаунта
  6. Лента
  7. Поиск
  8. AppStore/GooglePlay
Читать дальше →
Total votes 32: ↑32 and ↓0+32
Comments9

Как сделать корутины в Unity немного удобнее

Reading time9 min
Views26K

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


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

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

10 способов улучшить свои навыки программирования

Reading time4 min
Views88K

1. Выучить новый язык программирования


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

Среди языков программирования отличный познавательный эффект и наверстывание опыта дают: Lisp (или Scheme), Форт, PostScript или Factor (стековые языки программирования), Haskell (строго типизированный, чистый функциональный язык) либо OCaml (объектно-ориентированный язык функционального программирования), Пролог (логическое программирование), Erlang (отличные паралельные вычисления).

Читать дальше →
Total votes 239: ↑227 and ↓12+215
Comments96

Учим Python качественно

Reading time4 min
Views1.4M
Здравствуйте всем!

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

Удобочитаемый синтаксис, прост в обучении, высокоуровневый язык, Объектно-Ориентированый язык программирования (ООП), мощный, интерактивный режим, масса библиотек. Множество иных плюсов… И это всё в одном языке.
Для начала окунёмся в возможности и узнаем, что же умеет Python?
Читать дальше →
Total votes 86: ↑59 and ↓27+32
Comments88

Я и код: как стать востребованным программистом

Reading time5 min
Views13K
После одного из недавних постов мы получили много интересных вопросов и комментариев. В том числе вы хотели знать, как, по нашему мнению, стать востребованным программистом.

Проекты краснодарской студии Plarium значительно отличаются друг от друга по используемому стеку технологий. Нам приходится решать разноплановые задачи и задействовать большое количество профессионалов. Программисты — важная часть команды Plarium Krasnodar. Всего над созданием кода в проектах студии трудятся свыше 50 наших коллег.

Мы проанализировали их опыт и готовы ответить на поступившие вопросы.

Читать дальше →
Total votes 22: ↑10 and ↓12-2
Comments24

101 совет, как стать хорошим программистом (и человеком)

Reading time12 min
Views47K


1. Научитесь гуглить
Быть программистом, — значит научиться искать ответы на свои вопросы. Научившись эффективно «гуглить», вы сэкономите много времени, затрачиваемого на разработку.

2. Не обещайте много, но делайте больше, чем обещали
Лучше сообщать вашей команде, что выполнение задачи займет три недели, но выполнять её за две, чем наоборот. Следуя этому принципу, вы выстроите доверительные отношения.
Читать дальше →
Total votes 37: ↑28 and ↓9+19
Comments21

Пот, слезы и учет времени — как мы повышали рентабельность компании

Reading time11 min
Views16K
Мы продолжаем делиться внутренней кухней WebCanape и выдавать все наши самые страшные тайны. В прошлый раз я рассказывал, как мы разработали CRM для SEOшников, а сейчас поведаю о том, как мы ведем учет рабочего времени и зачем вообще это делаем.

webcanape

В штате компании – 90 человек. Управлять таким количеством сотрудников и контролировать их не у всех получается хорошо. Из-за неэффективного управления может проседать качество услуг компании, снижаться рентабельность проектов, ухудшаться общий климат в офисе. Чтобы этого избежать, мы внедрили у себя мониторинг эффективности работы сотрудника.
Читать дальше →
Total votes 38: ↑22 and ↓16+6
Comments80

Суперсовременный OpenGL. Часть 2

Reading time7 min
Views19K


Всем хорошего настроения и температуры за окном пониже. Как и обещал, публикую продолжение статьи по супер-пупер современному OpenGL. Кто не читал первую часть — Суперсовременный OpenGL. Часть 1.

Возможно повезет и я смогу весь оставшийся материал впихнуть в эту статью, это не точно…
Читать дальше →
Total votes 16: ↑16 and ↓0+16
Comments17

Как начать писать тесты за 10 шагов по 10 минут

Reading time7 min
Views79K
Дайте-ка угадаю: вы согласны с тем, что писать тесты — это хорошо. Это повышает надежность системы, ускоряет разработку, проект с хорошим тестовым покрытием поддерживать легко и приятно, а TDD — это вообще почти идеал процесса разработки. Но не у вас в проекте. То есть, оно клёво, но, к сожалению, сейчас столько работы — просто завал. Куча задач, одних только критических багов — два десятка, плюс надо срочно дописать этот модуль и еще написать письмо заказчику… Так что тесты, наверное, будем прикручивать уже в конце, если время останется. Или в следующем проекте. Нет, ну там точно полегче будет. Скорее всего.

Как, узнали ситуацию?

Так вот — чушь всё это. Сфера ИТ — бесконечна, как вселенная, куча работы будет всегда. Можно или начать писать тесты прямо сейчас, или не сделать этого никогда. Я тут набросал короткий план, как начать это делать за 10 шагов, по шагу в день, по 10 минут на шаг. И когда я говорю «10 минут» я имею в виду не «3 с половиной часа» и не «ну сколько-то времени, лучше побольше», а именно 600 секунд. Если у вас нету в день 600 секунд свободного времени — срочно меняйте проект, работу, профессию, страну проживания (нужное подчеркнуть), потому что это не жизнь, а каторга какая-то. Поехали.
Читать дальше →
Total votes 84: ↑72 and ↓12+60
Comments63

Одноэкземплярные приложения на Qt

Reading time3 min
Views26K
Сейчас я активно пишу под Qt. И встала у меня задачка проверить при запуске приложения, а не запущено ли оно уже. Под линуксом. Велосипеды городить не хотелось, хотелось родить что-то используя готовые классы Qt, чтобы сразу было кроссплатформенно. В винде, например, есть готовое решение — именованные мьютексы (или семафоры, неважно, главное именованные). Стал гуглить. Ага, в Qt есть нечто подобное, называется QSystemSemaphore.
Читать дальше →
Total votes 33: ↑29 and ↓4+25
Comments24

Как правильно использовать исключения

Reading time6 min
Views48K
Использование исключений для контроля хода выполнения программы (flow control) — давняя тема. Я хотел бы суммировать этот топик и привести примеры правильного и неправильного использования исключений.
Читать дальше →
Total votes 32: ↑25 and ↓7+18
Comments36

Спецификатор времени компиляции noexcept в C++11

Reading time5 min
Views71K
С новым стандартом С++ появилось множество интересных и полезных улучшений, одно из которых спецификатор времени компиляции noexcept, которой говорит компилятору о том, что функция не будет выбрасывать исключения. Если интересно, какие преимущества предоставляет этот спецификатор и не пугает код на С++ — добро пожаловать под кат.
Читать дальше →
Total votes 23: ↑23 and ↓0+23
Comments17

Что нового в работе с исключениями в C++11

Reading time8 min
Views43K
В интернете довольно много говорят о новых возможностях C++11: auto, lambda, variadic templates. Но как-то обошли стороной новые возможности работы с исключениями, которые предоставляет язык и стандартная библиотека.

От предыдущей версии стандарта остался механизм генерации исключений (throw), проверка того, что мы находимся в процессе обработки исключения (std::uncaught_exception), механизм остановки, если исключение не было обработано. Также есть иерархия стандартных исключений на базе класса std::exception.

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

Читать дальше →
Total votes 65: ↑60 and ↓5+55
Comments42

Пишем свой std::function (boost::function)

Reading time7 min
Views64K
Классы std::function и boost::function являются высокоуровневыми обертками над функциями и функциональными объектами. Объекты таких классов позволяют хранить и вызывать функции и функторы с заданной сигнатурой, что бывает удобно, например, при создании callback вызовов (например, мы можем регистрировать несколько обработчиков, и это могут быть как обычные функции, так и объекты с определенным оператором =)

Если вам интересно, каким образом реализуется данный функционал, то прошу под кат
Читать дальше →
Total votes 49: ↑44 and ↓5+39
Comments36

Наивная реализация std::bind(boost::bind)

Reading time6 min
Views48K
Наверное, трудно найти такого программиста на C++, который никогда не применял в своем коде boost::bind (с выходом c++11 std::bind). Bind — шаблонная функция, возвращающая обёртку над callable-объектом (т.е. объектом, который можно вызвать, передав ему необходимое число аргументов в круглых скобочках). Bind позволяет изменить сигнатуру вызова такого объекта, сократив число входных аргументов или поменяв какие-то из них местами. Кому интересно, как это может быть реализовано с использованием C++11, прошу под кат.
Читать дальше →
Total votes 30: ↑28 and ↓2+26
Comments20

Большой 7-сегментный дисплей c неоновым свечением на ESP8266

Reading time1 min
Views12K


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

Для управления был выбран чип ESP8266, в котором реализованы и функция часов, и секундомер.

Чтобы получить неоновое свечение я применил цилиндры термоклея. В конец каждой трубки я приклеил по одному светодиоду.
Total votes 29: ↑27 and ↓2+25
Comments65

Как я имплантировала RFID себе в руку, а потом еще NFC. Часть 2

Reading time6 min
Views88K
Прошло более четырех лет с момента публикации первой части про EM4100 и я решила все же написать вторую часть — про имплантируемый NFC.

Преимущества первой 125 кГц метки были ощутимы сразу — ключ к домофонам и внутренним замкам, но хотелось большего — разблокировать телефон, ноутбук, хранить данные в защищенном месте. Все это позволяет сделать метка NFC стандарта.

Подробнее про процесс имплантации без помощи посторонних, использование и недостатки — под катом.
Total votes 113: ↑94 and ↓19+75
Comments263
В марте 2017 года в поддержку Тинькофф Банка позвонил клиент. Он только что продал со смартфона акции Apple, стоял в магазине и хотел расплатиться вырученными деньгами. Но вывод денег на карту занимает 20 минут. Тут мы поняли — чтобы обходить продуктовые ограничения, нужна собственная брокерская платформа. Разработчики и продуктологи Тинькофф Банка рассказывают, как создавали своего брокера.
Подробности – под катом
Total votes 65: ↑59 and ↓6+53
Comments84

Как получить максимум от инвестиционного портфеля?

Reading time4 min
Views16K
Дурак сказал: «Не клади все яйца в одну корзину!» - иными словами: распыляй свои интересы и деньги! А мудрец сказал: «Клади все яйца в одну корзину, но… береги корзину!». Эта фраза принадлежит Марку Твену, но ее «мудрую» часть вы наверняка слышали от  Уоррена Баффетта. Да, легендарный инвестор не является сторонником распределения активов и вкладывается исключительно в американские акции.

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



Читать дальше →
Total votes 29: ↑19 and ↓10+9
Comments14
1
23 ...

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity