Начал замечать что на Хабре появляются статьи по программированию, может на это натолкнули фразы типа «хабр уже не тот», но это не так важно, потому как мне это нравится, всегда хотелось узнать что-то новенькое … моя первая статья привела к огромному краху, поэтому почитав людей, я повторю свои усилия и начну цикл заметок о JavaScript от самого начала и до тех пор, пока это будет востребовано =)
Михаил 'bashmish' Башкиров @bashmish
User
Вступление
2 min
4.2KБыл удивлён, не обнаружив подобного блога на Хабре. Ничего, постараемся восполнить этот пробел. В этом блоге я планирую как можно проще описать работу регулярных выражений, более склоняясь к полному разбору часто используемых примеров. Так же, в планах, рассказать об особенностях разных движков выражений, и их реализации в популярных языках программирования.
Для начала, поговорим о том, что такое регулярные выражения, и каково их практическое применение.
Для начала, поговорим о том, что такое регулярные выражения, и каково их практическое применение.
+63
Начало пути — Часть 6. Основы сведения и мастеринга.
6 min
243KВот, с грехом пополам, мы и добрались до финальной статьи. Она будет про сведение и мастеринг. Первым делом поясню чем сведение отличается от мастеринга, расскажу немного про такую штуку как SideChain и еще парочку трюков. В конце — небольшая таблица, которая до сих пор помогает мне при эквализации.
+34
CUDA: Как работает GPU
9 min
139KВнутренняя модель nVidia GPU – ключевой момент в понимании GPGPU с использованием CUDA. В этот раз я постараюсь наиболее детально рассказать о программном устройстве GPUs.
+52
8 отличных хитростей jQuery
4 min
28KTranslation
Кому не нравится jQuery? Это быстрая и простая javascript-библиотека стала очень популярной в 2008 году. В этой статье я собрал список восьми очень полезных jQuery-техник, советов и хитростей.
+68
Используем любой шрифт с Javascript.
3 min
24KВсе мы знаем прекрасные библиотеки sIFR3 и FLIR, которые на лету помогают использовать любой шрифт на веб-страницах.
Правда, с моей точки зрения, их использование (а именно установку и настройку) нельзя считать легким трудом.
Сегодня я расскажу о библиотеке Typeface.js, которая, как видно из названия, работает на чистом JavaScript.
Правда, с моей точки зрения, их использование (а именно установку и настройку) нельзя считать легким трудом.
Сегодня я расскажу о библиотеке Typeface.js, которая, как видно из названия, работает на чистом JavaScript.
+113
Закрепляем jQuery — 25 отличных советов
19 min
168KTranslation
Перевод отличной статейки. Думаю, будет полезна как новичкам, которые только приступили к использованию jQuery, так и тем, кто уже какое-то время с ним работает. А кого-то, возможно, заставит глянуть эту чудесную библиотечку. Многие советы имеют отношение не только к jQuery, но и к JavaScript в целом. Лично для меня была весьма и весьма познавательной, посему и захотелось донести это «до масс». Перевод не дословный, но передающий смысл и максимально адаптированный к русскому языку.
Далее все написано от имени автора оригинальной статьи.
jQuery прекрасен. Я использую его вот уже почти год и, хотя я и был достаточно впечатлен в самом начале, он нравится мне все больше и больше по мере использования и по мере того, как я узнаю о том, как он устроен внутри.
Я не эксперт в jQuery. И даже не претендую, поэтому, если встретите ошибки, смело поправляйте меня и вносите предложения по улучшению (поправлять и присылать поправки нужно автору статьи, а не перевода — зам. пер.).
Я называю себя «среднестатистическим» пользователем jQuery и я думаю, что всем остальным будет интересно почитать и что-нибудь почерпнуть из «фишек», «трюков» и техник, которые я освоил за последний год. Статья получилась куда длиннее, чем я предполагал изначально, так что в самом начале я привел «содержание» для более удобной навигации и возможности при желании пропустить не интересующие моменты.
Далее все написано от имени автора оригинальной статьи.
Введение
jQuery прекрасен. Я использую его вот уже почти год и, хотя я и был достаточно впечатлен в самом начале, он нравится мне все больше и больше по мере использования и по мере того, как я узнаю о том, как он устроен внутри.
Я не эксперт в jQuery. И даже не претендую, поэтому, если встретите ошибки, смело поправляйте меня и вносите предложения по улучшению (поправлять и присылать поправки нужно автору статьи, а не перевода — зам. пер.).
Я называю себя «среднестатистическим» пользователем jQuery и я думаю, что всем остальным будет интересно почитать и что-нибудь почерпнуть из «фишек», «трюков» и техник, которые я освоил за последний год. Статья получилась куда длиннее, чем я предполагал изначально, так что в самом начале я привел «содержание» для более удобной навигации и возможности при желании пропустить не интересующие моменты.
Содержание
- Загружайте фреймворк с Google Code
- Используйте «шпаргалку» (cheat sheet)
- Соединяйте все ваши скрипты и уменьшайте размер файла
- Используйте возможности Firebug для ведения логов
- Минимизируйте операции выборки в пользу кэширования
- Сводите манипуляции с DOM-деревом к минимуму
- Оборачивайте все в единый элемент, когда речь идет о любой вставке в DOM
- Используйте «id» вместо классов, где это возможно
- Задайте контекст своим селекторам
- Используйте последовательности вызовов методов с умом
- Научитесь правильно использовать анимацию
- Научитесь назначать и делегировать события
- Используйте классы для сохранения состояния
- Еще лучше — используйте встроенный в jQuery метод data() для сохранения состояния
- Пишите собственные селекторы
- Подготавливайте HTML и модифицируйте его, когда страница загружена
- Используйте «отложенную загрузку» (lazy loading) для определенного контента для выигрыша в общей скорости и преимуществ для SEO
- Используйте служебные функции jQuery
- Используйте «noconflict» для переименования глобального объекта «jquery», когда используете его с другими фреймворками
- Как узнать что картинки загружены?
- Всегда используйте последнюю версию
- Как проверить, что элемент существует?
- Добавляйте класс «JS» в элемент «html»
- Возвращайте «false» для отмены поведения по-умолчанию
- Короткая запись для события готовности документа
+176
Bluetooth в Linux
3 min
53K1. Вступление
А вы знаете, что настроить bluetooth соединение с PC на Linux совсем не сложно?
Итак, сейчас мы создадим подключение к телефону\PDA, примонтируем файловую систему телефона к оной на ПК и создадим GPRS\EDGE подключение.
+47
Почему, сидя за компом, стоит сделать перерыв
1 min
991все нижесказанное ↓ имхо
Основываясь на своем личном опыте, я могу сказать, что после того как я сел за компьютер и залез в интернет, многие мысли о том, что было бы неплохо за ним сделать, улетучиваются из моей головы очень быстро. А когда я отхожу от него, например, попить чайку, то все они сразу же вспоминаются.
Так может быть, это работает не только со мной, помешанном на компах гиком, но и с Вами? Попробуйте, может быть это спасет вам несколько минут/часов, и вы сделаете наконец то, что хотели.
Основываясь на своем личном опыте, я могу сказать, что после того как я сел за компьютер и залез в интернет, многие мысли о том, что было бы неплохо за ним сделать, улетучиваются из моей головы очень быстро. А когда я отхожу от него, например, попить чайку, то все они сразу же вспоминаются.
Так может быть, это работает не только со мной, помешанном на компах гиком, но и с Вами? Попробуйте, может быть это спасет вам несколько минут/часов, и вы сделаете наконец то, что хотели.
+87
Серия 50+ советов по оптимизации PHP кода. «За» и «против» такой оптимизации. Первые 10 советов.
6 min
21KTranslation
Это перевод первых 10-ти советов статьи по оптимизации PHP кода. На хабре есть перевод более старой версии статьи — 40 советов по оптимизации вашего PHP-кода
Я постарался не просто дополнить уже существующий перевод дополнительными советами, а внести пояснения, почему так будет быстрее, и добавил свои мысли по поводу смысла такой оптимизации, исходя их своего опыта разработки и работы в разных командах.
Пишу по частям, иначе получится очень много материала сразу.
Это моя первая статья на хабре, надеюсь она получилась интересной.
Я постарался не просто дополнить уже существующий перевод дополнительными советами, а внести пояснения, почему так будет быстрее, и добавил свои мысли по поводу смысла такой оптимизации, исходя их своего опыта разработки и работы в разных командах.
Пишу по частям, иначе получится очень много материала сразу.
Это моя первая статья на хабре, надеюсь она получилась интересной.
+44
Переходим с «палёного» софта на бесплатный
5 min
44KЗаметка была написана довольно давно, в октябре-ноябре прошлого года, так и висела неопубликованной. Прошу прощения за несколько «ненаучный» стиль.
Как-то так получилось, что иногда я пользуюсь Windows XP дома (2 лицензионных копии на двух ноутах) и Windows 2000 на работе. Кстати, на работе у нас весь софт лицензионный. Вот моему начальнику понадобился сегодня Microsoft Visio, а злые админы отказались ставить, мол, 800 баксов стоит… Это навело меня на мысли написать данный пост. Поскольку сам я программист и иногда даже пишу программы, то стараюсь всячески выступать против «палёного» ПО, заменяя его бесплатными аналогами. Специалисты и так в курсе, чем может грозить использование левого софта, а рядовому пользователю пофиг на все эти тонкости, лишь бы работало. Проблема усугубляется ещё и тем, что 99% пользователей Windows настолько привыкли использовать свои любимые Excel, Word, Photoshop, Total Commander, что это начинает походить на неизлечимую зависимость. Не всегда у всех получается от неё избавиться, но, тем не менее, прогресс есть. И вот решил я поделиться своим опытом отказа нелицензионных взломанных программ в пользу бесплатных аналогов. Здесь мы убьём сразу 2-3 зайцев: сэкономим деньги (причём много раз: не купим платный софт, не потратим кучу денег за поддержку и обновления и не заплатим возможный штраф за «левак»), уменьшим вероятность подцепить вирусы и прочую нечисть, не нарушим закон, поддержим технический прогресс (к примеру, за счёт использования более удачных альтернативных решений, улучшив тем самым конкуренцию, и в конечном итоге, качество ПО). Итак, поехали.
Как-то так получилось, что иногда я пользуюсь Windows XP дома (2 лицензионных копии на двух ноутах) и Windows 2000 на работе. Кстати, на работе у нас весь софт лицензионный. Вот моему начальнику понадобился сегодня Microsoft Visio, а злые админы отказались ставить, мол, 800 баксов стоит… Это навело меня на мысли написать данный пост. Поскольку сам я программист и иногда даже пишу программы, то стараюсь всячески выступать против «палёного» ПО, заменяя его бесплатными аналогами. Специалисты и так в курсе, чем может грозить использование левого софта, а рядовому пользователю пофиг на все эти тонкости, лишь бы работало. Проблема усугубляется ещё и тем, что 99% пользователей Windows настолько привыкли использовать свои любимые Excel, Word, Photoshop, Total Commander, что это начинает походить на неизлечимую зависимость. Не всегда у всех получается от неё избавиться, но, тем не менее, прогресс есть. И вот решил я поделиться своим опытом отказа нелицензионных взломанных программ в пользу бесплатных аналогов. Здесь мы убьём сразу 2-3 зайцев: сэкономим деньги (причём много раз: не купим платный софт, не потратим кучу денег за поддержку и обновления и не заплатим возможный штраф за «левак»), уменьшим вероятность подцепить вирусы и прочую нечисть, не нарушим закон, поддержим технический прогресс (к примеру, за счёт использования более удачных альтернативных решений, улучшив тем самым конкуренцию, и в конечном итоге, качество ПО). Итак, поехали.
+52
5 способов улучшить ваш CSS
3 min
4.4KTranslation
Практически любой человек сможет написать CSS-код, в наше время любая программа сделает это за вас. Но будет ли это хороший CSS? Далее представлены пять советов по совершенствованию вашего CSS
+59
Вертикальный скрол c краткой информацией.
1 min
2.3KКогда то давно, не помню где я читал о том, что обычный скрол можно сделать более функциональным и предлагалось ряд решений.
Мне эти идеи понравились и вот спустя много лет :)…
Предлагаю свою реализацию на javascripte. Идея в том чтобы на фоне скрола показывать эскиз всего текста, а с помощью движка скрола видимую часть текста. При таком подходе сразу видно где находится картинка, заголовок, а где параграф.
Мне эти идеи понравились и вот спустя много лет :)…
Предлагаю свою реализацию на javascripte. Идея в том чтобы на фоне скрола показывать эскиз всего текста, а с помощью движка скрола видимую часть текста. При таком подходе сразу видно где находится картинка, заголовок, а где параграф.
+85
Работа с объектами в JavaScript: теория и практика
15 min
219KВ этой статье я хочу по возможности полно и последовательно рассказать о том, что такое объект в JavaScript, каковы его возможности, какие взаимоотношения могут строиться между объектами и какие способы «родного» наследования из этого вытекают, как это все влияет на производительность и что вообще со всем этим делать :)
В статье НЕ будет ни слова про: эмуляцию традиционной класс-объектной парадигмы, синтаксический сахар, обертки и фреймворки.
Сложность материала будет нарастать от начала к концу статьи, так что для профи первые части могут показаться скучными и банальными, но дальше будет намного интереснее :)
В статье НЕ будет ни слова про: эмуляцию традиционной класс-объектной парадигмы, синтаксический сахар, обертки и фреймворки.
Сложность материала будет нарастать от начала к концу статьи, так что для профи первые части могут показаться скучными и банальными, но дальше будет намного интереснее :)
+102
Тривиальные задачи по вёрстке
4 min
60K+227
Отправка комментариев пользователей сайта вам на Jabbеr
1 min
5.9KВо время шумихи с аськой и предложениями перехода на jabber я решил разобраться: что же такое джаббер и как он мне может пригодиться кроме прямого общения.
Применение нашлось само собой – хочется получать комментарии с сайта себе в мессенжер. Этот подход оказался очень удобным и простым в реализации.
Поскольку я только начал разбираться с джаббером решил использовать готовую библиотеку для php (так как мой сайт работает на нем).
Итак, на сайте протокола xmpp (jabber) xmpp.org/software/libraries.shtml я скачал баблиотеку xmpphp (она мне понравилось больше всех своей простотой в понимании) и закачал ее на свой хост.
В функцию добавления комментария на сайте я добавил строки:
Где: джабберовский сервер — сервер через который отправляются сообщения (я указал тот же на который и приходят сообщения).
Внимание! Текст сообщения должен быть с кодировке UTF-8.
Вот собственно и все…
P.S. Спасибо за приглашение на хабр! Решил перенести свою статью из песочницы в блог.
Применение нашлось само собой – хочется получать комментарии с сайта себе в мессенжер. Этот подход оказался очень удобным и простым в реализации.
Поскольку я только начал разбираться с джаббером решил использовать готовую библиотеку для php (так как мой сайт работает на нем).
Итак, на сайте протокола xmpp (jabber) xmpp.org/software/libraries.shtml я скачал баблиотеку xmpphp (она мне понравилось больше всех своей простотой в понимании) и закачал ее на свой хост.
В функцию добавления комментария на сайте я добавил строки:
include ‘XMPPHP/XMPP.php’; $conn = new XMPPHP_XMPP('джаберовский сервер', 5222, 'логин', 'пароль', 'xmpphp', 'jabber.ru', $printlog=false, $loglevel=XMPPHP_Log::LEVEL_INFO); try { $conn->connect(); $conn->processUntil('session_start'); $conn->presence(); $conn->message('ваш джаббер', 'текст сообщения'); $conn->disconnect(); } catch(XMPPHP_Exception $e) { die($e->getMessage()); }
Где: джабберовский сервер — сервер через который отправляются сообщения (я указал тот же на который и приходят сообщения).
Внимание! Текст сообщения должен быть с кодировке UTF-8.
Вот собственно и все…
P.S. Спасибо за приглашение на хабр! Решил перенести свою статью из песочницы в блог.
+145
Проверка орфографии с помощью Google
2 min
15KИногда в проекте требуется проверить данные на предмет орфографических ошибок, не полагаясь на познания пользователя по части языков. Тут нам сможет помочь компания Google, с таким их сервисом, как проверка орфографии, используемым в Google Toolbar. Но, к сожалению, Google не предоставляет открытого API для работы с ним.
Итак, краткое описание:
Для того, чтобы проверить текст нам нужно отослать его в POST на https://google.com/tbproxy/spell?lang=ru, где для смены языка следует заменить значение параметра lang на соответствующий по ISO 3166-1 alpha-2. Текст оформляется в XML вида:
ignoredigits — считать цифры ошибками
ignoreallcaps — не проверять слова написанные капсом (подсказал pointum)
Если всё успешно, мы получаем ответ вида
error — произошла ли ошибка
charschecked — количество проверенных символов
В нем идет перечисление допущенных ошибок (теги c), их параметры:
o — начало исходного слова в тексте
l — длина этого слова
s — точность результата
В самом теге c содержатся предполагаемые варианты написания слов, разделенные символом \t.
P.S. Когда этот текст уже был написан, случайно наткнулся на статью в блоге Paul Welter, которая, в принципе, описывает тоже самое…
UPD: Пользователь wayly написал на PHP класс для проверки текста с помощью этого сервиса, скачать можно по ссылке proxysoft.ru/files/spellchecker.zip (зеркало).
UPD2: mezhevikin подсказал ajax-решение с использованием этого сервиса — orangoo.com/labs/?page_id=3
UPD3: Список поддерживаемых языков
_________
Текст подготовлен в ХабраРедакторе
Код подсвечен в Source Code Highlighter
Итак, краткое описание:
Для того, чтобы проверить текст нам нужно отослать его в POST на https://google.com/tbproxy/spell?lang=ru, где для смены языка следует заменить значение параметра lang на соответствующий по ISO 3166-1 alpha-2. Текст оформляется в XML вида:
<?xml version="1.0" encoding="UTF-8" ?><br/>
<spellrequest textalreadyclipped="0" ignoredups="0" ignoredigits="1" ignoreallcaps="1"><br/>
<text>Текст для проверки</text><br/>
</spellrequest>
ignoredups — подсветка повторовignoredigits — считать цифры ошибками
ignoreallcaps — не проверять слова написанные капсом (подсказал pointum)
Если всё успешно, мы получаем ответ вида
<?xml version="1.0" encoding="UTF-8"?><br><spellresult error="0" clipped="0" charschecked="272"><br> <c o="27" l="13" s="0"></c><br> <c o="73" l="11" s="1">орфографии и орфографии</c><br> <c o="190" l="11" s="1">пользоваться</c><br> <c o="226" l="13" s="0">пред оставляет пред-оставляет</c><br></spellresult>
Атрибуты тега spellresult:error — произошла ли ошибка
charschecked — количество проверенных символов
В нем идет перечисление допущенных ошибок (теги c), их параметры:
o — начало исходного слова в тексте
l — длина этого слова
s — точность результата
В самом теге c содержатся предполагаемые варианты написания слов, разделенные символом \t.
P.S. Когда этот текст уже был написан, случайно наткнулся на статью в блоге Paul Welter, которая, в принципе, описывает тоже самое…
UPD: Пользователь wayly написал на PHP класс для проверки текста с помощью этого сервиса, скачать можно по ссылке proxysoft.ru/files/spellchecker.zip (зеркало).
UPD2: mezhevikin подсказал ajax-решение с использованием этого сервиса — orangoo.com/labs/?page_id=3
UPD3: Список поддерживаемых языков
_________
Текст подготовлен в ХабраРедакторе
Код подсвечен в Source Code Highlighter
+84
Information
- Rating
- Does not participate
- Location
- Москва, Москва и Московская обл., Россия
- Date of birth
- Registered
- Activity