Pull to refresh
0
0
Алексей @tamerlan311

User

Send message

Искусственный рассвет

Reading time9 min
Views232K
Началось всё год назад. Перед Новым 2014 годом несколько пришел в упадок жизненный тонус. Процесс самокопания привел к следующей мысли:



— А, что ж так темно-то, Господи? © День радио.

Впрочем, для человека, живущего зимой по летнему времени — мысль вполне естественная.
Что же делать?
Total votes 187: ↑185 and ↓2+183
Comments87

Открыт прием заявок на LVEE 2010

Reading time2 min
Views405
LVEE 2010 logoШестая международная конференция разработчиков и пользователей свободного программного обеспечения Linux Vacation / Eastern Europe пройдет с 1 по 4 июля на территории турбазы “Химик” в Гродненской области. Открыт прием докладов и заявок на участие, приглашаются к сотрудничеству спонсоры. Подробности — на сайте lvee.org
Читать дальше →
Total votes 9: ↑6 and ↓3+3
Comments14

Иммунная система человека: биологический антивирус. Антивирусные базы

Reading time6 min
Views25K
Прошу простить за нереально огромный перерыв после первой части :(

Линк на первую часть (врожденный иммунитет)

Итак, нечто, проникшее в организм, было признано враждебным и уничтожено. Но каждый раз определять посторонние сущности по общим неспецифичным признакам — далеко не оптимальная концепция поведения, так как патогены могут выработать систему маскировки, которая предотвратит их обнаружение. Для того, чтобы обнаруживать этих микроорганизмов (а также увеличить эффективность реагирования по отношению ко всем остальным), возникла специфичная (она же приобретенная) иммунная система, которая включает в себя T-лимфоциты и B-лимфоциты, производящие антитела.
Читать дальше →
Total votes 86: ↑80 and ↓6+74
Comments97

How-to install gitosis (мануал с учётом проблем возникающих при установке) + интеграция в redmine

Reading time6 min
Views4.2K

gitosis — программное обеспечение для хостинга Git репозиториев


image

Установка:


Появился скрипт авто установки пока тестируется
sudo apt-get install python-setuptools git-core -y
mkdir ~/src
cd ~/src
git clone git://github.com/sc0rp1us/gitosis-tools.git
cd gitosis-tools/gitautoinstall
sudo bash main

Дальше следуем инструкциям скрипта


Но вернёмся к статье
Для начала установим необходимые компоненты для запуска gitosis:
  • Для debian & ubuntu выполните следующие команды от пользователя root

apt-get update
apt-get upgrade
apt-get install python-setuptools git-core -y
cd ~/src
git clone git://eagain.net/gitosis.git
cd gitosis
python setup.py install



Далее зайдём в учётную запись через которую будем управлять gitosis'om (назовём её gitadmin), выгрузим дистрибутив и установим его

Настройка:


Теперь нам нужно будет создать пользователя который будет владеть хранилищем(имя может быть любым, но я предпочитаю использовать просто git), к тому же на одном сервере может быть несколько аккаунтов владеющих хранилищами, такому аккаунту не нужен пароль, но необходим действующий shell иначе SSH откажется с ним работать:
P.S. вы конечно можете использовать уже существующую учётную запись, но по соображениям безопасности, крайне не рекомендуется этого делать
Читать дальше →
Total votes 15: ↑9 and ↓6+3
Comments7

Резервное копирование mysql-базы. мой путь =)

Reading time2 min
Views2K
Задача стояла такая – часто бэкапить базу + экономить место на харде.
Прочитав одну статейку по созданию инкрементального бэкапа для дампов через diff понял что это всё бредятина какая-то.
Промелькнула мысль – а почему бы не заливать дамп базы в git? Ведь можно будет и откатиться на нужный коммит, и склонировать репозиторий для экспериментов, и вкушать все прелести данной системы. =)
Сразу определися – я делал всё под FreeBSD. Следовательно под Linux нужно будет подпилить напильничком.
Ну, начинёмс! Сначала ставим гит (если нет в системе)!
Предварительно обновив порты пишем cd /usr/ports/devel/git && make install clean
Git поставился. Выбираем место для папки с бэкапом базы и создаём папку mkdir /backup/bases/test
Далее cd /backup/bases/test и инициализируем там репозиторий командой git init
Я написал скрипт который дампит базу потаблично, добавляет файлы в репозиторий и создаёт коммит с датой бэкапа

#!/usr/local/bin/bash
backupurl=”/backup/bases/test”
for i in `/usr/local/bin/mysql -e “use test;show tables;” -uUSER -pPASS|tr -d “|”|grep -v “Tables_in_”`;do /usr/local/bin/mysqldump –quick –skip-extended-insert –dump-date=false –compact=true -uUSER -pPASS test $i >$backupurl/$i.sql;done
/usr/local/bin/mysqldump -uUSER -pPASS –no-data test > $backupurl/structure.sql #отдельно бэкапим структуру базы
cd $backupurl
/usr/local/bin/git add . #добавляем файлы
sleep 2
/usr/local/bin/git commit -am “backup `date +%d.%m.%y.%H.%M`” #коммит с чилом и временем


Запечатываем данный скрипт в файл, делаем его исполняемым и плюхаем в крон.
Далее после нескольких бэкапов заходим в папку с бэкапом базы и пишем git log – вам выведется история наших бэкапов.
Напоследок:

  • Читайте документацию по гиту
  • Поставьте в крон (в зависимости от объёмов базы… лично у меня раз в сутки) команду cd /backup/bases/test && git gc – это серьёзно сжимает репозиторий
  • Для отката желательно склонить репозиторий и сделать откат через git reset HEAD^^
  • Опция –skip-extended-insert ОБЯЗАТЕЛЬНА. она запрещает расширеные инсерты которые сводят на нет всю мою затею с гитом
Total votes 19: ↑11 and ↓8+3
Comments13

Хранение паролей в Android

Reading time8 min
Views117K
Предисловие: Этот обзор был написан после прочтения топика “Свободный Android — золотая жила для Google” и комментариев к нему. Автору перевода данного топика я хочу сказать свое спасибо.
Кроме того, хочу поблагодарить форум androidfan.ru за их ветку с описанием приложений, где собственно и были найдены рассматреваемые экземпляры.

История вопроса



Два года назад, 21 октября 2008 года мобильная платформа Android перестала быть лишь виртуальной основой для разработчиков и вышла в реальный мир в образе коммуникатора T-Mobile G1 (HTC Dream). С момента первого выхода система претерпела множество изменений, как по качеству кода, так и по количеству возможностей, предоставляемых ей. Однако, как справедливо было замечено некоторыми хабровчанами, качество и популярность платформы зависят не только от интенсивности ее разработки и качества собственного кода, но и от приложений, которыми она позволяет пользоваться.

Кроме того, если вы любите обращать внимания на маленькие детали, то могли заметить, что Android, как операционная система, быстро приобрел большую популярность не только у простых пользователей, но также и у производителей мобильных устройств – ведь они достаточно быстро стали выпускать коммуникаторы бизнес-класса.
Осторожно, много скриншотов!
Подробнее о хранении паролей
Total votes 54: ↑43 and ↓11+32
Comments95

Hеroвый root или как получить полноценный русифицированный HTC Hero с приложениями Google из «обрезанного»

Reading time5 min
Views3.6K

Многие засматриваются в сторону телефона на OS Android.
И, среди доступных вариантов, именно HTC Hero для многих является заветной мечтой.
К превеликому сожалению, Google почему-то не любит украинских граждан и не разрешает официально продавать в Украине телефоны с Android Market — даже с его бесплатной версией…
И кроме того на сером рынке доступно много телефонов из других стран, в которых нет русского или также отсутствует market.
Но, прелесть OS Android в её открытости… Так что под катом постараюсь рассказать, как можно перепрошить телефон полноценной прошивкой с полноценным Android Market, русификацией и возможностью покупки платных программ.
Данный мануал особо актуален для официальных украинских HTC Hero, но подойдет для владельцев любых Hero, которые хотят сменить прошивку своего телефона или открыть доступ к дополнительным фукциям своего телефона.
Читать дальше →
Total votes 77: ↑70 and ↓7+63
Comments108

Подойдет ли телефон на Android OS Алексу Экслеру или безболезненный переход с Windows Mobile на Android.Часть 1

Reading time6 min
Views2.5K
Предисловие: В феврале этого года у себя в блоге Алекс Экслер опубликовал достаточно интересный материал о переходе с Windows Mobile на Айфон. В нем он описал наиболее часто используемые функции смартфона и их реализацию в АйфонОс. Вот и захотелось мне примерить его обзор для достаточно молодой еще (по сравнению с айфоном и тем более с винмобайл) Android Os. Сразу оговорюсь, что я буду проводить обзор с использованием моего телефона HTC Magic for Vodaphone, то есть т.н. Гугловскую модель. Потом расскажу, почему это важно. Прошивку для обзора я буду использовать Cyanogen, которая в принципе не сильно отличается внешне от родной прошивки, которая шла с моим телефоном.То есть все программы о которых я буду говорить не требуют специфической перепрошивки телефона. Если кто пропустил, тут я размещал свой первый обзор этого телефона.
Для сохранения копирайтов А.Экслера, его текст я буду обозначать италиком.
Под катом- очень длинный пост:
Читать дальше →
Total votes 96: ↑72 and ↓24+48
Comments80

Git и публикация сайта

Reading time4 min
Views114K
При попытке отредактировать этот старый пост слетело всё форматирование. Может быть я его когда-нибудь исправлю.

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

Основные преимущества:
  • Делая push из удалённой копии мы автоматически обновляем live-копию сайта
  • Правки файлов на сервере не будут разрушать историю коммитов
  • Простота, не нужны особые правила выполнения коммитов
  • Можно применить к уже запущенному сайту, без повторного деплоя или перемещения файлов
посмотреть, что там такое
Total votes 99: ↑88 and ↓11+77
Comments49

QJson как библиотека для работы с JSON в Qt

Reading time4 min
Views61K

Привет, хабр!

На хабре еще не писали про QJson — отличный и очень простой инструмент для работы с JSON на Qt. Вообще Qt рекоммендуют использовать XML — но мне кажется что в очень многих случаях он бывает чересчур уж избыточным или лишним. В некоторых случаях лучше использовать JSON. В этой заметке я расскажу как скачать, собрать и использовать QJson для работы с JSON в Qt.

Внимание! Этот пост — заметка. Все что вы тут прочитаете можно найти в гугле и на офф сайте проекта — но я думаю что такая заметка не будет лишней.
Читать заметку...
Total votes 30: ↑24 and ↓6+18
Comments32

Почему читабельность кода имеет значение?

Reading time7 min
Views5.2K
Понятно, что напрашивающийся (и правильный) ответ — «Потому что код приходится не только писать, а и читать». Едва ли этот ответ стоит целого поста, но автор им не ограничивается.

Последнее время мои коллеги огрызаются на мои неустанные замечания о стиле в рецензиях на их код. Я уделяю все больше и больше внимания тому, что можно с полным основанием назвать косметикой. Да, есть плохие стили кода, есть лучшие, но все они всего лишь соглашения. Нельзя отрицать, что некоторые из них действительно улучшают общее качество кода, но вне зависимости от того, сколько мы спорим о пробелах и табуляции, они остаются субъективными предпочтениями, часто делом вкуса.

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

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

Читать дальше →
Total votes 80: ↑65 and ↓15+50
Comments28

Инструкция-шпаргалка для начинающих

Reading time2 min
Views133K
Если в один прекрасный момент вам ударило в голову желание насадить разумное, доброе, вечное, и пересадить всех с SVN на GIT, сразу встают три проблемы:
  • Объяснить зачем это нужно разработчикам и руководству
  • Ввести в обиход новую схему работы с кодом
  • Научить ничего не подозревающих девелоперов новым техникам
Читать дальше →
Total votes 117: ↑100 and ↓17+83
Comments67

Алгоритм: Как оформить баг на ядро Linux

Reading time4 min
Views2.3K
Мой опыт в разработке и отладке Parallels Virtuozzo Containers позволил обобщить и сформулировать список пожеланий к описанию проблемы пользователя, который позволяет существенно уменьшить время диагностирования и решения проблемы в ядре операционной системы Linux. Прошу отметить, что при всей очевидности некоторых рекомендаций многие участники open-source сообщества по-прежнему пренебрегают ими. Алгоритм представлен подкатом.
Читать дальше →
Total votes 95: ↑92 and ↓3+89
Comments14

GitHowTo — тур обучения гиту на русском

Reading time1 min
Views15K
image

Спешу поделиться радостной новостью о запуске проекта GitHowTo — интерактивного тура-обучалки основам Git.

За основу были взяты идеи gitimmersion.com, но переведены на русский язык и немного изменены под реалии не-ruby разработки, поэтому спешите любить и жаловать — githowto.com!

Буду чрезвычайно рад любым замечаниям и пожеланиям к проекту.
Total votes 179: ↑178 and ↓1+177
Comments68

Атомарная группировка, или Ни шагу назад!

Reading time8 min
Views16K

0. Присказка


В некотором царстве, в некотором государстве жил-был программист. Звали его, как полагается, Иван. Был он настоящим спецом, обладал всеми Тремя Великими Добродетелями Программиста, то есть был ленив, спесив и нетерпелив. Случилась в том царстве печаль великая: кризис. И выгнали Ваню с работы без выходного пособия. Горевал Ваня долго, а потом собрался с духом и разослал резюме по всему белу свету. Долго ли, коротко ли, вызвали Ваню на собеседование. Требований к соискателю было много, но главное — требовалось хорошо владеть регулярными выражениями. До собеседования — почти месяц, готовься — не хочу. Будучи человеком серьёзным, готовиться Иван решил обстоятельно. 3 недели и 3 дня он лежал на печи, почитывал Хабр и думал, как же неслыханно обстоятельно он будет готовиться. До собеседования остался 1 день. Ванюша мысленно обругал работодателей, которые назначают собеседование так скоро, что совсем подготовиться не успеваешь, слез с печи, сдал пивные бутылки и на вырученные деньги купил книжку по регексам. Читал он её до полного изнеможения, пока не отключился. Утром мы найдём сонную физиономию Ванюши лежащей, как на подушке, на этой самой книжке под Хабракатом.
Читать дальше →
Total votes 87: ↑86 and ↓1+85
Comments42

HTML 5 в Internet Explorer

Reading time3 min
Views57K
image

Вкратце: как заставить новые теги из HTML 5 работать в Internet Explorer.

Любой веб-разработчик смотря на HTML 5 плачет от счастья, которое наконец-то пришло в наш дом. Для большинства функций (такие как WebGL, многопоточность и веб-сокеты) придётся ждать поддержки от браузеров (а в самых правильных эти возможности уже есть), но новые удобные теги мы можем использовать уже сейчас.

Однако Internet Explorer (даже последней, 8-ой версии) и тут сумел споткнуться — новые теги вне HTML 4 он просто не замечает — на них нельзя повесить стили.

В IE проблем даже две — отдельно нужно включать поддержку HTML 5 тегов в обычном документе, и отдельно в содержимом, которое добавляется динамически (например, через AJAX).
Читать дальше →
Total votes 107: ↑88 and ↓19+69
Comments66

Чек-лист вёрстки. Что можно отдавать клиенту, а что надо переделывать

Reading time20 min
Views314K
Идеальная вёрсткаВы PM. Как узнать – готова ли вёрстка к реальному использованию?
Вы заказчик. Как убедиться, что работа выполнена качественно?
Как оценить качество вёрстки?

Когда я стал тим-лидом, а позже PM, передо мной стала задача проверять вёрстку наших проектов. Нужно было выработать формальные, легкопроверяемые критерии, соответствие кода которым, должно было давать некую гарантию, что не будет факапов и ни клиент, ни программеры не сказажут потом “WTF?”.

Клиенту неважно насколько красив ваш код, но ему важен результат. Качественный код нужен фирме, т.к. он надёжней и в будущем его будет легче поддерживать.

Требования должны были быть такие, что соблюсти их легче, создавая качественную вёрстку, а не говнокод. Я составлял такой чек-лист в течении полутора лет. За последние полгода в него не добавилось ничего. Значит самое главное учтено.

Итак что же это за список?

Краткая версия теперь доступна на html5checklist.com (github), где можно вносить pull-request'ы.

История обновлений:
  • 2015/08/11: Актуализировал рекомендации по оптимизации скорости загрузки. Добавил требование поддержки Retina. Дополнил «19. Мелочи» требованием что изображения должны масштабироваться в зависимости от размера окна.
  • 2015/08/10: актуализирован список исключений для CSSLint
  • 2015/07/29: актуализирован пункт №13 «плохо»/«хорошо»
  • 2015/04/08: добавлено требование использования препроцессоров и рекомендация использования систем сборки
  • 2013/04/25: добавлены анализаторами качества кода: CSSLint и JSHint, указан сайт подбора css font stack (спасибо @fliptheweb), мелкие уточнения (работу интерактивных элементов страницы, что не пропадает фон на высоких разрешениях, не должно быть пустых презентационных блоков, при проверках контента — пробовать удалять заголовки, менять местами блоки)
  • 2013/04/24: добавил пункт об минимизации каскада (БЭМ-техники, MCSS, SMACSS), необходимости вписывания в экран моб. устройства, заменил ссылку на проверочный текст отображения стандартного html на код с normalize.css, поправил пример где в рекомендации встречался длинный каскад, упомянул про Opera на Presto и новый уровень семантики — в именах классов BEM.
  • 2012/04/12: отсортировал пункты проверки в порядке важности, выделил главные, дополнил статью подробностями
  • 2011/12/07: дополнил согласно доклада на WSD Минск'2011.
  • 2011/07/19: добавлено про повышение надёжности вёрстки благодаря html5-тэгам, про необходимость favicon/apple-touch-icon, отсутствие багов при ресайзе textarea
  • 2011/06/15: добавил пояснения какие ошибки валидации допустимы, рассказал про отсутствие официальной кнопки «HTML5 Valid» и про официальное лого HTML5 на сайте.


Далее с примерами - как проверить html, даже если вы ничего не понимаете в вёрстке.
Total votes 335: ↑318 and ↓17+301
Comments244
1

Information

Rating
Does not participate
Location
Рязань, Рязанская обл., Россия
Date of birth
Registered
Activity