Python — красивый и местами загадочный язык. И даже зная его весьма неплохо, рано или поздно находишь для себя нечто такое, что раньше не использовал. Этот пост отражает некоторые детали языка, на которые многие не обращают внимание. Сразу скажу: многие примеры являются непрактичными, но, оттого, не менее интересными. Так же, многие примеры демонстрируют unpythonic стиль, но я и не претендую на новые стандарты — я просто хочу показать, что можно делать вот так.
JS developer/DevOps
NodeSchool — интерактивные уроки по Node.Js
1 min
38KВсе мы знаем теоретический курс по node.js, недавно выпущенный Ильей Кантором. Отличный материал, свежий, полный и к тому же на русском. Но он теоретический, а нам-то хочется все потрогать, попробовать самим, получая реальный опыт. В этом нам поможет, недавно стартовавший, бесплатный проект NodeSchool.
+34
Как и зачем я решил начать собственное дело
8 min
190KСалют, Хабр!
Недавно я уволился с довольно завидной должности (главного архитектора) в довольно неплохой компании (Acronis) и с непоколебимым решением в мозгу больше не работать по найму переехал из Москвы обратно в Ереван, откуда семь лет назад понаехал в Златоглаво-Нерезиновую. Учитывая необычность произошедшего и часто задаваемый вопрос «но почему?!», я решил разобраться в собственных мыслях и озвучить их вслух для себя самого и тех, кто может почерпнуть в моих размышлениях что-то для себя полезное. Короче говоря, это рассказ о том, почему я оставил высокооплачиваемую перспективную работу в международной компании ради сомнительной перспективы начать собственное дело, и как я собираюсь дальше жить.
Недавно я уволился с довольно завидной должности (главного архитектора) в довольно неплохой компании (Acronis) и с непоколебимым решением в мозгу больше не работать по найму переехал из Москвы обратно в Ереван, откуда семь лет назад понаехал в Златоглаво-Нерезиновую. Учитывая необычность произошедшего и часто задаваемый вопрос «но почему?!», я решил разобраться в собственных мыслях и озвучить их вслух для себя самого и тех, кто может почерпнуть в моих размышлениях что-то для себя полезное. Короче говоря, это рассказ о том, почему я оставил высокооплачиваемую перспективную работу в международной компании ради сомнительной перспективы начать собственное дело, и как я собираюсь дальше жить.
+261
История создания проекта успешного игрового хостинга
4 min
24KRecovery Mode
Приветствую всех хабражителей!
В свете популяризации темы IT-биографий и положительного отношения сообщества к статьям об успешных начинаниях спешу поделиться историей создания своего Minecraft-хостинга.
Тема сия достаточно узкоспециализированная и может показаться несерьезной, однако пост этот основывается на действительно существующих фактах. Иными словами, я желаю рассказать свою историю о том, как реализовать себя, не опираясь на тренды. Это переписанный и дополненный пост.
В свете популяризации темы IT-биографий и положительного отношения сообщества к статьям об успешных начинаниях спешу поделиться историей создания своего Minecraft-хостинга.
Тема сия достаточно узкоспециализированная и может показаться несерьезной, однако пост этот основывается на действительно существующих фактах. Иными словами, я желаю рассказать свою историю о том, как реализовать себя, не опираясь на тренды. Это переписанный и дополненный пост.
+12
Open Build Service — создаём свои репозитории
6 min
14KTutorial
Open Build Service – программное обеспечение с открытым исходным кодом, распространяющееся под лицензией GPL, которое заметно упрощает организацию собственных репозиториев для популярных дистрибутивов Linux и сборку бинарных пакетов.
+23
Nginx на стероидах — расширяем функционал с помощью LUA
9 min
54KДля обеспечения работы всех наших внешних продуктов мы используем популярный nginx. Это быстро и это надежно. Проблем с ним почти нет. Наши продукты также постоянно развиваются, появляются новые сервисы, добавляется новый функционал, расширяется старый. Аудитория и нагрузка только растет. Сейчас мы хотим рассказать о том, как мы ускорили разработку, неплохо увеличили производительность и упростили добавление в наши сервисы этого нового функционала, при этом сохранив доступность и отказоустойчивость затронутых приложений. Речь пойдет о концепции “nginx as web application”.
А именно, о сторонних модулях (в основном LUA), позволяющих делать совершенно магические вещи быстро и надежно.
А именно, о сторонних модулях (в основном LUA), позволяющих делать совершенно магические вещи быстро и надежно.
+66
JetBrains — разработка под Android для лентяев
1 min
79KХотите изучить разработку пoд Android, но лень читать большие книги с кучей теории? JetBrains подготовила курс из 12 уроков для быстрого старта. Темы уроков:
* Getting Started
* UI Designer
* Minimally Interactive
* Lifecycle
* More Activities
* List Views
* HTTP
* Storage
* Menus
* Dialogs
* Preferences
* Publishing
* Getting Started
* UI Designer
* Minimally Interactive
* Lifecycle
* More Activities
* List Views
* HTTP
* Storage
* Menus
* Dialogs
* Preferences
* Publishing
+82
IPsec с AmazonVPC в обход стандартных средств
3 min
2.9KВводная и условия задачи
У нас есть Amazon VPC с несколькими подсетями.
Внутри VPC разбита на несколько подсетей.
Возьмем две из них.
В первой (посеть 10.0.0.0/24), назовоем ее net1, маршрутизацию наружу осуществляет родной Амазоновский Internet Gateway, который для каждой подсети свой. К инстансам в этой сети можно привязывать Elastic IP и они будут работать.
Вторая (подсеть 10.0.1.0/24), пусть будет net2 — полностью закрытая подсеть, доступ из которой к внешним ресурсам возможен только посредством отдельного инстанса с настроенным на нем NATом (назовем его service). Прямого доступа к этой подсети извне, кроме как через какой-либо инстанс из net1, реализовать не получится. Сам service существует так же в net1.
Внутри VPC инстансы обоих подсетей видят друг друга.
Так же, есть офисная сеть, пусть она называется net0 (подсеть 192.168.5.0/24).
Появилась необходимость обеспечить защищенный доступ из офиса к инстансам в net1 и обратно. Это можно сделать нативным для Амазона способом — с помощью Virtual Private Gateway и сопустствующим ему сервисам. Но тут есть одна проблема — маршрутизация осуществляется посредством BGP, которого на пограничном маршрутизаторе офиса нет и не предвидится. На нем есть только чистый IPsec с авторизацией по паролю. В данной ситуации надо действовать через него.
Приходит в голову следующая схема реализации: на инстансе service, который имеет доступ Интернет и ко всем инстансам внутри net1, а так же обладает Elastic IP, развернуть клиента IPSec, соединиться с офисным маршрутизатором и настроить маршрутизацию между сетями.
+3
15 вещей, которые мы хотели бы знать перед разработкой стартапа
7 min
30KЗа четыре года работы над онлайн консультантом WebConsult мы накопили достаточно большой опыт, и оказалось, что изначально мы не учли многих вещей, которые потом приходилось переделывать – в итоге это стоило нам массы времени, средств и нервов. Эта статья, а возможно и цикл статей, будут посвящены аспектам, которые необходимо продумать еще до начала разработки, дабы будущие стартаперы изначально закладывали грамотную основу в свои веб-приложения. Этой статьи нам очень не хватало четыре года назад, когда создание системы только начиналось, и мы надеемся, что она поможет вам не повторить наших основных ошибок. Многие приведенные советы кому-то покажутся очевидными, однако часто разработчики их упускают, поэтому мы считаем необходимым еще раз напомнить о простых вещах.
+52
Новое для веб-дизайнера за июль 2013
2 min
35KНовые полезные инструменты, сервисы, статьи, бесплатности для веб-дизайнеров за июль 2013. Остальные подборки доступны по тегу "новое для веб-дизайнера".
I Want To Use — на сайте можно выбрать CSS-фичи, которые хотите использовать, и будет показан процент пользователей, которые смогут их использовать.
Сервисы
I Want To Use — на сайте можно выбрать CSS-фичи, которые хотите использовать, и будет показан процент пользователей, которые смогут их использовать.
+40
Хороший пользовательский интерфейс
7 min
120KTranslation
Вольный перевод статьи Якуба Линовски — «A Good User Interface».
Хороший пользовательский интерфейс обладает высокими показателями конверсии и прост в использовании. Другими словами, он хорош как для бизнеса, а так и для людей, которые им пользуются. Ниже вашему вниманию предлагается ряд практических идей, которые вы можете попробовать применить.
+135
ABC: Always Be Coding (не переставай программировать)
5 min
75KКак получить работу инженера?
Давай на чистоту. Ты хороший кандидат на должность инженера? Как ты сам себя оцениваешь? Много ли компаний, в которых ты бывал на собеседованиях? Каково у тебя отношение пройденных интервью к полученным предложениям о работе? Попробуй воспользоваться следующей формулой (это мое сферическое измерение в вакууме, которое не означает ровным счетом ничего):
# x = количество компаний, в которых ты проходил собеседования
# y = количество предложений о работе, которые ты получил
рейтинг = 100 * log(x) * y / x
Если твой рейтинг < 90, обязательно прочти это. Если > 120, возможно, тебе это не нужно, но, все равно прочти.
+71
Сбор расширенной статистики работы апстрима с помощью nginx-sla
8 min
16KВведение
Повышение качества обслуживания клиентов неизменно приводит к более высокой их лояльности. Причем не только в смысле приверженности определенному онлайн-продукту, но и в смысле терпимости к его недостаткам, при условии, конечно, что достоинства – скорость, юзабилити, функциональность и т.д. – их перевешивают.
Измерить качество обслуживания напрямую мы, конечно, не можем, однако даже такую эфемерную величину в принципе можно свести к набору количественных характеристик, так или иначе косвенно отражающихся на качестве. Прибыль, число клиентов, процент конвертированных лидов (leads – зарегистрировавшиеся или заинтересованные пользователи) и т.д. – все это вполне объективные показатели. Кроме того, эти величины могут быть включены в систему контроля эффективности работы в качестве KPI – ключевых показателей эффективности.
С нашей, инженерной точки зрения подобными характеристиками являются время ответа и HTTP-код ответа апстрима. Действительно, дизайн, функциональность продукта, маркетинговые усилия и прозвон клиентов находятся вне зоны нашей компетенции. Следовательно, нужно сфокусироваться на том, что находится в нашей власти – ускорение работы инфраструктуры приложения и обработки клиентских запросов.
Анализ отклика и HTTP-кодов удобно проводить на основе некоторой собранной статистической базы, и здесь мы плавно подходим к теме статьи.
+38
gps.conf для всех, или как ускорить работу GPS на Android
2 min
465KСегодня в очередной раз задумался над темой плохого приема GPS сигнала на моем китайском смартфоне Jiayu G2. Но, неожиданно для меня, проблема решилась буквально за пару минут — «китаец» находит спутники в течение 20 секунд. А теперь обо всем по-порядку.
+50
Как сделать облачный (кластерный) хостинг за пару копеек*
3 min
6.3KТри года назад у меня была интересная задача. Необходимо было собрать платформу, объединявшую несколько стоек с серверами в единое целое, для динамического распределения ресурсов между сайтами написанным для LAMP платформы. Причем так, чтоб вмешательство в код сайтов было минимальным, а еще лучше — вообще отсутствовало.
При этом никаких дорогих решений вроде Cisco Content Switch или дисковой полки с оптоволокном использовать нельзя — не хватало бюджета.
А кроме того, разумеется, в случае выхода одного из серверов из строя — это не должно было влиять на работу платформы.
При этом никаких дорогих решений вроде Cisco Content Switch или дисковой полки с оптоволокном использовать нельзя — не хватало бюджета.
А кроме того, разумеется, в случае выхода одного из серверов из строя — это не должно было влиять на работу платформы.
+44
Самый простой способ использования Hulu, Pandora и т.д. безо всяких VPN
2 min
78KUPD:
Если вам, как мне, надоело подключать VPN-туннель на штаты каждый раз, когда вы хотели бы послушать знающее ваши музыкальные вкусы радио Pandora или увидеть видео по ссылке на hulu.com, вам помогут два волшебных адреса (проверьте на сайте, они периодически меняются):
Это адреса DNS-сервера сайта tunlr.net которыйпроделывает хитрую магию с заголовками помогает вам избежать проверки на страну пребывания для вашего IP.
Сервис поддерживает только определенный список сайтов, для которых это будет работать. В случае всех остальных запросов он будет работать как обычный честный DNS-сервер.
Ребята, взамен помершего Tunlr мы подняли свой DNS Proxy для Pandora и Spotify. Работает, понянтно, на всех платформарх и практически не требует настройки — habrahabr.ru/post/215889/. Велкам!
Если вам, как мне, надоело подключать VPN-туннель на штаты каждый раз, когда вы хотели бы послушать знающее ваши музыкальные вкусы радио Pandora или увидеть видео по ссылке на hulu.com, вам помогут два волшебных адреса (проверьте на сайте, они периодически меняются):
142.54.177.158
209.141.56.79
Это адреса DNS-сервера сайта tunlr.net который
Сервис поддерживает только определенный список сайтов, для которых это будет работать. В случае всех остальных запросов он будет работать как обычный честный DNS-сервер.
+42
Как правильно мерять производительность диска
14 min
345KTutorial
abstract: разница между текущей производительностью и производительностью теоретической; latency и IOPS, понятие независимости дисковой нагрузки; подготовка тестирования; типовые параметры тестирования; практическое copypaste howto.
Предупреждение: много букв, долго читать.
Очень частой проблемой, является попытка понять «насколько быстрый сервер?» Среди всех тестов наиболее жалко выглядят попытки оценить производительность дисковой подсистемы. Вот ужасы, которые я видел в своей жизни:
Это всё совершенно ошибочные методы. Дальше я разберу более тонкие ошибки измерения, но в отношении этих тестов могу сказать только одно — выкиньте и не используйте.
Предупреждение: много букв, долго читать.
Лирика
Очень частой проблемой, является попытка понять «насколько быстрый сервер?» Среди всех тестов наиболее жалко выглядят попытки оценить производительность дисковой подсистемы. Вот ужасы, которые я видел в своей жизни:
- научная публикация, в которой скорость кластерной FS оценивали с помощью dd (и включенным файловым кешем, то есть без опции direct)
- использование bonnie++
- использование iozone
- использование пачки cp с измерениема времени выполнения
- использование iometer с dynamo на 64-битных системах
Это всё совершенно ошибочные методы. Дальше я разберу более тонкие ошибки измерения, но в отношении этих тестов могу сказать только одно — выкиньте и не используйте.
+139
Как обойтись без капчи?
2 min
130KК сожалению, на многих сайтах без особой необходимости используют капчи. Хотя можно побороть спам и незаметными для пользователя способами. Особенно, капчу больно видеть на небольших коммерческих сайтах в форме обратной связи, поскольку, капча заметно снижает конверсию таких сайтов. Для больших сайтов, которые могут специально спамить, такие методы не применимы. Однако, в большинстве случаев, без капчи можно обойтись
+115
Засеки 25 минут!
2 min
5.2KTutorial
Как часто вам бывает нужно просто засечь время? Я думаю, что такая необходимость периодически возникает у всех. Кто-то просто смотрит на часы, кто-то использует специальные программы, кто-то ставит будильник на телефоне.
Но помимо всех этих способов можно ещё сделать вот так:
Всего две команды, которые довольно легко запоминаются.
Вместо xmessage может быть, разумеется, что угодно ещё. Например:
Впрочем, тут надо учитывать, что команда не будет выполнена, если вы закроете терминал. Если же необходимо, чтобы команда всё-таки выполнилась, то есть несколько способов это сделать.
Но помимо всех этих способов можно ещё сделать вот так:
sleep 25m ; xmessage 'Hey! :)'
Всего две команды, которые довольно легко запоминаются.
Вместо xmessage может быть, разумеется, что угодно ещё. Например:
sleep 8h 30m ; mplayer /home/user/Music/pink_floyd-the_happiest_days_of_our_lives.flac
Впрочем, тут надо учитывать, что команда не будет выполнена, если вы закроете терминал. Если же необходимо, чтобы команда всё-таки выполнилась, то есть несколько способов это сделать.
+62
Django и особенности использования транзакций в MySQL
6 min
12KНаверное всем известно, что Django является одним из самых популярных фреймворков для web-разработки на python-е. И даже если в основе web-проекта лежит сторонний код, то зачастую при разработке используют отдельные части этого фреймворка — например ORM. В данной статье я хотел бы рассказать об особенностях использования Django ORM при работе с базой данных MySQL, а именно про транзакции и подводные камни, связанные с ними. Так, например, если в какой-то момент вы осознаёте, что вместо ожидаемых данных, возвращается совершенно другой результат, то возможно, данная статья поможет разобраться что к чему.
+46
Information
- Rating
- Does not participate
- Registered
- Activity