Pull to refresh
62
0
Шевко Валентин @TuiKiken

Пользователь

NGINX изнутри: рожден для производительности и масштабирования

Reading time 8 min
Views 145K
NGINX вполне заслуженно является одним из лучших по производительности серверов, и всё это благодаря его внутреннему устройству. В то время, как многие веб-серверы и серверы приложений используют простую многопоточную модель, NGINX выделяется из общей массы своей нетривиальной событийной архитектурой, которая позволяет ему с легкостью масштабироваться до сотен тысяч параллельных соединений.

Инфографика Inside NGINX сверху вниз проведет вас по азам устройства процессов к иллюстрации того, как NGINX обрабатывает множество соединений в одном процессе. Данная статья рассмотрит всё это чуть более детально.
Поехали!
Total votes 93: ↑93 and ↓0 +93
Comments 32

Приемы при проектировании архитектуры игр

Reading time 11 min
Views 143K
К сожалению, нигде нет более менее полной публикации на тему проектирования архитектуры в играх. Есть отдельные статьи на конкретные темы, но нигде все это вместе не собрано. Каждому разработчику приходится самостоятельно по крупицам собирать подобную информацию, набивать шишки. Поэтому решил попробовать собрать часть из этого воедино в данной статье.

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

В публикации рассматриваются следующие темы:
  • Наследование VS компоненты
  • Сложные иерархии классов юнитов, предметов и прочего
  • Машины состояний, деревья поведений
  • Абстракции игровых объектов
  • Упрощение доступа к другим компонентам в объекте, сцене
  • Сложные составные игровые объекты
  • Характеристики объектов в игре
  • Модификаторы (баффы/дебаффы)
  • Сериализация данных

Читать дальше →
Total votes 40: ↑38 and ↓2 +36
Comments 30

Аппаратное ускорение в жизни верстальщика. Семинар в Яндексе

Reading time 6 min
Views 70K

Привет! Меня зовут Александр Завьялов. В Яндексе я занимаюсь разработкой интерфейсов. Недавно я выступил перед коллегами с докладом об аппаратном ускорении в жизни верстальщика, где также коснулся смежных тем. Рассказал о производительности веб-страниц, о том, как она измеряется и к чему она может стремиться.



Ссылка, если видео не отображается

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


Читать дальше →
Total votes 96: ↑95 and ↓1 +94
Comments 21

Собеседование на должность JavaScript разработчика

Reading time 4 min
Views 287K


Недавно прочитал неплохой пост на тему поиска работы QA и подумал, что похожий пост был бы полезен для JavaScript разработчиков. В конечном счёте, веб движется вперед семимильными шагами, и соискателей на позицию JavaScript программиста хоть отбавляй (разумеется, хороших всегда меньше).
Читать дальше →
Total votes 126: ↑115 and ↓11 +104
Comments 313

BabelFish — полиглот в мире JavaScript

Reading time 8 min
Views 11K
BabelFish


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

Например, в REG.RU на сегодня в словарях более 15000 фраз, из которых порядка 200 используют склонение, и более 2000 используют подстановку переменных. Каждый день добавляется не менее 10 фраз. И это при том, что мы пока только начали локализацию сайта и впереди планы на новые языки.

Хотя задачи интернационализации и локализации программного обеспечения (в том числе в веб) не новы, и, в целом, довольно стандартны, хороших универсальных инструментов для их решения не так много. И подобрать такой инструмент для конкретного стека клиентских и серверных технологий не всегда просто, особенно если хочется использовать один и тот же инструмент и там, и там.

DON'T PANIC.

Недавно был опубликован пакет BabelFish 1.0, предназначенный для интернационализации JavaScript-приложений.

Идеи, лежащие в его основе, настолько пришлись нам по душе, что мы даже перенесли их на Perl в виде CPAN-модуля Locale::Babelfish, и используем это для Perl-приложений. Но вернёмся к JavaScript-реализации.
Читать дальше →
Total votes 23: ↑22 and ↓1 +21
Comments 25

Node.js в огне

Reading time 6 min
Views 51K
Мы создаем новое поколение веб-приложения Netflix.com, использующего node.js. Вы можете узнать больше о нашем походе из презентации, которую мы представили на NodeConf.eu несколько месяцев назад. Сегодня я хочу поделиться накопленным опытом в настройке производительности нового стека нашего приложения.

Мы впервые столкнулись с проблемами, когда заметили, что задержка запроса в нашем node.js приложении со временем увеличивается. К тому же оно использовало больше ресурсов процессора, чем мы ожидали, и это коррелировало с временем задержки. Нам приходилось использовать перезагрузку как временное решение, пока мы искали причину с помощью новых инструментов и техник аналитики производительности в нашей Linux EC2 среде.

Читать дальше →
Total votes 69: ↑64 and ↓5 +59
Comments 64

Краткий конспект по языку JavaScript

Reading time 15 min
Views 113K
Я —.NET разработчик. Но в последнее время всё чаще сталкиваюсь с JavaScript. Причём, процентах в 50 случаев я что-то на нём пишу, в остальных 50 — разбираюсь с чужим кодом, да ещё и прошедшим через минификацию, а иногда и обфускацию. В этой статье захотелось поделиться теми моментами, которые мне показались важными для понимания языка и эффективной работы с ним. Тут не будет ничего нового или неизвестного для людей, уже имевших дело с языком, и не будет чего-то такого, чего нельзя найти в других источниках. Для меня статья будет полезна как способ лучше разобраться в предмете, для читателей, я надеюсь, — как повод освежить знания.

Брендан Айк упоминал, что JavaScript был создан за 10 дней. Думаю, идея вынашивалась дольше. Как бы то ни было, язык получился и с тех пор только набирает популярность. Особенно после появления AJAX.

JavaScript — язык со слабой динамической неявной типизацией, автоматическим управлением памятью и прототипным наследованием.

JavaScript состоит из трёх обособленных частей:

  • ядро (ECMAScript),
  • объектная модель браузера (Browser Object Model или BOM),
  • объектная модель документа (Document Object Model или DOM).


В статье, в основном, пойдёт речь о ядре. Конечно, в примерах кода будут использоваться элементы DOM и BOM, но заострять на них внимание не буду.
Читать дальше →
Total votes 75: ↑65 and ↓10 +55
Comments 20

Проблемы CSS. Часть 2

Reading time 7 min
Views 233K
Продолжение перевода статьи «Проблемы CSS. Часть 1».

Когда использовать width / height равный 100%?


Height: 100%

Пожалуй, начнем с того, что попроще. Когда использовать height: 100%? На самом же деле, вопрос часто звучит немного по-другому: «Как мне сделать так, чтобы моя страница заняла всю высоту экрана?». Ведь правда?

Для ответа на него нужно понять, что height: 100% равен высоте родительского элемента. Это не магическое «высота всего окна». Так что, если вы захотите, чтобы ваш элемент занял все 100% от высоты окна, то установить height: 100% будет недостаточно.

Почему? А потому, что родителем вашего контейнера является элемент body, а у него свойство height установлено в auto по умолчанию; а значит — его высота равна высоте контента. Конечно, вы можете попробовать добавить height: 100% к body, но этого тоже будет недостаточно.

Почему? А все потому же, родителем элемента body является элемент html, у которого также свойство height равно auto и он также растягивается под размер контента. А вот теперь, если добавить height: 100% и к элементу html, то все заработает.

Стало понятнее? Корневой элемент html на самом деле не самый верхней уровень на странице — им является «viewport». Для простоты, будем считать, что это окно браузера. Так вот, если установить height: 100% элементу html, то это то же самое, что сказать — стань такой же высоты, как окно браузера.
Читать дальше →
Total votes 85: ↑82 and ↓3 +79
Comments 30

Список издателей для разработчика мобильных игр

Reading time 6 min
Views 117K
Хочу поделиться с начинающими и продолжающими разработчиками мобильных игр списком издателей, который составил в процессе собственных поисков.

Немного лирики. Я – разработчик мобильных игр. Силами небольшой инди-команды мы разрабатываем небольшую, довольно хардкорную игру в стиле «два замка» для мобилок. Пару месяцев назад мы добрались-таки до момента, когда необходимо было определиться с выбором издателя.

На этом этапе мне пришлось потратить немало времени, просеивая уже существующие списки и сайты, составляя наиболее полный список. Хочу поделиться своими наработками с начинающими и продолжающими разработчиками мобильных игр. Надеюсь, это окажется кому-то полезно.
Читать дальше →
Total votes 35: ↑29 and ↓6 +23
Comments 35

«Пожиратель сердец» — Маршрутизатор ASUS RT-AC68U: 802.11ac, usb 3.0, BitTorent, TimeMachine

Reading time 6 min
Views 160K

К 23 февраля и 8 марта. Порадуй себя и близких тебе


Предисловие от автора (написано за 5 минут перед публикацией)


Первоначально я хотел всесторонне протестировать устройство с красивыми графиками и табличками, но что-то я так проникся им и начал просто пользоваться, поэтому всё немного сумбурно и без фактов, одни эмоции. Он меня просто покорил… Поехали!

Краткая информация


На рынке домашнего сетевого оборудования представлено множество решений, но сегодня я хочу рассказать вам об одном, действительно, уникальном устройстве: маршрутизаторе ASUS RT-AC68U (описание на сайте ASUS).

Не откладывая в долгий ящик, приведу ключевые особенности RT-AC68U, ставящие его выше остальных устройств на рынке:
  • новейший стандарт беспроводной связи 802.11ac
  • подключение внешнего жесткого диска по интерфейсу usb 3.0
  • официальная функция Time Machine
  • поддержка стандарта BitTorent (с учетом предыдущего пункта)

Именно совокупность этих черт сподвигла меня к данному приобретению. Разумеется, я умалчиваю про общеизвестные функции, такие как: подключение принтера или 3G/4G-модема во второй usb2.0 порт, работа в качестве домашнего файл-сервера, работа в качестве качалки всего и вся.

Технические характеристики ASUS RT-AC68U
Таблица с характеристиками честно скопирована с официальной страницы Asus и в ней отсутствует упоминание о функции Time Machine.
Дополнительно хочу отметить, что крепление к стене не предусмотрено.
Network Standard IEEE 802.11a, IEEE 802.11b, IEEE 802.11g, IEEE 802.11n, IEEE 802.11ac, IPv4, IPv6
Product Segment AC1900 ultimate AC performance: 600+1300Mbps
Data Rate 802.11a: 6,9,12,18,24,36,48,54Mbps
802.11b: 1, 2, 5.5, 11Mbps
802.11g: 6,9,12,18,24,36,48,54Mbps
802.11n: up to 450Mbps
802.11n TurboQAM:up to600Mbps
802.11ac: up to 1300Mbps
Antenna External x 3
Operating Frequency 2.4GHz/5GHz
Encryption 4-bit WEP, 128-bit WEP, WPA2-PSK, WPA-PSK, WPA-Enterprise, WPA2-Enterprise, WPS support
Firewall & Access Control Firewall: SPI intrusion detection,DoS protection
Access control: Parental control, Network service filter, URL filter, Port filter
Management UPnP, IGMP v1/v2/v3, DNS Proxy, DHCP, NTP Client, DDNS, Port Triger, Universal Repeater, System Event Log
VPN Support IPSec Pass-Throuth
PPTP Pass-Through
L2TP Pass-Through
PPTP server
OpenVPN server
PPTP client
L2TP client
OpenVPN client
WAN Connection Type Internet connection type: Automatic IP, Static IP, PPPoE(MPPE supported), PPTP, L2TP
WAN Bridge support
Multicast Proxy support
Multicast Rate Setting support
Utilities .Download master
— support BT, NZB, HTTP, ED2K
— support encryption, DHT, PEX and magnet link
— upload and download bandwidth control
— download scheduling
.Media server:
— Image: JPEG
— Audio: mp3, wma, wav, pcm, mp4, lpcm, ogg
— Video: asf, avi, divx, mpeg, mpg, ts, vob, wmv, mkv, mov
.QoS:
— WMM
— User definable rules for IP/MAC/Port. Upload and Download bandwidth management.
— ACK/SYN/FIN/RST/ICMP with Highest priority
.Guest Network
— 2.4GHz guest network x 3, 5GHz guest network x 3
.Printer Server: multifunctional printer support(Windows nly), LPR protocol support
.File server: Samba and FTP server with account management
.PPTP VPN server
.Network map
.Traffic monitor
Ports 4 x RJ45 for 10/100/1000/Gigabits BaseT for LAN, 1 x RJ45 for 10/100/1000/Gigabits BaseT for WAN
USB 2.0 x 1
USB 3.0 x 1
Кнопка WPS Button, Reset Button, Power Button, Wireless on/off Button
Светодиодный индикатор PWR x 1
Wi-Fi x 2
LAN x 4
WAN x 1
USB x 2
Электропитание AC Input: 110V~240V(50~60Hz)
DC Output: 19 V with max. 1.75 A current
Размеры 220 x 83.3 x 160 mm (WxDxH)
Вес 640 g
Комплeктация 1 x RT-AC68U Wireless-AC1900 Dual Band Gigabit Router
1 x RJ-45 cable
1 x Power adapter
1 x QSG
1 x Support CD(user manual and ultility)
Router Special Features 3G/4G data sharing, AiCloud, Printer server, Download Master, AiDisK, Multiple SSIDs, Parental Control
Ещё немного официальных картинок ASUS RT-AC68U












Читать дальше →
Total votes 74: ↑52 and ↓22 +30
Comments 129

Коллективный разум ХабраХабра выбрал лучшие игры всех времен и народов на 2013 год

Reading time 5 min
Views 299K
Коллективный разум ХабраХабра выбралучшие игры всех времен и народов на 2013 год

Этим постом подвожу итог попытки определить лучшие игры всех времен и народов по версии Хабрахабра на 2013 год.

Отбор проводился по простым правилам:

− В этот пост каждый желающий вносил свою любимую игру,
− Каждый другой желающий голосовал за любимую игру.

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

Основные итоги


Всего в посте собралось за 5 дней больше 1 800 комментариев. Игр было указано около 400. Набрали больше 20 голосов 121 игра. При подсчете учитывались только плюсы (минусы не считал, ибо мы выбирали то, что нравится). Итак, встречайте десятку лучших:

  1. Герои Меча и Магии (259)
  2. Half Life (254)
  3. Fallout (211)
  4. Portal (182)
  5. Neverhood (174)
  6. DOOM (153)
  7. Civilization (151)
  8. StarCraft (150)
  9. Космические рейнджеры (128)
  10. Warcraft (127)

Читать дальше →
Total votes 219: ↑191 and ↓28 +163
Comments 208

История авторского права. Часть 7: Рейдерский захват корпорацией Pfizer

Reading time 5 min
Views 119K
Окончание.
Первая часть — Чёрная смерть.
Вторая часть — Кровавая Мэри.
Третья часть — Монополия умирает… и возрождается.
Четвёртая часть — США и библиотеки.
Пятая часть — Неимущественные права.
Шестая часть — Рейдерский захват звукозаписывающими компаниями.



В 1970-е Toyota поразила США в самое сердце, и все американские политики почувствовали, что конец близок. Самые американские из всех вещей — автомобили! Американские автомобили! — вдруг оказались недостаточно хороши для американцев. Вместо них они покупали машины Toyota. Это был апокалиптический знак — США уже не могли конкурировать с Азией, и их промышленное могущество близилось к закату.

Это последняя часть моей серии статей об истории копирайтной монополии. Период с 1960 по 2010 годы был отмечен двумя процессами: во-первых — проникновение некогда исключительно коммерческой монополии в некоммерческую, частную жизнь («домашняя звукозапись незаконна» и тому подобная чушь), в результате которого копирайт стал угрозой для фундаментальных прав человека; во-вторых — корпоративная политическая экспансия копирайтной и других монополий. Первый процесс, в ходе которого индустрия интеллектуальной собственности пророчила катастрофу после каждого нового витка технологического прогресса, заслуживает отдельной статьи. Здесь же я сосредоточусь на втором процессе.

Когда политики поняли, что Соединённые Штаты более не способны удерживать экономическое лидерство, производя что-либо ценное и жизненно необходимое, они создали множество комитетов и рабочих групп, перед которыми стояла одна цель — найти ответ на критически важный вопрос: как США смогут остаться мировым лидером, не имея возможности производить конкурентноспособные товары?

Ответ пришёл из неожиданного источника — от фармацевтической компании Pfizer.
Читать дальше →
Total votes 149: ↑138 and ↓11 +127
Comments 242

10 главных советов Mac OS X

Reading time 5 min
Views 453K
Я давно и весьма успешно пользуюсь техникой и ОС от Apple. При этом, я постоянно вижу, как окружающие меня люди: начинающие пользователи, да и весьма оптыные зачастую, не очень хорошо ориентируются в богатых возможостях этого ПО и железа. Поэтому я решил помочь и перевести несколько западных статей с советами и секретами. Считаю, что «родная» для Apple пресса наилучшим образом справляется с раскрытием потенциала OS X.

Первый материал с Lifehack.org

Вы когда-нибудь видели того, кто действительно умеет пользоваться компьютером Mac и операционной системой OS X? Иногда выглядит просто волшебством, как они заставляют двигаться окна, появляться изображения, запускаться приложения и делать множество других классных вещей – при этом их пальцы, кажется, вообще не покидают клавиатуру.Я не могу похвастаться знанием многих советов и рекомендаий Mac, тем не менее, у меня есть в запасе несколько советов, которые могут показаться вам полезными. Некоторые из них достаточно распространены, некоторые – не столь известны, но все они сделают нечто важное, на шаг приближая вас к рангу Мастера Джедаев вашего Mac.

Читать дальше →
Total votes 136: ↑90 and ↓46 +44
Comments 223

Индексация AJAX-сайтов поисковым роботом Яндекса

Reading time 2 min
Views 1.9K
Рады сообщить, что улучшения индексации AJAX-сайтов Яндекс поддержал изменения в поисковом роботе и правилах обработки им URL таких сайтов.

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

При создании AJAX-сайтов могут использоваться URL с #, но такой URL не используется поисковым роботом. Как правило, часть URL после # отсекается. Поэтому вместо URL вида site.ru/#example он обращается к главной странице сайта, расположенной по адресу site.ru. Это значит, что контент страницы может не проиндексироваться и, как следствие, не попасть в результаты поиска.

Теперь вебмастер AJAX-сайта может указать поисковому роботу Яндекса на необходимость индексации, поддержав соответствующую схему в структуре сайта. Для этого нужно:

Читать дальше →
Total votes 39: ↑31 and ↓8 +23
Comments 9

Потерял Android-коммуникатор? Будь готов!

Reading time 2 min
Views 812
Привет, хабражители.
Потеря телефона — всегда неприятное событие. Но в сложившейся сейчас ситуации, когда и на сам смартфон, и на номер сим-карты завязаны почти все онлайн-сервисы, потеря телефона оборачивается настоящей головной болью.

Опыт утери и немного измышлений по этому поводу внутри
Total votes 67: ↑47 and ↓20 +27
Comments 91

Как заставить Time Machine бэкапить на сетевой диск

Reading time 2 min
Views 80K
Недавно решил отделиться от «Wi-Fi соседей» и перебраться в 5 Ghz, для чего был приобретен роутер Cisco Linksys EA4500. К роутеру можно подсоединить USB Storage, который раздается через SMB и FTP. Захотелось заставить Time Machine делать бэкапы на это чудо устройство. В результате гугления долго не получалось заставить Time Machine от Mac OS X Mountain Lion порадовать меня, пока не наткнулся на одну статью, адаптивный перевод которой и представляю вам для ознакомления ниже.
Читать дальше →
Total votes 15: ↑12 and ↓3 +9
Comments 18

Новая консоль на базе Dingux — R480

Reading time 3 min
Views 4.9K
Тепло принятая энтузиастами карманная игровая консоль Dingoo A320 за последние два года так и не получила логического продолжения. Продукты конкурентов Shenzhen Dingoo Digital Co. впечатляют отдельными элементами, но не создают той финальной ценности для гиков, которой обладает оригинальная A320 — возможность установки операционной системы на основе Linux. Такая опция любой железке добавляет +5 в карму!

Не исключено, что скоро все изменится в лучшую сторону…

R480 Dingux

Опубликованный вчера на сайте a320.emulate.su предварительный обзор прототипа новой «российско—китайской» консоли R480 всколыхнул массы. Предлагаю читателям Хабры расширенный вариант этого материала и призываю к активному обсуждению увиденного в комментариях.



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

Читать дальше →
Total votes 46: ↑43 and ↓3 +40
Comments 52

«Сделайте мне красиво!» Выпуск №22

Reading time 1 min
Views 3.6K
Вашему вниманию очередной выпуск подкаста о веб-разработке «Сделайте мне красиво!»

Show notes:



Наши ссылки: RSS и лента на rpod.ru
Total votes 23: ↑17 and ↓6 +11
Comments 1

WebP, новый формат изображений для интернета

Reading time 3 min
Views 25K
В рамках инициативы компании Google, заключающейся в том, чтобы сделать интернет более быстрым, в течении прошедших месяцев мы выпустили целый набор инструментов, призванных помочь владельцам сайтов их ускорить. Мы запустили расширение для Firefox под названием Page Speed, позволяющее изучать производительность веб страниц, а также получать предложения о том, как её увеличить. Мы представили Speed Tracer, расширение для Chrome, позволяющее найти и исправить проблемы с производительностью в веб приложениях. Кроме того, мы выпустили набор инструментов для завершающей стадии разработки (closure tools), призванный помочь создавать сложные веб приложения с польностью оптимизированным javascript-кодом. В то время, как эти инструменты были невероятно успешны, помогая разработчикам оптимизировать их сайты, мы продолжали работу, и нам удалось обнаружить единственный компонент веб страниц, который полностью ответственнен за большинство задержек на страницах: изображения.

Большая часть распространенных форматов изображений, используемых в сети, были созданы более 10 лет назад и основаны на технологиях того времени. Инженеры из Google решили проверить: нет ли способа увеличить степень сжатия алгоритмов сжатия с потерями (как JPEG), чтобы позволить изображениям загружаться быстрее, при этом полностью сохраняя их разрешение и визуальное качество. В результате работы на этим проектом мы выпускаем новый формат изображений, WebP, в предварительной версии для разработчиков. Этот формат обещает существенно уменьшить бинарный размер фотографий в сети, позволяя сайтам загружаться быстрее, чем раньше.
Читать дальше →
Total votes 99: ↑91 and ↓8 +83
Comments 78

Как правильно покупать товары на Ebay

Reading time 5 min
Views 182K
image
Тема Ebay в связи с его русификацией становится очень актуальной, поэтому решил поделиться с хабрасообществом несколькими советами из области как правильно покупать товары на Ebay, чтобы не нарватся на мошенников и сделать правильную покупку. Большая часть описанного основана на личном опыте.
Читаем далее
Total votes 187: ↑166 and ↓21 +145
Comments 100

Information

Rating
Does not participate
Location
Минск, Минская обл., Беларусь
Date of birth
Registered
Activity