Как стать автором
Обновить
4
0

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

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

Когда имён недостаточно. REST-клиент на F#. Часть 2. Методы

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров666

В прошлой части мы проецировали внешние контракты в DTO на примере REST. В этой будем проецировать методы контрактов в нечто, что позволит вызывать их вот так:

let! issues = gitflic.project.["kleidemos"].["myFirstProject"].issue.GET(limit = 24)

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

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

Как и зачем создавать кастомные сборщики мусора в Go

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

В Golang (да в принципе во всех ЯП) управление памятью и эффективное использование ресурсов — основа создания высокопроизводительных приложений. Одним из важных инструментов, который помогает справляться с этой задачей, является сборщик мусора (на англ garbage collection). Встроенный сборщик мусора Go выполняет свою работу довольно хорошо, но иногда требуется более тонкая настройка, чтобы соответствовать специальным требованиям потребностям конкретного приложения.

Здесь нам и помогут кастомные сборщики мусора.

Читать далее
Всего голосов 5: ↑4 и ↓1+6
Комментарии3

Создание простейшего back-end на Node.js с использованием PostgreSQL

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров4.1K

Сегодня мы продемонстрируем как создавать back-end приложения на Node.js c PostqreSQL. В качестве примера создадим простейший back-end на Node.js с использованием PostgreSQL.

Почему именно Node.js и PostgreSQL? Node.js имеет хорошую скорость и асинхронность, а PostgreSQL, в свою очередь, является мощной и надежной СУБД.

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

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

Насколько нам нужно визуальное программирование?

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров16K

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

На мой взгляд, те, кто работает с визуальным программированием, гораздо больше преуспеют, если начнут с аспектов программного обеспечения, которые разработчики уже визуализируют.
Читать дальше →
Всего голосов 34: ↑31 и ↓3+42
Комментарии91

Насколько быстр Javascript? Симулируем 20 миллионов частиц

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

Я бросил себе вызов: симулировать 1000000 (миллион) частиц на чистом Javascript на телефоне, используя только CPU и добившись 60 FPS.

Поехали.

Задача не особо сложна, если выполнять всю работу на GPU, но правило гласит, что нужно пользоваться только CPU, при этом работая на JS, так что никакого WASM.

Читать далее
Всего голосов 89: ↑88 и ↓1+109
Комментарии24

Обзор и гайд по Tortoise ORM: собрал в одну статью все, что надо знать об инструменте и своем опыте работы с ним

Уровень сложностиСредний
Время на прочтение26 мин
Количество просмотров2.2K

Привет, Хабр! Меня зовут Даниил Лихачев, я Python backend developer в диджитал-продакшене Далее. Сегодня я хотел бы представить вашему вниманию асинхронную библиотеку для работы с базами данных под названием Tortoise ORM. Это обзорная статья, чтобы показать, что из себя представляет данная библиотека и для каких проектов она подойдет. Также на основе своего опыта постараюсь осветить аспекты, в которых Tortoise ORM хороша и удобна, а также те, в которых ее возможностей может не хватать и как это обойти. Также бонусом предоставлю свой шаблон в стеке FastAPI + Tortoise ORM.

Читать далее
Всего голосов 14: ↑13 и ↓1+15
Комментарии11

DIY порошок для посудомойки: как не растворить посуду и не повторить моих ошибок. Год экспериментов

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


Предыдущие публикации:

Пудра для мозга или как сделать порошок для посудомойки в 9,7 раз дешевле
DIY порошок для посудомойки: разбираем промышленные средства и улучшаем рецепт

Прошло уже больше года с момента последней публикации из серии домашней алхимии, посвященной издевательствам над бытовой техникой производству порошка для посудомойки в домашних условиях. Я все еще жив. Большинство тестировавших жуткие смеси, насколько мне известно, живы. В этом посте я хотел рассказать как правильно мыть ржавые гвозди в посудомойке, не растворяется ли картошка с укропом и подвести итог экспериментов за год.
Читать дальше →
Всего голосов 116: ↑116 и ↓0+116
Комментарии534

Был курьером — стал основателем своей торговой марки с оборотом 500 млн. Как мне это удалось

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

В 2016 году я устроился курьером в магазин электроники. Вырос до менеджера по продажам, а потом и управляющего магазина. Я набрался опыта, связей и попробовал сам. Через 2 года зарегистрировал собственную ТМ. Сейчас у меня 2 собственных бренда: бытовая химия, подушки и дистрибьюция электроники из Китая с общим оборотом 500 млн в год.

Начал возить технику из Китая в 2019 году. Денег у меня не было, поэтому взял кредит на 500К. Контакты подрядчиков достались мне с предыдущего места работы. Я больше 5 лет в товарном бизнесе, дошел до оборота в 500 млн. В статье мои выводы по торговле на маркетплейсах.

Материал подготовлен для блога МойСклад по мотивам интервью с Вячеславом Баурдиным, основателем брендов Laber и Uluna.

Больше полезного контента для предпринимателей  в тг-канале МоегоСклада.

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

Все о версиях Windows 10 и как максимально продлить поддержку своей ОС

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

10 лет назад я писал заметку Всё о версиях Windows 8.1 и о том, как легально загрузить последний образ без подписки / Хабр (habr.com), где рассказывал по сути о версиях образов, - то есть о том какие обновления Microsoft интегрировал в выкладываемые образы. С тех пор утекло много воды, сегодняшний темп выхода обновлений лишает всякого интереса задачу отслеживания измененных образов. Зато остается масса вопросов о различиях между версиями (не путать с изданиями) Windows 10 и Windows 11.

То есть большинство из вас примерно представляет себе, чем отличается Windows 10 Home от Professional, или по крайней мере знает как легко это загуглить. А вот вопрос, чем отличается, например, Windows 10 21H1 (10.0.19043.x) Professional от Windows 10 21H2 (10.0.19044.x) Professional вас точно поставит в тупик (короткий ответ, начиная c 10.0.19043.1348, установив так называемый Enablement пакет в пару десятков килобайт вы получите 10.0.19044.1348, с поддержкой протокола WPA3 H2E и поддержкой GPU вычислений в Windows Subsystem for Linux). То есть ну ни разу не очевидные моменты, и поверьте, с Windows 11 ситуация еще более запутанная, там кроме веховой версии (например 23H2, она же Nickel R2) есть еще минимум пять ступеней обновлением функционала – незначительных «ступенечек», просто установкой кумулятивного обновления и «моментов» с установкой специального пакета, включающего возможности.

О Windows 11 мы поговорим в следующей моей заметке, а сегодня вспомним, все-таки, историю. Не древнейшую историю, - труп Windows XP уже сгнил, и не средневековье, - про Windows 7 и 8 вспоминать тоже не будем. Сегодня с нас хватит огромного количества разных версий Windows 10. Вспомним, что, когда выходило и чего добавлялось из возможностей в новых версиях и с веховыми обновлениями. Не забуду рассказать и о том, какие версии сейчас еще обновляются, и как долго будут. Что делать тем, кто не готов переходить на Windows 11, но хотел бы еще много лет получать обновления для Windows 10. Это уже в самом конце разговора. Не пугайтесь большого количества версий, - их совершенно нет необходимости ставить все поочередно для обновления, - всегда можно сразу поставить последнюю, перешагнув сколько угодно промежуточных шагов. Помните, единожды установив какую-то версию Windows 10, все последующие будут вам предлагаться бесплатно через Windows Update – это не касается лишь LTSB/LTSC и Enterprise G, версии которых требуется обновлять вручную.

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

Почему всем стоит попробовать шрифты для разработчиков

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


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

Разработчики день-деньской смотрят на код. Разве не стоит попытаться усовершенствовать этот опыт, чтобы продуктивность возрастала? Существует большое количество шрифтов, которые служат именно этой цели. К самым популярным относятся Fira Code, Source Code Pro, Jetbrains Mono и Ubuntu Mono, но это только несколько примеров – есть еще множество других.

Вот несколько причин, по которым выбор подходящего шрифта поможет разработчику в работе:
  • Проще замечать баги
  • Быстро находятся переменные и функции
  • Легко опознаются специфичные для программирования символы
  • Снижается нагрузка на глаза

Ну и смотрятся они здорово, а это разве плохо?
Читать дальше →
Всего голосов 33: ↑31 и ↓2+38
Комментарии151

Как полностью отключить Защитник (Defender) Windows 11

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров9.4K

За последний месяц я описал два интересных издания Windows 11 – Enterprise G в статье Windows 11 Enterprise G – Что за издание для правительства Китая и зачем оно вам? / Хабр (habr.com), и IoT Enterprise LTSC в статье Windows 11 24H2 IoT Enterprise LTSC – что за зверь, и чем он хорош? / Хабр (habr.com). В комментариях и сообщениях в личку все чаще слышу, что хорош EnterpriseG своей легкостью, в первую очередь выпиленным Защитником и телеметрией, но увы, не имеет локализации. А IoT LTSC тоже хорош и переведен, и быть ему тем на что можно наконец переходить тем, кто еще живет на Windows 7, если бы не Defender.

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

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

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

По итогам тестирования мной также признаны неработоспособными способы отключения Защитника через ProductPolicy и редактирование MUM файла, описывающего компоненты входящие в издание ОС, так как так или иначе, при перезагрузке или обновлении Защитник возвращается в строй. Встроенные групповые политики (и локальные политики через gpedit.msc) позволяли его отключить в Windows 10, но в Windows 11 встроено значительно больше функций защиты, их нужно отключать более грубо вручную.

Как полностью удалить Защитника?
Всего голосов 23: ↑18 и ↓5+17
Комментарии61

Возможности С++: от стандартных алгоритмов до диапазонов (Ranges)

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров4.7K

Привет, Хабр! Меня зовут Николай, я разработчик С++ в SimbirSoft. В предыдущей статье мы с вами рассмотрели применение стандартных алгоритмов в повседневном коде и их преимущества над обычными циклами. В продолжение этой темы мне хотелось бы рассказать о недостатках стандартных алгоритмов и способах их решения с помощью библиотеки Ranges. Практические примеры я разбил на три части: в первой показаны обычные циклы, во второй — вариант написания с помощью алгоритмов (но не всегда можно это сделать), в третьей – с использованием Ranges. Этот материал будет полезен тем разработчикам, которые хотят применять новые стандарты и подходы у себя на проектах.

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

Как мы переходили с Xamarin на Flutter

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

Всем привет! Меня зовут Виктор, я представляю одну из команд мобильной разработки компании DD Planet.

В этой статье расскажу о своем личном опыте и опыте нашей команды по переходу с кроссплатформенного фреймворка Xamarin Native на Flutter.

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

Ускоряем JS до предела C

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров5.3K

В этой статье я попробую заглянуть за пределы возможностей языка JavaScript и оценить, как производительность может существенно различаться при написании выразительного, декларативного и лаконичного кода по сравнению с оптимизированным. На примере функции, определяющей, является ли строка палиндромом, я покажу несколько вариантов решения задачи с замерами времени на исполнение. Затем напишу модуль на C, который буду вызывать наряду с методами на JavaScript для замера скорости. Проведу низкоуровневые оптимизации. Все это стало возможно благодаря развитию ИИ.

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

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

Как malloc сломала JPGLoader в Serenity, или Как выиграть в лотерее

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров7.9K

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

Странно, не так ли? Похоже, будто просто перепутали RGB и BGR. При этом внесение в JPGLoader.cpp следующего изменения:

-   const Color color { (u8)block.y[pixel_index], (u8)block.cb[pixel_index], (u8)block.cr[pixel_index] };
+   const Color color { (u8)block.cr[pixel_index], (u8)block.cb[pixel_index], (u8)block.y[pixel_index] };
    context.bitmap->set_pixel(x, y, color);

приводит к корректному показу картинки. Вроде бы можно считать дело закрытым!

…Но нет. Возникает вопрос, почему вообще произошёл этот сбой?
Читать дальше →
Всего голосов 51: ↑50 и ↓1+71
Комментарии25

Hamster Kombat. Сколько ты реально заработаешь? Вся правда. Большой разбор проекта, токена HMSTR и команды

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

В сегодняшнем материале мы разберем проект Hamster Kombat по косточкам. Поговорим о том, как вас разводят на время и внимание, как создатели Хомяка продают свою аудиторию, подсветим все его зашквары и несостыковки. Разберем экономику его токена, инвестиции и предположим, по какой цене он выйдет на рынок. Ну и самое главное — попытаемся понять, сколько же удастся на проекте заработать.

Для того, чтобы понять, сколько денег раздаст проект (и раздаст ли вообще), стоит ли вообще тратить на него свое время, необходимо проанализировать массу метрик, в том числе его фундаментальные показатели, фандрайзинг, токеномику, команду и многое другое. Этим прямо сейчас и займемся. Устраивайтесь поудобней.

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

Читать далее
Всего голосов 174: ↑159 и ↓15+173
Комментарии195

Почему BSD проиграла в битве с GNU/Linux?

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

Существует множество разных операционных систем с открытым исходным кодом, и если вы пользуетесь одной из них, то почти наверняка она будет на базе ядра Linux и набора программ GNU. Многие думают, что дистрибутив GNU/Linux и был первой open source операционной системой. Но это не так. Его опередил проект Berkeley Software Distribution, или BSD. Причем будет справедливо сказать, что он был также более профессиональным и ориентированным на рынок. Но почему тогда BSD сейчас находится на задворках экосистемы open source, тогда как GNU/Linux играет одну из центральных ролей? Посмотрим на это с исторической перспективы.

Читать дальше →
Всего голосов 57: ↑55 и ↓2+53
Комментарии254

Мир лицензий: разбираемся с лицензиями BSD

Время на прочтение5 мин
Количество просмотров44K
Недавно мной была написана статья Мир лицензий: разбираемся с GNU GPL, в которой я попытался обобщить основную информацию про лицензии GPL, кратко рассказать об истории лицензии, ее версиях и совместимости других лицензий с GPL. В комментариях к статье возникло несколько вопросов и, для ответов на некоторые из них, мной был сделан частичный перевод официального GPL FAQ.

Как это часто бывает, первая статья стала поводом к продолжительным спорам, суть которых сводилась к одному вопросу: «что лучше (для людей, программ, мира, будущего) GPL или BSD лицензии?». На мой взгляд, этот спор сродни вопросу «с какого конца разбивать яйцо?» и не имеет одного определенного ответа. Использование определенной лицензии — это дело каждого и разнообразие их — лишь положительный фактор, который дает разработчикам (и авторам) больше свободы и возможностей для распространения своих трудов.

В этой статье я постараюсь рассмотреть вторую сторону споров — лицензии BSD, их различия, историю и производные. Кроме того, я попытаюсь сравнить GPL и BSD и рассказать, почему оригинальная BSD-лицензия несовместима с GPL.

UPD: обновлены разделы «Original BSD license» и «ISC license (OpenBSD license)»

Читать дальше →
Всего голосов 75: ↑68 и ↓7+61
Комментарии69

Как компилировать json или история оптимизации python сервиса

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров6.7K

В прошлой статье мы начали историю создания одного из компонентов платформы экспериментов в компании Okko — сервис сплитования трафика.

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

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

Читать далее
Всего голосов 23: ↑22 и ↓1+29
Комментарии19

Пишем свой Swift макрос без лида, ИТ-курсов и кредитов

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров1.6K

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

Сегодня я хотел бы рассказать вам о макросах в Swift 5.9, как их можно применять для избавление от бойлерплейта в коде, как их создавать, какие сложности есть с ними и куда всё это движется. Так как я работаю в команде дизайн-системы, мы рассмотрим макросы на примере добавления метода copy для всех моделей UI-компонентов.

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

Информация

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