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

Front-end developer

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

Собеседование php-developer (вопросы и ответы)

Время на прочтение10 мин
Количество просмотров237K
Так уж получилось, что в этом году я прошел ряд собеседований на позицию PHP разработчика, чего я не делал уже несколько лет. Будучи человеком ленивым практичным, перед собеседованием я попытался найти сборники вопросов-ответов, но все найденное было довольно старым, поэтому я решил сам подготовить список вопросов, которые встречал.

Обычно в статьях такого рода даются полные ответы на вопросы, но если вы собеседуетесь на достаточно серьезную позицию, краткой выжимки будет явно недостаточно и необходимо довольно глубоко понимать сам вопрос, поэтому я в основном вставил ссылки на документацию или статьи по описываемым вопросам.
Читать дальше →
Всего голосов 32: ↑29 и ↓3+26
Комментарии18

В гостях у Владимира Лихачева, отца Николая Лихачева, более известного как Крис Касперски

Время на прочтение12 мин
Количество просмотров27K
Привет, Хабравчане.

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

image
Читать дальше →
Всего голосов 83: ↑73 и ↓10+63
Комментарии52

«Там надо знать и веб-стек, и C++»: интервью с Алексеем Козятинским о разработке Chrome DevTools и не только

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


Как разрабатывать с помощью Chrome DevTools, всем известно. А как выглядит разработка самих Chrome DevTools? Алексей Козятинский ранее работал в Google и занимался именно этим, а теперь перешёл в Netflix, но от прежней деятельности далеко не ушёл.

Чем именно он занимается сейчас? Насколько реально для обычного разработчика не из Google законтрибьютить что-то полезное в DevTools? Какие компьютеры используют инженеры Chrome?

У нас сейчас идёт конференция HolyJS 2019 Piter, где Алексей уже выступил с новым докладом «Протокол Chrome DevTools» (запись можно увидеть в бесплатной трансляции). И по такому случаю его подробно расспросили двое участников программного комитета HolyJS: Дмитрий DmitryMakhnev Махнёв и Алексей zolotyh Золотых.
Читать дальше →
Всего голосов 31: ↑29 и ↓2+27
Комментарии4

Я у мамы не инженер

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

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

Однажды я решил сделать небольшое устройство (“Security Access Tuner” из игры Alien: Isolation) — контроллер, экран, пара элементов управления, да упаковать это всё в небольшой корпус, который планировалось напечатать на 3d принтере. Тогда я ещё и подумать не мог, сколько же времени потребуется, чтобы все эти мелочи собрались в одно целое…
Читать дальше
Всего голосов 181: ↑181 и ↓0+181
Комментарии143

Паровые турбины: как горячий пар превращается в электричество

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


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

Паровые турбины были изобретены задолго до того, как человек понял природу электричества. В этом посте мы упрощённо расскажем об устройстве и работе паровой турбины, а заодно вспомним, как древнегреческий учёный опередил своё время на пятнадцать веков, как произошёл переворот в деле турбиностроения и почему Toshiba считает, что тридцатиметровую турбину надо изготавливать с точностью до 0,005 мм.
Читать дальше →
Всего голосов 91: ↑88 и ↓3+85
Комментарии193

Культурное наследие Казахстана в 3D-моделях

Время на прочтение8 мин
Количество просмотров14K
Сегодня в глобальной сети можно найти тысячи оцифрованных музейных экспонатов, а также огромные 3D-модели культовых зданий и комплексов Казахстана. И пока работа по «цифровизации» культурного наследия Республики продолжается, мы расскажем, как «ЛАНИТ-Интеграция» совместно с коллегами из United 3D Labs решала задачу построения 3D-моделей по государственной программе «Сакральный Казахстан».

Государственный историко-культурный заповедник-музей «Азрет-Султан»
Всего голосов 84: ↑82 и ↓2+80
Комментарии15

React.lazy? Но что если у вас не компонент?

Время на прочтение3 мин
Количество просмотров10K
Этот code splitting, честное слово, уже немного надоел. Мы все ходим и ходим по кругу, и в этом и есть главная проблема.

Code splitting начинался как разделение на уровне Модулей, а закончился как разделение на уровне Компонент.

И проблема тут исключительно в голове — React.lazy это хорошо, но и import никуда не делся… Так почему же code splitting только про компоненты?
Читать дальше →
Всего голосов 19: ↑17 и ↓2+15
Комментарии52

О выборе структур данных для начинающих

Время на прочтение18 мин
Количество просмотров172K
image

Часть 1. Линейные структуры


Массив


Когда вам нужен один объект, вы создаёте один объект. Когда нужно несколько объектов, тогда есть несколько вариантов на выбор. Я видел, как многие новички в коде пишут что-то типа такого:

// Таблица рекордов
int score1 = 0;
int score2 = 0;
int score3 = 0;
int score4 = 0;
int score5 = 0;

Это даёт нам значение пяти рекордов. Этот способ неплохо работает, пока вам не потребуется пятьдесят или сто объектов. Вместо создания отдельных объектов можно использовать массив.

// Таблица рекордов
const int NUM_HIGH_SCORES = 5;
int highScore[NUM_HIGH_SCORES] = {0};

Будет создан буфер из 5 элементов, вот такой:



Заметьте, что индекс массива начинается с нуля. Если в массиве пять элементов, то они будут иметь индексы от нуля до четырёх.
Читать дальше →
Всего голосов 42: ↑40 и ↓2+38
Комментарии32

Kali Linux: формализация исследований и типы атак

Время на прочтение10 мин
Количество просмотров14K
Сегодня представляем вашему вниманию перевод разделов 11.3 и 11.4 книги «Kali Linux Revealed». Они посвящены формализации исследований безопасности информационных систем и типам атак, на устойчивость к которым проверяют системы во время анализа их защищённости.



→ Часть 1. Kali Linux: политика безопасности, защита компьютеров и сетевых служб
→ Часть 2. Kali Linux: фильтрация трафика с помощью netfilter
→ Часть 3. Kali Linux: мониторинг и логирование
→ Часть 4. Kali Linux: упражнения по защите и мониторингу системы
→ Часть 5. Kali Linux: оценка защищённости систем
→ Часть 6. Kali Linux: виды проверок информационных систем
Читать дальше →
Всего голосов 17: ↑17 и ↓0+17
Комментарии0

[CppCon 2017] Matt Godbolt: Что мой компилятор сделал для меня?

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

Продолжение цикла обзорных статей с конференции CppCon 2017.



На этот раз очень интересное выступление от автора Compiler Explorer (godbolt.org). Обязательно читать всем, кто для быстроты умножает на 2 с помощью сдвига (по крайней мере, на x86-64). Если вы знакомы с ассемблером x86-64, то можете перемотать до разделов с примерами ("Умножение", "Деление" и т.д). Далее слова автора. Мои комментарии в квадратных скобках курсивом.


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


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

Тернистый путь Hello World

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

Вдохновение на написание данной статьи было получено после прочтения похожей публикации для архитектуры x86 [1].


Данный материал поможет тем, кто хочет понять, как устроены программы изнутри, что происходит до входа в main и для чего всё это делается. Также я покажу как можно использовать некоторые особенности библиотеки glibc. И в конце, как и в оригинальной статье [1] будет визуально представлен пройденный путь. В большинстве своём статья представляет собой разбор библиотеки glibc.


Итак, начнём наш поход. Будем использовать Linux x86-64, а в качестве инструмента отладки — lldb. Также иногда будем дизассемблировать программу при помощи objdump.


Исходным текстом будет обычный Hello, world (hello.cpp):


#include <iostream>
int main()
{
        std::cout << "Hello, world!" << std::endl;
}
Читать дальше →
Всего голосов 76: ↑75 и ↓1+74
Комментарии4

Играем в APK-гольф. Уменьшение размера файлов Android APK на 99,9%

Время на прочтение10 мин
Количество просмотров41K
В гольфе выигрывает тот, у кого меньше очков.

Применим этот принцип в Android. Мы собираемся поиграть в APK-гольф и создать приложение минимально возможного размера, которое можно установить на Android 8.0 Oreo.

Базовый уровень


Начнём с дефолтного приложения, который генерирует Android Studio. Создадим хранилище ключей, подпишем приложение и измерим размер файла в байтах командой stat -f%z $filename.

Затем установим APK на смартфон Nexus 5x под Oreo, чтобы убедиться, что всё работает.



Прекрасно. Наш APK весит примерно полтора мегабайта.
Читать дальше →
Всего голосов 86: ↑86 и ↓0+86
Комментарии52

Почему Kotlin отстой

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

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

Читать дальше →
Всего голосов 103: ↑77 и ↓26+51
Комментарии154

Размышления о стандартной библиотеке JavaScript. Core.js

Время на прочтение64 мин
Количество просмотров103K
Один пацан писал все на JavaScript, и клиент, и сервер, говорил что нравится, удобно, читабельно. Потом его в дурку забрали, конечно.
— С просторов интернета

К чему это я? Занятная штука — JavaScript. Основа современного web и на фронтэнде альтернатив как таковых не имеет.

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

Ванильная стандартная библиотека JavaScript, в целом, неплоха. Это не только стандартная библиотека по спецификации языка ECMA-262 актуальных версий — от 3 до черновика 6. Часть API вынесена в отдельные спецификации, например, API интернационализации ECMA-402. Многие возможности, без которых сложно представить JavaScript, например, setTimeout, относятся к web-стандартам. Консоль не стандартизована вовсе — приходится полагаться на стандарт де-факто.

Вот только не такая уж она и стандартная — везде разная. Есть старые IE, в которых из коробки мы получаем стандартную библиотеку ES3 90-бородатого года даже без Array#forEach, Function#bind, Object.create и консоли, и есть, например, Node.js, на которой многие уже вовсю используют возможности грядущего ES6.

Хочется иметь универсальную, действительно стандартную библиотеку, как на сервере, так и в любом браузере, максимально соответствующую современным стандартам, а также реализующую необходимый функционал, что (пока?) не стандартизован. Статья посвящена библиотеке core.js — реализация моих соображений по поводу стандартной библиотеки JavaScript. Кроме того, эта статья еще и шпаргалка по современной стандартизованной стандартной библиотеке JavaScript и заметки о её перспективах.

Содержание, или что получим на выходе:


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

HTML-импорт — include для веба: часть 2

Время на прочтение9 мин
Количество просмотров27K
Перевод статьи «HTML Imports #include for the web», Eric Bidelman.

Ссылка на первую часть перевода.

Предоставление веб-компонентов


HTML-импорт упрощает загрузку и повторное использование кода. В частности, это хороший способ распространения веб-компонентов. Это касается как простых HTML , так и полноценных кастомных элементов с теневым DOM [1, 2, 3]. Когда эти технологии работают вместе, импорт становится инструментом для подключения веб-компонентов.
Читать дальше →
Всего голосов 29: ↑25 и ↓4+21
Комментарии9

Атаки HTML5: что нужно знать

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


Все последние версии браузеров поддерживают HTML5, следовательно, индустрия находится на пике готовности принять технологию и адаптироваться к ней. Сама технология создана такой, чтобы сделать простым процесс включения и обработки графического и мультимедиа-контента в вебе, без использования третьих плагинов или API. Эта статья расскажет о новых типах атак, которые HTML5 «подарил» миру.
Читать дальше →
Всего голосов 73: ↑53 и ↓20+33
Комментарии10

Интернет может рухнуть. Нам нужен «План Б»

Время на прочтение1 мин
Количество просмотров42K
Ролик с TED 2013 (более 1 000 000 просмотров)
Дэнни Хилс (Danny Hillis, создатель Connection Machine, сооснователь Long Now Foundation) попытается донести до умов, свои идеи, достойные распространения.


В этом видео:
— Справочник е-мэйлов 1982 года
— Как Дэнни регистрировал третье в мире доменное имя (кстати, какие были первые два?)
— «От каждого по способности, каждому по потребности» — коммунистические принципы на службе мин. обороны США
— Почему интернет хрупок и уязвим и что такое «отрицательное время»

«Почему-то мы сосредоточены на защите компьютеров в Интернете, а не на защите самого Интернета.
Интернет довольно хрупкая система»

«Сейчас Интернет используется не так и не для того, для чего он задумывался изначально»

«Интернет меняется настолько быстро, что даже эксперты не обладают полной картиной происходящего»

«На протяжении долгих лет множество моих единомышленников терпеливо пытаются донести до умов, что нам нужна независимая резервная система»

Под катом тройка первых коммерческих доменных имен и еще несколько выступлений Дэнни Хилса
Читать дальше →
Всего голосов 55: ↑47 и ↓8+39
Комментарии51

Информация

В рейтинге
Не участвует
Откуда
Днепр, Днепропетровская обл., Украина
Зарегистрирован
Активность