Как стать автором
Обновить
110
0
Александр Мышов @Myshov

Because it's there

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

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

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

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

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

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

Читать далее
Всего голосов 10: ↑10 и ↓0+10
Комментарии4

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

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

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


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


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

Читать дальше →
Всего голосов 19: ↑14 и ↓5+9
Комментарии4

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

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

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


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


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


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


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

Читать дальше →
Всего голосов 31: ↑26 и ↓5+21
Комментарии24

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

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


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

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

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

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

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

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

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

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


Содержание



Читать дальше →
Всего голосов 149: ↑148 и ↓1+147
Комментарии38

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

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

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

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

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

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


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

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

Поехали!


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

Читать дальше →
Всего голосов 52: ↑47 и ↓5+42
Комментарии39

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

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

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

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

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

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


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

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

Посмотреть и почитать комикс можно на сайте журнала Wired.
Всего голосов 26: ↑23 и ↓3+20
Комментарии58

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

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

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

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

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


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

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

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

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


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

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

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

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

Время на прочтение3 мин
Количество просмотров12K
Boot to Vim (окно загрузки)

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

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

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

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

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

Время на прочтение3 мин
Количество просмотров23K
Ниже перевод поста из блога команды разработчиков.

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

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

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

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

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

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

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

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


thedaywefightback.org:

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

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

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


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


Читать дальше →
Всего голосов 32: ↑28 и ↓4+24
Комментарии26

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

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


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


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

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

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

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

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

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

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

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

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

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

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

Трафик ~2.1 Мб
Читать дальше →
Всего голосов 14: ↑7 и ↓70
Комментарии12

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

Время на прочтение5 мин
Количество просмотров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)
Читать дальше →
Всего голосов 61: ↑58 и ↓3+55
Комментарии30
1

Информация

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