Pull to refresh
12
0

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

Send message

Security Week 2329: июльский набор патчей Microsoft и 5 уязвимостей zero-day

Reading time3 min
Views2K
Во вторник 11 июля компания Microsoft выпустила очередной ежемесячный набор патчей для своих продуктов. Апдейт получился крупный: всего закрыли 132 уязвимости, из них 9 критических. 4 проблемы активно эксплуатировались на момент выпуска патчей, включая одну в уже вроде бы устаревшем браузере Internet Explorer. Еще один zero-day патча не имеет, для него предложено лишь временное решение. Подробный обзор уязвимостей можно почитать в блоге «Лаборатории Касперского» и, например, у журналиста Брайана Кребса.



Патчи для Internet Explorer представляют особый интерес, так как компания Microsoft официально «похоронила» этот браузер еще в феврале. Несмотря на это, компоненты IE11 продолжают свою жизнь как в виде специализированного режима IE Mode в браузере Edge, так и в виде системных модулей. В их список входит компонент MSHTML, который может быть задействован другими приложениями; поэтому хотя официально Internet Explorer вроде как уже не используется, устанавливать для него патчи по-прежнему важно. Тем более что самая опасная уязвимость в MSHTML, CVE-2023-32046, как раз эксплуатируется в реальных атаках.
Читать дальше →
Total votes 9: ↑9 and ↓0+9
Comments8

Sliver во Flutter, или как работает скролл

Reading time11 min
Views18K

Если вы уже встречались со сливерами, то наверняка оценили всю «прелесть» работы с ними. На самом деле они совсем не так трудны и ужасны.

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

Читать далее
Total votes 8: ↑7 and ↓1+6
Comments4

Фантасты, которых стоит почитать любителям английского юмора

Reading time4 min
Views20K

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

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

Читать далее
Total votes 16: ↑15 and ↓1+20
Comments24

Трюки CSS, которые сделают из вас ниндзя верстки

Reading time5 min
Views50K

Сегодня я хочу рассказать вам о нескольких CSS-свойствах и значениях, которые редко упоминаются в специальной литературе, но, на мой вгляд, представляют определенный интерес с точки зрения скорости и качества разработки веб-интерфейсов.


Многие свойства, о которых пойдет речь, являются экспериментальными. Большинство из них поддерживаются всеми современными браузерами, однако, если вы решите использовать какое-либо из названных свойств в продакшне, не поленитесь зайти на Can I use и уточнить поддержку (недавно сильно расстроился, обнаружив, что Safari не поддерживает атрибут loading="lazy").


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


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


Итак, вы готовы к нашему небольшому путешествию в удивительный и почти безграничный мир CSS? Тогда вперед.


grid + place-items


Здесь вы найдете полное визуальное руководство по Grid и Flexbox.


Данная техника позволяет выравнивать элементы по горизонтали и вертикали при помощи всего лишь двух строк кода.

Total votes 28: ↑26 and ↓2+33
Comments8

Декоративная подсветка лестницы. Часть первая. «Железная»

Reading time6 min
Views9.5K

Я живу в своем доме. До недавнего времени мы всей своей большой дружной семьей ютились на первом этаже двухэтажного дома. Время шло, а этаж так и не хотел превращаться в жилой. Всегда находились другие, более важные дела. И долго бы это так тянулось (наверное), если бы супруга в один прекрасный момент не сказала – хочу свою комнату! Как нетрудно догадаться через некоторое время этаж стал оживать. И как только это произошло, встал вопрос о том, как сделать освещение лестницы. Варианты поставить проходные выключатели или подсвечивать дежурным освещением мне не понравились сразу. Слишком просто и очевидно. А как-же выпендреж? А где здесь вау-эффект?  Хотелось сделать что-то необычное. Лучше всего подходило решение сделать подсветку с помощью светодиодных лент.  Вот где свобода творчества при наличии фантазии!

Вдруг кому интересно...
Total votes 16: ↑15 and ↓1+20
Comments18

Диагностируем проблемы в микросервисной архитектуре на Node.js с помощью OpenTracing и Jaeger

Reading time13 min
Views13K


Всем привет! В современном мире крайне важна возможность масштабировать приложение по щелчку пальцев, ведь нагрузка на приложение может сильно отличаться в разное время. Наплыв клиентов, которые решили воспользоваться вашим сервисом, может принести как большую прибыль так и убытки. Разбиение приложения на отдельные сервисы решает проблемы с масштабированием, всегда можно добавить инстансов нагруженных сервисов. Это несомненно поможет справиться с нагрузкой и сервис не упадет от нахлынувших на него клиентов. Но микросервисы вместе с неоспоримой пользой, вносят и более сложную структуру приложения, а так же запутанность в их взаимосвязях. Что если даже успешно масштабировав свой сервис, проблемы продолжаются? Время ответа растет и ошибок становится все больше? Как понять, где именно проблема? Ведь каждый запрос к API может порождать за собой цепочку вызовов разных микросервисов, получение данных из нескольких БД и сторонних API. Может это проблема с сетью, или API вашего партнера не справляется с нагрузкой, а может это кеш виноват? В этой статье я постараюсь рассказать, как ответить на эти вопросы и быстро найти точку отказа. Добро пожаловать под кат.

Читать дальше →
Total votes 15: ↑14 and ↓1+13
Comments3

Особенности уплаты налогов самозанятыми IT-фрилансерами

Reading time5 min
Views19K

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


  • Кто будет являться моим контрагентом — биржа или заказчик (4% или 6% налог соответственно)?
  • Налоговой базой является сумма, полученная биржей от заказчика, или полученная мной от биржи?
  • Облагается ли налогом комиссия биржи за вывод денежных средств?
  • Что является датой получения дохода — дата зачисления на баланс аккаунта фриланс биржи или дата вывода? (При получении дохода в иностранной валюте нужно посчитать рублевый эквивалент по курсу ЦБ на день получения)
  • Можно ли выводить деньги по итогам месяца или нужно выводить по каждой сделке отдельной транзакцией?

Так как беглое гугление результатов не дало, ваш покорный слуга обратился с вышеуказанными вопросами в ФНС (Федеральная налоговая служба). И так: если вам как и мне хочется сразу начать платить налоги правильно — добро пожаловать под кат.

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

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

Reading time3 min
Views38K
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

Что ты такое, замыкания в JavaScript?

Reading time4 min
Views27K
В этой статье я постараюсь подробно разобрать механизм реализации замыканий в JavaScript. Для этого я буду использовать браузер Chrome.

Начнем с определения:
Замыкания  - это функции, ссылающиеся на независимые (свободные) переменные. Другими словами, функция, определённая в замыкании, 'запоминает' окружение, в котором она была создана.
MDN

Если вам что-то не понятно в этом определении, это не страшно. Просто читайте дальше.

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

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

Итак, приступим:


Рисунок 1
Читать дальше →
Total votes 29: ↑27 and ↓2+25
Comments11

Лучшие практики Node.js — советы по структуре проектов

Reading time8 min
Views43K

Привет, Хабр! Представляю вашему вниманию адаптированный перевод первой главы "Node.js Best Practices" автора Yoni Goldberg. Подборка рекомендаций по Node.js размещена на github, имеет почти 30 т. звезд, но до сих пор никак не упоминалась на Хабре. Предполагаю, что эта информация будет полезна, как минимум, для новичков.
Глава 1. Советы по структуре проектов
Total votes 38: ↑32 and ↓6+26
Comments6

Лазерная коррекция зрения — так ли эффективен метод Smile на самом деле?

Reading time5 min
Views82K
Мои исходные данные: небольшая близорукость, -1 диоптрия, но всего лишь 20% остроты — видел только две строчки. Очки или линзы мне были неудобны, поэтому я решил сделать операцию. Выбор сводился всего к двум типам — Femto lasik или Smile.

Фемто — проверенный и надежный метод, а про Smile я узнал по статьям хабре от клиники Шиловой. Однако, когда я начал копать дальше, то понял, что у метода Smile есть один серьезный недостаток — человеческий фактор.

2 года назад я сделал операцию femto lasik и до сих пор ей доволен — сразу после операции мое зрение имело 120% остроты, а сейчас находится в районе 100%. Мои друзья и знакомые интересуются и спрашивают, стоит ли им делать Smile. Я немного устал объяснять всем одно и то же, поэтому и решил написать статью на хабре, в которую собрал всю информацию, которую смог найти.
Читать дальше →
Total votes 79: ↑73 and ↓6+67
Comments190

Асинхронное программирование (полный курс)

Reading time2 min
Views100K

Методы асинхронного программирования


Асинхронное программирование за последнее время стало не менее развитым направлением, чем классическое параллельное программирование, а в мире JavaScript, как в браузерах, так и в Node.js, понимание его приемов заняло одно из центральных мест в формировании мировоззрения разработчиков. Предлагаю вашему вниманию целостный и наиболее полный курс с объяснением всех широко распространенных методов асинхронного программирования, адаптеров между ними и вспомогательных проемов. Сейчас он состоит из 23 лекций, 3 докладов и 28 репозиториев с множеством примеров кода на github. Всего около 17 часов видео: ссылка на плейлист.

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

Децентрализованный мессенджер и телефонная сеть нового поколения

Reading time7 min
Views17K


Каждый раз, когда появляется статья про какой-нибудь новый мессенджер, большинство пользователей Хабра в комментариях интересуются — централизованный или децентрализованный IM?

Если нет — то тогда — «все, ребята, расходимся».

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

Давайте тогда в качестве подводки и вступления к основной идее статьи рассмотрим, каким был Skype в его золотые годы, до покупки Microsoft.
Читать дальше →
Total votes 20: ↑15 and ↓5+10
Comments238

Пишем свой протокол поверх UDP

Reading time24 min
Views42K
Первые прямые трансляции с места событий появились в России почти 70 лет назад и вели их из передвижной телевизионной станции (ПТС), которая внешне походила на «троллейбус» и позволяла вести эфиры не из студии. А всего лишь три года назад Periscope позволил вместо «троллейбуса» использовать мобильный телефон.

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


Еще через полгода, летом 2016, Одноклассники запустили свое мобильное приложение OK Live для стриминга, в котором постарались решить эти проблемы.

Александр Тоболь отвечает за техническую часть видео в Одноклассниках и на Highload++ 2017 рассказал про то, как писать свой UDP протокол, и зачем это может потребоваться.

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


Говорят, что надо всегда начинать с архитектуры и ТЗ — якобы без этого нельзя! Так и сделаем.
Total votes 55: ↑53 and ↓2+51
Comments44

Hyper-V или KVM?

Reading time11 min
Views107K
Технология виртуализации серверов со своей более чем тридцатилетней историей сегодня стала одной из ключевых в ИТ, легла в основу облачных вычислений и сервисов нового поколения. Компании, выбирающие платформу для VPS или внедрения виртуализации в своей ИТ-инфраструктуре, наряду с продуктами VMware рассматривают в качестве альтернативы решения на основе других гипервизоров, прежде всего Microsoft Hyper-V и разработанного в рамках Open Source гипервизора KVM.

Разнообразие средств виртуализации заставляет задуматься: что именно выбрать? Это может оказаться непростой задачей. Например, сторонники Xen считают ее надежной и гибкой платформой с хорошим набором инструментов управления. Любители Hyper-V и KVM приведут весомые аргументы в пользу этих решений и перечислят их достоинства.


Читать дальше →
Total votes 49: ↑30 and ↓19+11
Comments43

Dive into Ethereum

Reading time14 min
Views117K

Сегодня платформа Ethereum стала одним из самых узнаваемых брендов блокчейн сферы, вплотную приблизившись по популярности (и капитализации) к Bitcoin. Но из-за отсутствия "полноценного" рускоязычного гайда, отечественные разработчики все еще не очень понимают, что это за зверь и как с ним работать. Поэтому в данной статье я попытался максимально подробно охватить все аспекты разработки умных контрактов под Ethereum.


Я расскажу про инструменты разработки, сам ЯП, процесс добавления UI и еще много интересного. В конечном итоге мы получим обычный сайт-визитку, но "под капотом" он будет работать на умных контрактах Ethereum. Кого заинтересовало — прошу под кат.


preview


Читать дальше →
Total votes 18: ↑16 and ↓2+14
Comments12

Книга «Теоретический минимум по Computer Science. Все что нужно программисту и разработчику»

Reading time4 min
Views44K
image


Хватит тратить время на скучные академические фолианты! Изучение Computer Science может быть веселым и увлекательным занятием.

Владстон Феррейра Фило знакомит нас с вычислительным мышлением, позволяющим решать любые сложные задачи. Научиться писать код просто — пара недель на курсах, и вы «программист», но чтобы стать профи, который будет востребован всегда и везде, нужны фундаментальные знания. Здесь вы найдете только самую важную информацию, которая необходима каждому разработчику и программисту каждый день.
Читать дальше →
Total votes 20: ↑19 and ↓1+18
Comments24

Go: Хороший, плохой, злой

Reading time26 min
Views63K

У Go есть некоторые замечательные свойства, которым посвящён раздел «Хороший». Но когда речь заходит о применении этого языка не для создания API или сетевых серверов (для чего он и был разработан), а для реализации бизнес-логики, то я считаю Gо слишком неуклюжим и неудобным. Хотя даже в рамках сетевого программирования найдётся немало подводных камней как в архитектуре языка, так и в реализации, что делает Go опасным, несмотря на его кажущуюся простоту.

Читать дальше →
Total votes 113: ↑109 and ↓4+105
Comments190

Эпизод 0. Hack vs Mac. Xcode build time

Reading time6 min
Views15K

Следующий эпизод Стоимость хака

Эта статья начинает собой цикл из нескольких об использовании Hackintosh в повседневной работе и особенно с IDE Xcode 9 и будет больше интересна разработчикам под языки objc/swift. 
С другой стороны, мой первый хак был собран, когда я не был знаком с этими языками и может пригодиться даже тем, кто не является разработчиком, но по тем или иным причинам хочет попробовать Mac OS. 
В то время у меня был достаточно мощный рабочий ноутбук Sony и большое желание начать программировать под iOS. Но я не был готов потратить определенную сумму денег на Mac не зная пригодиться он мне в конечном итоге или нет.

Поэтому было принято решение собрать Hackintosh, который в итоге позволил мне войти в мир разработки приложений под устройства компании Apple. В первой статье я хочу уделить внимание времени сборки проектов в среде Xcode. Разработчики прекрасно знают на сколько уменьшилась скорость и увеличилось время сборки проектов с выходом 9 версии этого IDE, особенно на языке swift или микса из objc/swift. Ускорить время компиляции можно, во-первых, настроив различные флаги и скрипты, во-вторых, с помощью рефакторинга непосредственно кодовой базы.

Но в этом эпизоде будет уделено внимание третье составляющей инструментов разработки, а именно «железу».
Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments24
1
23 ...

Information

Rating
Does not participate
Registered
Activity