Статический блог

    Бывает захожишь на блог, а там всего 2 поста - "Ура у нас теперь есть блог", и с "Новым, 2009 годом"

Привет,

тут временами спрашивают - куда пропал, и заброшен ли этот блог.

Звучит банально, но за 10 лет много чего поменялось, Рунет стал совсем другим, а Блогосфера переползла в социальные сети. А я, тем временем, сменил язык2 и формат блога. Много постов так и осталось в черновиках, так как из за размера статей и перфкционизма никогда не хватало времени все доделать. Теперь пишу короче, и на developer.run. Жду вас там.

Новых постов в этом блоге пока не планируется, но буду продолжать поддерживать его. Мне очень дорог этот проект, который начинался как ламерский блог, и потихоньку перерос в техностеб1.

Много всего интересного было, никогда не забуду баталию в новогоднюю ночь Linux vs Windows которая набрала аж 380 комментов! Или видео про Doom на трехцветном карманном плеере которое собрало 20 тысяч просмотров.

Спасибо всем за комменты, советы и постовые, ребята! Мои контакты остаются прежними.

Блог существует в режиме консервовации, как вечный памятник 2008 году. Удалён б-гмерзкий Disqus, который кроме того что успел окончательно заспамиться, превратился в тормозную платформу по воровству данных. Комменты и рейтинги частично востановленны из бекапов и web.archive.org.

Выключить свет.3

  1. У нас тут много разных фишичек, вы походите, понажимайте ;)
  2. С кривого Русского на Ломаный английский.
  3. Грустная Точка.
Метки: идиотизм

XBMC

Покупать отдельный медиа плеер (как сейчас модно на Android или Raspberry Pi) для того чтобы смотреть фильмы на большом экране, например телевизора, по моему не разумно. Во первых, возникнет проблема копирования контента на этот самый плеер. Во вторых, им не всегда хватает ресурсов на проигрывание этого контента если он в Full HD. В третьих, редкие вменяемые плееры стоят ощутимых денег. В четвертых... а лучше почитайте у Umputun'а почему это плохо.

Я конечно понимаю, что для этого существуют решения с независимым от основного компьютера NAS на котором храниться контент. И что современные телеки вполне себе умеют играть контент без всякого плеера. Но покупать новую TV-панельку если показывает старая я посчитал излишним, да и не хотелось заводить какие-то новые сущности для банальной задачи - просмотра видео с компьютера на телевизоре.

Гораздо проще протянуть HDMI шнурок от компьютера к телевизору (благо они бывают длинными аж до 15 метров. А если компьютер стоит в кабинете, а телевизор - в гостинной, стену всегда можно просверлить >:). Так в вашем распоряжении будут все ресурсы и память основного компьютера.

Проблема удобного интерфейса для выбора фильмов (что-бы не бегать с дивана к компу) тоже уже давно решена - существует плеер с полноэкранным "телевизионным UI" XBMC. Которым можно управлять хоть с джойстика, хоть с смартфона. Кстати, клавиатура смартфона особенно удобна для поиска контента по названию. Также для XBMC существуют сотни плагинов, позволяющие делать на вашем телике множество интересных штук, начиная от удобного просмотра Ютуюба, погоды и Nasa Tv до запуска эмуляторов Sega, и Zhiliton/Dendi. Плюс, если вас это интересует, оно умеет показывать сериалы по сезонам с последней просмотренной серии, скачивать обложки, и.т.д.

Единственная проблема (ради которой я собственно и начал писать этот пост :), это то что XBMC в Ubuntu либо запускается на втором мониторе в оконном режиме, либо в полноэкранном, захватывая клавиатуру и мышь с основного монитора. То есть когда запущен XBMC, на компьютере больше ничего делать нельзя. Что очень не удобно, особенно если телевизор находиться в другой комнате.

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

Это все конечно клёво, но проблема решается гораздо проще.

Итак, я достаю свой Sansa Clip+ с улучшенной прошивкой Rockbox, и начинаю набирать этот текст. Из моего круга общения мало людей слушают, или даже знают что такое подкасты (или радиопередачи в записи, как их не совсем корректно воспринимают). Тем не мение это очень полезная штука. Например слушая подкасты запоминаешь всякие интересные факты которыми потом можно блеснуть в разговоре. Так же подкасты позволяют не терять зря время в дороге и пробках - время движется быстрее если проводить его с пользой или просто слушать увлекательную болтовню. Плюс, если вы не слушаете подкасты, то я понятия не имею как вы можете делать рутинную скучную работу. Уборку например.

Чтобы каждый раз не рассказывать все заново - пишу эту статью, что-бы было куда давать ссылку :). Далее мой список покастов на русском и английском языке

В 2007 году я перешел на Ubuntu. Как многие новички, я стал записывать всякие полезные комманды и советы в текстовой файл. Компьютеров у меня много, и удобно было иметь решения часто встречающихся проблем под рукой. Постепенно файл разростался, и что-бы в нем нормально ориентироваться нужно было прикрутить к нему какой нибудь поиск с индексом. Я пошел самым простым путем решив ничего не изобретать, а просто скормить файл Яндексу. Уж их поиск точно будет работать. Для этого написал скрипт на Python, который генерировал из каждой заметки html страничку. Получилось что-то вроде сайта с дизайном в стиле старой ламповой Википедии. С тех пор эта штука там так и крутилась, принося пользу мне, и (судя по статистике) другим постетителям пришедшим из поисковиков.

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

Не успело пройти и 10 лет, как у меня дошли руки доделать версию с 0.1a до 0.2a и выложить это все на Github. Теперь это статический генератор который из markdown файла содержащего заметки может собрать нечто вроде сайта с удобным доступом к каждой отдельной заметке, и поиском от Яндекса. Заметкой считаеться любой текст после заголовка второго уровня ## (пример исходного файла). Для лучшей индексации генерируется robots.txt.

Любой посетитель может исправить, добавить или скачать все заметки на том же Github'е.

Так же вы можете использовать код для генерации сайта из своих заметок, или просто изучить пример протстого генератора статических сайтов на Python 3

Софт

Seafile, да это просто праздник какой-то!

Правильная альтернатива Dropbox с возможностью запуска на своем сервере

Seafile на моем сервере

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

Но удобно синхронизировать файлы все-таки как-то нужно. Для этого кстати бы отлично подошел Гитхаб, но уж больно там приватные репозитории дорогие. Из секъюрных альтернатив можно было как-то пользоваться Wuala (ну, относительно секъюрным и с юзабилити из анекдота).

И вот настал день когда китайцы скрестили1 Dropbox и Github получив сделав ровно то что нам было так нужно - Seafile.

Преимущества:

Можно создавать и редактировать файлы прямо в Web-интерфейсе

  • Можно запустить на своем сервере. Например я установил Seafile на своем VPS-за-$5 от Digital Ocean теперь счастлив и спокоен как слон. Можно запустить на Raspberry Pi, если вы являетесь счастливым обладателем сего девайса. Ну а тем у кого нет своего сервера - дают 5 стандартных гигов.
  • Возможность создавать и редактировать файлы (!) прямо как на Гитхабе. Чертовски полезно когда вспоминаешь что надо что-то пофиксить в скриптах или конфигах, а из доступных средств только браузер. Притом с подсветкой markdown, все как надо.
  • Опять же как на Github, можно посмотреть предыдущие версии файла

    Версионность

  • Управляется через браузер. Что полностью совпадает с моей точкой зрения что надо забивать на нативные интерфейсы для локальных програм, а писать все на кросплатформенных языках типа Java и Python c интерфейсом в кросплатформенных же браузерах.
  • Опять же, написан на Python
  • Понимает симлинки
  • Есть клиенты для Linux, Windows, Mac, Android и Aйфончика
  • Предпросмотр разных типов файлов
  • Возможность создавать зашифрованные папки. Очень удобно если если у вас есть две группы файлов - важные и обычные. На папку с важными можно повесить дополнительный пароль. И не надо извращаться с Truecrypt, как это делают несчастные DropBox'еры.
  • Command line интерфейс, чтобы использовать Seafile в скриптах
  • Есть Русский и Китайский язык
А вот а минусах, читайте под катом :)
Webmaster

Итак вы перевели блог в статику, оптимизировали js, css и картинки, сделали кнопки социальных сетей асинхронными. И все равно вам кажеться что ваш сайт должен загружается быстрее. Что дальше? Следующим разумным шагом было бы:

  • Установить на каком-нибудь VPS сверхбыстрый сервер G-WAN и раздавать статические html'ы оттуда.
  • Или вообще отказаться от сервера, залить статические html'ы на Amazon S3 и раздавать с помощью Cloudfront.

Первый метод все равно не дает сильного прироста по сравнению с nginx (по моим тестам около 30%, потому что в независимости от того как быстро сервер отдает файл, основная задержка как правило в сети). Второй метод мне не подходит по заповеди - "Не храни все яйца в одной корзине, юный падаван". Ну не могу я хранить файлы у сервиса где я обычно покупаю кеды :).

Основной проблемой становиться география географическое положение. Я нахожусь в Европе, основная аудитория этого блога - в России. Поскольку хоститься в Европе дорого, а в России стрёмно, все сервера на которых работают мои сервисы находятся в Америке. Из за этих диких расстояний и теряются ценные секунды.

Сайт с Cloudflare пингуеться в 10 раз быстрее

Обычно такие проблемы решаются с помощью CDN'ов (Content Delivery Network). В двух словах идея CDN: редко обновляемый контент сайта заливается на несколько серверов расположенных в разных частях мира. А когда посетитель запрашивает например картинку, она будет скачивается с ближайшего к нему сервера.

Такие штуки как правило стоят денег, но есть классный бесплатный сервис Cloudflare. Сыр бесплатен в расчете на то, что когда вам понадобиться поддержка SPDY, HTTPs, продвинутая защита от DDOS и.т.д вы купите платный аккаунт. Но скромному блогу то этого всего не надо, так что пока вам не потребуется 100 террабайт траффика в месяц можно спокойно использовать эту CDN.

Сайт с Cloudflare грузится в 6 раз быстрее

Также Cloudflare спасает от простеньких DDOS. А если ваш основной сервер ляжет, то сайт все равно будет открываться из кэша Cloudflare. Ну и картинки с css и скриптами сжимать умеет. И траффик ваш по понятным причинам серьезно сэкономит. И даже всякую фигню типа разнеси страницу навешивать умеет. Must have вообщем.

Итак, с помощью Cloudflare на этом блоге который находиться на Eskhosting'e удалось (см. скриншоты где-то рядом):

  • Скорость загрузки увеличилась с 297 KB/s до 1.72 MB/s.
  • Время загрузки страницы сократиось в среднем с 2.91 сек до 1.09сек.
  • Пинг с 161мс до 10мс.
  • Вообщем загрузка сайта ускорилась примерно в 2-3 раза.

Теоретически Cloudflare может сделать быстрым и доступным для всего мира даже сайт на каком-нибудь копеечном шаред хостинге, где нибудь в Афганистане, Австралии или Замбезии с 50% uptime1. Помоему преимущества очевидны. Далее пару советов по настройке

Инбокс Fastmail.fm

Как наверное у многих из вас, Gmail был моей основной почтой аж с 2005 года. Прямо ностальгия берет, если почитать старые мейлы :). За это время я чертовски привык к Gmail'у, и искренне удивлялся как люди могут использовать что-то другое. Но вот, прошло время, и я честно плачу за электронную почту, которых казалось бы бесплатных хоть пруд пруди. Как я докатился до жизни такой?

Кстати от Macbook Air он всетаки отличаеться. Чуток. Фото © Kevin Smith (нагуглить больше картинок).

Есть у меня одна радость - я чертовски люблю азиатские реплики разных дорогих штук. Нравиться их мне сравнивать, и радуют они меня гораздо больше оригиналов. Раньше, это в основном касалось часов, поэтому я и не писал об этом в блоге.

Недавно я абсолютно спонтанно купил новый Хромбук за $249. Тот что на ARMовском Samsung Exynos 5250 Dual Processor. Увидев его в новостях, мой внутренний капитан очевидность воскликнул: "О, да это же выглядит точно как Macbook Air!".

А у нас тут сейчас модно покупать Mакбуки, ставить туда Ubuntu и демонстративно заклеивать яблочко изолентой. Я же решил купить Chromebook, наклеить изоленту на пустое место (без яблочка) и поставить туда Ubuntu for ARM. И таким хитрым образом сэкономить 600 баков. А Амазон доставил мне посылку раньше чем я успел одуматься. Далее - первые впечатления

Special

О проблемах современных игр

Я считаю игры Doom и Quake лучшими играми в истории1.

Не я один так думаю, и фанаты продлжают выпускать аддоны к этим играм, поддерживая их в актуальном состоянии (а что еще делать, если нормальные шутеры перестали выпускать?). Грея душу нам, олдовым старперам. Сегодня я расскажу о своий любимых дополнениях, которые помогали мне снять стресс, после тяжелых рабочих дня. Забавно, что не смотря но то что на основном компьютере у меня зачем-то стоит топовая видеокарта, ничего требовательнее второго Квейка я так и не запускал.

Doom 2

Brutal Doom

Must see

Помните что когда-то давным давно Doom был запрещен из за запредельной жестокости? Это сейчас он нам кажется таким квадратным, милым и добрым, что даже в Германии его разрешили. Ну так вот, наконец вышел мод который дотягивает уровень жести до того, что его пора бы запретить его еще разок >:). Встречайте - Brutal Doom.

  • Море крови и дырок от пуль на стенах и прямо на вашем экране (и море, это мягко сказано).
  • Изменен баланс с упором на скорость и динамику. Что-то ближе к Serious Sam в его лучших проявлениях.

    Обратите внимание на его выражение лица

    Скришот типичного геймплея

    Сочнейшие взрывы

    Fattality

    Монстру больно

    Duke Nukem style

  • Смачные зрелищные спецэффекты. Видели бы вы как бешенно тут все трясет при взрывах!
  • Жуткие но при этом сочные звуки.
  • Иногда монстры не умирают сразу, и их можно добивать используюя жосткие фаталити (за это дают бонусные броню и здоровье).
  • Куча новых анимаций смертей монстров и игроков с кинематографичным полетом камеры. Например бык может натурально съесть зомби. А вы, в приступе берсерка, разорвать быка на 2 части. И вся это в стильной квадратной графике. Кстати! Вам тоже могут сделать фаталити :)
  • Удар ногой на Q, чего так не хватало для подло выскакивающих в упор монстров. А еще их можно скидывать с обрывов!
  • Новое, клёвое оружие. Нет больше сильных и слабых пушек. Теперь каждая пушка - сама по себе очень крутая. Например вместо пистолета - универсальная винтовка с хорошим прицеолом.
  • A кулаками можно совершать стелс-убийства а так же ловить и кидать горящие головы
  • Хедшоты наносят двойной уроном.
  • Необходимость перезаряжать оружие. Супостаты перезаряжаются тоже, давая вам шанс выскочить из укрытия, и завалить их в упор.
  • Монстры научились прыгать. Так что если теперь вы попробуете хитро растрелять беззащитного демона на недоступной платформе, он обязательно спуститься к вам, и объяснит почему так делать нечестно.
  • Можно выпиливать (в буквальном смысле) пушки у Ревенантов и Манкубусов
  • Наконец то можно разрушать и поджигать предметы окружения
    • Еще множество адских сюрпризов

Вообщем Brutal Doom - адские стероиды, которые на 200% реанимируют старый добрый Дум. Действие напоминает последние полчаса фильма Cabin In The Woods. С модом веселее и интереснее проходить разные мегавады (да, до сих пор талантивые люди делают для нас новые уровни). Или наример мне этот мод на пару с Hires-Текстурами дал мне повод в n-ный раз пройти Doom 2 на Nightmare. Единственный комментарий который крутился у меня в голове - "wow, this was pretty intense". Короче, включайте музычку потяжелее, и лучшего антистресса вам не найти!

Webmaster

Зачем оптимизировать загрузку сайта, думаю понятно. Посетители будут меньше ждать, а вы сэкономите трафик. Сегодня я расскажу про три простых способа ускорить загрузку вашего сайта, если вы используете Linux для разработки. Теоретически данные утилиты можно запустить и под Windows.

Для проверки скорости загрузки сайта (что-бы сравнить результаты до и после) рекомендую использовать Pingdom Tools.

Чтобы автоматизировать оптимизацию, все будем делать через консоль. Для начала установим необходимые утилиты:

sudo apt-get install uglifyjs trimage
#cssoptimizer
wget --content-disposition http://mabblog.com/getfile.php?file=37
sudo tar -xvf cssoptimizer_linux.tgz -C /usr/bin ./cssoptimizer

Ну а теперь давайте разбираться что же мы только что установили :)

Uglifyjs - сжимаем JavaScript

Существует множество оптимизаторов и обсуфикаторов для JavaScript. По своему опыту меньше всего проблем с uglifyjs. Не разу не встречал чтобы оптимизированный им код перестал работать. Плюс он еще и проверяет код на случай если вы допустили синтаксическую ошибку. Удобно, если вы как я пишете JavaScript в текстовом редакторе а не IDE.

Когда вы пишете код, удобно разделять функционал по разным js файлам. А чтобы уменьшить количество запросов к сайту также рекомендуется склеить все файлы в один. Это делается стандартной Linux утилитой cat. После чего вывод перенаправляется в uglifyjs. Результат сохраняется в файл script.js. Например данная команда склеивает и оптимизирует все скриты из папки _js и сохраняет результат script.js в папке _output.

cat _js/*.js | uglifyjs -nc > _output/script.js

Если ваши скрипты зависят друг от друга - пронумеруйте их, например: 01_functions.js, 02_main.js. Склеивать в один файл фреймворки типа jQuery не рекомендуется, потому что все современные браузеры и так умеют их кешировать.

Cssoptimizer - сжимаем CSS

Cssoptimizer как очевидно из названия, позволяет сжимать css. Тут та же история что и с js - желательно склеить все CSS'ки в 1 файл. Для сохранения иерархии - пронумеруйте файлы, например: 01_base.css, 02_site.css.

cat _css/*.css | cssoptimizer -i -o > _output/style.css

Trimage - Оптимизируем png

Я часто слышу миф что png это looseless формат и уменьшить его размер без потери качества нельзя. Это таки миф, потому что замечательная програмка Trimage, позволяет облегчить PNG'шку в среднем на 30% сохраняя исходный внешний вид. Заодно программа оптимизирует и джипики JPEG'и.

Trimage можно натравливать на папку с изображением. Работает она достаточно долго, поэтому рекомендую запускать ее только для новых изображений.

trimage -f _images

Заключение

Вы можете добавить эти команды в 1 скрипт (пример) и прогонять его каждый раз когда загружаете сайт на хостинг. С использованием данных утилит, этот блог стал грузиться примерно на 20% быстрее.

PS: Так-же значительно ускорить загрузку сайта поможет Cloudflare CDN.

PS: И еще важный совет по оптимизации загрузки сайта: не забудьте асинхронно загружать кнопки социальных сетей. Я из за этого особенно страдаю - на работе не грузиться кнопка Google Plus, а вместе с ней куча сайтов, где вебмастеры добавляют ее установку в <header>.