Pull to refresh
13
0
Дмитрий Муштат @Mushtat

User

Send message

N2O: Erlang Web-фреймворк на WebSockets

Reading time8 min
Views32K
N2O Erlang Framework

ВВЕДЕНИЕ


Данный пост подразумевает хорошее интро в N2O на русском.

Что такое Erlang/OTP Web Framework N2O и в чём его фишка для веб-разработки, можно узнать на странице в github и официальном сайте SynRC. Там всё как вы любите с графиками и презентациями.

А здесь рассмотрим принципы работы фреймворка и поговорим о вечном.
Читать дальше →
Total votes 45: ↑42 and ↓3+39
Comments24

lodash (underscore) — знай свою стандартную библиотеку

Reading time7 min
Views181K
image

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

Что же, в последнее время, в своей работе я во всех проектах задействую lodash (кому-то может больше нравиться underscore). Для меня это, фактически, — стандарт. В очередной раз пробегая глазами API, я решил составить для себя шпаргалку в виде: «название функции» — «краткое описание». Так удобно освежать API в памяти. Может кому пригодится.
Читать дальше →
Total votes 76: ↑54 and ↓22+32
Comments62

Что должен знать каждый участник крупного MMO-проекта

Reading time5 min
Views66K

Рядовые программисты обычно всё это прекрасно знают. А вот менеджерский состав нередко считает, что совершенно не обязательно разбираться в игровой экономике, клиент-серверной архитектуре и психологии игрового комьюнити. Ведь есть же крутая команда спецов, которые обо всём позаботятся.
Итог очевиден: трудно вспомнить хотя бы один крупный MMO-проект, выпущенный за последние два года, который избежал бы стандартного набора граблей. Такое ощущение, что MMO-индустрия не способна учиться на своих ошибках.
Итак, список вопросов, ответы на которые должен знать каждый, от топ-менеджера до работника техподдержки крупного MMO-проекта.
Читать дальше →
Total votes 102: ↑81 and ↓21+60
Comments114

Шпионские гаджеты от АНБ

Reading time10 min
Views394K
imageСреди документов опубликованных Эдвардом Сноуденом, бывшим сотрудником ЦРУ и Агентства национальной безопасности США, были обнаружены материалы описывающие некоторые детали технологий шпионажа используемых АНБ. Список программных и аппаратных средств оформлен в виде небольшого каталога. Всего сорок восемь страниц отмеченных грифами «Секретно» и «Совершенно секретно», на которых дано краткое описание той или иной технологии для слежки. Данный список не является исчерпывающим. Представлены техники связанные с получением скрытого доступа к вычислительной технике и сетям, а также способы и устройства радиоэлектронной разведки связанные с мобильной связью и оборудование для наблюдения. В этой статье я расскажу об этих методах шпионажа, далее будет четыре дюжины слайдов(осторожно, трафик).
Узнать больше
Total votes 256: ↑251 and ↓5+246
Comments222

I2P — Проект Невидимый Интернет

Reading time2 min
Views273K
Всем доброго времени суток!

С недавних пор организации по защите авторских прав и «отделы К» многих стран начали вести весьма агрессивную политику против анонимности в сети и пиратства. Особо показательны истории с torrents.ru и ifolder.ru.

Подробнее об интернет-цензуре можно почитать в Википедии.

Чтобы оградить пользователя и хостера от «вредного» влияния государства и частных компаний была создана сеть I2P. Что же это такое и как подключиться к I2P — читаем под катом.

Читать дальше →
Total votes 138: ↑129 and ↓9+120
Comments120

Будущее JavaScript MVC фреймворков

Reading time6 min
Views32K

Представляем Om




Нам, в нашем ClojureScript-углу, это было известно уже давно — все наши структуры данных неизменяемы и основаны на оригинальных коллекциях из Clojure, написанных на Java. Современные JavaScript движки в настоящее время достаточно оптимизированы и мы часто наблюдаем производительность этих коллекций в пределах 0.4X от JVM.

Стоп, стоп, стоп. А какое же отношение может иметь производительность неизменяемых структур данных к JavaScript MVC? — Достаточно существенное.

Возможно, объяснить это будет не очень просто, но все же я постараюсь. Дело в том, что неизменяемые структуры данных, представленные в новой библиотеке Om позволяют создавать приложения на порядок производительнее, чем на популярных JS MVC фреймворков, таких как MVC Backbone.js (без ручной оптимизации). Om построен на прекрасном фреймворке от Facebook — React. Если вы не слышали о нём раньше, рекомендую посмотреть видео с JSConf EU 2013. Интересен тот факт, что из-за неизменяемых коллекций Om может продемонстрировать результаты лучше, чем при использовании React без каких-либо модификаций.
Читать дальше →
Total votes 61: ↑43 and ↓18+25
Comments26

Генетический алгоритм. Просто о сложном. Рассказ Марка Андреева

Reading time7 min
Views304K

В последнее время все больше «ходят» разговоры про новомодные алгоритмы, такие как нейронные сети и генетический алгоритм. Сегодня я расскажу про генетические алгоритмы, но давайте на этот раз постараемся обойтись без заумных определений и сложных терминах.
Как сказал один из великих ученных: «Если вы не можете объяснить свою теорию своей жене, ваша теория ничего не стоит!» Так давайте попытаемся во всем разобраться по порядку.
Читать дальше →
Total votes 74: ↑55 and ↓19+36
Comments40

JavaScript: ограничение частоты исполнения функции

Reading time3 min
Views15K
JavaScript — удивительный язык, с которым порой удаётся вытворять неожиданно классные вещи. Хочу познакомить вас с немножко нестандартным решением одной проблемы быстродействия, с которой я недавно столкнулся. Предупреждение: не для новичков.

Исходные данные: ресурсоёмкая функция, обновляющая определённые элементы на экране по наступлению определённых событий (движение мышки, например).
Проблема: когда события, вызывающие функцию, происходят слишком часто за короткий промежуток времени, интерфейс может начать серьёзно тормозить. Скажем, если событие произойдёт 1000 раз за несколько секунд, то и обновление — столько же. Для интерфейса молниеносная скорость отрисовки изменений может быть не так важна, а вот общее быстродействие, которое в данном случае страдает — очень даже.
Задача: ограничить функцию таким образом, чтобы она исполнялась не чаще, чем раз за определённый промежуток времени. При достаточном малом таком промежутке визуально задержки не будут заметны, зато кол-во вызовов может сократиться в несколько раз, что в свою очередь очень сущесвенно сократит нагрузку и поможет избавиться от торможения.

Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments14

Fortuna: генератор случайных чисел для параноиков

Reading time5 min
Views46K

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

Если у вас такого устройства нет, то прошу под кат.
Читать дальше →
Total votes 62: ↑58 and ↓4+54
Comments43

Несколько JavaScript хаков для хипстеров

Reading time3 min
Views55K
image
JavaScript занимательный язык программирования.

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

Вот почему важно, чтобы код был аккуратный, компактный и изящный. Такой, в который можно влюбиться. В противном случае, JavaScript может и отпугнуть.

Я подобрал для вас несколько интересных сниппетов, которые радуют меня самого, и которые я сам использую вместо скучного кода, занимающего много места. Некоторые из них делают код короче, другие четче и яснее. Еще парочка — это хаки для отладки.

Все это я узнал, изучая проекты с исходным кодом, но здесь я пишу так, как будто бы это я их придумал.
Читать дальше →
Total votes 217: ↑131 and ↓86+45
Comments128

Загрузка CommonJS модулей в браузер без изменения исходного кода

Reading time9 min
Views17K


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

Действительно, под мои требования замечательно подходил, например, RequireJS с его адаптером для Node.js, которые какое-то время с успехом удовлетворяли мои прихоти, пока меня опять не осенила гениальная мысль: «Почему я вынужден использовать кашу из двух совершенно различных форматов модулей в одном проекте? Нужно все унифицировать!».

И опять ответ не заставил себя долго ждать, нашелся миллион браузерных реализаций CommonJS модулей: и всевозможные склейщики скриптов, и серверные препроцессоры, и синхронные загрузчики, и асинхронные — все, что душе угодно. Но все они оказались с одним очень важным недостатком. Они так или иначе изменяли исходный код скриптов и делали очень неудобным процесс их отладки в браузерных инспекторах.
Читать дальше →
Total votes 14: ↑12 and ↓2+10
Comments5

60 FPS? Легко! pointer-events:none!

Reading time2 min
Views98K


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

.hover .element:hover {
  box-shadow: 1px 1px 1px #000;
}
Читать дальше →
Total votes 144: ↑138 and ↓6+132
Comments58

GPS и карты: смещённые координаты в Китае

Reading time2 min
Views111K
Так как я работаю в картографическом сервисе, то недавно я сделал для себя открытие, что все координаты в Китае смещенны по секретному алгоритму. Я собрал немного интересных историй и информации об этом факте.


Есть только граница Китая в этом мире heremaps.cn

Далее немого теории и истории про пробежки, навигацию и спутниковые снимки
Total votes 141: ↑137 and ↓4+133
Comments236

Page Visibility API и побочный эффект предотрисовки страниц

Reading time1 min
Views5.1K

Сперва, небольшой эксперимент


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

Далее интересные скриншоты и подробности
Total votes 12: ↑11 and ↓1+10
Comments8

Калейдоскоп музеев связи

Reading time8 min
Views12K
Есть места, в которых сложно побывать, но посмотреть и узнать про которые очень бы хотелось. И речь даже не о подборке «100 мест, которые надо увидеть за свою жизнь» — достаточно просто взять даже какой-нибудь интересный музей, который находится чёрт знает где. Вот хочется в нём побывать и всё тут, а сделать это не получается. В таком случае на помощь приходят фотографии, которые хотя бы частично, но позволяют «побывать» в новом месте. Ну или просто помогают понять, стоит ехать туда или нет.



Короче. Заключительный пост, и уже не хочется придумывать никаких вступлений — просто делюсь фотками из тех музеев, в которых я побывал, вместе с этим расскажу немного про каждый из них. Заранее приношу извинения за качество фотографий — фотографировал на почтовый штемпель.
Читать дальше →
Total votes 29: ↑26 and ↓3+23
Comments10

AutoclassCSS — быстрый каркас на основе HTML

Reading time2 min
Views15K
image
Генератор будет полезен для тех, кто верстает статические страницы.
Инструмент написан на JavaScript, и, следуя методологии БЭМ, каркас формируется только на основе классов.
Работает просто: на вход получает HTML, на выходе отдаёт CSS.

Попробовать в действии можно на демонстрационной страничке, оформление настраивается по вкусу.
Читать дальше →
Total votes 35: ↑29 and ↓6+23
Comments58

Как хранят биткойны

Reading time2 min
Views30K
Одна из самых больших проблем экономики Bitcoin — кража монет. По своей природе криптовалюта близка в этом смысле к наличным деньгам, поэтому когда злоумышленнику удаётся завладеть секретным ключом, деньги уходят бесследно и безвозвратно. С того времени, как биткойн перестал быть игрушкой энтузиастов и начал стоить ощутимых денег, произошло несколько громких ограблений. Грабили отдельных людей и целые биржи.

Сервер, содержащий секретные ключи кошельков Bitcoin — сердце любого финансового сервиса и главная цель похитителей. Поэтому компании, ответственно подходящие к безопасности, как правило хранят большую часть резерва в «холодных» кошельках, то есть в оффлайне. На подключённых к сети серверах есть лишь небольшой запас на текущие расходы.
Читать дальше →
Total votes 48: ↑35 and ↓13+22
Comments78

Reverse engineering на собеседовании: как мы нанимаем на работу

Reading time11 min
Views134K
Привет. Меня зовут Алексей Маланов, я пять лет проработал руководителем Отдела антивирусных исследований в «Лаборатории Касперского». Хочу поделиться с вами своим опытом найма вирусных аналитиков. Пост, надеюсь, будет интересен и полезен в первую очередь молодым специалистам, которые только собираются сделать первый шаг в карьере. Ну а матерым IT-шникам тоже может быть любопытно, какие же вопросы задают на собеседовании в ЛК. В свое время у меня в команде было несколько десятков человек и нанимали мы постоянно. Я стремился присутствовать на каждом собеседовании лично, чтобы быть уверенным, что человек будет что надо.


Читать дальше →
Total votes 138: ↑127 and ↓11+116
Comments105

Найти и обезвредить. Как раскрыть местоположение мобильного абонента

Reading time7 min
Views168K
В сетях мобильной связи возможно осуществление довольно специфичных атак. Об одной из них — раскрытии местоположения абонента в реальном времени с точностью до определения соты — пойдет речь в данной статье. Я не указываю точность в более привычных единицах измерения, т. к. размер соты не является величиной постоянной. В плотных городских застройках сота может обеспечивать покрытие порядка сотен метров, а в условиях лесов, полей и рек междугородной трассы — нескольких километров.
Читать дальше →
Total votes 97: ↑93 and ↓4+89
Comments51

Information

Rating
Does not participate
Registered
Activity