В наше время для различных сайтов нормой стали всевозможные всплывающие модальные окна — popup'ы — для регистрации, авторизации, информационные окна, — всевозможных форм и размеров. Также существует огромное количество плагинов к тому же jQuery для простого и удобного создания таких попапов — тот же Shadowbox, например.
Константин Власов @CaptainFlint
Разработчик
Вышла «бета» скрипта HabrAjax
6 min
1.2KСкрипт и стили для Хабра выложены в пользование и дальнейшее развитие. Количество «фич» довольно большое, поэтому, чтобы не затягивать дальнейшую разработку, скрипты и стили проработаны до необходимого минимума. Бесконечно улучшать просто нет смысла, потому что на сайте постоянно добавляются новые коды и вёрстка, старое ломается, функции приходится восстанавливать. Поэтому идея выкладки в формате «беты» — в том, чтобы различные пользователи, вдохновлённые возможностями оболочки (скриптов и стилей), прониклись идеей небольших доработок «под себя» этого основного скрипта, и тогда общая работа пошла бы заметно быстрее. Ведь совсем нетрудно и интересно потратить вечер для красивой «фичи» на 30-50 строк кода, но когда таких фич набирается 20 — стольких вечеров становится не хватать и требуется подключение сил других разработчиков.
-1
PNG — not GIF!
4 min
80KДоброго времени суток!
Вам когда-нибудь хотелось узнать как устроены файлы PNG? Нет? А я все равно расскажу.
Формат PNG(Portable Network Graphics) был изобретен в 1995 году, чтобы стать заменой GIF, а уже в 1996, с выходом версии 1.0, он был рекомендован W3C, в качестве полноправного сетевого формата. На сегодняшний день PNG является одним из основных форматов веб-графики.
Под катом вы найдете общее описание строения PNG-файла, некоторое количество картинок-схем, препарирование в hex-редакторе, и, конечно, ссылку на спецификацию.
Вам когда-нибудь хотелось узнать как устроены файлы PNG? Нет? А я все равно расскажу.
Формат PNG(Portable Network Graphics) был изобретен в 1995 году, чтобы стать заменой GIF, а уже в 1996, с выходом версии 1.0, он был рекомендован W3C, в качестве полноправного сетевого формата. На сегодняшний день PNG является одним из основных форматов веб-графики.
Под катом вы найдете общее описание строения PNG-файла, некоторое количество картинок-схем, препарирование в hex-редакторе, и, конечно, ссылку на спецификацию.
+183
Отладка драйверов под Windows: VirtualBox+WinDbg
3 min
22KПредисловие
Однажды мне понадобилось написать драйвер под Windows XP SP2. Сразу встал вопрос отладки. Уж очень не хотелось использовать мудреный SoftIce, ребутиться при кадждой ошибке или делать откаты. Поэтому было решено использовать виртуалку VirtualBox, которой я частенько пользуюсь и характеристиками которой вполне доволен, и отладчиком Windows Debugger от Microsoft. Через несколько часов в окошке WinDbg радостно замаячили строчки на Си, и было решено сделать «напоминалку», которая получилась неплохим «HowTo». Итак, начнем…
+48
Краткий список WYSIWYG редакторов от Марка Андреева
4 min
356KОднажды мне потребовался WYSIWYG редактор, я помнил как он выглядит, его функции, но не помнил названия. Через 45 минут я все же его нашел… Тогда я поставил перед собой задачу помочь многим, в том числе и себе: сделать сводный список всех чуть более известных WYSIWYG редакторов.
+155
Бесплатные книги
3 min
60KНесколько книг по разным темам, которые находятся в открытом доступе.
Основы программирования
Основы программирования
+235
Еще есть пользователи windows 9x? Пишем утилиту для чтения NTFS
3 min
1.2KВ последнее время найти пользователей windows 9x стало сложно, но возможно. Но все таки они есть такие. Так же известно что использовать жесткие диски с разделами NTFS штатными средствами операционной системы нельзя. Попробуем исправить это написав программу позволяющую читать данные с разделов NTFS.
Что будем требовать от своей программы?
Да вообщем то не многое. Разрабатываемая программа должна осуществлять копирование с разделов жесткого диска с файловой системой NTFS5 в разделы FAT. Данная программа должна быть использована в том случае, если Windows 2000 (которая использует NTFS 5) отсутствует или недоступна. Должны поддерживаться длинные имена файлов, а также жесткие диски любой ёмкости (в т.ч. больше 8Гб). Среда функционирования – ОС DOS, Windows 9x. Программа должна иметь «стандартный» двухпанельный «нортоновский» интерфейс.
Что будем требовать от своей программы?
Да вообщем то не многое. Разрабатываемая программа должна осуществлять копирование с разделов жесткого диска с файловой системой NTFS5 в разделы FAT. Данная программа должна быть использована в том случае, если Windows 2000 (которая использует NTFS 5) отсутствует или недоступна. Должны поддерживаться длинные имена файлов, а также жесткие диски любой ёмкости (в т.ч. больше 8Гб). Среда функционирования – ОС DOS, Windows 9x. Программа должна иметь «стандартный» двухпанельный «нортоновский» интерфейс.
+31
Дерево ван Эмде Боаса
6 min
18KВсем доброго времени суток!
Сегодня я расскажу вам об одной интересной структуре данных, про которую слышали лишь немногие и про которую очень незаслуженно мало написано в рунете, да и в англоязычном информации, в общем-то, тоже негусто. Решено было исправить ситуацию и поделиться с общественностью в доступной форме этой достаточно экзотической структурой данных.
Дерево ван Эмде Боаса (van Emde Boas tree) — ассоциативный массив, который позволяет хранить целые числа в диапазоне [0; U), где U = 2k, проще говоря, числа, состоящие не более чем из k бит. Казалось бы, зачем нужно еще какое-то дерево, да еще позволяющее хранить только целые числа, когда существует множество различных сбалансриованных двоичных деревьев поиска, позволяющих выполнять операции вставки, удаления и прочие за O(log n), где n — количество элементов в дереве?
Главная особенность этой структуры — выполнение всех операций за время O(log(log(U))) независимо от количества хранящихся в ней элементов.
Сегодня я расскажу вам об одной интересной структуре данных, про которую слышали лишь немногие и про которую очень незаслуженно мало написано в рунете, да и в англоязычном информации, в общем-то, тоже негусто. Решено было исправить ситуацию и поделиться с общественностью в доступной форме этой достаточно экзотической структурой данных.
Дерево ван Эмде Боаса (van Emde Boas tree) — ассоциативный массив, который позволяет хранить целые числа в диапазоне [0; U), где U = 2k, проще говоря, числа, состоящие не более чем из k бит. Казалось бы, зачем нужно еще какое-то дерево, да еще позволяющее хранить только целые числа, когда существует множество различных сбалансриованных двоичных деревьев поиска, позволяющих выполнять операции вставки, удаления и прочие за O(log n), где n — количество элементов в дереве?
Главная особенность этой структуры — выполнение всех операций за время O(log(log(U))) независимо от количества хранящихся в ней элементов.
+188
re2c — компилятор регулярных выражений
3 min
8.2KЗадача выделения из потока символов определенных лексем является весьма распространенной. Часто ее решают с помощью лексических анализаторов, конфигурируемых регулярными выражениями. Многие анализаторы построены по принципу генерации программного кода, который в свою очередь реализует логику регулярных выражений. Фактически, это компиляция языка регулярных выражений в код языка программирования.
Например, flex — это один из таких анализаторов. Старый, но проверенный годами.
Я много пользовался flex'ом, он имеет и плохие и хорошие стороны, но по большому счету, жаловаться не приходилось.
Но вчера наткнулся на интересный проект — re2c. По сути, на этой штуке можно писать лексические анализаторы прямо на коленке за несколько минут.
Например, flex — это один из таких анализаторов. Старый, но проверенный годами.
Я много пользовался flex'ом, он имеет и плохие и хорошие стороны, но по большому счету, жаловаться не приходилось.
Но вчера наткнулся на интересный проект — re2c. По сути, на этой штуке можно писать лексические анализаторы прямо на коленке за несколько минут.
+35
Как правильно читать объявления в Си
7 min
45KTranslation
Даже совсем зеленые программисты на Си, не испытывают проблем с чтением таких объявлений:
Но как только объявления становятся немного сложнее, проблематично точно сказать что это. Например:
int foo[5]; // foo массив из 5 элементов типа int
char *foo; // foo указатель на char
double foo(); // foo функция возвращающая значение типа double
Но как только объявления становятся немного сложнее, проблематично точно сказать что это. Например:
char *(*(**foo[][8])())[];
+91
Консервативная логика
14 min
20KВооруженные жидким азотом оверклокеры неоднократно показывали, что современные чипы могут стабильно работать на частотах в разы выше номинальных, обеспечивая соответствующий рост производительности. Тем не менее, прогресс в области «гонки гигагерц» остановился давно и надежно. Первый «Pentium 4» с частотой больше 3 ГГц появился в далеком 2002 году, почти 10 лет назад. За прошедшие годы нормы техпроцессов уменьшились со 180 до 32 нм, но даже это не позволило существенно поднять штатные рабочие частоты. Все упирается в огромное тепловыделение элементов цифровой логики.
В основе «проблемы тепловыделения» лежит глубокая связь между информационной и термодинамической энтропией, а также второе начало термодинамики, запрещающее уменьшение общей энтропии замкнутой системы. Любое вычисление, уменьшающее энтропию информационную, обязано приводить к увеличению энтропии термодинамической, то есть к выделению тепла. Рольф Ландауэр в 1961 году показал [pdf], что уничтожение одного бита информации должно приводить к выделению не менее k∙T∙ln 2 джоулей энергии, где k – постоянная Больцмана и T – температура системы. Само по себе эта энергия невелика: для T=300K она составляет всего 0.017 эВ на бит, но в пересчете на процессор в целом суммарная энергия вырастает уже до величин порядка одного Джоуля за каждую секунду работы, то есть порядка одного Ватта [Компьютерра №538]. На практике этот теоретический минимум умножается на ненулевое сопротивление и прочие неидеальности реальных полупроводников. В результате мы получаем процессоры, которые по тепловыделению обгоняют утюги.
В основе «проблемы тепловыделения» лежит глубокая связь между информационной и термодинамической энтропией, а также второе начало термодинамики, запрещающее уменьшение общей энтропии замкнутой системы. Любое вычисление, уменьшающее энтропию информационную, обязано приводить к увеличению энтропии термодинамической, то есть к выделению тепла. Рольф Ландауэр в 1961 году показал [pdf], что уничтожение одного бита информации должно приводить к выделению не менее k∙T∙ln 2 джоулей энергии, где k – постоянная Больцмана и T – температура системы. Само по себе эта энергия невелика: для T=300K она составляет всего 0.017 эВ на бит, но в пересчете на процессор в целом суммарная энергия вырастает уже до величин порядка одного Джоуля за каждую секунду работы, то есть порядка одного Ватта [Компьютерра №538]. На практике этот теоретический минимум умножается на ненулевое сопротивление и прочие неидеальности реальных полупроводников. В результате мы получаем процессоры, которые по тепловыделению обгоняют утюги.
+108
Создание реалистичной кнопки средствами CSS3
3 min
7.4KTranslation
Цель — создание кнопки, как на изображении, не единой картинкой, а с помощью CSS3
+84
Бесплатная цифровая подпись для открытых драйверов
2 min
16KTranslation
Теперь любой проект с открытым исходным кодом, который разрабатывает драйвер для Windows, благодаря Фонду ReactOS может подписать свой драйвер бесплатно.
Подписание для 32-битных драйверов — нечто рекомендуемое, поскольку это гарантирует, что драйвер безопасен, и никто не внедрил в него руткит впоследствии. Подписание для на 64-битных драйверов — НЕОБХОДИМОСТЬ, новые версии Windows не позволяют выполнять неподписанный драйвер, поэтому проекты с открытым исходным кодом вынуждены платить немалые суммы за подписание своих драйверов. Обычно лицензия может стоить 2000 долларов в течение года, таким образом, это — хорошая экономия для проектов с открытым исходным кодом.
С Рождеством Христовым!
+93
AtomJS — миниатюрный JavaScript фреймворк
3 min
15KВсем привет! Вторая часть про миниатюрный javascript фреймворк Atom (бывший Nano).
Теперь из Core убрано всё лишнее, вес — 1 кб.
Как и прежде — полный отказ от устаревших браузеров.
Dom, Class, Ajax и т.п. — подключаются как плагины.
Поменялся адрес репозитария: github.com/theshock/atomjs
Под катом — расскажу, что нового и опишу, как создавать плагины
+52
Удачная модель ветвления для Git
10 min
979KTranslation
Перевод статьи Vincent Driessen: A successful Git branching model
В этой статье я представляю модель разработки, которую использую для всех моих проектов (как рабочих, так и частных) уже в течение года, и которая показала себя с хорошей стороны. Я давно собирался написать о ней, но до сих пор не находил свободного времени. Не буду рассказывать обо всех деталях проекта, коснусь лишь стратегии ветвления и управления релизами.
В качестве инструмента управления версиями всего исходного кода она использует Git.
В этой статье я представляю модель разработки, которую использую для всех моих проектов (как рабочих, так и частных) уже в течение года, и которая показала себя с хорошей стороны. Я давно собирался написать о ней, но до сих пор не находил свободного времени. Не буду рассказывать обо всех деталях проекта, коснусь лишь стратегии ветвления и управления релизами.
В качестве инструмента управления версиями всего исходного кода она использует Git.
+162
Чёрточки: только ли тире, минус и дефис?
4 min
178KОднажды вечером я почувствовал, что пришло время расширить 97‐ й параграф «Ководства» Артемия Лебедева.
На клавиатуре одна чёрточка, она обычно правее нуля и повыше букв «З» и «Х». Неосведомлённые люди называют её попеременно то дефисом, то минусом, то тире. Лебедев объясняет нам, что это четыре (учитывая две разновидности тире) различных символа. На самом деле их как минимум девять, и об этом я и расскажу вам сейчас.
На клавиатуре одна чёрточка, она обычно правее нуля и повыше букв «З» и «Х». Неосведомлённые люди называют её попеременно то дефисом, то минусом, то тире. Лебедев объясняет нам, что это четыре (учитывая две разновидности тире) различных символа. На самом деле их как минимум девять, и об этом я и расскажу вам сейчас.
+265
Правило чтения по спирали
6 min
14KTranslation
Техника, известная как «Чтение по спирали/по часовой стрелке» (“Clockwise/Spiral Rule”) позволяет любому программисту разобрать любое объявление языка Си.
Следуйте этим простым шагам:
Следуйте этим простым шагам:
+119
Горячие клавиши в шелле
3 min
113KПосвящается B_dot, пост которого заставил заинтересоваться возможностями консоли плотнее.
В этом посте будет рассказано о некоторых сочетания клавиш, которые могут упросить жизнь администраторам, работающим в консоли. Все они работают в bash'e. Сочетания клавиш я дополнительно проверял на циске (Cisco IOS Software, s72033_rp Software (s72033_rp-ADVIPSERVICESK9_WAN-M), Version 12.2(33)SXH4), csh и zsh. Рассмотренное в других записях повторять особо не буду. Сочетания сгруппированы по использованной функциональной клавише.
Особенно полезен этот текст будет людям, которые любят использовать клавиши Home, End и Delete (которые в цисковой консоли «не работают»).
Краткое вступление
В этом посте будет рассказано о некоторых сочетания клавиш, которые могут упросить жизнь администраторам, работающим в консоли. Все они работают в bash'e. Сочетания клавиш я дополнительно проверял на циске (Cisco IOS Software, s72033_rp Software (s72033_rp-ADVIPSERVICESK9_WAN-M), Version 12.2(33)SXH4), csh и zsh. Рассмотренное в других записях повторять особо не буду. Сочетания сгруппированы по использованной функциональной клавише.
Особенно полезен этот текст будет людям, которые любят использовать клавиши Home, End и Delete (которые в цисковой консоли «не работают»).
+140
Аудио плеер под GNU/Linux — DeaDBeeF
1 min
12KСегодня обнаружил для себя очень симпатичный плеер DeaDBeeF. Да что уж говорить, после Audacious и Exaile это просто сказка, а не плеер. И так, что имеем:
DeaDBeeF — аудио плеер под системы GNU/Linux. Распространяется под General Public License version 2.
mp3, ogg vorbis, flac, ape, wv, wav, m4a, mpc, cd audio (и многие другие);
поддержка utf8, cp1251;
поддержка cuesheet (.cue файлы);
не зависит от GNOME, KDE;
трей;
drag and drop;
хоткеи;
плейлисты;
18-полосный эквалайзер (поддерживает пресэты от foobar2000);
радио;
плагины;
и многое другое
DeaDBeeF — аудио плеер под системы GNU/Linux. Распространяется под General Public License version 2.
mp3, ogg vorbis, flac, ape, wv, wav, m4a, mpc, cd audio (и многие другие);
поддержка utf8, cp1251;
поддержка cuesheet (.cue файлы);
не зависит от GNOME, KDE;
трей;
drag and drop;
хоткеи;
плейлисты;
18-полосный эквалайзер (поддерживает пресэты от foobar2000);
радио;
плагины;
и многое другое
+44
Ричард Фейнман: Алгебра
1 min
9.7KНа этот раз знаменитый физик вспоминает свое детство, недоумение по поводу школьной системы образования и свои первые шаги в изучении математики.
На Хабре
(Оригинал ролика на английском языке)
+130
Information
- Rating
- 1,558-th
- Location
- Белград, Белград, Сербия
- Registered
- Activity
Specialization
Software Developer
Senior