Search
Write a publication
Pull to refresh
3
0

Руковожу разработкой всякого разного

Send message

jQuery-плагины для удивительной web типографики

Reading time2 min
Views35K
Добрый час, Хабр.
Наткнулся на интересную статью (на английском языке) с подборкой плагинов jQuery для работы с типографикой.
Кому интересно познакомиться с ними, добро пожаловать под кат, перевожу статью для Вас.

Затравка

Типографика является очень важной частью дизайна сайта. Однако ею часто пренебрегают. В этой статье собраны удивительные JQuery-плагины для полного контроля типографики на вашем сайте.
Читать дальше →

Наушники Telefunken: первый взгляд на новый для старинного бренда продукт

Reading time6 min
Views27K
У моих бабушки с дедушкой был радиоприемник Telefunken. Огромный, из дорогого дерева, с клавишами из слоновой кости, он поселился у них сразу после войны, а выпущен был и вовсе в конце тридцатых. Качество материалов и сборки было таким, что он дождался меня, родившегося в 1977-м, отлично проработал все мое детство и потом, когда появились развлечения поинтереснее, просто молча стоял в углу комнаты. Честно скажу, я не знаю – где теперь этот Telefunken. Но почти уверен, что даже если он завален вещами в какой-нибудь подсобке, достаточно стряхнуть с приемника пыль, включить в розетку, щелкнуть по клавишам – и он снова заговорит, как ни в чем не бывало.

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

О том, что Telefunken планирует начать выпуск наушников, я узнал в конце лета. Новостью этой был крайне взволнован – шутка ли, на рынок, где торговая марка играет огромную роль, выходит такая легенда! Посмотреть на прототипы наушников живьем мне удалось первому из российских журналистов во время выставки IFA. На стенде Telefunken их не показывали, однако, когда я начал пытать девочек в униформе, они сначала отвели меня к начальнику среднего звена, он, в свою очередь, отвел к начальнику начальников, и тот отвел меня в тайную комнату, где на небольших витринах были выставлены еще нигде не анонсированные продукты Telefunken. Объяснить такую… доверчивость могу только удивлением, вызванным моей осведомленностью – ведь на тот момент о грядущем анонсе знало человек десять во всей индустрии. В любом случае, показать-то мне все показали, и даже сфотографировать разрешили, но послушать не дали, сославшись на сырость прототипов.

image
Читать дальше →

Ключевое слово this в javascript — учимся определять контекст на практике

Reading time4 min
Views185K
По просьбам некоторых читателей решил написать топик про контекст в javascript. Новички javascript часто не понимают значение ключевого слова this в javascript. Данный топик будет интересен не только новичкам, а также тем, кто просто хочет освежить данный аспект в памяти. Посмотрите пример ниже. Если вы затрудняетесь ответить на вопрос «что будет выведено в логе» хотя бы в одном из пунктов или хотите просто посмотреть ответы — добро пожаловать под кат.

var f = function() {
    this.x = 5;
    (function() {
        this.x = 3;
    })();
    console.log(this.x);
};

var obj = {x: 4, m: function() {
    console.log(this.x);
}};


f();
new f();
obj.m();
new obj.m();
f.call(f);
obj.m.call(f);

Читать дальше →

Понимание ООП в JavaScript [Часть 1]

Reading time16 min
Views339K
— Прототипное наследование — это прекрасно
JavaScript — это объектно-ориентированный (ОО) язык, уходящий корнями в язык Self, несмотря на то, что внешне он выглядит как Java. Это обстоятельство делает язык действительно мощным благодаря некоторым приятным особенностям.

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

К счастью, в ECMAScript 5 появилось множество вещей, которые позволили поставить язык на правильный путь (некоторые из них раскрыты в этой статье). Также будет рассказано о недостатках дизайна JavaScript и будет произведено небольшое сравнение с классической моделью прототипного ОО (включая его достоинства и недостатки).
Читать дальше →

Релиз Miranda NG

Reading time5 min
Views96K
Сегодня я хочу рассказать вам о выходе второго stable-релиза IM-мессенджера Miranda NG, форка Miranda IM, созданного бывшими разработчиками ядра и ряда плагинов.



Стабильные сборки: http://www.miranda-ng.org/distr/stable/

Исходный код
Ресурс со всеми портированными плагинами
Трекер

Статья-прародитель, содержащая небольшой FAQ для «введения в курс дела»


Веб-сайт и вики сейчас находятся в стадии активной разработки и наполнения контентом, впереди еще много работы, но команда полна идей и энтузиазма, так что не судите строго.

История, отличия и другая информация под катом.
Читать дальше →

В скриншотах игры WoW обнаружены цифровые водяные знаки (userID, time, realm)

Reading time2 min
Views102K


Пользователи игрового форума OwnedCore обнаружили скрытые водяные знаки, которые автоматически внедряются в JPG-файлы, если вы делаете скриншот в игре World of Warcraft. Если сделать скриншот чистой области, открыть файл в IrfanView или каком-нибудь редакторе, увеличить резкость с максимальной настройкой фильтра, повторить процедуру несколько раз, то заметен явный паттерн, который многократно повторяется.

Пользователи уже написали программку, которая автоматически извлекает информацию из водяных знаков. Это незашифрованный текст ASCII, содержащий имя пользователя, время снятия скриншота с точностью до минуты и IP-адрес реалма, включая приватные сервера.
Читать дальше →

Уровни для Сокобана

Reading time2 min
Views41K
Во времена XTшек и ДОС был у меня вариант Сокобана, реализованный в виде махонького бинаря, размером менее десяти килобайт. Называлось это чудо pusher.exe и выглядело вот так:



Это был простой уровень, но как насчет вот такого?
Читать дальше →

Расставляем точки на Li: Нужна ли тренировка литиевых аккумуляторов?

Reading time7 min
Views762K
Прошло уже достаточно времени с тех времен, когда Ni-Cd и Ni-Mh аккумуляторы безраздельно властвовали в мобильных устройствах, но с самого начала эпохи Li-ion и Li-pol все не утихают споры по поводу того, надо ли «тренировать» эти аккумуляторы сразу после покупки.
Доходит до смешного, в теме обсуждения ZP100 на china-iphone всем новичкам рекомендовали в приказном тоне пройти 10 циклов зарядки-разряда, а только потом приходить с вопросами о аккумуляторах.



Давайте попробуем разобраться, имеет ли такая рекомендация право на жизнь, или это рефлексы спинного мозга (за отсутствием головного, наверное) некоторых индивидуумов, у которых они остались со времен никелевых батарей.
Читать дальше →

Кубик Радика или лунные часы

Reading time8 min
Views26K
Некоторые геометрические фигуры и многогранники связаны с именами людей. Известны: треугольник Паскаля, квадрат Пифагора, Пирамида Хеопса. Захотел себе кубик. Рубик сотворил, почему и мне не сделать?
Технологии со времен Рубика ушли немного вперед, поэтому необходимо что-то технологичное, в духе времени, с использованием отечественных комплектующих и чуть более содержательное, чем квадрат Малевича.

Рубик использовал разноцветность — оставим.
Пик последнего времени: процессоры — используем и PIC и много процессоров.
У Рубика, чтобы получить результат надо немного поломать голову — интересное направление.
Существуют алгоритмы для сборки кубика Рубика — раскроем алгоритм работы кубика Радика.
Создано много схем для сборки кубика Рубика — нарисуем схему кубика Радика.
Кубик Рубика, это старинная штука — добавим старины и ударим ностальгией по современности.
На всех углах кричат про ГЛОНАСС — пощупаем.
Для читателей программ, а в особенности для начинающих писателей приложим программу работы кубика с подробными комментариями.

В результате совместного творчества голорук (сокр. от голова и руки) появился на свет кубик Радика.
image
Читать дальше →

WPA2-Enterprise, или правильный подход к безопасности Wi-Fi сети

Reading time7 min
Views335K
В последнее время появилось много «разоблачающих» публикаций о взломе какого-либо очередного протокола или технологии, компрометирующего безопасность беспроводных сетей. Так ли это на самом деле, чего стоит бояться, и как сделать, чтобы доступ в вашу сеть был максимально защищен? Слова WEP, WPA, 802.1x, EAP, PKI для вас мало что значат? Этот небольшой обзор поможет свести воедино все применяющиеся технологии шифрования и авторизации радио-доступа. Я попробую показать, что правильно настроенная беспроводная сеть представляет собой непреодолимый барьер для злоумышленника (до известного предела, конечно).

Читать дальше →

Блокировки в InnoDB (шпаргалка)

Reading time2 min
Views18K
Решил разобраться в вопросе блокировок в InnoDB. Получилась такая вот краткая шпаргалка. Может кому пригодится. Буду благодарен сообществу за найденные неточности

И так, в пределах одной транзакции, после…
Читать дальше →

Что бывает с оборудованием после молний

Reading time1 min
Views11K
Есть у нас в разных деревнях небольшие АТС с оборудованием для доступа к сети интернет. Как правило находятся они в арендуемых помещениях администраций села. Весь монтаж оборудования всегда стараются делать по уму, обязательно делается грозозащита. Но практика показывает, что при хорошей грозе с обилием молний, защита не помогает.
Под катом немного фото того, что произошло в помещении АТС, после попадания молнии в крышу здания и в кабель воздушного перехода над оврагом (может еще куда долбануло, но хватило и этого).
Скажем так, пятничный пост.
Читать дальше →

Wi-Fi: неочевидные нюансы (на примере домашней сети)

Reading time14 min
Views1.4M
Сейчас многие покупают точки доступа 802.11n, но хороших скоростей достичь удается не всем. В этом посте поговорим о не очень очевидных мелких нюансах, которые могут ощутимо улучшить (или ухудшить) работу Wi-Fi. Всё описанное ниже применимо как к домашним Wi-Fi-роутерам со стандартными и продвинутыми (DD-WRT & Co.) прошивками, так и к корпоративным железкам и сетям. Поэтому, в качестве примера возьмем «домашнюю» тему, как более родную и близкую к телу. Ибо даже самые администые из админов и инженеристые из инженеров живут в многоквартирных домах (или поселках с достаточной плотностью соседей), и всем хочется быстрого и надежного Wi-Fi.
[!!]: после замечаний касательно публикации первой части привожу текст целиком. Если вы читали первую часть — продолжайте отсюда.
Читать дальше →

Wi-Fi: неочевидные нюансы (на примере домашнего Wi-Fi) [часть 1]

Reading time4 min
Views243K
Сейчас многие покупают точки доступа 802.11n, но хороших скоростей достичь удается не всем. В этом посте поговорим о не очень очевидных мелких нюансах, которые могут ощутимо улучшить (или ухудшить) работу Wi-Fi. Всё описанное ниже применимо как к домашним Wi-Fi-роутерам со стандартными и продвинутыми (DD-WRT & Co.) прошивками, так и к корпоративным железкам и сетям. Поэтому, в качестве примера возьмем «домашнюю» тему, как более родную и близкую к телу. Ибо даже самые администые из админов и инженеристые из инженеров живут в многоквартирных домах (или поселках с достаточной плотностью соседей), и всем хочется быстрого и надежного Wi-Fi.
[Внимание!]: после замечаний касательно публикации статья выложена в полном виде здесь. Эта статья оставлена для примера того, как публиковать не надо. Извините за беспорядок :)
Читать дальше →

Обфускация JavaScript

Reading time5 min
Views197K
В статье собраны всем известные методы и предельно извращенные. Эту статью я решил написать после недавнего прочтения поста в блоге Badass JavaScript и решил её дополнить своими находками.

Первый способ


Он всем известен — обфускация минимизаторами такими как JS Packer, JSmin, YUI Compressor, Closure compiler или можно просто пугуглить «JavaScript Obfuscator» и найдется ещё сто штук разных обфускаторов.
Они превращают существующий код
function MyClass(){
    this.foo = function(argument1, argument2){
        var addedArgs = parseInt(argument1)+parseInt(argument2);
        return addedArgs;
    }
    var anonymousInnerFunction = function(){
        // do stuff here!
    }
}

В какой-то такой вид:
function MyClass(){this.foo=function(c,b){var d=parseInt(c)+parseInt(b);return d};var a=function(){}};

Или такой:
var _0xd799=["\x66\x6F\x6F"];function MyClass(){this[_0xd799[0]]=function (_0xefcax2,_0xefcax3){var _0xefcax4=parseInt(_0xefcax2)+parseInt(_0xefcax3);return _0xefcax4;} ;var _0xefcax5=function (){} ;} ;

Или вот такой:
eval(function(p,a,c,k,e,d){e=function(c){return c};if(!''.replace(/^/,String)){while(c--){d[c]=k[c]||c}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('4 0="3 5!";9 2(1){6(1+"\\7"+0)}2("8");',10,10,'a|msg|MsgBox|Hello|var|World|alert|n|OK|function'.split('|'),0,{}))

Но ничего не стоит его восстановить с помощью jsbeautifier.org либо просто убрать eval и получить исходный код, многое потеряем, но смысл кода восстановим. Ну и с первого взгляда мы видим, что перед нами JavaScript.

Все это были цветочки под катом жесткие методы обфускации.
Читать дальше →

Как сделать группу инпутов удобной

Reading time2 min
Views47K
Когда я работал над сервисом заметок jotsky.com, еще до работы в Островке, надо было сделать ввод телефонного номера из двух инпутов. Примерно такой:



Я сделал навигацию с помощью стрелочек. Сделал, чтобы по мере заполнения фокус переключался к следующем инпуту. А вот сделать правильную вставку из буфера обмена у меня никак не получалось.
Читать дальше →

6 примеров, роняющих IE6

Reading time2 min
Views2.3K
Кому не ненавистен IE6? К сожалению, разработчикам приходится иметь дело с этим устаревшим браузером из-за значительного количество использующих его людей.

Здесь приводится маленький неисчерпывающий список кода, который заставляет IE6 упасть.

Всё же после таких мучений для разработчиков разве не можем мы иметь право отомстить?

Начнем с самого длинного:
Читать дальше →

Музыка на дисководе гибких дисков: теория и примеры

Reading time2 min
Views47K


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

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

Разработка приложений под Windows 8: почему и как

Reading time11 min
Views69K
imageПоследние 5-7 лет мы все наблюдаем явление, которое аналитики называют консьюмеризацией ИТ. Не вдаваясь в историю и подробности этого явления, характерного не только ИТ-отрасли, стоит отметить главное – именно «консьюмеры» сегодня создают львиную долю пресловутой добавленной стоимости – иногда своим большим числом, иногда – способностью и желанием переплачивать за новинки и вообще интересные идеи.
Операционная система Windows, получившая тотальное распространение на волне консьюмеризации середины девяностых годов, планомерно развивалась до середины «нулевых», когда персонализация вычислений получила новый мощный толчок – настоящую мобильность и доступность.
Читать дальше →

Однострочники на С++

Reading time2 min
Views62K
image
На хабе появилось несколько топиков об «однострочниках» на разных языках, которые решали простые задачи. Я решил опубликовать несколько алгоритмов на языке C/С++.
Итак, поехали!
Читать дальше →

Information

Rating
Does not participate
Location
Россия
Registered
Activity