Pull to refresh
1
0
Send message

Представлен гиковский смартфон OnePlus One

Reading time1 min
Views16K
Китайская OnePlus, корни которой растут из Oppo, 23 апреля в Пекине анонсировала Android-коммуникатор One, сделавший ставку на сочетание первосортного оборудования, высококлассного программного обеспечения и более чем доступной цены.



И сегодня на презентации раскрыли новые подробности о смартфоне.
Читать дальше →

Чат-бот приложения через skype, jabber и whatsapp

Reading time15 min
Views93K
Привет!
Хотелось бы рассказать вам историю создания одного незамысловатого развлекательного сервиса чат ботов.

Вступление

О себе: Хабр читаю давно (лет этак 5), а вот зарегистрировался месяц назад, так как очень хотелось поделиться. Работаю в IT компании инженером по тестированию. Но меня всегда тянуло к разработке. И лет 7 назад занялся freelance параллельно основной работе. Начинал, как и все с малого, разбирался при помощи google. Писал всякие web непотребства. Все это ради достижения неких финансовых целей. Да и вообще вся жизнь состояла из цикла: поиск цели – достижение любыми средствами – удовлетворение – поиск новой цели. Так было и с freelance.

Переломный момент

Шла зима 2012/2013 года. Работал я на freelance над проектом онлайн-консультанта, и мне надо было сделать интеграцию с jabber и skype, то есть чтобы операторы могли работать с клиентом печатая в свой im клиент, а пользователь сайта получал это все на web. После поиска в google, оказалось, что с jabber все просто, любой xmpp сервер на выбор (я выбрал ejabbered) и библиотечка для работы с ним JAXL (взял на github), тогда еще версии 2.х. А вот со Skype были проблемы: на сайте в разделе Developers предлагался какой-то kit за деньги (и лицензия, запрещающая серверное использование), с ненужными мне активациями и с упоминанием про какой-то api. А хотелось чего-то более простого. И тут я наткнулся на этот api в «Доступ к Skype API используя PHP на *nix системах», сейчас на сайте skype упоминания о работе с api отсутствуют уже, хотя тогда было, и скачал pdf по работе с ним через dbus. Там было все то, что я искал.
Подробности

Intl к нам приходит!

Reading time4 min
Views31K
datemap Нет, не Intel. Intl — JavaScript объект, содержащий в себе функции форматирования чисел, дат и сравнения строк. Приходит, потому что 29 апреля Firefox, последний из популярных браузеров, не поддерживающий Intl, обновляется до 29 версии, в которой поддержка интернационализации будет включена.

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

Что же даёт Intl JS программисту?


А очень много

Почему сотрудники делают глупые ошибки и что с этим делать.Часть 1

Reading time8 min
Views133K
Как-то один из персонажей популярного сериала заявил «Все врут!». И это отчасти правда. И что уж 100% правда, что все лажают. Каждый может вспомнить, когда наши сотрудники не выполнили взятые на себя обязательства, сорвали сроки, что-то сделали — но совсем не то, а иногда лучше бы вообще не проявляли инициативу. К сожалению, лажают не только сотрудники, но и руководители. Самое печальное в этом то, что работают далеко не дураки, но бывают такие глупые epic fail, что и говорить не хочется.



Вариантов, что с этим делать, довольно много. Я бы хотел рассказать об одном из подходов, который в моем случае сработал. По итогу количество косяков и взаимных конфликтов руководитель-подчиненный стало значительно меньше.
Читать дальше →

Управление репутацией рассыльщика, или Кто виноват и что делать, если ваша рассылка попадает в спам?

Reading time7 min
Views58K


Email – это важный канал связи с пользователем, а для многих сервисов (например, для купонаторов) работа через email становится основой бизнес-модели. При этом как активные пользователи мы испытываем огромное раздражение, когда почтовый ящик начинает заваливать рассылками, информационными письмами, приглашениями от странных сервисов, т.е. тем, что в обиходе мы называем попросту «спам». Реалии нашей жизни таковы, что спам составляет 80-90% входящего потока писем на любой почтовый сервер. Поэтому для современного почтового сервиса фильтрация спама – это must have.

Точные алгоритмы фильтрации по понятным причинам обычно скрываются. Однако мы готовы приоткрыть завесу тайны над одним из аспектов работы антиспам-системы Mail.Ru, чтобы помочь коллегам из разных интернет-компаний грамотно и эффективно производить email-рассылки для наших общих пользователей. Фактически это набор рекомендаций, как не отправиться в спам и увеличить процент доставки писем до конечного получателя. Надеюсь, многим они будут полезны.
Читать дальше →

Шаблоны проектирования PHP. Часть 1. Порождающие

Reading time13 min
Views238K
Тема заезженная до дыр, не спорю… Вероятно, для опытных разработчиков моя статья будет мало, чем полезна. Я бы рекомендовал её к прочтению тем, кто только начал осознавать, что его коду чего-то не хватает, и что он созрел для вникания в это далёкое понятие – «паттерны». По себе помню, что довольно долгое время я путался в шаблонах, иногда даже не понимая, чем один отличается от другого. Именно этот факт стал основой для моей статьи. Примеры в ней не будут реальными. Они будут абстрактными и максимально простыми. Однако я постараюсь все примеры держать в едином контексте, чтобы можно было наглядно видеть отличия их использования в одной и той же ситуации. Я не буду нагружать классы лишним функционалом, чтобы можно было понять, какая именно часть кода имеет непосредственное отношение к шаблону. Главными героями примеров станут Factory (фабрика) и Product (продукт, производимый этой фабрикой). Возьмём это отношение за отправную точку. Возможно, в некоторых примерах это будет не очень уместно, но зато очень наглядно…

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

Вычисление дня недели в уме

Reading time4 min
Views110K
imageСуществует множество способов прокачать мозг. Задачи «n-back» или мобильные приложения для тренировки навыка быстрого счета в уме. Но эти задачи оторваны от текущей реальности, а хотелось бы прокачать мозг практичным навыком.

Зачем? Ведь можно быстро посчитать на гаджете. Увы, совсем не быстро, т.к. потребуется время на поиски и активацию гаджета, поиск приложения, ввод даты, осознание полученного результата. А еще можно друзей/подруг порадовать своими внезапно появившимися экстраординарными способностями. Кстати, друзья быстро осознают удобство использования вечного календаря с голосовым интерфейсом.

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

Динамические деревья

Reading time8 min
Views36K
Перед прочтением статьи рекомендую посмотреть посты про splay-деревья (1) и деревья по неявному ключу (2, 3, 4)

Динамические деревья (link/cut trees) мало освещены в русскоязычном интернете. Я нашел только краткое описание на алголисте. Тем не менее эта структура данных очень интересна. Она находится на стыке двух областей: потоки и динамические графы.

В первом случае динамические деревья позволяют построить эффективные алгоритмы для задачи о поиске максимального потока. Улучшенные алгоритмы Диница и проталкивания предпотока работают за и соответственно. Если вы не знаете, что такое поток, и на лекциях у вас такого не было, спешите пополнить свои знания в Кормене.

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

Перед тем, как нырнуть под кат, попробуйте решить следующую задачу. Дан взвешенный граф в виде последовательности ребер. По последовательности можно пройти только один раз. Требуется посчитать минимальное покрывающее дерево, используя памяти и времени. По прочтении статьи вы поймете, как легко и просто можно решить эту задачу, используя динамические деревья.
Читать дальше →

Завершен перевод книги Эдди Османи «Паттерны для масштабируемых JavaScript-приложений»

Reading time1 min
Views36K
Ура! Мы закончили работу над переводом замечательной книги об архитектуре JavaScript-приложения. Работать над переводом было очень приятно — мы получили около 40 пулл-реквестов от совершенно незнакомых нам людей, которые помогли исправить множество опечаток, неточностей и различных багов на сайте! Ссылка на наш перевод упоминалась в курсе «Фронтенд-разработка», читаемом во втором семестре Технопарка Mail.ru, а также в некоторых независимых подкастах.

В целом, реакция JavaScript-комьюнити нас очень приятно удивила, и сейчас мы думаем над возможностью перевода еще одной книги, но четкого плана еще нет.

Читать книгу можно на сайте перевода. Также можно скачать книгу в удобном формате: epub, mobi, fb2. Исходный код проекта доступен в репозитории на GitHub

Графы — sigmajs

Reading time2 min
Views24K
Привет, уважаемое Хабра сообщество. В один из прекрасных летних дней, позвонил мне мой товарищ, и сказал, что у него есть для меня очень интересная задача. Я люблю интересные задачи. Приехав на следующий день в офис, мы обсудили задачу. Задача, в двух словах, поставлена была следующая: отобразить на браузерном канвасе иерархию ~ 30000 пользователей с зависимостью между ними, плюс должна присутствовать некая анимация, которая в контексте данного поста не существенна, может в будущих, если на то будет время и Ваше одобрение.

Мы ударили по рукам, я сказал, что мне нужно провести «изыскания», так как сфера (JS + Canvas), была для меня была нова, и выяснить насколько развитие браузерных технологий соответствует реалиями поставленной задачи.

Через некоторое, не долгое время, я наткнулся на замечательную библиотеку — sigmajs, на тот момент была версия 0.8.2, если мне не изменят память, которая удовлетворила почти все наши амбициозные потребности.

С тех пор, много воды утекло, появилась версия сигмы 1.0.0, я обрел новый багаж знаний в сфере JS + Canvas и веба в целом. Для тех, кого я заинтриговал, прошу под кат, где будет дан краткий обзор библиотеки — sigmajs.

Читать дальше →

Создание игрового калькулятора на примере игры Aion

Reading time15 min
Views16K

Введение


Любой кто увлекается программированием играя в игру всегда хочет прикрутить туда что-то своё или сделать что-то полезное. Кто-то делает модификации игры, кто-то трейнеры или читы, кто-то вики или фансайты. Не обошло это увлечение стороной и меня.
Играю в настоящий момент в ММО Aion: Tower of Eternety (далее для простоты “Аион”) от корейского разработчика NCSOFT. Именно про неё и пойдёт разговор.

Первое, что приходит на ум в отношении ММО — это пользовательские плагины для интерфейса. К сожалению хоть и игра поддерживает аддоны, создать их простому смертному не получится: нету документации по API, да и без цифровой подписи клиент их попросту проигнорирует. Очень странное решение разработчиков, но, видимо, у них на то есть свои причины.

Второе — это изменение внешнего вида игровых предметов. Тут проблем вроде бы нету, исключая то, что модификация клиента запрещена пользовательским соглашением и то, что каждый пользователь должен будет установить эту модификацию. Таким способом можно “примерять” внешний вид новых предметов которые только есть пока на корейских серверах. Опять не подходит.

Третье — различного рода “читерские” приспособления. К чести разработчиков чего-то действительно стоящего простой модификацией ресурсов игры получить нельзя, всё перепроверяется сервером и на клиенте циферки скорее для справки пользователю и синхронизации действий на экране с расчётами на сервере. Можно побаловаться увеличением размеров каких либо неприметных объектов в игре, например сундуки сокровищ или именных монстров. Но это чревато глюками и опять же нарушает ПС как и п.2.

Остаётся творить вне игры, но на её тему, но нас, конечно же, интересует то, что можно закодить, а не фанарты или статейки. Баз разной степени актуальности и паршивости по аиону в интернете предостаточно. А вот чего действительно не было до меня — так это калькулятора экипировки персонажа, по крайней мере, онлайн версии мне не попадалось. С вводом новых классов в игре стали также неактуальны существующие калькуляторы умений (стигм). Калькулятор экипировки достаточно сложный чтобы с него начать разбор, поэтому поговорим сначала про умения.
Основные шаги, рекомендации и комментарии

Большой отчёт с ИнфоКома — мегаинтересной выставки экранов

Reading time8 min
Views19K


Привет! Мы тут три недели назад вернулись с юбилейной выставки Infocomm во Флориде и немного разобрали фотографии всяких интересных штук оттуда. Infocomm — это одна из немногих мировых выставок, которые обязательно нужно посещать, если хочется оставаться в курсе всех новинок. По большей части всё связано с разными экранами и вообще средствами отображения.

Выставка проходит в два этапа — 2 дня для партнёров, 3 дня для прессы и всех людей с улицы. Первые два дня показываются разные закрытые решения, делаются индивидуальные презентации. Например, в Амстердаме два года назад Mitsubishi пригласили нас показать свои экраны инновационной геометрии, которые потом, к сожалению, так и не пошли в массовое производство. Их, вроде, даже пресса не увидела.

Вот как-то так. Если интересна профессиональная техника, заходите в топик, покажу как там всё было. Только аккуратно, внутри очень много картинок.
Читать дальше →

Видео о том, как работает коллайдер и как он устроен

Reading time1 min
Views55K
image

В прошлый раз я разместил небольшой фотоотчет о посещении ЦЕРНа в качестве туриста. И там мне показали простой и в то же время весьма наглядный анимационный ролик про устройство и принцип работы Большого Адронного Коллайдера. И когда, по возвращению, мы перевели его на русский язык и выложили в youtube, то получили в ответ много позитивных отзывов типа такого: «Спасибо, а то на работе заколебался все это ручкой рисовать и пытаться на пальцах объяснить!».

Хотя коллайдер запущен уже давно, о принципе его действия имеют представление лишь немногие. И это моя попытка немного поправить положение дел. Приятного просмотра.
Читать дальше →

Nginx + Google-authenticator или не все не так просто…

Reading time6 min
Views81K
Авторизация в nginx на базе google одноразовых паролей.

По разным причинам пришлось отказаться от авторизации auth_basic и файла с паролями, несекурно и все тут.
Пользователей много с разным уровнем знаний, поэтому авторизация по сертификатам не подходит.

Подсказали решение на базе Nginx (http_auth_request_module) + Apache (google-authenticator-apache-module).

Поковырявшись несколько дней поднял, но не мог понять некоторые моменты как работают. Поковырявшись еще и разобрался.

Вот делюсь...

Реализация L2TP/IPsec VPN сервера стандартными средствами Windows 7/8 для подключения Windows/iOS/Android систем к внутренней сети

Reading time6 min
Views251K
Недавно я озадачился поиском возможности создания шифрованного подключения к своему офису средствами L2TP/IPsec протокола. Задача усложнилась, когда, кроме Windows клиентов, появилась потребность пускать в сеть еще iOS и Android клиентов. В Интернете множество статей как проделать это на Windows Server с «внешним» IP-адресом. Но я хочу предложить сообществу реализацию стандартными средствами Windows 7/8 шифрованного L2TP тоннеля в локальную сеть с популярной, на мой взгляд, топологией.
Читать дальше →

Twister: Стала доступна Windows версия

Reading time2 min
Views14K

Прошлом посте было приведено краткое описание что такое Twister.
Если вы не читали: Twister — это децентрализованный аналог твиттера (микроблогинговый сервис) который построен по принципу P2P и использует всё самое лучшее от Bittorrent и Bitcoin. Другими словами — это микроблогинговый сервис который невозможно цензурировать, модерировать и у него нет единой точки отказа.

Сегодня мы с вами поговорим о паре важных вещей: Релиз Windows клиента (уже скомпилированный), изменения в протоколе, пережитые атаки, изменения в Web GUI.
Читать дальше →

Отладка с помощью XDebug и PhpStorm на примере сайта 1С-Битрикс

Reading time3 min
Views131K
В этой статье я расскажу как удобно осуществлять отладку кода в PhpStorm на примере работы с веб-сайтом, работающем в системе 1C-Битрикс. Работать будем с IDE PhpStorm и отладчиком XDebug. Я предполагаю, что на вашем сервере уже установлен XDebug и у вас уже создан проект в PhpStorm.

В данной статье примеры приводятся с таким набором инструментов:
  • Веб-сервер — MAMP PRO
  • XDebug v2.2.3.
  • IDE PhpStorm 7.1
  • На моем локальном серевере установлен 1С-Битрикс 14 версии с решением интернет-магазина.


Итак, начнем.
Читать дальше →

Web Components — будущее Web

Reading time12 min
Views116K
Спустя какое время стало ясно, что основная идея Prototype вошла в противоречие с миром. Создатели браузеров ответили на возрождение Javascript добавлением новых API, многие из которых конфликтовали с реализацией Prototype.

— Sam Stephenson, создатель Prototype.js, You Are Not Your Code

Создатели браузеров поступают гармонично. Решение о новых API принимают с учётом текущих трендов в opensource сообществах. Так prototype.js способствовал появлению Array.prototype.forEach(), map() и т.д., jquery вдохновил разработчиков на HTMLElement.prototype.querySelector() и querySelectorAll().

Код на стороне клиента становится сложнее и объёмнее. Появляются многочисленные фреймворки, которые помогают держать этот хаос под контролем. Backbone, ember, angular и другие создали, чтобы помочь писать чистый, модульный код. Фреймворки уровня приложения — это тренд. Его дух присутствует в JS среде уже какое-то время. Не удивительно, что создатели браузеров решили обратить на него внимание.
Читать дальше →

Шпаргалка по шаблонам проектирования

Reading time2 min
Views1.5M

Перевод pdf файла с сайта http://www.mcdonaldland.info/ с описанием 23-х шаблонов проектирования GOF. Каждый пункт содержит [очень] короткое описание паттерна и UML-диаграмму. Сама шпаргалка доступна в pdf, в виде двух png файлов (как в оригинале), и в виде 23-х отдельных частей изображений. Для самых нетерпеливых — все файлы в конце статьи.

Под катом — много картинок.

Читать дальше →

Первые несколько миллисекунд HTTPS соединения

Reading time10 min
Views172K
После нескольких часов чтения обзоров, Боб с нетерпением нажал на кнопку перехода к оформлению заказа на галлон цельного молока, и…
Воу, что только что произошло?


Интересно? Прошу под кат

Information

Rating
Does not participate
Registered
Activity