Pull to refresh
21
Karma
0
Rating
Константин Куцылло @trikadin

Javascript-разработчик

  • Followers 14
  • Following 3
  • Posts
  • Comments

Экспериментируем с шаблонами литералов в TypeScript: как покрыть типами DSL

Selectel corporate blog Website development *TypeScript *

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

Иногда проверка различных идей носит чисто экспериментальный характер. Так, на волне нового релиза TypeScript я решил попробовать типизировать DSL запросов к MongoDB (синтаксис запросов довольно прост, но при этом функционален и широко известен).

Под катом — результат. Я бы написал «не пытайтесь повторить это в своем рабочем проекте», но вдруг какие-то мысли и способы применения TypeScript окажутся полезными и вам.
Читать дальше →
Total votes 58: ↑57 and ↓1 +56
Views 5.5K
Comments 8

Типографика в вебе

Web design *Typography *
Статья поможет разобраться с основными терминами в типографике. А чтобы информация лучше и легче воспринималась, скучные тексты проиллюстрированы веселыми картинками. Так же в статье собраны самые распространенные ошибки, которые допускаются веб-дизайнерами при работе с текстом и даны рекомендации как их избежать.

image

Типографика — сильнейший инструмент для выражения посыла в веб-дизайне. С его помощью вы можете объединить текстовую и визуальную составляющие, что поможет вам достучаться до посетителя. Правильное использование типографики поможет избежать типичных ошибок, допускаемых дизайнерами при создании очередного шедевра. Постараемся понять, что же мы делаем не так, и как избежать ошибок в будущем.

Для начала давайте разберемся с терминологией. Наверняка большинство терминов вам знакомы, но еще разок ознакомиться с определениями не будет лишним. Возможно, это дополнит ту информацию, которой вы уже обладаете.
Читать дальше →
Total votes 23: ↑19 and ↓4 +15
Views 112K
Comments 34

6 нежданчиков от Джулии

High performance *Programming *Julia *


Наконец-таки появилось русскоязычное руководство по языку Julia. Там реализовано полноценное введение в язык для тех, у кого мало опыта в программировании (остальным будет полезно для общего развития), так же имеется введение в машинное обучение и куча заданий для закрепления материала.


Во время поисков наткнулся на курс программирования для экономистов (помимо Джулии там есть и Питон). Опытные могут пробежаться по экспресс курсу или ознакомиться с книгой How to Think Like a Computer Scientist


Далее предоставлен перевод материала из блога Christopher Rackauckas 7 Julia Gotchas and How to Handle Them

Читать дальше →
Total votes 24: ↑23 and ↓1 +22
Views 8.7K
Comments 19

Parrot Security OS — альтернатива Kali Linux

Information Security *
image
 
Parrot Security OS — набирающий популярность security-дистрибутив, основанный на Debian-linux. Простой в освоении, подходит и для новичков и для профессионалов. В этой статье я расскажу об этом дистрибутиве и о развитии проекта от одного из контрибьюторов M. Emrah ÜNSÜR с которым мне удалось пообщаться.
Читать дальше →
Total votes 32: ↑30 and ↓2 +28
Views 73K
Comments 10

Progressive Web Apps: WhoAmI

JavaScript *Development of mobile applications *Development for Android *
Интерес к разработке приложений для мобильных операционных систем в сообществе разработчиков стабильно растёт, количество инструментов и подходов позволяющих создавать приложения становится всё больше. Сегодня я хочу написать о одном из новых подходов, а именно о Progressive Web Apps.



Читать далее
Total votes 17: ↑12 and ↓5 +7
Views 93K
Comments 13

Как двухлетний репозиторий на GitHub стал трендовым за 48 часов

Productivity Inside corporate blog Open source *Python *
Translation


GitHub предоставил возможность миллионам разработчиков с легкостью публиковать свои проекты и тем самым привлекать пользователей и единомышленников. Часто перед разработчиками возникает проблема неэффективного использования ресурсов — они тратят сотни часов на создание проекта с целью продвинуть его на GitHub, а получают максимум две звезды.
Читать дальше →
Total votes 88: ↑74 and ↓14 +60
Views 40K
Comments 37

Ищем и скачиваем непопулярные и старые файлы в интернете

Decentralized networks Network technologies *
Преимущественно медиафайлы. На полном серьезе, без шуток.

Введение

Бывает, случается так, что вы хотите скачать альбом 2007 года исполнителя, который кроме вас известен 3.5 людям, какой-нибудь испанский ска-панк или малопопулярный спидкор европейского происхождения. Находите BitTorrent-раздачу, ставите на закачку, быстро скачиваете 14.7%, и… все. Проходит день, неделя, месяц, а процент скачанного не увеличивается. Вы ищете этот альбом в поисковике, натыкаетесь на форумы, показывающие ссылки только после регистрации и 5 написанных сообщений, регистрируетесь, флудите в мертвых темах, вам открываются ссылки на файлообменники вроде rapidshare и megaupload, которые уже сто лет как умерли.

Попытка скачать хотя бы один файл
Увы, частая ситуация в попытке хоть что-то скачать

Такое случается. В последнее время, к сожалению, случается чаще: правообладатели и правоохранительные органы всерьез взялись за файлообмен; в прошлом году закрылись или были закрыты KickassTorrents, BlackCat Games, what.cd, btdigg, torrentz.eu, EX.ua, fs.to, torrents.net.ua, и еще куча других сайтов. И если поиск свежих рипов фильмов, сериалов, музыки, мультиков все еще не представляет большой проблемы, несмотря на многократно участившееся удаления со стороны правообладателей контента из поисковых систем, торрент-трекеров и файлообменников, то поиск и скачивание оригинала (DVD или Blu-Ray) фильмов и сериалов или просто ТВ-рипов 7-летней давности на не-английском и не-русском языке — не такая уж простая задача.
Читать дальше →
Total votes 215: ↑213 and ↓2 +211
Views 170K
Comments 74

Производительность старта JavaScript

VK corporate blog High performance *Website development *JavaScript *Client optimization *
Translation


Веб-разработчики знают, как легко разрастаются размеры веб-страниц. Но загрузка страницы — это не просто передача байтов по проводу. Когда браузер загрузил скрипты, ему нужно их отпарсить, интерпретировать и запустить. В статье мы внимательно рассмотрим эту фазу и узнаем, почему она может стать причиной замедления запуска вашего приложения и как это исправить.
Total votes 55: ↑55 and ↓0 +55
Views 27K
Comments 3

Что в имени тебе моем: как качественно «пробить» человека в сети Интернет?

Эшелон corporate blog Personnel Management *
Recovery mode
Мы постоянно встречаемся в своей жизни с новыми людьми, и стоит констатировать, что помимо хороших друзей нам попадаются мутные товарищи, а иногда и отъявленные мошенники. Любовь наших сограждан оставить свой след в интернете и старания наших ИТ-компаний по автоматизации всего и вся позволяют нам довольно оперативно собирать интересующую информацию о конкретных персонах по открытым источникам. Чтобы это делать быстро и качественно, нам нужно владеть простой методологией разведывательной работы и знать, где и какую информацию о человеке можно добыть в интернете.
Читать дальше →
Total votes 90: ↑70 and ↓20 +50
Views 175K
Comments 56

То, что вам никто не говорил о z-index

Website development *CSS *
Translation

Проблема z-index в том, что многие просто не понимают, как он работает.
Всё, описанное ниже, есть в спецификации W3C. К сожалению, не все её читают.

Описание проблемы:


Итак, пусть у нас есть HTML код, состоящий из 3 элементов.
Каждый из них внутри себя содержит по одному . А каждый , в свою очередь, имеет свой фон: красный, зеленый и синий, соответственно. Плюс ко всему, каждый позиционирован абсолютно левого верхнего края документа таким образом, что он немного перекрывает собой следующий за ним . Первый имеет z-index
, равный 1, у остальных двух z-index не задан.
Читать дальше →
Total votes 112: ↑109 and ↓3 +106
Views 341K
Comments 29

Анимации на GPU: делаем это правильно

Одноклассники corporate blog CSS *Client optimization *

Думаю, все уже знают, что современные браузеры умеют рисовать некоторые части страницы на GPU. Особенно это заметно на анимациях. Например, анимация, сделанная с помощью CSS-свойства transform выглядит гораздо приятнее и плавнее, чем анимация, сделанная через top/left. Однако на вопрос «как правильно делать анимации на GPU?» обычно отвечают что-то вроде «используй transform: translateZ(0) или will-change: transform». Эти свойства уже стали чем-то вроде zoom: 1 для IE6 (если вы понимаете, о чём я ;) для подготовки слоя для анимации на GPU или композиции (compositing), как это предпочитают называть разработчики браузеров.


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

Total votes 78: ↑78 and ↓0 +78
Views 47K
Comments 26

«Пишите письма»: Три техники верстки хороших email’ов

Pechkin.com corporate blog Website development *Development of mobile applications *Development for e-commerce *Email layout *
Верстке писем и рассылок посвящено огромное количество обучающих статей. В таком объеме информации очень легко заблудиться, а писать письма и делать рассылку все-таки нужно. Поэтому сегодня мы подготовили материал, в котором собрали три популярные техники для эффективной верстки email’ов, подходящие для начинающих верстальщиков.


Читать дальше →
Total votes 14: ↑11 and ↓3 +8
Views 11K
Comments 9

Мои прохладные истории

System administration *
Приезжали тут представители одной западной корпорации в очередной раз. Выпили. Спросили про наши варварские особенности IT. Ну я и рассказал пару баек. Чухна не поверила, говорит, мне повезло, и это всё статистический выброс. Мне так почему-то не кажется — подобных историй у каждого с чемодан.



Один раз коллега из L2-поддержки говорит: забери сумочку на объект, раз уж в тот же город едешь. Ок, говорю, не вопрос, конечно заберу. Приезжаю в офис с портфелем, а там стоят три охранника и этот вот товарищ из L2. У них с собой сумка чёрная спортивная, здоровенная. Открывается с трудом, но всё равно открываю, заглядываю — а там одна-к-одной плашки оперативной памяти для серверов-молотилок одной компании, условно «на три буквы».

Примерно прикидываю ценность «сумочки»: говорю, что, друг, тысяч триста долларов тут, да? Не, говорит, тут полмиллиона. Езжай давай. Вот парни тебя до входа в аэропорт проводят, а дальше ты уж сам. Из аэропорта прибытия я не выходил, пока встречающий не забрал сумочку.
Читать дальше →
Total votes 116: ↑103 and ↓13 +90
Views 62K
Comments 93

Уменьшаем размер публикуемых npm модулей

Voximplant corporate blog Website development *JavaScript *Programming *Node.JS *
Translation
По умолчанию npm публикует в registry весь модуль целиком. За исключением явно указанных в .gitignore файлов. Это отбрасывает зависимости, но все равно позволяет куче не очень нужных файлов просочиться в опубликованное. После чего благодарные пользователи ждут, пока все это скачается. Для grunt, кстати, ждать придется порядка 6 мегабайт. А он такой обычно не один.

Я решил разобраться, как измерить размер своих модулей после публикации и, по возможности, этот размер уменьшить. В качестве примера буду использовать модуль check-more-types, который содержит всего несколько файлов. Плюс юнит тесты и документацию, которая собирается в README markdown файл.
Читать дальше →
Total votes 44: ↑43 and ↓1 +42
Views 7.2K
Comments 8

Язык описания шаблонов Snakeskin

Website development *JavaScript *HTML *Node.JS *
Snakeskin

This is Frank, a snake-cowboy who loves templates.




Привет! Хочу рассказать о своей разработке — языке программирования текстовых шаблонов «Snakeskin». Проекту больше трех лет, всеми детскими болезнями, я полагаю, он благополучно переболел (и излечился), поэтому хочу поделиться результатом.


Демка


Основной репозиторий


Документация


Плагины для Gulp, Grunt, Webpack и прочее


Gitter — здесь можно задать любой интересующий вопрос

Читать дальше →
Total votes 19: ↑16 and ↓3 +13
Views 8.7K
Comments 27

Внезапный диван леопардовой расцветки

Algorithms *Image processing *Machine learning *
Если вы интересуетесь искусственным интеллектом и прочим распознаванием, то наверняка уже видели эту картинку:


А если не видели, то это результаты Хинтона и Крижевского по классификации ImageNet-2010 глубокой сверточной сетью

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

Это вообще довольно любопытный результат, если задуматься. Потому что… скажем, вы знаете, как отличить одного большого пятнистого котика от другого большого пятнистого котика? Я, например, нет. Наверняка есть какие-то зоологические, достаточно тонкие различия, типа общей стройности/массивности и пропорций тела, но мы же все-таки говорим о компьютерном алгоритме, которые до сих пор допускают какие-то вот такие достаточно глупые с человеческой точки зрения ошибки. Как он это делает, черт возьми? Может, тут что-то связанное с контекстом и фоном (леопарда вероятнее обнаружить на дереве или в кустах, а гепарда в саванне)? В общем, когда я впервые задумался над конкретно этим результатом, мне показалось, что это очень круто и мощно, разумные машины где-то за углом и поджидают нас, да здравствует deep learning и все такое.

Так вот, на самом деле все совершенно не так.
под катом пятна
Total votes 148: ↑145 and ↓3 +142
Views 78K
Comments 140

Всё (или почти всё) о пробеле

Typography *
Как следует из заголовка, речь в статье пойдёт о неотъемлемой части любого русскоязычного (и не только) текста — о пробеле. Мы затронем историю пробела, виды пробелов, вопросы употребления пробела в веб-типографике.

Вообще говоря, пробел — это любое пустое место в рукописном, печатном или отображаемом на любом другом носителе тексте. Так что пробелы бывают разные:
  • спусковые (большие вертикальные пропуски в первой полосе издания) и концевые пробелы полосы,
  • абзацные отступы и концевые пробелы абзаца,
  • межстрочные пробелы (между строками текста),
  • межсловные пробелы (между словами в одной строке),
  • межбуквенные пробелы (между буквами в слове).
Далее речь пойдёт о межсловных пробелах, разделяющих слова, и функционально принадлежащих к знакам препинания.
Читать дальше →
Total votes 134: ↑130 and ↓4 +126
Views 115K
Comments 132

WebGL для всех

2ГИС corporate blog Website development *JavaScript *WebGL *
Tutorial


Идея данной статьи родилась после нескольких мучительных недель изучения WebGL. На личном примере выяснилось, что люди, не сталкивающиеся до этого с 3D-графикой, имеют в основном ошибочные представления о работе данной технологии. К тому же была проблема с поиском информации в интернете.

WebGL, в отличие от Javascript, имеет высокий порог вхождения, его до сих пор мало кто использует, а ещё меньше тех, кто об этом пишет. Большинство руководств или статей перепрыгивают сразу на использование какой-нибудь библиотеки. Но мы-то с вами знаем, что большие универсальные инструменты не всегда пригодны для наших задач или, возможно, делают это на неприемлемом уровне: проигрывают в скорости, поставляются с ненужным багажом и т.д.

Этой статьёй хочется облегчить порог вхождения в чистый WebGL, дать начальное представление и подсказать, куда двигаться дальше.
Поехали!
Total votes 70: ↑66 and ↓4 +62
Views 49K
Comments 24

Абсолютный минимум. Как квантовая теория объясняет наш мир

Издательский дом «Питер» corporate blog Mathematics *Professional literature
Привет, Хаброжители!
Мы пополнили нашу серию New Science книгой Майкла Файера

image

Физика — это сложнейшая комплексная наука, она насколько сложна, настолько и увлекательна. Если отбросить математическую составляющую, физика сразу становится доступной любому человеку, обладающему любопытством и воображением. Мы легко поймем концепцию теории гравитации, обойдясь без сложных математических уравнений. Поэтому всем, кто задумывается о том, что делает ягоды черники синими, а клубники — красными; кто сомневается, что звук распространяется в виде волн; кто интересуется, почему поведение света так отличается от любого другого явления во Вселенной, нужно понять, что все дело — в квантовой физике.
Эта книга презентует (и демистифицирует) для обычных людей волшебный мир квантовой науки, как ни одна другая книга. Она рассказывает о базовых научных понятиях, от световых частиц до состояний материи и причинах негативного влияния парниковых газов, раскрывая каждую тему без использования специфической научной терминологии — примерами из обычной повседневной жизни. Безусловно, книга по квантовой физике не может обойтись без минимального набора формул и уравнений, но это необходимый минимум, понятный большинству читателей. По мнению автора, книга, популяризирующая науку, должна быть доступной, но не опускаться до уровня читателя, а поднимать и развивать его интеллект и общий культурный уровень.Написанная в лучших традициях Стивена Хокинга и Льюиса Томаса, книга популяризирует увлекательные открытия из области квантовой физики и химии, сочетая представления и суждения современных ученых с яркими и наглядными примерами из повседневной жизни.
Читать дальше →
Total votes 21: ↑15 and ↓6 +9
Views 29K
Comments 21

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity