Pull to refresh
110
0
Александр Мышов @Myshov

Because it's there

Send message

Рендеринг DOOM с помощью чекбоксов

Reading time 3 min
Views 7.9K

Дисклеймер: перевод статьи публикуется с одобрения оригинального автора

Поиграть можно тут (Chrome/Edge), исходный код здесь, текст статьи ниже.

На этой неделе я прочитал статью Брайана Брауна — "Я всё ещё продолжаю экспериментировать с чекбоксами". Там он рассказывал про свою библиотеку Checkboxland.

Читать далее
Total votes 10: ↑10 and ↓0 +10
Comments 4

WeakRef — предложение для добавления в стандарт ECMAScript

Reading time 2 min
Views 5K

Написал небольшой пост в своём телеграм-канале. Подумал, что она может быть интересна читателям Хабра.


Недавно в блоге V8 появилась статья, посвящённая новому пропозалу WeakRef (Stage 3) — "Weak references and finalizers".


Попробую объяснить своими словами его суть на примере. Представьте, что у вас в браузере происходит какая-то обработка изображений, например, на них накладывается водяной знак (согласен, пример не очень реалистичный), а затем эти изображения как-то используются. Водяной знак накладывается функцией, которая интенсивно потребляет CPU. Изображения могут повторяться, поэтому, чтобы лишний раз не загружать процессор, мы создаём кеш изображений с водяным знаком в Map, ключом пусть выступает название файла изображения. Но тут возникает проблема, если какое-то изображение не будет нами использоваться, оно всё равно будет находиться в памяти, так как Map по ключу будет на него ссылаться (strong reference). Поэтому, чтобы наш Map не отжирал лишнюю память, необходимо как-то определять такие ситуации и руками чистить кеш. Это не очень удобно.

Читать дальше →
Total votes 19: ↑14 and ↓5 +9
Comments 4

Самое простое объяснение принципа работы современных алгоритмов симметричного шифрования

Reading time 9 min
Views 44K

(Нашёл в твиттере тред с очень крутым объяснением работы симметричных шифров. Его написал Colm MacCárthaigh один из основных контрибьюторов Apache. Я спросил разрешение Колма на перевод, он любезно согласился).


Я объясню вам доступным языком, что происходит при шифровании данных. Надеюсь, что без мистики и сложных штук, которые были придуманы криптографами.


Итак, симметричное шифрование — это именно то, что мы используем в большинстве случаев, когда хотим зашифровать кучу данных. Ваш браузер отправляет и получает данные, используя симметричное шифрование. Если вы шифруете файлы или диск, в этом случае тоже работает симметричное шифрование. iMessage, Signal, WhatsApp — все они используют симметричное шифрование для безопасности вашей переписки.


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


Вот простой пример. Допустим, у меня есть строка "Ovaltine" и я хочу её зашифровать. Я мог бы воспользоваться rot13 — очень простым олдскульным шифром Цезаря, который делает хоровод из букв, где a и z держатся за ручки, и заменяет каждую букву другой буквой алфавита, которая находится от заменяемой буквы на расстоянии 13 символов. Таким образом "O" превращается в "B", а "v" становится "i", в итоге "Ovaltine" превращается в "Binygvar". Конечно, это не очень безопасно. Это наивный пример, который очень легко взломать, так как атакующий может выяснить, какая буква встречается чаще всего (обычно в оригинальном тексте это "e") и найти оставшиеся буквы подобным образом.

Читать дальше →
Total votes 31: ↑26 and ↓5 +21
Comments 24

Эволюция модульного JavaScript

Reading time 20 min
Views 42K


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

Не будем лукавить: JavaScript никогда не был идеальным языком программирования. Одним из слабых мест в JS была модульность, а точнее её отсутствие. Действительно, зачем в скриптовом языке, который анимирует падающие на странице снежинки и валидирует форму, заботиться об изоляции кода и зависимостях? Ведь всё может прекрасно жить и общаться между собой в одной глобальной области — window.

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

Эта статья появилась в результате общения с участниками TC39 и разработчиками фреймворков, а также чтения исходных кодов, блогов и книг. Мы рассмотрим следующие подходы/форматы: Namespace, Module, Detached Dependency Definitions, Sandbox, Dependency Injection, CommonJS, AMD, UMD, Labeled Modules, YModules и ES2015 Modules. Кроме того, мы восстановим исторический контекст их появления и развития.
Читать дальше →
Total votes 71: ↑68 and ↓3 +65
Comments 34

Эффективное использование Github

Reading time 13 min
Views 122K

Github — важная часть жизни современного разработчика: он стал стандартом для размещения opensource-проектов. В «2ГИС» мы используем гитхаб для разработки проектов web-отдела и хостинга проектов с открытым кодом.

Хотя большинство из нас пользуются сервисом практически каждый день, не все знают, что у него есть много фишек, помогающих облегчить работу или рутинные операции. Например, получение публичного ключа из URL; отслеживание того, с каких сайтов пользователи приходят в репозиторий; правильный шаринг ссылок на файлы, которые живут в репозиториях гитхаба; горячие клавиши и тому подобное. Цель этой статьи — рассказать о неочевидных вещах и вообще о том, что сделает вашу работу с гитхабом продуктивнее и веселее (я не буду рассматривать здесь работу с API гитхаба, так как эта тема заслуживает отдельной статьи).


Содержание



Читать дальше →
Total votes 149: ↑148 and ↓1 +147
Comments 38

Обзор возможностей современного JavaScript

Reading time 5 min
Views 65K
JavaScript, наверное, самый известный мультипарадигменный язык, в котором очень много неочевидных особенностей. Но тем не менее любим ли мы его или ругаем, факт остается фактом — это основной язык, на котором работает современный web.

В ушедшем году, вышел стандарт ECMAScript 2015 (неформально ES6), который сильно изменил, то к чему мы привыкли. Появилась масса новых возможностей, которые по сути представляют собой современное надмножество языка, пытающегося решить существующие проблемы. Class, let, const, стрелочные функции… разработчик, который ранее не видел код, написанный на ES6, не сразу догадается, что перед ним, по сути, старый добрый JS.

Есть масса прекрасных статей, посвященных современному стандарту. В этом же посте я хочу показать, что нам может предложить современный JS, когда необходимо решить насущную задачу. Например, поздравить всех c Новым Годом.
Читать дальше →
Total votes 56: ↑36 and ↓20 +16
Comments 67

Git game или в поисках Линуса Торвальдса

Reading time 1 min
Views 43K


Наткнулся сегодня на этот замечательный проект. Из файла README.md репозитория проекта:

Это игра для терминала, цель которой проверить ваш уровень знаний Git. Каждый уровень в игре — задание, которое необходимо выполнить в репозитории. После выполнения текущего задания вы получите следующее задание. Всего есть 10 уровней, которые возрастают по сложности!

Поехали!


Склонируйте репозиторий с помощью команды:
$ git clone https://github.com/hgarc014/git-game.git

Читать дальше →
Total votes 52: ↑47 and ↓5 +42
Comments 39

Опубликован официальный Node.JS-драйвер для базы данных Oracle

Reading time 1 min
Views 16K

На конференции OpenWorld 2014 корпорация Oracle объявила о том, что она работает над собственным Node.JS-драйвером для своей базы данных. На прошлой неделе был открыт его исходный код под лицензией Apache 2.0.

Драйвер включает в себя не только стандартные средства для исполнения SQL-запросов и PL/SQL-кода, но и инструменты для прозрачной работы с объектами JavaScript и массивами, продвинутые средства для работы с транзакциями и встроенными в Oracle инструментами масштабирования. Например, можно быстро прервать неудачную транзакцию на событие от сервера о невозможности корректно закончить работу, позволяя Node.js-приложению быстро переключиться на другую базу данных без потери пользовательских данных.
Читать дальше →
Total votes 21: ↑18 and ↓3 +15
Comments 7

Absolute Zero — комикс от Кристофера Нолана про доктора Манна

Reading time 1 min
Views 15K


Кристофер Нолан — режиссер/сценарист «Интерстеллар» рассказал о событиях в жизни доктора Манна (в фильме его играет Мэт Дэймон) после прибытия на ледяную планету. Он был выдающимся ученым, отважившимся исследовать новые горизонты в рамках миссии «Лазарь» с одиннадцатью другими астронавтами. Но что случилось с Манном? Почему его робот был сломан?

Историю проиллюстрировал известный среди создателей комиксов художник Шон Гордон Мерфи.

Посмотреть и почитать комикс можно на сайте журнала Wired.
Total votes 26: ↑23 and ↓3 +20
Comments 58

Новый Chromium WebView теперь обновляется через Google Play и поддерживает Web Components

Reading time 1 min
Views 27K
Разработчики Android 5.0 Lollipop («Леденец») представили основные изменения компонента WebView, используемого для отображения в приложениях HTML5-содержимого. Начиная с Android 5.0 компонент обновляется через Google Play. Это значит, что когда Google обновляет движок своего браузера, новые функции также становятся доступны для всех разработчиков приложений, вне зависимости от того выпустил ли производитель Android-устройства обновление операционной системы или нет.

Для тех приложений, которые разрабатываются с помощью Apache Cordova или Adobe PhoneGap, новая стратегия распространения дает очевидные преимущества — конечные пользователи могут значительно быстрее получать последние нововведения, которые появляются в Web-платформе, точно также как пользователи настольных браузеров.
Читать дальше →
Total votes 39: ↑36 and ↓3 +33
Comments 17

IT-артефакты нашей подсобки

Reading time 3 min
Views 41K


Так получилось, что на данный момент я тружусь в далеком сибирском городке, на огромном БрАЗе. Не буду утверждать, что здесь лучше чем в Тайланде или в каком-нибудь Лондоне, но своих чудес тоже хватает, например, 40 градусов жары летом и стабильные -45 градусов мороза зимой. Заслуживает отдельного рассказа местный ИТ-отдел, который пережил БЭСМы, вёдра спирта, выделявшиеся на их обслуживание, а сейчас развлекается тем, что поедает сервированные на перфокартах тортики, которые коллеги приносят на свои дни рождения.

Конечно, вся ИТ-инфраструктура постоянно эволюционировала, и завод приобретал новейшее на тот момент программное обеспечение в красивых больших коробках. Когда я впервые увидел их, сразу же захотелось покопаться в них, посмотреть, что внутри, это как прикоснуться, пусть и к небольшой, но всё-таки части компьютерной истории. Совсем недавно выдался шанс сделать их фотографии. Если вам интересно взглянуть, как в недавнем прошлом распространяли свои программы софтверные компании и своими глазами увидеть, кто первым реализовал идею серверного JavaScript, тогда приглашаю порыться в этих коробках вместе со мной.
Читать дальше →
Total votes 46: ↑45 and ↓1 +44
Comments 48

Adobe представила стриминговую версию Photoshop для ChromeOS

Reading time 1 min
Views 19K


Вчера разработчики Chrome сообщили о том, что компания Adobe подготовила бета-версию Photoshop для пользователей ChromeOS. Официальная страница проекта также говорит о том, что скоро будут доступны и другие продукты из Creative Cloud.

Приложение будет распространяться по принципу SaaS (Software as a Service) и будет выполняться не локально на компьютере клиента, а в виртуализированном окружении, доступ к которому будет осуществляться через web-приложение. Все данные, с которыми будет работать пользователь, будут храниться в облаке Google Drive.

На данный момент участвовать в бета-тесте могут только клиенты категории Adobe Education из Северной Америки.
Total votes 36: ↑32 and ↓4 +28
Comments 42

Загружаемся в Vim или Vim c PID 1

Reading time 3 min
Views 12K
Boot to Vim (окно загрузки)

Это ответ на отличную статью от Pascal Bourguignon, в которой он рассказывает о том, как запустить Emacs с PID 1.

Как мы все знаем, никто не использует Emacs.

Предложение выше как бы намекает, что это начало очередной священной войны. Пожалуйста, начинайте. Если вам хочется что-то мне сообщить, все мои контакты у меня в блоге.

На самом деле, шутки в сторону. Я считаю, что это отличная статья, и после прочтения мне захотелось посмотреть, смогу ли я сделать что-то похожее с Vim. Не в пользовательском режиме Linux, но в действительности создав ISO для загрузки. Можно сказать, «загрузиться в Vim», если вам так хочется.
Читать дальше →
Total votes 29: ↑27 and ↓2 +25
Comments 22

Разработчики YUI объявили о прекращении дальнейшей разработки библиотеки

Reading time 3 min
Views 23K
Ниже перевод поста из блога команды разработчиков.

Yahoo User Interface Library (YUI) используется в Yahoo с 2005 года. Библиотека была представлена публично 13 февраля 2006 года. Хотя YUI очень сильно преобразилась с того времени, она всегда преследовала одну большую цель — предоставить разработчикам обширный набор инструментов для легкого создания богатых web-приложений.

YUI — это важная часть истории Yahoo. Были написаны миллионы строк кода, использующие YUI, и этот код до сих пор используется сегодня. Как бы то ни было, для нас стало ясно — индустрия движется в ином направлении.
Читать дальше →
Total votes 37: ↑33 and ↓4 +29
Comments 31

«Алгоритмы: построение и анализ», «Искусственный интеллект: современный подход» и другие книги по свободной цене

Reading time 3 min
Views 63K
Недавно ребята из books.ru в очередной раз пополнили раздел электронных книг, предлагаемых по свободной цене. Акция продажи новых электронных изданий будет идти до 1 июня (судя по опыту прошлых акций свободная цена на некоторые книги сохранится и в будущем).

Но в любом случае, я бы не стал писать этот пост, если бы не увидел, что коллекция пополнилась настоящими бриллиантами. «Алгоритмы: построение и анализ (CLRS), 2-е издание» (Томас Х. Кормен, Чарльз И. Лейзерсон, Рональд Л. Ривест, Клиффорд Штайн) (читал эту книгу в печатном варианте и могу сказать, что перевод просто отменный). Искусственный интеллект: современный подход (AIMA-2), 2-е издание (Стюарт Рассел, Питер Норвиг).

С момента первого анонса о свободной цене в раздел добавились книги Нильсена, Брукса, Фаулера, Прата, Степанова, Спольски, Физерса, Александреску и др. Под катом находятся около 40 новых книг, которые больше всего заслуживают внимания (спрятаны под спойлер).
Читать дальше →
Total votes 56: ↑53 and ↓3 +50
Comments 34

11 февраля протест против массовой слежки NSA

Reading time 1 min
Views 10K


thedaywefightback.org:

В январе 2012 года успешный протест против SOPA и PIPA стал самым большим за всю историю Интернета. Сейчас перед нами возникла другая существенная угроза — массовая слежка, которая ставит под сомнение тот факт, что мы живем в свободном обществе.

В честь празднования победы над SOPA и в память об одном из наших лидеров — Аароне Шварце, мы запланировали день протеста против массовой слежки, который состоится 11 февраля.

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


Протест уже поддержали Reddit, O'Reilly, Wikia, Tumblr, Mozilla и многие другие крупные компании и сайты, а также многие деятели киноиндустрии.


Читать дальше →
Total votes 32: ↑28 and ↓4 +24
Comments 26

Законность перевода

Reading time 5 min
Views 30K
«Закон связывает тех, кто страдает от него не меньше, чем тех, кому он благоприятен». — Ф. Гентц


Трудности перевода


На хабрахабре регулярно публикуются переводы статей, новостей, глав книг; иногда происходят анонсы завершенных переводов полезных книг под открытыми лицензиями. Переводчик ли вы или читатель, большинство из вас согласится — идеала при переводе достичь очень тяжело — это неизбежный факт. Не удивительно, что в свое время Гёте сказал: «Переводчики — это те же сваты: они воспевают красоту какой-нибудь женщины, прославляют ее достоинства и вызывают непреодолимую страсть к оригиналу». В свою очередь, если брать во внимание отношение ИТ-специалистов к переведенным книгам на компьютерную тему, то можно услышать такую фразу (а может быть даже вы сами это кому-то говорили), что первым изученным языком программиста должен быть английский. Но на самом деле не все так плохо, как может показаться, и это все не должно умалять ценности переводов как для российского ИТ-сообщества в частности, так и для роста экономики страны в целом, так как большее количество доступных источников знаний предоставляет больше возможностей для роста интеллектуального потенциала населения.

В свете разных событий, которые заставляют хаб Копирайт (ранее назывался Dura Lex) пухнуть все больше и больше, переводчики помимо философии перевода также должны принимать во внимание более прагматичный аспект перевода — авторское право.
Читать дальше →
Total votes 91: ↑72 and ↓19 +53
Comments 47

Не кладите все свои яйца в чужую корзину (из книги «Passionate Programmer» by Chad Fowler)

Reading time 3 min
Views 29K

Продолжаю перевод глав из книги «Passionate Programmer», которые публикуются в блоге автора. Автор книги неординарный Чад Фаулер — известный спикер Ruby- и IT-конференций, бывший джазовый саксофонист, ныне CTO 6Wunderkinder.

Во время работы менеджером группы разработки, я как-то спросил одного из своих подчинённых: «Чего ты хочешь добиться в своей карьере? Кем ты хочешь стать?». Я был ужасно разочарован его ответом: «Я хочу быть архитектором J2EE-приложений». Я его спросил, почему тогда не «дизайнером Microsoft Word» или «инсталлятором RealPlayer»?

Этот парень хотел построить свою карьеру вокруг определённой технологии, созданной определённой компанией, в которой он не работал. Что будет если эта компания выйдет из бизнеса. Что будет если его «новенькая и сексуальная» технология станет устаревшей? Почему вы хотите доверить какому-то поставщику ПО свою карьеру?
Читать дальше →
Total votes 40: ↑36 and ↓4 +32
Comments 18

10 самых быстрых суперкомпьютеров в картинках

Reading time 1 min
Views 14K
AIS подготовила инфографику, показывающую 10 самых быстрых суперкомпьютеров списка «TOP500».

Проект «TOP500» с 1993 года дважды в год представляет обновлённый список самых быстрых суперкомпьютеров в мире — первый раз в июне на International Supercomputing Conference и второй раз в ноябре на ACM/IEEE Supercomputing Conference. Производительность суперкомпьютеров сравнивается на базе результатов, полученных с помощью пакета LINPACK Benchmark.

UPD: В источнике есть ошибка — у K Computer не хватает 5 Петафлоп. В текущей версии я исправил ошибку.

Трафик ~2.1 Мб
Читать дальше →
Total votes 14: ↑7 and ↓7 0
Comments 12

Обзор открытой IDE Adobe Brackets

Reading time 5 min
Views 120K

С момента первого обзора среды (этот обзор был опубликован более чем год назад) IDE Brackets превратилась из просто многообещающего прототипа во вполне полноценный инструмент для разработки web-приложений. Недавно также был опубликован пост, в котором вскользь упоминалась эта среда, но сам текст и комментарии были так скупы на описание проекта, что я посчитал полезным рассказать сообществу о возможностях этой IDE более подробно.

Немного информации о том, что из себя представляет IDE Brackets. Среда разрабатывается на web-платформе (HTML, CSS и JavaScript) для web-программистов с использованием Chromium Embedded Framework (CEF) компанией Adobe. В основе Brackets лежат такие проекты, как CodeMirror, jQuery, require.js, Bootstrap, Node.js. Исходные коды распространяются под open source лицензией MIT. Основная цель проекта — упрощение процесса web-разработки. Работа над IDE идёт по методологии scrum (спринтами по 2.5 недели). Среда вполне стабильна — сами разработчики IDE Brackets стали использовать её в своей повседневной работе уже достаточно давно. Скачать среду можно отсюда.

Основные моменты: среда стала доступна для Linux, появилась поддержка Node.js, реализовано интеллектуальное автодополнение кода для HTML, CSS, JavaScript, сообщество создало более сотни полезных плагинов, плюс в разработке находится продвинутая система для упрощения создания макетов с отзывчивым дизайном, которая уже успела произвести WOW-эффект на тех, кто её видел.

(под катом скриншоты ~1.5Mb)
Читать дальше →
Total votes 61: ↑58 and ↓3 +55
Comments 30
1

Information

Rating
Does not participate
Location
Новосибирск, Новосибирская обл., Россия
Works in
Date of birth
Registered
Activity