Как стать автором
Обновить
-1
@yerbabuenaread⁠-⁠only

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

Отправить сообщение

На грани отвала eMMC: Устанавливаем Android на SD-карту на любом смартфоне/планшете! Вторая жизнь для дешевых кит. устр

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров25K
К сожалению, китайские производители бюджетных девайсов всё туже и туже затягивают пояса для уменьшения конечной цены девайсов. Попытки сэкономить сказываются не только на качестве дисплеев, пластиковых тачскринах, слабых процессорах, но и на памяти. Причём последнее время в устройства до 5-6 тысяч рублей ставят откровенно неликвидную и отбракованную память брендов Foresee и Barum, которая может прослужить как пару месяцев, так и 5 лет. Сегодня мы с вами: узнаем небольшую историю «затягивания» поясов китайцами, во всех подробностях перенесём Android на MicroSD-флэшку (гайд применим для любых производителей и чипсетов), посмотрим, как будет работать Android с такого накопителя и подведем итоги. Интересно? Тогда добро пожаловать!

image
Читать дальше →
Всего голосов 71: ↑71 и ↓0+71
Комментарии47

Введение в модульное тестирование T-SQL помощью tSQLt

Время на прочтение6 мин
Количество просмотров3.4K

tSQLt — это мощный фреймворк с открытым исходным кодом для модульного тестирования кода SQL Server. 

Модульное тестирование SQL-кода — полезная практика в разработке баз данных, которая позволяет обнаруживать ошибки до попадания их в продакшн. Хотя надо сказать, есть разные мнения, и некоторые разработчики все еще спорят о необходимости модульного тестирования SQL-кода. Модульное тестирование очень важно для контроля и проверки поведения отдельных частей базы данных и не стоит игнорировать написание модульных тестов кода базы данных. По сути, модульные тесты позволяют автоматически проверять поведение объектов базы данных (хранимых процедур, триггеров, функций и т. д.) при регрессионном тестировании. 

Читать далее
Всего голосов 9: ↑9 и ↓0+9
Комментарии3

Принципы SOLID коротко и простым языком (на JS)

Время на прочтение2 мин
Количество просмотров30K

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

Читать далее
Всего голосов 18: ↑7 и ↓11-1
Комментарии23

Формула Байеса и где ее использовать

Время на прочтение11 мин
Количество просмотров16K

Как наглядно объяснить формулу Байеса? Как использовать формулу для предсказания? Классический пример с честностью монетки.

Читать далее
Всего голосов 20: ↑17 и ↓3+16
Комментарии7

Офисные джунгли (или особенности западной культуры общения на работе)

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров15K

Это негласные правила этикета среди офисных белых воротничков. Об этом не расскажут ни в школе ни в университете. Как вести себя в офисах IT стартапа или корпорации?

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

Эти правила написаны кровью!

Читать далее
Всего голосов 92: ↑42 и ↓50+7
Комментарии122

Асинхронное программирование – производительность async: понять расходы на async и await

Время на прочтение21 мин
Количество просмотров31K

Это статья достаточно древняя, но не потерявшая актуальности. Когда разговор заходит об async/await, как правило, появляется ссылка на неё. Перевода на русский найти не смог, решил помочь кто не fluent.




Асинхронное программирование долгое время было царством самых опытных разработчиков с тягой к мазохизму – тех, кто имел достаточно свободного времени, склонность и психические способности размышлять об обратных вызовах (callback) из обратных вызовов в нелинейном потоке выполнения. С появлением Microsoft .NET Framework 4.5, C# и Visual Basic принесли асинхронность всем нам, так что простые смертные теперь могут писать асинхронные методы почти так же легко, как синхронные. Обратные вызовы больше не нужны. Больше не нужна явная передача (marshaling) кода из одного контекста синхронизации в другой. Больше не нужно беспокоиться как двигаются результаты выполнения или исключения. Нет необходимости в трюках, которые искажают средства языков программирования для удобства разработки асинхронного кода. Короче говоря, больше нет мороки и головной боли.

Читать дальше →
Всего голосов 24: ↑24 и ↓0+24
Комментарии5

Практическое применение async/await в Unity

Время на прочтение4 мин
Количество просмотров8.1K

Использование async/await позволяет сделать код легче для понимания, убирает необходимость в функциях обратного вызова и протаскивании необходимых данных (или их сохранения в полях объекта).
Требования и ограничения async/await с примером реализации для UI.

Читать далее
Всего голосов 10: ↑10 и ↓0+10
Комментарии1

Большой гайд. Пишем микросервисы на Java и Spring Boot, заворачиваем в Docker, запускаем на EKS, мониторим на Grafana

Время на прочтение37 мин
Количество просмотров95K

Туториалы делятся на две больших категории: либо "как нарисовать сову", либо подробно расписанные тысячи шагов в формате "напиши туториал для дурака - и только дурак захочет его читать".

Как какой из двух категорий относится эта статья — решать вам.

В этой статье вы увидите пошаговое создание cloud-native микросервиса на Amazon AWS, пригодное для "чтения с листа". Чтобы понять, что здесь происходит, не нужно разворачивать проект - достаточно обладать живым воображением и прочитать текст по диагонали. Если же вы всё-таки захотите повторить шаги, вам будут жизненно нужны знания вида, как создавать классы в IDE и что такое Spring.

Вначале мы напишем пару простых микросервисов на Spring Boot, докеризуем их, зальём в AWS, настроим красивые доменные имена и HTTPS, прикрутим логирование и мониторинг, Prometheus и Grafana. Это небольшое путешествие по всем кругам ада, из которого вы не вернетесь прежним.

Текст написан на основе текстов и демо-проекта microservice-customer за авторством @kamaruzzaman. Если вы потеряли нить повествования, всегда можно зайти на GitHub и найти весь код в пригодном для запуска виде. Если захочется закопаться в тему, то бро Дима Чуйко (@Teapot) написал вам ещё две части статьи "Микросервисы: от CRUD до Native Image" (раз, два).

Последняя важная оговорка. В этом гайде будут использоваться технологии Amazon и обычные дистрибутивы OpenJDK. Автор осознает, что мы живём в России, и возможно, вместо Amazon куда лучше подойдет что-то вроде SberCloud или MTS Cloud, а вместо обычного OpenJDK - Axiom JDK с сертификацией по ФСТЭК. Особенности российских технологий - тема для отдельной статьи. Если вы захотите таковую после чтения этого гайда - отметьтесь в комментариях.

Читать далее
Всего голосов 66: ↑65 и ↓1+83
Комментарии27

Сумачечая производительность LINQ в .Net7

Время на прочтение3 мин
Количество просмотров15K

Исторически так сложилось, что LINQ взыскал "сомнительную" репутацию за его скромную производительность. LINQ медленный, аллоцирует память, сложно читается, поэтому обычно его используют как инструмент запросов к БД и то, зачастую сложные запросы легче написать на SQL. Даже на собеседованиях джунов просят не использовать LINQ в алгоритмах.

Однако в .NET 7 всё будет по-другому...

Подробней...
Всего голосов 32: ↑26 и ↓6+25
Комментарии26

WiFi-портал в Россию – Как работать из-за границы, если компания не разрешает?

Время на прочтение5 мин
Количество просмотров62K

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

Читать далее
Всего голосов 67: ↑41 и ↓26+29
Комментарии170

Блеск и нищета мапперов объектов в .net

Время на прочтение8 мин
Количество просмотров8.4K

Всем привет, меня зовут Сергей, я системный архитектор в компании BIMeister, и, как вы уже догадались, сегодня мы поговорим про маппинг объектов в .net

Мы сравним несколько популярных подходов и библиотек для маппинга, дадим общее представление и посмотрим на различия, которые стоит учитывать при выборе инструментов. Статья ориентирована на младших разработчиков, которые впервые сталкиваются с темой маппинга объектов и на всех неравнодушных. В данной статье мы не будем касаться широкой темы разнообразных ОRМ-ов (Object­Relational Mapping), а также темы сериализации/десериализации данных, которую тоже часто называют маппингом, а рассмотрим сопоставление объектов между различными слоями нашего приложения, например DТО (Data Transfer Object) и объектом из базы данных, с которым оперирует Entity Framework

Итак, начнём!
Всего голосов 11: ↑10 и ↓1+9
Комментарии11

Сравнение AutoMapper и Mapster

Время на прочтение10 мин
Количество просмотров14K

Использование автоматизированных инструментов преобразования объектов (object-object mapping) может помочь в организации кода и отделении ответственности за преобразования в отдельный изолированный уровень приложения.

AutoMapper — самая популярная библиотека для маппинга объектов в dotnet — NuGet-пакет скачали больше 313 миллионов раз за 11 лет существования библиотеки.

Mapster появился на 4 года позже AutoMapper и имеет 8.2 миллионов загрузок на nuget.org. Популярность отличается больше, чем на порядок, так зачем бы вообще смотреть на альтернативу AutoMapper? Дело в том, что Mapster обещает лучшую производительность и меньший объем памяти по сравнению с другими библиотеками маппинга объектов, поэтому стоит по крайней мере рассмотреть использование этой библиотеки и понять возможности для замены автомаппера на мапстер.

Сравнение, бенчмарки и выводы
Всего голосов 7: ↑6 и ↓1+5
Комментарии10

Как отправить сообщение почти любому человеку в LinkedIn

Время на прочтение3 мин
Количество просмотров13K

Самый популярный способ поиска работы — используя профессиональную сеть LinkedIn. На западном рынке именно эта сеть стала основным инструментом для поиска деловых контактов и расширения нетворка. Большинство компаний используют LinkedIn для поиска сотрудников. Это основной (и зачастую единственный) инструмент, которым пользуется рекрутер при поиске кандидатов.

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

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

Читать далее
Всего голосов 45: ↑37 и ↓8+41
Комментарии5

Ошибки выбора MongoDB в качестве основной БД в стартапе

Время на прочтение6 мин
Количество просмотров39K

В этой статье я хочу рассказать о своих ошибках, которые я допустил, когда писал сервис, у которого MongoDB была основной БД для хранения пользовательских данных (да и не только, но об этом ниже).

Я ни в коем случае не считаю, что MongoDB это плохая БД и ее не нужно использовать. Более того, я считаю, что только мои кривые руки завели меня в ситуацию, из которой пришлось выходить переписыванием сервиса под другую БД (ушел на Postgres и кайфую).

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

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

Встать на грабли вместе
Всего голосов 136: ↑112 и ↓24+115
Комментарии131

Алгоритмы сортировки и их производительность

Время на прочтение17 мин
Количество просмотров49K

Здравствуйте, давно читаю Хабр и все хотел написать кому-нибудь статью, но не знал с чего начать и о чем писать. Но решил что тянуть кота за причинное место. Надо просто взять и написать обзор о чем то что я знаю и что будет просто для начало. Поэтому решил описать алгоритмы сортировки в размере 37 штук. Я понимаю, что на Хабре есть подобные статьи, одна постараюсь их добавить количеством алгоритмов и приведением небольшого числа графиков.

Читать далее
Всего голосов 64: ↑62 и ↓2+74
Комментарии29

Алгоритм большинства голосов Бойера — Мура

Время на прочтение2 мин
Количество просмотров8.2K

#Введение#
Решал задачки на LeetCode и вот небольшой переводик небольшой статьи про небольшой алгоритм.
Алгоритм голосования Бойера-Мура является одним из самых популярных и оптимальных алгоритмов, который используется для поиска преобладающего элемента среди заданных, который имеет более N / 2 вхождений. Алгоритм выполняет 2 обхода по заданным элементам, что работает при O (N) временной сложности и O (1) пространственной сложности.

Читать далее
Всего голосов 23: ↑23 и ↓0+23
Комментарии14

Как открыть ИП в Грузии, в том числе удаленно?

Время на прочтение9 мин
Количество просмотров93K

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

Наиболее популярной формой легализации бизнеса и работы на территории Грузии является регистрация иностранного гражданина в организационно-правовой форме индивидуального предпринимателя.

Благоприятные факторы для ведения бизнеса в Грузии:

Читать далее
Всего голосов 15: ↑10 и ↓5+6
Комментарии23

Снижение аллокации при замыкании (closure)

Время на прочтение6 мин
Количество просмотров12K

Недавно у меня появилась задача по снижению аллокации в очень горячем месте кода. Там происходит тривиальное: запускаются Task'и в которых заранее известным набором handler'ов обрабатываются объекты. Вооружившись профайлером, я с удивлением обнаружил, что много памяти (и много времени GC) затрачивается на удаление объектов-замыканий.

Читать далее
Всего голосов 9: ↑9 и ↓0+9
Комментарии22

Record vs struct — когда кто кого

Время на прочтение13 мин
Количество просмотров27K

В .Net, помимо типов class и struct, с недавних пор есть еще и типы record и record struct. Появление двух новых типов могло внести запутанность по поводу того, в чем их сходства и различия, и в каких случаях стоит их применять. В этой статье мы разберем, в каких ситуациях использовать class, record, struct, и какие преимущества даёт тот или иной тип в различных ситуациях. В конце мы приведем шпаргалку, которая поможет быстро определиться, какой из видов типов лучше подходит в том или ином случае.

Читать далее
Всего голосов 19: ↑18 и ↓1+20
Комментарии8

17 убойных репозиториев GitHub, которые нужно сохранить

Время на прочтение6 мин
Количество просмотров141K

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

Читать далее
Всего голосов 153: ↑123 и ↓30+114
Комментарии44
1

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность