Не знаю зачем мне это пригодится, но очень вдруг захотелось иметь два указателя мыши в Linux, ведь две «мыши» у меня есть — собственно беспроводная мышь и тач-пад. Идея пришла в тот момент, когда я подключил вторую мышь, т.е. третье устройство управления указателем.
Сергей Семенов @phgrey
webdev — универсал: front, back, dba, devops
В поисках идеального css-фреймворка. Требования, реализация, maxmertkit
14 min
70K![](https://habrastorage.org/getpro/habr/post_images/0df/82f/23c/0df82f23ce80ab5113eefe00199f935e.jpg)
Я обожаю twitter bootstrap. Прост, местами логичен, достаточно красив, подходит для быстрого прототипирования веб-интерфейсов. Но этого оказалось недостаточно. Взяв twitter bootstrap в большой проект, мне пришлось целиком его разобрать и переосмыслить css-фреймворки как боевые единицы в веб-проектах. В результате переосмысления родились требования к любому css-фреймворку, удобному как верстальщику, так и frontent-разработчику.
+190
20 правил, которым стоит следовать, когда начинаете работать с EXT JS & Sencha Touch
7 min
31K![](https://habrastorage.org/storage1/6cb2a125/dce8e22b/112d8eca/9f0744bd.png)
Эта статья — перевод статьи из блога www.swarmonline.com с небольшими моими дополнениями
При изучении новых технологий разработчики часто делают те же ошибки, что и другие люди и следуют тем же плохим техникам.
В этой статье мы собрали список некоторых из вещей, которые рекомендуем вам делать, когда вы начинаете работать с Ext JS (даже, если вы ветеран разработки, всё равно можете узнать что то новое!). Эти вещи прошли через наш опыт, через просмотр и ответы на одни и те же вопросы на форумах. Это наиболее общие из лучших техник программирования.
Надеюсь, это поможет вам перепрыгнуть несколько ступеней в изучении Ext JS и поможет избежать стандартных ошибок.
+30
Функциональное программирование на Javascript
15 min
128KTutorial
Translation
![](https://habrastorage.org/storage2/693/f11/156/693f11156ce1b06d8c2a34e630432622.jpg)
Краткое содержание:
Возьмем немного функций высшего порядка, добавим частичное применение функций, приправим fold с map-ом и получим Javascript DSL для работы с DOM.
Человеческим языком:
Простое и понятное введение в функциональное программирование на чистом и понятном Javascript.
В отличие от «Через тернии к Haskell» все разжевано (возможно даже слишком) и разложено по полочкам.
Прочтение статьи развоплотит миф о неприменимости ФП в реальной жизни. Вы сможете смотреть на решение одной и той же задачи с разных точек зрения. Прямо как на картинке.
+105
Как я делал самый популярный сайт о выборах
10 min
15K![Статистика President2012.ru](https://habrastorage.org/getpro/habr/post_images/6db/d15/05e/6dbd1505eead412d9f1277232e6deaa7.png)
Интересных моментов в процессе работы над проектом набралось столько, что держать в себе эти знания я не могу, и хочу поделится с вами. Я понимаю, что многое, о чем я сейчас собираюсь рассказать, уже описано качественнее в специализированных разделах, и ничего нового я не открою. Моя задача скорее в том, чтобы через отдельные нюансы передать ту атмосферу, в которой проходила работа над проектом. А так же в миллионный раз с помощью success story показать таким же как я людям, что всё возможно и всё в их руках.
Кому это может быть интересно? Всем, кто так или иначе занимается созданием тематичных веб-сайтов и рассчитывает работать с высоконагруженными проектами.
+232
HTML KickStart — еще один способ быстро создать интерфейс своего веб-приложения
1 min
27K![](https://habrastorage.org/storage2/929/36e/b1b/92936eb1baef0c1082b55ceb220e1f12.png)
+133
Переписываем проект с Zend Framework на Rails
9 min
7.8KОколо пяти месяцев назад я завязал с zend framework и пересел на рельсы. Тогда же начал переписывать свой проект www.okinfo.ru. Сейчас он уже закончен и sloccount показал что количество строк в проекте уменьшилось с 15000 до 4000. Мои знакомые php разработчики попросили success story и в итоге родилась эта статья. В ней я опишу как оно было, а так же немного расскажу о своем переходе на ruby.
+132
Как на самом деле работает мозг
4 min
98K![](https://habrastorage.org/getpro/megamozg/post_images/f5f/2b0/7b9/f5f2b07b9d903b4a138e5a87da7bec02.jpg)
Прежде всего, необходимо понять вот что:
+232
Лайфхаки в веб-разработке
3 min
4.1K![Upgrade your Life](https://habrastorage.org/storage2/426/f98/5b7/426f985b74ceb5023c01272276af43db.jpg)
Ссылки открытия файлов в IDE
Это облегчит вам поиск нужного файла.
Вы сможете создавать ссылки на код прямо на странице ошибки. Или в журнале ошибок.
Сделайте ссылки в dev панели на класс контроллера и файл шаблона (или что там у вас?)
Клик на такую ссылку будет переносить вас в соответствующий файл открытой IDE.
+22
5 способов, которыми игры пытаются вызвать зависимость
10 min
189KTranslation
Итак, в новостях снова пишут, что кто-то еще умер из-за игромании. Да, опять Корея.
Какого ...? послушайте, я не пытаюсь доказать что видео игры — это героин. Я полностью понимаю, что в данном случае у жертвы было много проблем в жизни. Но, половина из вас знает что World of Warcraft затягивает и что доктора считают игровую зависимость серьёзной проблемой. А вопрос вот в чем: может быть какие-то игры намеренно разрабатывались, чтобы заставлять вас играть в них, даже если вы не получаете от этого удовольствия?
Какого ...? послушайте, я не пытаюсь доказать что видео игры — это героин. Я полностью понимаю, что в данном случае у жертвы было много проблем в жизни. Но, половина из вас знает что World of Warcraft затягивает и что доктора считают игровую зависимость серьёзной проблемой. А вопрос вот в чем: может быть какие-то игры намеренно разрабатывались, чтобы заставлять вас играть в них, даже если вы не получаете от этого удовольствия?
+270
Улучшаем юзабилити за 5 минут
4 min
7.3KTutorial
Translation
В этой блогозаписи я намерена поделиться несколькими такими советами по увеличению юзабилити сайта, каждый из которых очень лёгок в реализации. Не все они кросс-браузерны, но всё равно они «глазурь на тортике»: читатель и не заметит, что их нет.
Мой излюбленный совет. Когда стиль кнопки задаётся в CSS, или когда для отображения необычной кнопки используется рисунок (либо как фон, либо как элемент<img />), то кнопка не реагирует на нажатие во всех или в некоторых браузерах (зависит от ситуации). Вот какой простой уловкою вы можете дать знать посетителю сайта, что он и впрямь нажал на нечто нажимаемое:
Этим кодом кнопка смещается на 1 пиксел направо и на 1 пиксел вниз, когда её нажимают. Испробуйте: выглядит весьма убедительно.
Есть другие, не менее быстрые варианты: придать границе свойство inset, указать свойству text-indent значение 1px, изменить направление градиентного фона (что можно сделать быстро, если для этого не придётся прибегнуть ко графическому редактору, то есть еслигде-то ещё на сайте используется готовый перевёрнутый градиент), или комбинация нескольких из них.
1. Отображайте нажатия кнопок и кнопкоподобных ссылок
Мой излюбленный совет. Когда стиль кнопки задаётся в CSS, или когда для отображения необычной кнопки используется рисунок (либо как фон, либо как элемент
.mybutton:active {
position: relative;
top: 1px;
left: 1px;
}
Этим кодом кнопка смещается на 1 пиксел направо и на 1 пиксел вниз, когда её нажимают. Испробуйте: выглядит весьма убедительно.
Есть другие, не менее быстрые варианты: придать границе свойство inset, указать свойству text-indent значение 1px, изменить направление градиентного фона (что можно сделать быстро, если для этого не придётся прибегнуть ко графическому редактору, то есть если
2. Плавные переходы (CSS3 transitions)
+152
Node.js демон для FreeBSD: forever + rc.d
3 min
10KВ процессе работы над проектом с использованием Node.js в качестве серверсайда, возникла задача запуска JS скрипта в качестве сервиса, со всем плюшками типа start, stop, restart. По этой теме в принципе уже достаточно информации, но она в основном сводится к использованию Monit + Init под линуксом, либо кратких советов типа «use nodemon, Luke».
В моём случае в качестве продакшн-сервера была машина на FreeBSD. В качестве утилиты запускающей JS файл как процесс мне приглянулся forever. Эта штука, в отличии от nodemon, умеет следить за запущенными под ней процессами и поднимать их при падении без ожидания изменения в исходниках скрипта, что очень удобно именно на продакшене. К тому же forever умеет показывать текущий список запущеных процессов, с отображением их аптайма, ну и позволяет останавливать/перезапускать процессы по имени или индексу.
Недолго думая, был написан rc.d скрипт:
В моём случае в качестве продакшн-сервера была машина на FreeBSD. В качестве утилиты запускающей JS файл как процесс мне приглянулся forever. Эта штука, в отличии от nodemon, умеет следить за запущенными под ней процессами и поднимать их при падении без ожидания изменения в исходниках скрипта, что очень удобно именно на продакшене. К тому же forever умеет показывать текущий список запущеных процессов, с отображением их аптайма, ну и позволяет останавливать/перезапускать процессы по имени или индексу.
Недолго думая, был написан rc.d скрипт:
+15
10 основных ошибок в попытке изменить привычки и как их исправить
2 min
17KНедавно натолкнулся на хорошую и краткую презентацию по GTD от Persuasive Technology Lab (Stanford). Эта тематика как и любому гику мне близка и интересна, книг было прочтено много, опыт работы есть уже значительный, в итоге выработался некий концепт того, как я считаю правильно не только работать, но менять свои привычки, который сильно пересекается с тем что я прочитал в презентации. Далее перечислены ошибки, которые мы обычно совершаем в попытке изменить свое поведение, привычки и жирным выделено их решение. На мой взгляд этот список полезен и при решении любых других задач.
1. Опираться на силу воли для долгосрочных изменений.
Представьте что силы воли просто нет. Это первый шаг к лучшему будущему.
2. Планировать и предпринимать большие шаги и задачи, вместо маленьких.
Успешно выполняйте небольшие задачи — одну за другой.
1. Опираться на силу воли для долгосрочных изменений.
Представьте что силы воли просто нет. Это первый шаг к лучшему будущему.
2. Планировать и предпринимать большие шаги и задачи, вместо маленьких.
Успешно выполняйте небольшие задачи — одну за другой.
+36
Интегрируем Copy-Paste-Detection в Xcode, и не только
4 min
4.8K![](https://habrastorage.org/storage2/0a3/410/273/0a341027318870faab85d5b110b2d94e.png)
+21
Интересный багфикс, или поломай скайп полностью
2 min
9.6KПосле недавней статьи все наверное стали (чаще) использовать теги для «пущей убедительности». ну например
ну или более убедительный
ну и вот, во что это вылилось:
![](https://habrastorage.org/storage2/86e/9bf/ea0/86e9bfea082b37b417caeb0bd7b042f4.png)
ещё не догадались в чём дело?
<font color="#FF0000">НЕ забудь деньги!</font>
ну или более убедительный
<font size="42">НЕ забудь деньги!</font>
ну и вот, во что это вылилось:
![](https://habrastorage.org/storage2/86e/9bf/ea0/86e9bfea082b37b417caeb0bd7b042f4.png)
ещё не догадались в чём дело?
+100
Рейтинг фантастических романов, или Я сделаю свой «IMDB для книг», с преферансом и библиотекаршами
8 min
7.6KДолго выбирал между «Алгоритмами», «Читальным залом» и «Я пиарюсь», в итоге остановился на Data Mining.
Эта история началась в конце октября, когда я очередной раз пытался выбрать, что бы мне почитать. Лично я с собой в отпуск/в дорогу беру что-нибудь из фантастики (как, думаю, и большинство присутствующих), причем категорически не люблю всякий модный новодел.
И вот, терзаясь муками выбора, я забил в поиск «IMDB for books» и… не нашел ничего пристойного. Весь интернет забит рекомендательными сервисами для книг, и все они выдают полную чушь. Вот, например, топ имхонета для раздела «Самая лучшая фантастика и фэнтези»:
Эээ… Это совсем не то, что я ожидал увидеть на первых местах в рейтинге фантастики. «Мы пойдём другим путём», — подумал я. Отказавшись от идеи найти нормальный читательский рейтинг, я просто пошёл в Вики, нашёл список лауреатов премий Хьюго и Небьюла и выбрал пару-тройку книг — как, собственно, я всегда раньше и делал.
«А не замутить ли мне свой рейтинг книг, взяв за основу престижные премии?» — внезапно подумал я. И замутил. Знакомьтесь: top-books.info
Эта история началась в конце октября, когда я очередной раз пытался выбрать, что бы мне почитать. Лично я с собой в отпуск/в дорогу беру что-нибудь из фантастики (как, думаю, и большинство присутствующих), причем категорически не люблю всякий модный новодел.
И вот, терзаясь муками выбора, я забил в поиск «IMDB for books» и… не нашел ничего пристойного. Весь интернет забит рекомендательными сервисами для книг, и все они выдают полную чушь. Вот, например, топ имхонета для раздела «Самая лучшая фантастика и фэнтези»:
1. Мастер и Маргарита. Михаил Булгаков, 1940 год
2. Цветы для Элджернона (рассказ). Дэниел Киз, 1959 год
3. Цветы для Элджернона. Дэниел Киз, 1966 год
4. Битва Королей. Джордж Мартин, 1998 год
5. Рыцарь Ордена: Клинки у трона. Сергей Садов, 2000 год
6. Голубятня в Орехове. Владислав Крапивин, 1983 год
Эээ… Это совсем не то, что я ожидал увидеть на первых местах в рейтинге фантастики. «Мы пойдём другим путём», — подумал я. Отказавшись от идеи найти нормальный читательский рейтинг, я просто пошёл в Вики, нашёл список лауреатов премий Хьюго и Небьюла и выбрал пару-тройку книг — как, собственно, я всегда раньше и делал.
«А не замутить ли мне свой рейтинг книг, взяв за основу престижные премии?» — внезапно подумал я. И замутил. Знакомьтесь: top-books.info
+67
Apache 2 под наблюдением. Мониторинг загрузки системы веб-сервером
5 min
25KApache 2 под наблюдением
Вступление
Уже написано немало постов на просторах интернета, о мониторинге веб-сервера Apache. При вводе такой фразы, как «мониторинг нагрузки apache» в строке поиска Google, результаты поиска указывают на полезнейший модуль mod_status. А также о еще большей полезности этого модуля в сочетании с perl-расширениями. А если еще и немного пропатчить эти perl-расширения — то вообще супер система получается. Но настроив такую систему — системный администратор на этом, как правило, не останавливается, ему уже необходимо история нагрузки по серверу в целом, потом по каждому хосту, а далее и с точностью до скрипта. И чтоб потом сравнить можно было, а как раньше было, а как теперь нагрузка распределяется.
И вот здесь на помощь может прийти модуль для веб-сервера Apache — mod_performance.
+38
Profiling PHP Applications With xdebug
8 min
41KTranslation
Добро пожаловать в третью статью о xdebug. Уже сейчас вы должны были попробовать xdebug, если нет, сделайте это сегодня ;-).
В первой статье рассказывалось о том, как установить и настроить xdebug, описывались некоторые простейшие возможности, такие как улучшение вывода функции var_dump() или вывод трассировки стека вызовов при получении сообщения об ошибке. Во второй части мы рассмотрели такую возможность xdebug как трассировку. Трассировка содержит все вызовы функций и методов в программе, время запуска, опционально размер памяти, передаваемые и возвращаемые параметры. Лог трассировки может помочь вам понять пути выполнения сложной программы. Вместо того чтобы вставлять отладочный код внутрь программы, вы включаете или выключаете трассировку в тем места где нужно, а потом используете утилиты подобные grep или собственно написанные приложения на PHP для анализа лог файла.
В первой статье рассказывалось о том, как установить и настроить xdebug, описывались некоторые простейшие возможности, такие как улучшение вывода функции var_dump() или вывод трассировки стека вызовов при получении сообщения об ошибке. Во второй части мы рассмотрели такую возможность xdebug как трассировку. Трассировка содержит все вызовы функций и методов в программе, время запуска, опционально размер памяти, передаваемые и возвращаемые параметры. Лог трассировки может помочь вам понять пути выполнения сложной программы. Вместо того чтобы вставлять отладочный код внутрь программы, вы включаете или выключаете трассировку в тем места где нужно, а потом используете утилиты подобные grep или собственно написанные приложения на PHP для анализа лог файла.
+23
Простой способ узнать, кто добавил твой пост в избранное
1 min
19KМикропост о сабже
Автору поста иногда интересно узнать, кто же добавил его пост в избранное или кому он смог помочь в той или иной проблеме. Согласитесь, интересно же, раз не дают узнать кто ставил +1 или -1. Когда я задавал об этом вопросе google в лоб, он не смог ответить внятными сервисами или постами по теме. Пришлось задать вопросы иначе. Самое удивительное, он смог ответить и даже вполне внятно, хоть иногда и не точно.
Итак, задаем вопрос google
А тут, задаем вопрос yandex
ЗЫ: Яндекс лучше или я не умею задавать вопросы?
Спасибо за внимание.
Некоторые улучшения под катом.
Автору поста иногда интересно узнать, кто же добавил его пост в избранное или кому он смог помочь в той или иной проблеме. Согласитесь, интересно же, раз не дают узнать кто ставил +1 или -1. Когда я задавал об этом вопросе google в лоб, он не смог ответить внятными сервисами или постами по теме. Пришлось задать вопросы иначе. Самое удивительное, он смог ответить и даже вполне внятно, хоть иногда и не точно.
Итак, задаем вопрос google
А тут, задаем вопрос yandex
ЗЫ: Яндекс лучше или я не умею задавать вопросы?
Спасибо за внимание.
Некоторые улучшения под катом.
+96
Собираем тихий и вместительный домашний сервер
5 min
67K![image](https://habrastorage.org/getpro/geektimes/post_images/246/8b7/582/2468b75826a3df10bd071a816c9a77a6.jpg)
Задача: собрать малогабаритный домашний сервер с четырьмя 3,5-дюймовыми HDD, по возможности тихий. Служить будет в качестве NAS, backup-сервера и торрентокачалки.
Решение
+93
Information
- Rating
- Does not participate
- Location
- Одесса, Одесская обл., Украина
- Date of birth
- Registered
- Activity