После одного из моих комментариев несколько человек попросили рассказать как я уехал в Америку. Вкратце дело было так…
Дмитрий Муштат @Mushtat
User
N2O: Erlang Web-фреймворк на WebSockets
8 min
32KTutorial
ВВЕДЕНИЕ
Данный пост подразумевает хорошее интро в N2O на русском.
Что такое Erlang/OTP Web Framework N2O и в чём его фишка для веб-разработки, можно узнать на странице в github и официальном сайте SynRC. Там всё как вы любите с графиками и презентациями.
А здесь рассмотрим принципы работы фреймворка и поговорим о вечном.
+39
lodash (underscore) — знай свою стандартную библиотеку
7 min
181KЗнающие люди рекомендуют разработчикам периодически пробегать глазами свою стандартную библиотеку, чтобы лучше представлять ее возможности. Зачем очередной раз изобретать велосипед, когда до нас уже столько сделано, и, главное, хорошо оттестировано, а бывает даже и нормально задокументировано. Говорят, полное использование стандартной библиотеки здорово повышает производительность.
Что же, в последнее время, в своей работе я во всех проектах задействую lodash (кому-то может больше нравиться underscore). Для меня это, фактически, — стандарт. В очередной раз пробегая глазами API, я решил составить для себя шпаргалку в виде: «название функции» — «краткое описание». Так удобно освежать API в памяти. Может кому пригодится.
+32
Что должен знать каждый участник крупного MMO-проекта
5 min
66KРядовые программисты обычно всё это прекрасно знают. А вот менеджерский состав нередко считает, что совершенно не обязательно разбираться в игровой экономике, клиент-серверной архитектуре и психологии игрового комьюнити. Ведь есть же крутая команда спецов, которые обо всём позаботятся.
Итог очевиден: трудно вспомнить хотя бы один крупный MMO-проект, выпущенный за последние два года, который избежал бы стандартного набора граблей. Такое ощущение, что MMO-индустрия не способна учиться на своих ошибках.
Итак, список вопросов, ответы на которые должен знать каждый, от топ-менеджера до работника техподдержки крупного MMO-проекта.
+60
Шпионские гаджеты от АНБ
10 min
394KСреди документов опубликованных Эдвардом Сноуденом, бывшим сотрудником ЦРУ и Агентства национальной безопасности США, были обнаружены материалы описывающие некоторые детали технологий шпионажа используемых АНБ. Список программных и аппаратных средств оформлен в виде небольшого каталога. Всего сорок восемь страниц отмеченных грифами «Секретно» и «Совершенно секретно», на которых дано краткое описание той или иной технологии для слежки. Данный список не является исчерпывающим. Представлены техники связанные с получением скрытого доступа к вычислительной технике и сетям, а также способы и устройства радиоэлектронной разведки связанные с мобильной связью и оборудование для наблюдения. В этой статье я расскажу об этих методах шпионажа, далее будет четыре дюжины слайдов(осторожно, трафик).
+246
I2P — Проект Невидимый Интернет
2 min
273KTutorial
Всем доброго времени суток!
С недавних пор организации по защите авторских прав и «отделы К» многих стран начали вести весьма агрессивную политику против анонимности в сети и пиратства. Особо показательны истории с torrents.ru и ifolder.ru.
Подробнее об интернет-цензуре можно почитать в Википедии.
Чтобы оградить пользователя и хостера от «вредного» влияния государства и частных компаний была создана сеть I2P. Что же это такое и как подключиться к I2P — читаем под катом.
С недавних пор организации по защите авторских прав и «отделы К» многих стран начали вести весьма агрессивную политику против анонимности в сети и пиратства. Особо показательны истории с torrents.ru и ifolder.ru.
Подробнее об интернет-цензуре можно почитать в Википедии.
Чтобы оградить пользователя и хостера от «вредного» влияния государства и частных компаний была создана сеть I2P. Что же это такое и как подключиться к I2P — читаем под катом.
+120
Будущее JavaScript MVC фреймворков
6 min
32KTranslation
Представляем Om
Нам, в нашем ClojureScript-углу, это было известно уже давно — все наши структуры данных неизменяемы и основаны на оригинальных коллекциях из Clojure, написанных на Java. Современные JavaScript движки в настоящее время достаточно оптимизированы и мы часто наблюдаем производительность этих коллекций в пределах 0.4X от JVM.
Стоп, стоп, стоп. А какое же отношение может иметь производительность неизменяемых структур данных к JavaScript MVC? — Достаточно существенное.
Возможно, объяснить это будет не очень просто, но все же я постараюсь. Дело в том, что неизменяемые структуры данных, представленные в новой библиотеке Om позволяют создавать приложения на порядок производительнее, чем на популярных JS MVC фреймворков, таких как MVC Backbone.js (без ручной оптимизации). Om построен на прекрасном фреймворке от Facebook — React. Если вы не слышали о нём раньше, рекомендую посмотреть видео с JSConf EU 2013. Интересен тот факт, что из-за неизменяемых коллекций Om может продемонстрировать результаты лучше, чем при использовании React без каких-либо модификаций.
+25
Генетический алгоритм. Просто о сложном. Рассказ Марка Андреева
7 min
304KВ последнее время все больше «ходят» разговоры про новомодные алгоритмы, такие как нейронные сети и генетический алгоритм. Сегодня я расскажу про генетические алгоритмы, но давайте на этот раз постараемся обойтись без заумных определений и сложных терминах.
Как сказал один из великих ученных: «Если вы не можете объяснить свою теорию своей жене, ваша теория ничего не стоит!» Так давайте попытаемся во всем разобраться по порядку.
+36
JavaScript: ограничение частоты исполнения функции
3 min
15KJavaScript — удивительный язык, с которым порой удаётся вытворять неожиданно классные вещи. Хочу познакомить вас с немножко нестандартным решением одной проблемы быстродействия, с которой я недавно столкнулся. Предупреждение: не для новичков.
Исходные данные: ресурсоёмкая функция, обновляющая определённые элементы на экране по наступлению определённых событий (движение мышки, например).
Проблема: когда события, вызывающие функцию, происходят слишком часто за короткий промежуток времени, интерфейс может начать серьёзно тормозить. Скажем, если событие произойдёт 1000 раз за несколько секунд, то и обновление — столько же. Для интерфейса молниеносная скорость отрисовки изменений может быть не так важна, а вот общее быстродействие, которое в данном случае страдает — очень даже.
Задача: ограничить функцию таким образом, чтобы она исполнялась не чаще, чем раз за определённый промежуток времени. При достаточном малом таком промежутке визуально задержки не будут заметны, зато кол-во вызовов может сократиться в несколько раз, что в свою очередь очень сущесвенно сократит нагрузку и поможет избавиться от торможения.
Исходные данные: ресурсоёмкая функция, обновляющая определённые элементы на экране по наступлению определённых событий (движение мышки, например).
Проблема: когда события, вызывающие функцию, происходят слишком часто за короткий промежуток времени, интерфейс может начать серьёзно тормозить. Скажем, если событие произойдёт 1000 раз за несколько секунд, то и обновление — столько же. Для интерфейса молниеносная скорость отрисовки изменений может быть не так важна, а вот общее быстродействие, которое в данном случае страдает — очень даже.
Задача: ограничить функцию таким образом, чтобы она исполнялась не чаще, чем раз за определённый промежуток времени. При достаточном малом таком промежутке визуально задержки не будут заметны, зато кол-во вызовов может сократиться в несколько раз, что в свою очередь очень сущесвенно сократит нагрузку и поможет избавиться от торможения.
+12
Fortuna: генератор случайных чисел для параноиков
5 min
46KВсе знают, что лучший генератор случайных чисел — это устройство, оцифровывающее выход с очень чувствительного микрофона, стоящего на солнечном берегу моря где-нибудь в районе диких пляжей Бали.
Если у вас такого устройства нет, то прошу под кат.
+54
Несколько JavaScript хаков для хипстеров
3 min
55KTranslation
JavaScript занимательный язык программирования.
Постоянные опасения совершить ошибки в коде заставляют все время думать. Навыки программирования улучшаются из-за того, что приходится постоянно выполнять код в уме, другого способа нет.
Вот почему важно, чтобы код был аккуратный, компактный и изящный. Такой, в который можно влюбиться. В противном случае, JavaScript может и отпугнуть.
Я подобрал для вас несколько интересных сниппетов, которые радуют меня самого, и которые я сам использую вместо скучного кода, занимающего много места. Некоторые из них делают код короче, другие четче и яснее. Еще парочка — это хаки для отладки.
Все это я узнал, изучая проекты с исходным кодом, но здесь я пишу так, как будто бы это я их придумал.
+45
Загрузка CommonJS модулей в браузер без изменения исходного кода
9 min
17KОднажды, сидя за компьютером и обдумывая свою очередную никчемную затею, я внезапно понял, что мне нужен способ использовать один и тот же код на стороне браузера и на стороне сервера. Я почти сразу же догадался, что наверняка я не первый такой умный, и все давно придумано за меня — и не ошибся.
Действительно, под мои требования замечательно подходил, например, RequireJS с его адаптером для Node.js, которые какое-то время с успехом удовлетворяли мои прихоти, пока меня опять не осенила гениальная мысль: «Почему я вынужден использовать кашу из двух совершенно различных форматов модулей в одном проекте? Нужно все унифицировать!».
И опять ответ не заставил себя долго ждать, нашелся миллион браузерных реализаций CommonJS модулей: и всевозможные склейщики скриптов, и серверные препроцессоры, и синхронные загрузчики, и асинхронные — все, что душе угодно. Но все они оказались с одним очень важным недостатком. Они так или иначе изменяли исходный код скриптов и делали очень неудобным процесс их отладки в браузерных инспекторах.
+10
60 FPS? Легко! pointer-events:none!
2 min
98KTutorial
Translation
Вы, наверное, уже читали интересную статью о том, как можно отключать эффекты
:hover
при скроле – это позволяет здорово сохранить отзывчивость сайта, но имеет один недостаток – вам приходится опираться на один общий класс, и это плохо..hover .element:hover {
box-shadow: 1px 1px 1px #000;
}
+132
GPS и карты: смещённые координаты в Китае
2 min
111KТак как я работаю в картографическом сервисе, то недавно я сделал для себя открытие, что все координаты в Китае смещенны по секретному алгоритму. Я собрал немного интересных историй и информации об этом факте.
Есть только граница Китая в этом мире heremaps.cn
Есть только граница Китая в этом мире heremaps.cn
+133
Page Visibility API и побочный эффект предотрисовки страниц
1 min
5.1KСперва, небольшой эксперимент
Чтобы сделать эту небольшую статью намного интереснее, я предлагаю просто открыть результаты поиска Google и сразу вернуться к чтению под катом.
+10
Калейдоскоп музеев связи
8 min
12KЕсть места, в которых сложно побывать, но посмотреть и узнать про которые очень бы хотелось. И речь даже не о подборке «100 мест, которые надо увидеть за свою жизнь» — достаточно просто взять даже какой-нибудь интересный музей, который находится чёрт знает где. Вот хочется в нём побывать и всё тут, а сделать это не получается. В таком случае на помощь приходят фотографии, которые хотя бы частично, но позволяют «побывать» в новом месте. Ну или просто помогают понять, стоит ехать туда или нет.
Короче. Заключительный пост, и уже не хочется придумывать никаких вступлений — просто делюсь фотками из тех музеев, в которых я побывал, вместе с этим расскажу немного про каждый из них. Заранее приношу извинения за качество фотографий — фотографировал на почтовый штемпель.
Короче. Заключительный пост, и уже не хочется придумывать никаких вступлений — просто делюсь фотками из тех музеев, в которых я побывал, вместе с этим расскажу немного про каждый из них. Заранее приношу извинения за качество фотографий — фотографировал на почтовый штемпель.
+23
AutoclassCSS — быстрый каркас на основе HTML
2 min
15KГенератор будет полезен для тех, кто верстает статические страницы.
Инструмент написан на JavaScript, и, следуя методологии БЭМ, каркас формируется только на основе классов.
Работает просто: на вход получает HTML, на выходе отдаёт CSS.
Попробовать в действии можно на демонстрационной страничке, оформление настраивается по вкусу.
+23
Как хранят биткойны
2 min
30KОдна из самых больших проблем экономики Bitcoin — кража монет. По своей природе криптовалюта близка в этом смысле к наличным деньгам, поэтому когда злоумышленнику удаётся завладеть секретным ключом, деньги уходят бесследно и безвозвратно. С того времени, как биткойн перестал быть игрушкой энтузиастов и начал стоить ощутимых денег, произошло несколько громких ограблений. Грабили отдельных людей и целые биржи.
Сервер, содержащий секретные ключи кошельков Bitcoin — сердце любого финансового сервиса и главная цель похитителей. Поэтому компании, ответственно подходящие к безопасности, как правило хранят большую часть резерва в «холодных» кошельках, то есть в оффлайне. На подключённых к сети серверах есть лишь небольшой запас на текущие расходы.
Сервер, содержащий секретные ключи кошельков Bitcoin — сердце любого финансового сервиса и главная цель похитителей. Поэтому компании, ответственно подходящие к безопасности, как правило хранят большую часть резерва в «холодных» кошельках, то есть в оффлайне. На подключённых к сети серверах есть лишь небольшой запас на текущие расходы.
+22
Reverse engineering на собеседовании: как мы нанимаем на работу
11 min
134KПривет. Меня зовут Алексей Маланов, я пять лет проработал руководителем Отдела антивирусных исследований в «Лаборатории Касперского». Хочу поделиться с вами своим опытом найма вирусных аналитиков. Пост, надеюсь, будет интересен и полезен в первую очередь молодым специалистам, которые только собираются сделать первый шаг в карьере. Ну а матерым IT-шникам тоже может быть любопытно, какие же вопросы задают на собеседовании в ЛК. В свое время у меня в команде было несколько десятков человек и нанимали мы постоянно. Я стремился присутствовать на каждом собеседовании лично, чтобы быть уверенным, что человек будет что надо.
+116
Найти и обезвредить. Как раскрыть местоположение мобильного абонента
7 min
168KВ сетях мобильной связи возможно осуществление довольно специфичных атак. Об одной из них — раскрытии местоположения абонента в реальном времени с точностью до определения соты — пойдет речь в данной статье. Я не указываю точность в более привычных единицах измерения, т. к. размер соты не является величиной постоянной. В плотных городских застройках сота может обеспечивать покрытие порядка сотен метров, а в условиях лесов, полей и рек междугородной трассы — нескольких километров.
+89
Information
- Rating
- Does not participate
- Registered
- Activity