Pull to refresh
-1
0

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

Send message

Исходники закрыты, но мы не сдадимся: Пишем полностью нативное GUI-приложение под No-Name смартфон без Android

Level of difficultyMedium
Reading time10 min
Views21K
image

Для многих разработчиков приложений далеко не секрет, что экосистема Android не предполагает написание полностью нативных приложений: в этой платформе очень многое завязано на Java и без ART можно запустить только простые службы без какого-либо интерфейса. Однако, есть один способ писать практически под «голый» Linux, не перекомпилируя ядро и при этом пользоваться самыми интересными фишками устройства без оверхеда в виде тяжелого Android: ускорение 3D-графики (OpenGLES), микшер звука, ввод с различных устройств, OTG, Wi-Fi и если очень постараться — даже 3G. Это открывает множество разных интересных применений старым устройствам: «железо» смартфонов зачастую гораздо мощнее современных недорогих одноплатников. Сегодня я покажу вам, как написать и запустить программу, которая полностью написанное на C без Android, на No-Name Android-смартфоне практически без модификаций. Интересно? Жду вас в статье!
Читать дальше →

Что будет, если от разработчиков не отстать: умирающая команда

Reading time11 min
Views61K
Мне досталась команда, которая болела. Все понимали, что происходит, никому не нравилось, что творится в команде, и традиционно менеджеры такие команды сильно режут. Но здесь были шансы вылечить и без ампутаций.


Источник

15 человек, из них — один руководитель проекта, три фронта, два бэка, три аналитика, девопс. Симптомы обычные: процессы всем не нравятся, соседи — козлы, потому что не то и не так делают, а как нужно — не знают, ответственности ни на ком толком нет ни за что.

Вроде бы когда-то это был настроенный конвейер, но теперь его куски — как будто в разных зданиях. Особо не заботятся о том, что было «до» и что будет «после». А если всё падает, то люди поднимают руки: «Я не виноват. Я не знаю, как поднять».

Проект — внутренний банка, он нужен для улучшения работы внутри компании. Традиционных решений в кровавом энерпрайзе — два: нанять новую команду (но вгружать мидла на проект такой сложности — три-четыре месяца) или же оставить проект на поддержке, через два года найти ему замену, а команду тихо похоронить в подвале. Точнее, не так: те, кто плывет по течению и не заботится о карьере, остаются тихо сидеть «на пенсии», то есть в бесконечной поддержке проекта. А самые проактивные тут же перейдут в другие команды или другие компании.

Почему процессы разваливались? На первый взгляд, потому, что была куча ненужных совещаний и встреч с теми, кого разработчики вообще не должны были видеть. Плюс местами странноватые KPI. Как это ни странно, но если психологически давить на разработчика пару лет, то ничем хорошим это не закончится. Руководство подразделения дало мне карт-бланш на исправления, и я начал разбираться, что же случилось.
Читать дальше →

Создание архитектуры программы или как проектировать табуретку

Reading time25 min
Views702K
Взявшись за написание небольшого, но реального и растущего проекта, мы «на собственной шкуре» убедились, насколько важно то, чтобы программа не только хорошо работала, но и была хорошо организована. Не верьте, что продуманная архитектура нужна только большим проектам (просто для больших проектов «смертельность» отсутствия архитектуры очевидна). Сложность, как правило, растет гораздо быстрее размеров программы. И если не позаботиться об этом заранее, то довольно быстро наступает момент, когда ты перестаешь ее контролировать. Правильная архитектура экономит очень много сил, времени и денег. А нередко вообще определяет то, выживет ваш проект или нет. И даже если речь идет всего лишь о «построении табуретки» все равно вначале очень полезно ее спроектировать.

К моему удивлению оказалось, что на вроде бы актуальный вопрос: «Как построить хорошую/красивую архитектуру ПО?» — не так легко найти ответ. Не смотря на то, что есть много книг и статей, посвященных и шаблонам проектирования и принципам проектирования, например, принципам SOLID (кратко описаны тут, подробно и с примерами можно посмотреть тут, тут и тут) и тому, как правильно оформлять код, все равно оставалось чувство, что чего-то важного не хватает. Это было похоже на то, как если бы вам дали множество замечательных и полезных инструментов, но забыли главное — объяснить, а как же «проектировать табуретку».

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

Данная статья является попыткой ответить на эти вопросы хотя бы в первом приближении.
Читать дальше →

Совмещаем рутину и годовые цели. Наш опыт

Reading time7 min
Views4.6K

TL;DR: Здесь о том, как одна команда управленцев от разработки захотела жить по-другому, сформулировала образ будущего, прониклась устремлением, приспособилась выкраивать время и проводить изменения даже когда накрывает авралами.

Читать статью

Performance review как инструмент для оценки результатов работы и развития сотрудников

Reading time10 min
Views22K

Меня зовут Артём Сусеков, я менеджер разработки в Miro. Расскажу, как мы пришли к справедливой оплате и прозрачному обсуждению эффективности сотрудников команд продуктовой разработки.

Статья будет полезна, если вы задаётесь вопросами: 

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

Читать далее

Юнит-тестирование для чайников

Reading time15 min
Views1.1M
Даже если вы никогда в жизни не думали, что занимаетесь тестированием, вы это делаете. Вы собираете свое приложение, нажимаете кнопку и проверяете, соответствует ли полученный результат вашим ожиданиям. Достаточно часто в приложении можно встретить формочки с кнопкой “Test it” или классы с названием TestController или MyServiceTestClient.



То что вы делаете, называется интеграционным тестированием. Современные приложения достаточно сложны и содержат множество зависимостей. Интеграционное тестирование проверяет, что несколько компонентов системы работают вместе правильно.

Оно выполняет свою задачу, но сложно для автоматизации. Как правило, тесты требуют, чтобы вся или почти вся система была развернута и сконфигурирована на машине, на которой они выполняются. Предположим, что вы разрабатываете web-приложение с UI и веб-сервисами. Минимальная комплектация, которая вам потребуется: браузер, веб-сервер, правильно настроенные веб-сервисы и база данных. На практике все еще сложнее. Разворачивать всё это на билд-сервере и всех машинах разработчиков?

We need to go deeper

Закалка тимлида: как вывести проект из пожара, не сгореть самому и не спалить команду

Reading time23 min
Views19K

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

На прошедшей в апреле конференции TeamLead Conf 2021 я поделился своим опытом, как вытащить проект из пожара и обойтись без человеческих жертв. Под катом моя история, а если предпочитаете смотреть — вот запись выступления.

Читать далее

Подборка бесплатных ассетов для разработки игры

Reading time3 min
Views118K

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

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

Ранее на DTF уже выходили подборки ассетов. К примеру, Арсений Мирный опубликовал список полезных ресурсов для поиска ассетов. Есть подборка от Дмитрия Чикалова, который упомянул не только библиотеки, но и полезные медиа-ресурсы. Иван Михайлов в своём внушительном списке программ для разработчиков также рассказал про библиотеки ассетов.

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

Этот материал написан в поддержку нашего инди-джема, в котором ещё можно успеть поучаствовать.

Читать далее

Обзор сервисов для получения актуальных курсов валют

Reading time5 min
Views142K

На текущий момент есть много сервисов, откуда можно получить курсы валют, но все они либо неудобные, либо у них отсутствует одна или более нужных вам валют.

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

Поехали

Почему стоимость биткоинов – вымышленное понятие

Reading time13 min
Views19K
Эссе в трёх частях:

  1. У биткоинов нет единой «цены», и рынок ужасно неэффективен.
  2. Разберитесь в законах, касающихся идентификации клиентов и отмывания денег.
  3. Биткоин – это не схема Понци! Она просто работает похожим образом.

Статьи были написаны в 2017 году как предупреждение для мало осведомлённых о мире финансов энтузиастов, решивших заработать «лёгкие деньги» на криптоторговле. Написал их Дэвид Жерар, автор книги «Нападение 50-футового блокчейна: биткоин, блокчейн, Ethereum и умные контракты».

Часть 1: у биткоинов нет единой «цены», а рынок ужасно неэффективен


В публичных обсуждениях биткоинов обычно принимаются следующие предположения:

  • У биткоинов есть цена, и ожидается, что их можно покупать и продавать.
  • Покупка биткоинов похожа на покупку акций или такого товара, как золота – рынок работает точно так же.
  • Биткоины ликвидные – относительно легко поменять деньги на биткоины, а биткоины – на деньги, лежащие на банковском счёте.

И это всё неправда.
Читать дальше →

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

Reading time17 min
Views44K


Автоматизация сопровождает нас повсюду и является спутником и признаком прогресса, снимая с человека необходимость выполнения рутинных действий и принятия рутинных решений. Но для принятия решений о будущем необходима информация о прошлом, поэтому автоматизация неизбежно связана с необходимостью накапливать, хранить и обрабатывать данные, чем и занимаются базы данных и системы управления базами данных. Объём данных не уменьшается, а только увеличивается, поэтому я всегда говорю своим студентам: я научу вас хаскелю, но это сломает вам жизнь и не поможет найти работу базы данных – это хлеб программиста, у разработчика баз данных работа будет всегда, учитесь ораклу базам данных – и хлеб с маслом и икрой вам обеспечен. Это я так, как обычно, полемически заостряюсь для мотивации, но совсем чуть-чуть.
Читать дальше на свой страх и риск

Бесплатные хостинги для веб-разработчиков

Reading time4 min
Views206K

Привет, Хабр!

Одним из наиболее популярных направлений разработки сегодня является веб. И когда нужно разместить свой проект где-нибудь, кроме localhost, многие сталкиваются с трудностями, ведь хостинг должен быть быстрым, удобным и, желательно, бесплатным :)

В этом списке вы найдете 15 бесплатных сервисов, где легко сможете разместить свой проект и не заплатите ни копейки. Погнали!

Читать далее

Git, я хочу все отменить! Команды исправления допущенных ошибок

Reading time4 min
Views53K
image

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

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

Эффект неисправного монитора для текста, картинок и SVG

Reading time4 min
Views116K
Эффект Glitch Лукаса Беббера выглядит очень круто — как будто вы смотрите на текст на старом мониторе, который слишком часто роняли на пол и у него «плавает» вертикальная синхронизация и сведение.

Реализация этого эффекта на CSS выглядит вполне убедительно. Мне пришлось немного поломать голову, чтобы выяснить, как он работает, и теперь я хочу объяснить это вам. Кроме того, я воспроизвёл этот эффект не только для текста, но и для растровых изображений и SVG, а так же написал несколько примесей Sass, чтобы облегчить работу с ним.


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

Портируем утилиту командной строки с Go/Rust на D

Reading time9 min
Views3.7K
Несколько дней назад, на реддите в «программировании», Paulo Henrique Cuchi поделился своим опытом разработки утилиты командной строки на Rust и на Go (перевод на Хабре). Утилита, о которой идет речь, — это клиент для его пет-проекта Hashtrack. Hashtrack предоставляет GraphQL API, с помощью которого клиенты могут отслеживать определенные хэштэги твиттера и получать список соответствующих твитов в реальном времени. Будучи спровоцированным комментарием, я решил написать порт на D, чтобы продемонстрировать, как D может быть использован для подобных целей. Я постараюсь сохранить ту же структуру, которую он использовал в своем блогпосте.

Исходники на Гитхабе

Видео по клику
Читать дальше →

EPAM в режиме удалёнки: как всё устроено

Reading time7 min
Views29K
EPAM оказалась очень подготовленной к новым условиям компанией, поскольку изначально создавалась как компания, которая работает удалённо и с территориально-распределённой командой. Сейчас в EPAM около 40 тысяч сотрудников, которые работают почти на всех континентах, в нескольких десятках офисов.
Лично для меня никаких видимых изменений в работе не произошло — как сидела за компьютером в офисе, так и сижу — только дома и с котом. Но недавно прошёл вебинар, где коллеги рассказали, какие инструменты поддерживают жизнеобеспечение команд и как эти инструменты помогли EPAM перевести 95% сотрудников на удалёнку за 3 дня. Я поняла, что за всем этим скрывается настоящий айсберг, и мне очень захотелось этим поделиться.
За деталями и демонстрацией — на вебинар. Я же расскажу «коротко о главном» — на чём строится удалённая (да и не только удалённая) работа в EPAM.


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

Как давать обратную связь: 9 правил

Reading time4 min
Views81K
Исследования показали: получив конструктивный фидбек, сотрудники работают лучше. Если обратной связи нет, появляется стресс: трудно понять, хорошо ли ты справляешься и куда двигаться дальше. Возникает «кризис признания» – а там не за углом и выгорание.

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


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

Маска – забота об окружающих или иллюзия безопасности?

Reading time5 min
Views21K
Тема, конечно, холиварная, но наболело, не могу молчать.

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

— Извините, не могли бы вы отойти, тут на полу разметка.

Она не может. В ответ мне прилетает:

— А вы почему не в маске ходите тут?

image

То есть логика такая: надела маску и все, в домике, могу дышать в спину других людей и трогать все вокруг, ведь я надежно защитила свои слизистые! Могу и с коронавирусом так ходить, ведь ни одна капля от кашля не проникнет через тоненькую ткань, в которой я уже третьи сутки подряд хожу!

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

Коронавирус в роликах и комментариях на ютубе

Reading time9 min
Views3.8K
Всего несколько месяцев назад ютуб заливало всемирное возмущение концовкой “Игры престолов” и проблемой расового разнообразия в играх про средневековую Европу. Эта великолепная эпоха уже позади, сейчас внимание всего мира сфокусировано на вопросах реальной жизни и смерти. И мы исследуем распространение COVID-19 на ютубе.

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

Reading time17 min
Views14K

В детстве я редко ходил в залы аркадных автоматов, потому что особо в них не нуждался, ведь дома у меня были потрясающие игры для C64… но есть три аркадные игры, на которые у меня всегда находились деньги — Donkey Kong, Dragons Lair и Outrun…

… и я очень любил Outrun — скорость, холмы, пальмы и музыка, даже на слабой версии для C64.


Поэтому я решил попробовать написать олдскульную псевдотрёхмерную гоночную игру в стиле Outrun, Pitstop или Pole position. Я не планирую собрать полную и завершённую игру, но мне кажется, будет интересно заново изучить механики, при помощи которых эти игры реализовывали свои трюки. Кривые, холмы, спрайты и ощущение скорости…

Итак, вот мой «проект на выходные», который в итоге занял пять или шесть недель по выходным



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

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

Можно также поиграть

Читать дальше →
1
23 ...

Information

Rating
Does not participate
Location
Самарская обл., Россия
Registered
Activity