Как стать автором
Обновить
23
0
Oleksiy Chechel @mirrr

Golang/JS developer

Отправить сообщение

Imperavi: удобный и действительно красивый JS WYSIWYG редактор

Время на прочтение1 мин
Количество просмотров22K
В продолжение темы о красивой и удобной JS визуализации (http://habrahabr.ru/blogs/javascript/124899/) хочу рассказать вам о WYSIWYG редакторе, на который сегодня случайно наткнулся.

Вы наверное часто используете различные WYSIWYG редакторы в ваших проектах. Я их тоже часто использую, так уж получается, что они очень нравятся секретаршам и т.д. нашим пользователям.

Таких редакторов существуют десятки, но все они мне почему-то не нравилисись: то выглядит уж очень топорно, то работает совершенно криво. В конце концов я остановился на TinyMCE. Он хоть и ужасен на вид, но рабоет стабильно.

И вот сегодня я совершенно случано наткнулся на редактор, который мне полностью подходит:
  • работает стабильно
  • выглядит очень стильно
  • написан на jQuery

Имя этому чуду – Imperavi.
Попробуйте сами и думаю, что вам понравится.

Скриншот:
image

UPD
Более новая версия редактора: http://imperavi.ru/redactor/.
Всего голосов 148: ↑124 и ↓24+100
Комментарии116

Prolog — удивительный язык программирования

Время на прочтение10 мин
Количество просмотров206K
— Чем же он удивительный? Я знаю пару десятков языков и для меня не проблема изучить еще один новый, я просто уже не вижу необходимости.

Пролог — уникален. Это единственный язык представляющий парадигму декларативного программирования; это язык, который имеет сотни различных имплементаций, но они все равно называются Prolog, добавляя лишь префиксы и суффиксы к названию; это живой язык в котором не происходит никаких существенных изменений более 20 лет; это, наверное, единственный настолько популярный язык программирования, который не имеет применения в реальном программировании. Почему же Prolog?

Пролог — уникален по своей природе, он появился благодаря счастливому совпадению (таинственному устройству мира). Когда-то в 60-х годах очень бурно развивалась теория автоматического доказательства теорем и Робинсоном был предложен алгоритм резолюций, который позволял доказать любую верную теорему (вывести из аксиом) за конечное время (за какое не известно). Как оказалось позже, это наилучшее решение общей задачи, невозможно доказать теорему за ограниченное число операций. Простыми словами, алгоритм представляет собой обход (в общем случае бесконечного) графа в ширину, естественно, что предсказуемость работы алгоритма практически равно 0, соответственно для Языка Программирования — это абсолютно не подходит. И в этот момент Кальмэроу нашел блестящее сужение задачи, благодаря которому доказательство некоторых теорем выглядело как процедурное исполнение программы. Стоит отметить, что класс доказуемых теорем достаточно широк и очень хорошо применим для класса программируемых задач. Вот так в 1972 появился Prolog.

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

Читать дальше →
Всего голосов 101: ↑93 и ↓8+85
Комментарии116

Семантика для CSS селекторов и комбинаторов

Время на прочтение5 мин
Количество просмотров47K
Синтаксис CSS несложен, и для понимания его совсем не нужно иметь степень доктора в области IT. Однако, это один из немногих популярных языков, который не является логичным в самом прямом смысле этого слова. В отличие от других языков веб-программирования, таких как JavaScript и PHP, в CSS проблемы не решаются с помощью обычной логики. Алгоритмы типа «если X, то сделать Y, в противном случае сделать Z» или «выбрать все Y, затем сделать с ними X» не могут быть осуществлены в таком языке, как CSS. Проще говоря, это язык, созданный для оформления, язык для дизайнеров, а не девелоперов. Некоторые из опытных программистов, с которыми я работал, именно по этой причине тратили много усилий на то, чтобы освоить CSS.

Обучение CSS начинается с классов и ID, а также с использования . и # для непосредственного обозначения элементов. Этого достаточно чтобы построить полнофункциональный веб-сайт, но это не достаточно гибкое решение в случае полной смены дизайна. Давайте взглянем на альтернативный подход к управлению такими труднодоступными элементами.
Читать дальше →
Всего голосов 74: ↑67 и ↓7+60
Комментарии47

Сохраняем безопасно свои данные: p2p файловая система с шифрованием в облаке

Время на прочтение5 мин
Количество просмотров5.7K
Сегодня идея облачного хранения файлов популярна у всех. О данной технологии пишут в интернете, говорят по телевидению. Однако не все готовы доверять свои личные данные чужим серверам и чужим администраторам сервера, ведь как бы не шифровали (проприентарные) программы, все равно возможно существует возможность прочесть ваши данные. Поэтому для безопасного хранения личных данных стоит задуматься об использования открытых технологий с шифрованием.

Для шифрования была выбрана распределенная файловая система Tahoe-Lafs, построенная на технологии p2p. Достоинство данной технологии, что файлы шифруются и записываются на ноды в виде кусочков (подобно bittorrent). А сохранять данные будем в программу wuala (облачную проприентарную файловую систему, аналог dropbox).
Читать дальше →
Всего голосов 28: ↑23 и ↓5+18
Комментарии22

Основы SQL на примере задачи

Время на прочтение6 мин
Количество просмотров685K
В этом руководстве мы рассмотрим основные sql команды на примере небольшой задачи. При прочтении желательно сидеть за консолью mysql и вводить все запросы для большей наглядности.

Постановка задачи


Дана база данных, в ней 3 таблицы следующего вида:




table1: user_id (INT(5), PRIMARY KEY), username (VARCHAR(50), INDEX)
table2: phone_id (INT(5), PRIMARY KEY), user_id (INT(5), INDEX), phone_number (INT(10), INDEX)
table3: room_id (INT(5), PRIMARY KEY), phone_id (INT(5), INDEX), room_number(INT(4) INDEX)

Необходимо выбрать номер комнаты в которой сидит пользователь с ником qux…
Читать дальше →
Всего голосов 72: ↑42 и ↓30+12
Комментарии42

IPO for dummies. Часть VI: сложности выбора — два Lamborghini Gallardo или один Aventador?

Время на прочтение6 мин
Количество просмотров2.5K
Начало и оглавление см. в первой части.

Итак, моя компания вышла на IPO. Теперь я, как основатель, могу наконец-то сбросить свои акции и купить Lamborghini Gallardo! Да, я помню, что их придётся продавать «ниже рынка», но уж очень хочется прокатить Тамарку с пятого этажа на красивой спортивной машинке…

Ты весь бизнес затеял ради наживы, что ли?

(Возмущённо) Ради чего затеял — моё дело. Продам акции, куплю тачку-яхту-остров, буду наслаждаться, а дальше хоть трава не расти!

«Трава не расти», говоришь? Я правильно понимаю, что ты, основатель, хочешь выйти из бизнеса и забросить его?

У меня для тебя неприятная новость.
Читать дальше →
Всего голосов 159: ↑151 и ↓8+143
Комментарии30

Полезные советы проектировщикам интерфейсов

Время на прочтение3 мин
Количество просмотров5.4K

Уделяйте достаточное внимание шаблонам


Люди тратят большое количество времени, используя различные интерфейсы (Facebook, Google, Windows, Mac OS и т.д.). В них уже могут быть представлены решения проблем, с которыми вы сталкиваетесь при проектировании. Поэтому не стоит изобретать колесо. Используя привычные шаблоны интерфейсов вы поможете пользователям почувствовать себя как дома.
image
CoTweet имеет привычный по почтовым клиентам шаблон.
Читать дальше →
Всего голосов 130: ↑100 и ↓30+70
Комментарии95

Я люблю UX дизайн

Время на прочтение1 мин
Количество просмотров4.3K
Я думаю, данный ролик достоин быть просмотренным пользователями Хабрахабра.


Хорошего настроения и слава всем UX дизайнерам!
Всего голосов 25: ↑12 и ↓13-1
Комментарии17

Популярные пароли от аккаунтов Antichat.ru

Время на прочтение1 мин
Количество просмотров29K
Известный эксперт по российскому «хакерскому» андеграунду Брайан Кребс получил файл с профилями, личными сообщениями и хэшами паролей от 41 037 аккаунтов форума Antichat.ru за последние десять лет до июня 2010 года, когда форум был взломан. Брайан решил проверить хэши на прочность, используя видеокарту EVGA GTX 295 и программу для брутфорса Hashcat под CUDA. За 18 дней удалось подобрать 44% всех паролей.
Читать дальше →
Всего голосов 97: ↑77 и ↓20+57
Комментарии93

Как рядовой пользователь воевал за соблюдение закона «О персональных данных»

Время на прочтение8 мин
Количество просмотров17K
Сегодня, в блоге компании Pravo.ru появился любопытный топик о том, как надо вести себя компаниям, собравшимся открывать Интернет-ресурсы, которым придётся работать с персональными данными клиентов. Поэтому, по просьбам трудящихся, выложу свою историю со стороны рядового пользователя, который решил проверить свои права в деле.

Вообще не секрет, что многие технологические новинки до России доходят с изрядной задержкой. Это касается почти всего — от мобильных гаджетов и компьютерных игр до автомобилей. Причины таких задержек самые разные, но выражаются они не только в нехватке этих самых новинок, но и медленной реакции законодательства на изменения технического прогресса. Касательно темы поста, это выражается в законах, регламентирующих порядок обработки персональных данных пользователя. Заграницей, в государствах Западной Европы, Северной Америки и ряда других развитых стран мира законы в разной степени регулируют обработку данных с середины 80-х, начала 90-х годов, но в России подвижки по этому вопросу начались только на рубеже XX-XXI века, что вылилось в принятие федерального закона «О персональных данных». В чём его значение для рядового гражданина? Значение в том, что он способен защитить права и свободы человека при обработке его личных данных.
Читать дальше →
Всего голосов 102: ↑88 и ↓14+74
Комментарии50

Пакетная обработка изображений в GIMP

Время на прочтение4 мин
Количество просмотров28K
Время от времени возникает необходимость выложить в сеть фотоальбом или пакет отсканированных документов. В большинстве случаев изображения предварительно нужно уменьшить, а иногда и произвести дополнительную обработку, добавить надписи. И вот наступил момент, когда выполнять однотипные операции стало совсем лениво. Вспоминаем про замечательные средства автоматизации в замечательном и бесплатном редакторе GIMP.

Допустим, у нас есть куча фотографий разных размеров, с разным соотношением сторон и сохранённых в разных форматах. В общем, тяжёлый случай. Нам нужно весь этот зоопарк выровнять по размерам, учитывая пропорции, и сохранить в JPEG с заданным качеством. Да, и пусть нам иногда захочется задавать размеры не в пикселях, а процентах. Ну и пусть уже тогда захочется файлы выбирать по маске, типа «C:\images\img_01*.jpg».

Садимся, и калякаем на Script-Fu (доступный по умолчанию в GIMP, язык) свой
первый сценарий
Всего голосов 41: ↑40 и ↓1+39
Комментарии72

Какие единицы измерения выбирать при верстке

Время на прочтение3 мин
Количество просмотров25K
В прошлой моей статье я затронул единицы измерения и тут же в комментариях начались на эту тему споры и обсуждения, поэтому я решил вынести этот вопрос в отдельный пост. Вот теперь и обсудим :)
Читать дальше →
Всего голосов 105: ↑94 и ↓11+83
Комментарии71

Поговорим о margin, он же маргин( часть 1-я )

Время на прочтение4 мин
Количество просмотров59K
Видя, когда новички верстая страницу за страницей, допускают кучу ошибок, делая отступы маргин и до конца не понимая, как этот самый маргин на самом деле работает, я решил написать данную статью.

Начинающим верстальщикам она точно будет полезна, а вот профессионалам — сомневаюсь, так как человек занимающийся не первый год версткой уже обязан «вызубрить» наизусть все особенности данного свойства.

В этой части статьи я напишу о вертикальном маргине. О горизонтальном поговорим в следующей части.
Читать дальше →
Всего голосов 169: ↑142 и ↓27+115
Комментарии163

Одна простая вещь

Время на прочтение1 мин
Количество просмотров3.7K
Если вы хотите защитить важную директорию от удаления вследствие небрежного обращения с командой rm -rf *, то создайте файл с именем -i, это заставит rm запросить подтверждение:

touch ~/important-directory/-i
Всего голосов 195: ↑138 и ↓57+81
Комментарии36

Вышел плагин jQuery Color версии 2 бета 1

Время на прочтение2 мин
Количество просмотров4.9K
Ранее, в 2007 году, мы выпустили jQuery Color Plugin, и той поры он обеспечивал для вас возможности анимации цвета. Сейчас мы подготавливаем вторую версию этого плагина, в которой добавится API, RGBA, HSLA и ряд других возможностей. Настало время бета-версии! Репозиторий этого плагина находится по адресу github.com/jquery/jquery-color. А на code.jquery.com также доступны две версии плагина — несжатая и сжатая минификатором.

Обзор новых возможностей

RGBA


Теперь мы поддерживаем формат RGBA у значений цвета. В тех браузерах, которые RGBA не поддерживают, ближайшее к элементу значение backgroundColor станет использоваться при вычислении промежуточной аппроксимации цвета. Хотя это не «настоящая» альфа-прозрачность, этот способ, по меньшей мере, обеспечит иллюзию альфы при взаимодействии с одноцветным фоном. Вот как выглядят браузеры Opera 10, Chrome 10, Firefox 3.6 и IE 6, когда в них запущен вон тот демонстрационный пример альфа-наложения:

[Opera 10, Chrome 10, Firefox 3.6 и IE 6 демонстрируют альфа-наложение]

HSLA


Также мы теперь поддерживаем указание HSLA-значений цвета во всех браузерах, за исключением альфы, в поддержке которой применяем вышеописанные техники.

API, удобный в употреблении


Вместо простой группы приватных методов-утилит теперь используется вызов $.Color(), создающий новый объект Color. Новый объект Color можно проинициализировать несколькими различными способами: именем цвета, шестнадцатиричным кодом цвета, CSS-подобным значением RGBA или HSLA, массивом RGBA-значений или объектом с цветовым компонентом. Теперь есть и методы-помощники для каждого из цветовых компонентов, наподобие .red() и .hue(), позволяющие считать или задать его значение. В сочетании с функциями-помощниками (например, .toRgbString(), .transition() и .is()), объект $.Color отныне способен обеспечить все ваши цветовые нужды. Глядите README по адресу github.com/jquery/jquery-color там обзор всех вновь появившихся функций. Теперь jQuery.Color пригоден не только для анимации простых цветов: его API вы можете отныне использовать для сложных цветовых вычислений и анимаций!

Немедленные примеры:
Читать дальше →
Всего голосов 43: ↑38 и ↓5+33
Комментарии11

JavaFX 2.0 beta — пишем клиентское приложение на Java. На примере меню в Mac-стиле

Время на прочтение8 мин
Количество просмотров26K
imageНа прошлогодней конференции JavaOne в Сан-Франциско компания Oracle анонсировала технологию JavaFX 2.0. А несколько дней назад мир увидел Java FX 2.0 Beta. JavaFX — это естественный шаг в эволюционном развитии клиентской платформы Java. Технология обеспечивает разработчиков кросс-платформенным инструментом для создания функционально насыщенных и привлекательных приложений.
Встроенная в технологию Java, JavaFX предлагает богатый графический и медийный API с поддержкой аппаратных графических ускорителей и большой выбор новых компонент: элементов управления, графиков, мультимедиа и встроенного браузера.
Из очевидных плюсов JavaFX 2.0 — возможность создания приложений без изучения новых технологий, применение привычных средств разработки и, конечно, все традиционные плюсы Java. Для корпораций — использование технологии Java на серверной и клиентской сторонах снизит интеграционные риски.
Из минусов: к сожалению, бета версия вышла только для Windows, но к релизу состав поддерживаемых платформ расширится.

Но лучше один раз увидеть, чем 100 раз услышать.
Давайте попробуем вместе написать панель задач с кнопками в стиле Mac
Читать дальше →
Всего голосов 50: ↑41 и ↓9+32
Комментарии18

JavaScript F.A.Q: Часть 1

Время на прочтение15 мин
Количество просмотров74K
image

Несколько дней назад мы с TheShock создали топик в котором собирали ваши вопросы, касательно JavaScript (архитектура, фрэймворки, проблемы). Настало время ответить на них. Мы получили очень много вопросов, как в комментариях так и по email. Эта первая часть ответов — те вопросы, которые достались мне.
Читать дальше →
Всего голосов 232: ↑227 и ↓5+222
Комментарии50

Установка и настройка rtorrent+rutorrent+nginx+php-fpm в Arch Linux

Время на прочтение5 мин
Количество просмотров18K

Предыстория


Для работы с торрентами я достаточно долго использовал ktorrent. Сей клиент мои потребности в удобном управлении закачками удовлетворял полностью, пока я не заметил, что на популярных торрентах загрузка процессора доходила до 50% (а с uTP — ещё больше), а потребление памяти в и без того жирном KDE стало неприятно бросаться в глаза.

Было решено сменить KDE на xfce (это отдельная история), а программу для торрентов подобрать с хорошим функционалом и удобным управлением. Перепробовав transmission, deluge и rtorrent, я остановлися на последнем.

О том, как настроить rtorrent+rutorrent+nginx+php-fpm, и будет под катом.
Читать дальше →
Всего голосов 62: ↑50 и ↓12+38
Комментарии50

Gnome 3 — конец близок?

Время на прочтение5 мин
Количество просмотров42K
Как-то один мой знакомый обречённо рассказывал, что вскоре будет подыскивать другой дистрибутив для работы. По его словам, разработчики Ubuntu собирались провести смелый эксперимент по замене классического gnome на интерфейс Unity. Сам я на этот счёт не особо волновался, так-как пересел с Ubuntu на Fedora уже довольно давно. Но, на всякий случай, порылся в интернете — узнал, что ждёт мой дистрибутив. Как выяснилось, Fedora 15 должна была основываться на долгожданном Gnome 3.

Читать дальше →
Всего голосов 112: ↑91 и ↓21+70
Комментарии192

Улучшаем GNOME 3

Время на прочтение2 мин
Количество просмотров98K
Привет, Хабралюди!

image

После обновления своего дистрибутива (Russian Fedora) я столкнулся с большим количеством проблем в GNOME 3. В этой статье я постараюсь описать все, собранные мной, методы их решения. Кому интересно, под кат!
Читать дальше →
Всего голосов 77: ↑60 и ↓17+43
Комментарии115

Информация

В рейтинге
Не участвует
Откуда
Киев, Киевская обл., Украина
Дата рождения
Зарегистрирован
Активность