Pull to refresh
32
0
Виктор Скрынников @web-viktor

PHP, Java, Ruby, c/c++ dev

Send message

14 вопросов об индексах в SQL Server, которые вы стеснялись задать

Reading time26 min
Views1.1M
Индексы — это первое, что необходимо хорошо понимать в работе SQL Server, но странным образом базовые вопросы не слишком часто задаются на форумах и получают не так уж много ответов.
Роб Шелдон отвечает на эти, вызывающие смущение в профессиональных кругах, вопросы об индексах в SQL Server: одни из них мы просто стесняемся задать, а прежде чем задать другие сначала подумаем дважды.


От переводчика
Данный пост является компиляцией двух статей Роба Шелдона:

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

Перейти к чтению
Total votes 40: ↑37 and ↓3+34
Comments44

Let's Encrypt: получение сертификата по шагам

Reading time4 min
Views464K
В данной статье будет описан реальный способ получения сертификата от Let's Encrypt в ручном режиме для его дальнейшей установки на веб-сервер Windows (IIS/Microsoft Azure) или Linux (полностью ручной режим). Из-за отсутствия официального клиента под Windows для генерации сертификата будет использоваться дистрибутив Linux.



Данная статья обновляется с создана для тех, кто хочет управлять процессом создания сертификата в полностью ручном режиме. В статье пошаговая инструкция процесса, чтобы вы уже смогли оперативно создать и начать пользоваться своим сертификатом.
Читать дальше →
Total votes 30: ↑30 and ↓0+30
Comments49

NFT, NFT, NFT — медиавирус

Reading time16 min
Views15K
В прошлый раз мы попробовали разобраться в том, что вообще такое NFT. Из этой части вы узнаете как выглядел процесс перерождения технологии организации данных в медиавирус.


Криптоархеологи проводят самые настоящие раскопки блокчейнов в попытке обнаружить токены, которые могли бы считаться первыми NFT. Из-за разногласий по поводу формулировки требований к NFT имеют право на существование разные мнения, но превалирует версия, что смарт-контракт Terra Nullius, появившийся 7 августа 2015 г. был первым в своём роде.
Читать дальше →
Total votes 36: ↑31 and ↓5+40
Comments6

Что такое анти-паттерны?

Reading time9 min
Views143K
Анти-паттерны — полная противоположность паттернам. Если паттерны проектирования —
это примеры практик хорошего программирования, то есть шаблоны решения определённых задач. То анти-паттерны — их полная противоположность, это — шаблоны ошибок, которые совершаются при решении различных задач. Частью практик хорошего программирования является именно избежание анти-паттернов. Не надо думать, что это такая непонятная теоретическая фигня — это конкретные проблемы, с которыми сталкивался практически каждый разработчик. Кто осведомлен, тот и вооружён! Рассмотрим же несколько расрпотранённых анти-паттернов в программировании.
Да, рассмотрим!
Total votes 157: ↑147 and ↓10+137
Comments103

Паттерны ООП в метафорах

Reading time17 min
Views564K
Большинство литературы посвященной паттернам в ООП (объектно-ориентированном программировании), как правило, объясняются на примерах с самим кодом. И это правильный подход, так как паттерны ООП уже по-умолчанию предназначаются для людей, которые знают что такое программирование и суть ООП. Однако порой требуется заинтересовать этой темой людей, которые в этом совершенно ничего не понимают, например «не-программистов» или же просто начинающих «компьютерщиков». Именно с этой целью и был подготовлен данный материал, который призван объяснить человеку любого уровня знаний, что такое паттерн ООП и, возможно, привлечет в ряды программистов новых «адептов», ведь программирование это на самом деле очень интересно.
Статья предназначена исключительно для новичков, так что «старожилы» ничего нового для себя не узнают. В основном статья описывает известные паттерны из книги «Приемы объектно-ориентированного программирования. Шаблоны проектирования.», но более популярным и простым языком.
Читать дальше →
Total votes 214: ↑201 and ↓13+188
Comments86

Учебник по JavaFX: начало работы

Reading time4 min
Views101K
Привет, Хабр! Представляю вашему вниманию перевод статьи «JavaFX Tutorial: Getting started» автора Vojtech Ruzicka.

Как настроить и начать работать с JavaFX, с помощью Maven, Gradle или JavaFX SDK.

Все посты в серии JavaFX:

  1. Учебник по JavaFX: начало работы
  2. Учебник по JavaFX: Привет, мир!
  3. Учебник по JavaFX: FXML и SceneBuilder
  4. Учебник по JavaFX: основные макеты
  5. Учебник по JavaFX: расширенные макеты
  6. Учебник по JavaFX: CSS стилизация
  7. JavaFX Weaver: интеграция JavaFX и Spring Boot приложения
Читать дальше →
Total votes 12: ↑9 and ↓3+6
Comments26

Понимаем JIT в PHP 8

Reading time7 min
Views36K
Перевод статьи подготовлен в преддверии старта курса «Backend-разработчик на PHP»




TL;DR


Компилятор Just In Time в PHP 8 реализован как часть расширения Opcache и призван компилировать операционный код в инструкции процессора в рантайме.

Это означает, что с JIT некоторые операционные коды не должны интерпретироваться Zend VM, такие инструкции будут выполняться непосредственно как инструкции уровня процессора.
Читать дальше →
Total votes 19: ↑17 and ↓2+21
Comments12

HTTP/3 от А до Я: основные концепции. Часть 1

Reading time20 min
Views85K

image
Фото Florencia Viadana, Unsplash.com


После почти пятилетних разработок протокол HTTP/3 наконец приближается к окончательному выпуску. Предыдущие итерации уже доступны как экспериментальная функция, но в 2021 году мы ждём широкого распространения протокола. Что такое HTTP/3? Зачем выпускать его так рано после HTTP/2? Как его можно или нужно использовать? Как он влияет на производительность?

Читать дальше →
Total votes 79: ↑78 and ↓1+95
Comments48

HTTP/2: готовимся к переходу

Reading time9 min
Views149K
HTTP/2

В прошлом году в мире сетевых технологий произошло очень важное событие: была утверждена и стандартизирована новая версия протокола HTTP — HTTP/2. HTTP/2 уже поддерживается в популярных веб-серверах: Apache и Nginx. Идёт работа по внедрению HTTP/2 в IIS. Реализована поддержка и в большинстве современных браузеров.

Использование HTTP/2 за последнее время существенно расширилось.
Читать дальше →
Total votes 56: ↑55 and ↓1+54
Comments92

PHP создан, чтобы умирать

Reading time8 min
Views156K
Дисклеймер: у меня за спиной более десяти лет разработки на PHP. Я начал использовать его, когда PHP4 был совсем малышом, а PHP5 — только мечтой компании Zend. С помощью него я сделал многое, я любил его, проклинал и не без стыда наблюдал за тем, как он растёт и развивается. Я всё ещё использую его в некоторых доставшихся по наследству проектах, но предпочитаю больше его не применять. Также хочу отметить, что я не сотрудничаю с создателями фреймворков или инструментов, упомянутых в статье.

TL;DR (англ. too long; didn't read. Так, в частности, говорят, когда лень читать статью целиком — прим. пер.): если ваш проект основан на функциях фоновых процессов (фоновых служб, демонов — прим. пер.), избегайте PHP.

По-моему, в большинстве случаев ненавистники PHP упускают один весьма важный момент: PHP создан, чтобы умирать. Это не значит, что довольно способный (в какой-то степени) язык программирования исчезнет в никуда; это всего лишь означает, что ваш PHP код не может выполняться вечно. В настоящее время, спустя 13 лет после первого официального релиза в 2000 году, эта мысль до сих пор кажется мне вполне обоснованной.
Читать дальше →
Total votes 182: ↑140 and ↓42+98
Comments260

Вишлист 2022: новогодние подарки для айтишника

Reading time11 min
Views25K

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

Читать далее
Total votes 39: ↑29 and ↓10+22
Comments17

Путь в ИТ: разработчик с 30-летним опытом о карьере, олдскульном программировании, переписывании чужого кода и правилах

Reading time8 min
Views5.7K

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

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

Весь опыт на стороне бизнеса, по словам Руслана, очень пригождался в разработке. Приводим рассказ коллеги – сейчас сложно представить его путь в ИТ, поэтому рассчитываем, что вам будет интересно.

Читать далее
Total votes 12: ↑11 and ↓1+11
Comments8

40 советов по оптимизации вашего PHP-кода

Reading time4 min
Views56K
Всем доброго времени суток.

Перевод заметки "40 Tips for optimizing your php code". Автор — Reinhold Weber.

  1. Если метод может быть статическим, объявляйте его статическим.
  2. echo быстрее, чем print.
  3. Передавайте в echo несколько параметров, вместо того, чтобы использовать конкатенацию строк.
  4. Устанавливайте максимальное количество проходов ваших циклов for до цикла, а не во время его выполнения.
  5. Удаляйте свои переменные для освобождения памяти, тем более, если это большие массивы.
  6. Остерегайтесь магических методов, таких как __set, __get, __autoload.
  7. require_once дорого обходится.
  8. Указывайте полные пути в конструкциях include/require, меньше времени будет тратится на поиск файла.
  9. Если вам необходимо определить время, когда скрипт был запущен, используйте $_SERVER[’REQUEST_TIME’] вместо time().
  10. Старайтесь использовать strncasecmp, strpbrk и stripos вместо регулярных выражений.

Читать дальше →
Total votes 79: ↑65 and ↓14+51
Comments201

Почему все «прутся» в IT

Reading time17 min
Views143K

Люди уходят в IT отовсюду: из инженеров КИПиА, электротехников, начальников службы охраны, химиков, бухгалтеров, экономистов, металлургов, юристов, медбратьев, руководителей отдела рекламы. Люди уходят в IT в любом возрасте: в 20, 30, 40 лет и даже после 50. 

Зачем? Почему? Что им на месте не сидится? Почему все «прутся» в это IT? Есть несколько факторов, которые этому поспособствовали. Некоторые из них мы рассмотрим. Они на самые глобальные, но важные.

Читать далее
Total votes 203: ↑186 and ↓17+214
Comments913

Делаем из смартфона websocket-пульт управления радиоуправляемой машинкой

Reading time8 min
Views17K

Одной из самых увлекательных сторон работы с микроконтроллерами, лично для меня, является то, что вы можете создать свой собственный аппарат, управляемый по радиоканалу. Есть большое количество разных возможностей для удалённого управления устройствами. В этой же статье мы поговорим о том, как организовать такое управление с помощью микроконтроллера esp32.
Читать дальше →
Total votes 33: ↑31 and ↓2+47
Comments12

Генераторы случайных чисел в разных ОС

Reading time8 min
Views20K

"Генерация случайных чисел слишком важна, чтобы оставлять ее на волю случая" - Роберт Р. Кавью

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

Читать далее >>>
Total votes 67: ↑65 and ↓2+76
Comments28

Дорожная карта по изучению C++

Reading time6 min
Views122K

Привет!

Представляем вашему вниманию дорожную карту для изучения языка программирования C++. Идея дорожной карты возникла после проведения десятков собеседований молодых разработчиков, которые претендовали на роль Junior Developer C++, но обладали довольно слабой подготовкой по различным причинам.

Заинтересовавшихся приглашаем к прочтению статьи, а также ознакомиться с дорожной картой.

Читать далее
Total votes 58: ↑54 and ↓4+65
Comments75

Новые директивы HTTP для кеширования с учётом CDN

Reading time7 min
Views5.9K

(с) xkcd

В данный момент на рассмотрении IETF находятся два стандарта. Это новые поля в заголовке ответа HTTP: Cache-Status и таргетированный Cache-Control.

Новые поля должны упростить разработку веб-приложений, а именно: упорядочить кеширование статического контента. Сейчас с этим небольшой бардак, поскольку кеширование происходит в нескольких системах на нескольких уровнях, почти как в этом ↑ комиксе. А синхронизировать все уровни непросто, ведь текущие стандарты разрабатывались в те времена, когда ещё не существовало CDN.
Читать дальше →
Total votes 15: ↑15 and ↓0+15
Comments1

Режимы работы выходных каскадов ламповых усилителей

Reading time8 min
Views23K

Схемотехника ламповых усилителей обманчиво проста. Каждый каскад состоит всего из нескольких компонентов: собственно лампы, двух-трёх-четырёх резисторов и пары-тройки конденсаторов. Выходной каскад лампового усилителя может быть однотактным (SE) и двухтактным (PP) и обычно содержит трансформатор.

В этой публикации мы рассмотрим особенности работы однотактных и двухтактных выходных каскадов, узнаем о режимах работы ламп и обсудим применение мощных триодов в однотактных выходных каскадах ламповых усилителей.
Читать дальше →
Total votes 43: ↑42 and ↓1+61
Comments38

35 инструментов для веб-разработчика на каждый день

Reading time4 min
Views43K

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

Краткое содержание: проверка кода по стандартам, проверка вёрстки и стилей, работа с кодом, работа с графикой (SVG, фавиконки, конвертеры и сжималки), работа с текстом (типографы и конвертеры всего во всё).

Дисклеймер: подборка не претендует на полноту, но в комментариях собираем другие полезные инструменты.

Читать далее
Total votes 23: ↑21 and ↓2+23
Comments18

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity

Specialization

Fullstack Developer, Web Developer
Middle
From 120,000 ₽
Git
OOP
MySQL
PostgreSQL
PHP
Ajax
Laravel
Docker
Linux
Java