Pull to refresh
49
0
Яков Лило @JacobL

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

Send message

Все способы легального вывода денег из России: детальный разбор со ссылками

Reading time12 min
Views114K

Многие сейчас временно или навсегда релоцируются из РФ. При этом задача вывоза накопленных внутри страны денег часто оказывается непростой. В этом гайде я систематизировал все работающие на текущий момент способы, которыми поделились участники нашего сообщества RationalAnswer.

Читать далее
Total votes 112: ↑100 and ↓12+88
Comments87

Свой облачный хостинг за 5 минут. Часть 1: Ansible, Docker, Docker Swarm

Reading time11 min
Views137K
Cloud hosting

Привет Хабр! Последние 1.5 года я работал над своим проектом, которому был необходим надежный облачный хостинг. До этого момента я больше 10 лет занимался веб-программированием и когда я решил построить свой хостинг у меня были относительно поверхностные знания в этой области, я и сейчас не являюсь системным администратором. Все что я буду рассказывать может выполнить обычный программист в течение 5 минут, просто запустив набор сценариев для Ansible, которые я подготовил специально для вас и выложил на GitHub.
Читать дальше →
Total votes 64: ↑63 and ↓1+62
Comments42

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

Reading time4 min
Views181K

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

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

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

Читать далее
Total votes 40: ↑39 and ↓1+38
Comments38

Невидимый Javascript-бэкдор

Reading time4 min
Views29K

Несколько месяцев назад мы увидели пост в сабреддите r/programminghorror: один разработчик рассказал о своих мучениях с поиском синтаксической ошибки, вызванной невидимым символом Unicode, скрывавшемся в исходном коде на JavaScript. Этот пост вдохновил нас на мысль: что если бэкдор в буквальном смысле нельзя было бы увидеть и таким образом он бы избежал тщательных проверок кода?

Как раз когда мы завершали написание этого поста, команда из Кембриджского университета опубликовала статью с описанием такой атаки. Однако её подход сильно отличается от нашего — в нём упор делается на механизм двойного направления текста в Unicode (Bidi). Мы реализовали подход, который в статье называется Invisible Character Attacks и Homoglyph Attacks.

Без лишних предисловий перейдём к бэкдору. Сможете его найти?
Читать дальше →
Total votes 105: ↑102 and ↓3+99
Comments55

XamlWriter и Bindings

Reading time6 min
Views2.6K
Доброй ночи Хабра-сообщество.
Я только что получил инвайт к вам в компанию, и сразу же решил написать что-то, что возможно окажется для кого-то полезным… Не судите строго.

Я являюсь одним из разработчиков одного Open Source проекта, одной из основных частей которого является графический редактор, который должен сохранять векторную графику в формате XAML в рамках объектной модели WPF. В процессе разработки, я столкнулся с проблемой. Bindings, созданные из кода ,(или из загруженного XAML файла) не сохраняется обратно в XAML при попытке сериализации стандартным XamlWriter. Как оказалось это стандартное поведение XamlWriter описанное в MSDN. Я пытался найти решение в сети, но нашёл только одну статью на CodeProject. К сожалению, как оказалось, это решение не подходит для сложных XAML документов по ряду причин. Я уже начал рассматривать вариант написания собственного сериализатора, когда увидел, что расширение TemplateBinding прекрасно сохраняется стандартными средствами, это меня натолкнуло на мысль, что ещё не всё потеряно, и вооружившись Reference Source Code от MS и дебагером я начал изучать проблему. И вот что у меня вышло.
Читать дальше →
Total votes 35: ↑29 and ↓6+23
Comments22

5 причин почему Playwright лучше Cypress

Reading time6 min
Views13K

Перевод статьи Alister ScottFive reasons why Playwright is better than Cypress

На основании проведенного сравнения, могу смело рассказать о причинах, почему Cypress все еще проигрывает конкуренцию.

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

Зачем и как хранить объекты на примере MinIO

Reading time13 min
Views54K

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

Начать хранить файлы
Total votes 28: ↑26 and ↓2+24
Comments8

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

Reading time4 min
Views27K

Представьте человека, который изучает алгоритмы. Чтобы понять как они работают, приходится разбираться в их коде и представлять, как компьютер будет его выполнять. Это странно — почему мы должны учиться думать как компьютер, вместо того, чтобы заставить его помогать нам? Какая-то сильная технозависимость.

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

Читать далее
Total votes 107: ↑107 and ↓0+107
Comments55

Wireshark для всех. Лайфхаки на каждый день

Reading time7 min
Views99K

Пакет с сертификатами от Хабра

Wireshark — очень известная программа для захвата и анализа сетевого трафика, незаменимый инструмент хакера, сетевого инженера, программиста, специалиста по безопасности. Да вообще любого любознательного человека, который хочет детально изучить трафик со своего или чужого мобильного телефона, фитнес-браслета, телевизора.
Читать дальше →
Total votes 56: ↑54 and ↓2+52
Comments16

Избавляемся от постоянного написания конструкторов для инжекта зависимостей с помощью C# Source Generators

Reading time5 min
Views11K

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

Поэтому я решил автоматизировать это дело, благо в .NET 5 у нас есть такая возможность в виде Source Generators.

А так же хотелось поделиться библиотекой с теми, кого так же как и меня достало написание спагетти конструкторов!

Читать далее
Total votes 43: ↑38 and ↓5+33
Comments70

Время-деньги. Сколько стоит час инженера

Reading time5 min
Views63K

Сколько стоит час работы сотрудника? Это обязаны знать в любой компании, которая продаёт свои часы. А тем, кто не продаёт, а покупает, не лишним будет понять, почему именно столько просят подрядчики, и сколько на самом деле стоят внутренние проекты. Давайте разберёмся, как мы считаем стоимость часа и что туда входит.

Читать далее
Total votes 93: ↑90 and ↓3+87
Comments165

Разрабы работают медленно и дорого — и люди считают нас лентяями. Просто в разработке всё сложно

Reading time7 min
Views75K

— Люди не из индустрии вечно не понимают программистов: что они там такое сложное делают, если видно только две кнопки? Что за непонятные слова говорят? Почему так много получают?


Вместе с парнями из подкаста «Мы обречены» решили с этим разобраться и запустили совместную рубрику, где будем объяснять, почему в разработке всё так сложно. А для тех, кто любит читать, а не слушать, парни написали эту статью.


Читать дальше →
Total votes 219: ↑183 and ↓36+147
Comments533

Как выбрать красивые цвета для вашей инфографики

Reading time10 min
Views38K


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

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

Статья не поможет найти хорошие градиенты или оттенки. Она предназначена для подбора красивых, чётких цветов для различных категорий информации (например, континентов, отраслей промышленности, видов птиц) в линейных, круговых, полосковых диаграммах и так далее.
Total votes 46: ↑45 and ↓1+44
Comments6

Выведение Action type с помощью Typescript

Reading time6 min
Views48K
Всем привет! Меня зовут Дмитрий Новиков, я javascript-разработчик в Альфа-Банке, и сегодня я расскажу вам про наш опыт выведения Action type при помощи Typescript, с каким проблемами мы столкнулись и как их решили.

Это расшифровка моего доклада на Alfa JavaScript MeetUp. Код из слайдов презентации можно посмотреть здесь, а запись трансляции митапа — здесь.

Наши фронтовые приложения работают на связке React+Redux. Redux data flow упрощенно выглядит так:

Читать дальше →
Total votes 45: ↑42 and ↓3+39
Comments39

Основы React: всё, что нужно знать для начала работы

Reading time15 min
Views204K
Хотите узнать о том, что такое React, но вам всё никак не выпадает шанс изучить его? Или, может быть, вы уже пробовали освоить React, но не смогли толком понять? А может, вы разобрались с основами, но хотите привести в порядок знания? Эта статья написана специально для тех, кто положительно ответил хотя бы на один из этих вопросов. Сегодня мы создадим простой музыкальный проигрыватель, раскрывая основные концепции React по мере продвижения к цели.

image

Разобравшись с этим материалом, вы освоите следующее:

  • Компоненты React.
  • Рендеринг ReactDOM.
  • Классы компонентов и функциональных компоненты.
  • JSX.
  • Состояние (state).
  • Обработка событий.
  • Асинхронный метод setState.
  • Свойства (props).
  • Ссылки (refs).

Это — практически всё, что нужно знать для того, чтобы создавать и поддерживать React-приложения.
Читать дальше →
Total votes 24: ↑24 and ↓0+24
Comments61

Y-метод — действительно простой способ собрать кубик Рубика

Reading time7 min
Views321K

Введение


В статье рассматривается «Y-метод» сборки кубика Рубика — его легко понять и запомнить. Он основан всего на одной последовательности, которая называется «Y-движение». Поняв этот алгоритм, вы навряд ли забудете как собрать кубик самостоятельно.
Читать дальше →
Total votes 118: ↑117 and ↓1+116
Comments78

Взгляд юриста: как IT компании расторгнуть контракт с токсичным госзаказчиком

Reading time3 min
Views20K
IT компания победила в гостендере на разработку системы обучения. Приступила к исполнению и ее начали жестко сливать. В чем причина? Как происходит слив? И под какие риски подписывается разработчик, входя в тендер?

Часть 1: темные стороны ТЗ


Одно скромное ФГБУ (федеральное гос. богоугодное учреждение) объявило тендер на создание системы дистанционного обучения («СДО»). Сроки 5 мес., цена 4,5 млн. рублей.

Создание СДО проходило в 4 последовательных этапа: (1) анализ инфрастуктуры Заказчика, (2) создание СДО, (3) внедрение и гарантийное обслуживание.

Так как ТЗ написано госзаказчиком «широкими мазками», то и родился в нем первый этап – анализ инфраструктуры. Анализ, точнее, анамнез показал, что вычислительных мощностей железа Заказчика явно не хватает, чтобы обеспечить
«бесперебойное функционировании СДО при одновременном использовании 10 000 пользователей».
Заказчик подливает масла в огонь новой вводной, которой не было в ТЗ – объемом курсов обучения. Цитируя госзаказчика: «Подумаешь, забыли про объем написать?». Доблестный разработчик снова вглядывается в инфраструктуру, делает перерасчет и ужасается. Такой объем курсов помноженный на кол-во пользователей приведет к коллапсу системы.
Какие выходы есть?

Часть 2: адская бюрократия и решение на полмиллиона долларов


Выход первый: корректируем ТЗ путем уменьшения кол-ва одновременно находящихся на сайте юзеров. Звучит просто, но у нас же Госзаказчик. У нас 44 ФЗ! Поэтому попытка разраба согласовать на бумаге изменение ТЗ тонет в пучине согласований.

Выход второй (не, не Шереметьево и не Домодедово): взять мощности в аренду у ЦОДа. Всего-то 30 млн. рублей аренды в год. Примерно в этом месте госзаказчик понимает, что люто обдел-ся, потому что бюджет на аренду ЦОДов он не заложил, а отступить от ТЗ не может. Ведь ТЗ согласован со старшими товарищами и тогда….
Читать дальше →
Total votes 49: ↑44 and ↓5+39
Comments102

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

Reading time3 min
Views37K
Read Uncommitted

  • если в одной транзакции поменять данные — селект этих данных (в другой транзакции или без транзакции) не будут ждать окончания первой транзакции и вернут записанные данные незакомиченных транзакций
  • если в одной транзакции считать данные — апдейты этих данных в другой транзакции не будут ждать окончания первой транзакции
  • шаред локи не используются. Что аналогично установке NOLOCK хинта во все селекты в Read Commited
  • эксклюзивные локировки устанавливаются в процессе выполнения стейтмента и снимаются по окончанию транзакции


Read Committed + read_committed_snapshot off

(alter database xxx set read_committed_snapshot off)

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


Дальше
Total votes 19: ↑19 and ↓0+19
Comments26

Визуализация данных при помощи Angular и D3

Reading time11 min
Views23K
D3.js — это JavaScript библотека для манипулирования документами на основе входных данных. Angular — фреймворк, который может похвастаться высокой производительностью привязки данных.

Ниже я рассмотрю один хороший подход по использованию всей этой мощи. От симуляций D3 до SVG-инъекций и использования синтаксиса шаблонизатора.

image
Демо: положительные числа до 300 соединенные со своими делителями.
Читать дальше →
Total votes 30: ↑30 and ↓0+30
Comments3

Я порчу разрабам жизни своими код ревью и больше так не хочу

Reading time5 min
Views133K


Однажды в моей команде был настолько слабый парень, что его собирались уволить (уволить разработчика!). Каждый мой коммент на ревью к его коду был гвоздем в крышку гроба. Я почти слышал стук молотка, нажимая «submit review». Он был приятным человеком, я даже переживал за него, но это не мешало мне разносить его старания в щепки. Мое право критиковать его работу казалось очевидным и неотъемлемым. Все просто — я сильнее, я прав. Никто же не хочет сказать, что плохой код — это хорошо, а? Его уволили, предварительно лишая стандартной премии в течение нескольких месяцев.

Я говорил себе: «Но ведь не делать же мне всю работу за него!? Он занимал место более талантливого разработчика. Я все правильно сделал». Но почему-то на душе скребли кошки. И когда мне пришел на ревью очередной pull request, что-то очень сильно поменялось.
Читать дальше →
Total votes 405: ↑346 and ↓59+287
Comments504

Information

Rating
Does not participate
Location
Омск, Омская обл., Россия
Date of birth
Registered
Activity