Pull to refresh
0
0
Satellite @EverCelt

User

Send message

Профилактика ноутбука в домашних условиях

Reading time5 min
Views193K
Доброго времени суток. Решил поделиться с вами способом в домашних условиях поддерживать на должном уровне здоровье наших любимых ноутбуков (нетбуков).
Есть одна страшная, а порой и гибельная угроза- перегрев! Многие из вас сталкиваются с тем, что ваш верный помощник обжигает колени, хотя непрерывно воет кулер, либо неплохо нагнетает температуру в уютный (может слегка пыльный) плед, которым вы укутали себя, а заодно и ноут. Тут-то стоит задуматься,- «А к чему бы это?». А ведет все к перегреву, внезапному отключению и отказу к призывам «включиться сейчас же и доиграть в игру». Не тут-то было- он включится только через определенный промежуток времени, в течение которого остынет он естественным путем. А бывает и не включаются, тогда прямая дорога в СЦ, ибо профилактика пациента уже не спасет. После диагностики выявится обычно или спаленный видеочип, либо перегретый мост. Что одно, что другое не очень приятно по цене ремонта. Так что давайте следить за своими устройствами и не доводить до крайних мер.
Читать дальше →
Total votes 80: ↑51 and ↓29+22
Comments112

24 недели Metro-дизайна для Windows Phone | #3 Формирование идей и концепции

Reading time19 min
Views4.8K
В предыдущей статье "Процесс проектирования приложений для Windows Phone" мы обсуждали важность определения темы вашего приложения для Windows Phone. Этап идей поможет вам усовершенствовать вашу тему и генерировать идеи, которые помогут улучшить пользовательское взаимодействие для этой темы. Мы говорили о выборе в качестве темы пользовательского опыта, такого как обед, бег или плавание, вместо мыслей о приложениях с точки зрения API или RSS-каналов, доступных извне.
Формирование идей и концепции — это весёлый этап и в него лучше всего играть с другими людьми!
Читать дальше →
Total votes 37: ↑24 and ↓13+11
Comments5

Как написать своё VoIP-приложение с работой в фоне под Windows Phone

Reading time6 min
Views16K
В этой статье я бы хотел рассказать о том, как в минимум усилий написать своё простое VoIP-приложение с бэкэндом и работой в фоне на платформе Windows Phone 8.

До выхода Windows Phone 8 пользователей voip-приложений очень разочаровывала работа в фоне, которая, собственно, практически отсутствовала — максимум из того, что могли сделать разработчики, чтобы показать пользователю входящий звонок пока приложение в бэкграунде — это показать toast notification, который слабозаметен, еле слышен и быстро исчезает. С одной стороны, это не позволяло поедать батарейку как если бы приложение работало полноценно в фоне, но с другой — делало его малополезным инструментом. До выхода WP8, Microsoft подогревала интерес публики к новой версии платформы обещаниями интегрировать Skype в операционную систему и работу в фоне. Что ж, обещания они свои выполнили — теперь стало возможно:

  • инициировать звонок на Skype через контактную книгу телефона
  • продолжать разговор по Skype даже если вы целенаправленно или случайно свернете приложение (раньше если при разговоре вы случайно заденете кнопку поиска — разговор обрывался)
  • и самое интересное: принимать входящие звонки с интерфейсом а-ля обычный gsm-звонок в условиях когда Skype не запущен (не в foreground) и более того — он в фоне ничего не делает (не поедает батарейку)

Microsoft не стало делать это эксклюзивными возможностями (кроме интеграции в контактную книгу) для своего продукта и открыло API, что дает возможность сторонним разработчикам реализовывать такие же сценарии, не будучи при этом привилегированным партнером (как было в WP7 с native sdk). И хотя так же красиво интегрироваться в контактную книгу не получится — можно воспользоваться ContactStore и Protocol handlers, чтобы изменить в контакте поле URL и сделать открытие приложение по клику).

В конце статьи приложены исходники двух проектов: один из них пример Microsoft Chatterbox, в котором объясняется, как работают бэкграунд процессы с симуляцией бэк-энда с входящими звонками и даже с видео; второй — мой проект с простым бэкэндом, который позволяет общаться по voip на двух устройствах и использует voip push notifications, но обо всем по порядку.


Читать дальше →
Total votes 42: ↑34 and ↓8+26
Comments9

Шаблон MVC — это тупик для разработки приложений?

Reading time2 min
Views25K
В данной статье я бы хотел рассказать, почему использовать шаблон проектирования MVC недостаточно для создания гибких и масштабируемых приложений. А также предложить варианты решения выявленных проблем.

В самом Model View Controller шаблоне нет ничего плохого. Он решает ту проблему, для которой его придумали — это разделение логики обработки запроса пользователя и логики представления информации.

mvc

Читать дальше →
Total votes 47: ↑29 and ↓18+11
Comments57

Строим Nested Set дерево без рекурсии

Reading time3 min
Views80K
Деревья в базах данных можно хранить тремя основными методами: Adjacency List, Matherialized Path & Nested Set. Когда мы хотим переехать с AL на NS, это можно сделать с помощью рекурсии (если БД расово верная). Но что делать в случае MySQL?
Переехать с AL на NS
Total votes 20: ↑16 and ↓4+12
Comments20

От JQuery до Backbone

Reading time23 min
Views28K
imageВ данной статье будет показано как можно реорганизовывать код написанный в «простом» JQuery стиле в код на Backbone, с использованием представлений, моделей, коллекций и событий. Реорганизация будет постепенной, так чтобы этот процесс дал четкое понимание основных абстракций в Backbone. Статья рассчитана на тех кто использует JQuery и хотел бы познакомится со схемой MVC для клиентского кода.
Читать дальше →
Total votes 90: ↑80 and ↓10+70
Comments43

Написание сложных интерфейсов с Backbone.js

Reading time13 min
Views100K
image

Backbone.js это каркас для создания RIA JavaScript приложений, его автором является Jeremy Ashkenas, создатель CoffeeScript, Backbone является частью компании Document Cloud ей же «принадлежит» Underscrore.js. Backbone — очень легкая библиотека, помогающая вам создавать интерфейсы. Она может работать с любыми библиотеками, к которым вы привыкли.
Backbone это набор классов, размером менее 4Кб, которые формируют структуру вашего кода и помогают создавать качественные MVC веб-приложения.
Backbone формирует структуру тяжелых JavaScript приложений, внесением моделей с key-value подобным хранилищем и своими событиями, коллекций с богатыми API, видов (ориг. views) с декларативной обработкой событий и соединяет все это в в одно приложение, поддерживающее RESTful JSON интерфейс.

Backbone не может работать без Underscore.js. Для поддержки REST API и работы с DOM элементами в Backbone.View настоятельно рекомендуется подключить json2.js и jQuery-подобную библиотеку: jQuery или Zepto

В статье будет рассмотрена структура Backbone.js, будет поэтапно создано простое Todo приложение.
Читать дальше →
Total votes 108: ↑103 and ↓5+98
Comments47

Кнопки социальных сетей, HTML 5, атрибут data и асинхронная загрузка javascript

Reading time6 min
Views102K
Давно уже планировал установить на свой сайт кнопки социальных сетей. Наконец нашел время для этого, проблема усугублялась тем, что я сам не являюсь пользователем социальных сетей, хотя против ничего не имею.

Первым делом начал собирать информацию, ее довольно много, есть правда и устаревшая. Например, Twitter поменял уже ссылку, старая twitter.com/share, а новая twitter.com/intent/tweet, у Google ссылка «www.google.com/buzz/post», уже давно не работает, вместо нее plus.google.com/share. Конечно, это общеизвестные факты, но, похоже, все-таки не все об этом знают и предлагают «шарить» на старые ссылки.

В общем, ознакомившись с темой, решил взять кнопки в первоисточнике:
Читать дальше →
Total votes 33: ↑24 and ↓9+15
Comments28

На пути к созданию безопасного веб-ресурса. Часть 2 — разработка

Reading time6 min
Views26K
Я рад продолжить рассказывать свои взгляды к подходам создания безопасных веб-ресурсов и веб-приложений и перейти от первой части, которая содержит в себе некоторые общеполезные security-инструкции при создании инфраструктуры для проекта, ко второй — разработке самого приложения.

Дыра в безопасности не была исправлена, так как продукт-менеджеры хотят новую фичу

Читать дальше →
Total votes 49: ↑38 and ↓11+27
Comments20

На пути к созданию безопасного (веб)ресурса. Часть 3 — офис, сотрудники

Reading time5 min
Views21K

Типичная работа сотрудника глазами самого сотрудника и глазами отдела безопасности

Первые две части данной темы были посвящены преимущественно веб-ресурсам. Эта часть более общая и не имеет как таковой привязки к профилю проекта (все же за исключением пары пунктов). Она освещает возможные, популярные векторы атак на сотрудников и на техническое обеспечение офиса компании (p.s. изначально хотел написать про security-тестирование, но решил «перепрыгнуть» эту тему в силу разных причин).

Автор не несет никакой ответственности за незаконное использование описанных методик и/или инструментов.
Читать дальше →
Total votes 39: ↑35 and ↓4+31
Comments12

Asana в деталях, и как ее использовать

Reading time6 min
Views221K

Проекты над которыми трудятся разработчики можно часто рассматривать как одну (или несколько) больших задач. А чтобы было проще решать большую задачу, ее нужно разделить на более мелкие. Для этого отлично подойдет Asana — collaborative task management application. Под хабракатом описание данной системы и один use-case который мы успешно используем при разработке сайтов. Статья большая и с картинками. Кому интересно только то как мы используем Asana на работе, можете перейти сразу к примеру, или к примеру в картинках.
Читать дальше →
Total votes 47: ↑42 and ↓5+37
Comments42

Мониторинг веб-приложении при помощи браузера

Reading time1 min
Views5.7K
Работая над своими проектами неоднократно наталкивались на проблему необходимости дополнительных возможностей для мониторинга своего продукта. То есть, помимо стандартного наблюдения за нагрузкой или доступностью к серверу, хотелось иметь возможность непрерывного наблюдения и валидации интерфейс элементов, форм, контента и прочих составляющих. Другими словами нужен был инструмент который позволял бы нам узнавать о появившихся проблемах и решать их прежде чем они будут замечены пользователями.
Читать дальше →
Total votes 6: ↑5 and ↓1+4
Comments2

Как стать ведущим разработчиком. Часть 1

Reading time8 min
Views142K
Это перевод статьи, написанной Джоном Оллспоу, который на данный момент является старшим вице-президентом технического отдела в Etsy.

Продолжение перевода здесь

В нашей сфере деятельности нам доступны огромные объёмы знаний, в особенности тех, которые позволяют разработчику стать эффективным. Но почему-то, несмотря на существование множества книг о специфических задачах и обязанностях менеджеров в нетехнических областях, я практически не вижу новых книг или статей о том, как стать хорошим ведущим разработчиком. Замечательным исключением, конечно, являются статьи Кейт Maцудайры [от переводчика: на фотографии, кстати, именно она], немало написавшей о культурных составляющих инженерии.

Но в то же время, все мои знакомые преуспевающие разработчики помнят своих наставников, которые научили их тому, что значит быть „ведущим“.
Читать дальше →
Total votes 233: ↑203 and ↓30+173
Comments76

Databene Benerator — генерация тестовых данных

Reading time12 min
Views26K

Суть проблемы


Сейчас появляется очень много материала про юнит и нагрузочное тестирования. Все поголовно пишут тесты, код создают исключительно через TDD, используют jmeter/ab. Однако, все тестирование очень тесно связано с тестовыми данными. А их нужно генерировать/писать. Проблема не стоит остро для юнит тестирования — накидал mock, погонял его и забыл. Но как быть с нагрузочным тестированием? Когда мне нужно не 1-2-5-10 объектов, а миллионы?

imageБольшинство (php) разработчиков, которых я встречал, сталкиваясь с задачей нагрузочного тестирования своего кода, создают несколько фикстур руками и насилуют их (ab/jmeter). Полученный результат тестирования не является достоверным, но они об этом не думают. Более продвинутые пишут скрипты для генерации данных, закидывают в БД и после этого уже играются. Похвально, но таких значительно меньше, а сам способ мне не кажется идеальным — другой программист может не разобраться в говнокоде генерилки фикстур (ведь создатель писал это быстро и для утилитарных целей) и рано или поздно все либо пойдут по первому пути, либо начнут писать новую генерилку.

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

Я был очень удивлен, но ничего вразумительного не было найдено, сложилось ощущение, что никого этот вопрос просто не интересует и мне всю жизнь придется писать кривые скрипты с кучей циклов. Тем не менее, подходящий инструмент был найден, мы успешно опробовали его в работе, и теперь я хочу представить его вам.
А что же там такое?
Total votes 18: ↑18 and ↓0+18
Comments11

HMVC в пространстве имен

Reading time10 min
Views2.6K
В последнее время очень много говорится о схеме проектирования MVC, почти все популярные PHP-фреймворки уже давно перешли на эту схему. Что же касается Kohana, то начиная с версии 3, реализована иерархическая схема MVC – HMVC. Преимущества HMVC, всем понятны и мы не будем их здесь обсуждать.

Я, как желающий сменить статус «программиста-любителя» на «программиста-профессионала» решил, что уже достаточно изучил PHP и пора начинать работать с фреймворками, выбор моего самого первого фреймворка пал на именно Kohana, т.к. в нем реализуется HMVC, ну и вообще, его много хвалят за простоту.

В реальности все оказалось не просто, но особенно напрягало отсутствие изолированности триад MVC, триады разбивались на части и помещались в разные папки. В моем понимании, триада Model-View-Controller, должны быть изолированны от других триад, и находиться в одной папке, конечно, это можно было реализовать в Kohana, но все будет выглядеть очень «коряво» и запутанно. Еще было не понятно, почему не используется такая замечательная возможность PHP как пространство имен? Просмотрел еще несколько HMVC-фреймворков, но не к одному «душа не легла». Тогда я решил самостоятельно реализовать HMVC.

Сразу установил несколько директив:
  • Должно использоваться пространство имен
  • Автозагрузка классов работает на пространстве имен
  • В автозагрузку можно добавлять несколько папок
  • Каждое приложение имеет свою папку, на которую устанавливается автозагрузка
  • Каждая триада, в том числе и шаблоны, помещается в отдельную папку, соответственно, находятся в своем пространстве имен
  • По умолчанию, части MVC называются своими именами, Controller, Model и View, в каждой папке триады должна быть папка templates для шаблонов
  • Очень простой роутинг, URI просто разбивается в массив
  • Controller похож на Kohana_Controller
  • Controller получает информацию о том, что от него хотят в конструкторе, разбирает информацию URI-массива, после чего запускает метод action()
  • Метод action() проверяет методы объекта и запускает соответственно action_действие()
  • Генерация HTML, осуществляется методом контроллера render()


Потом добавил еще несколько:
  • Роутинг осуществляет расширенный контроллер, он разбивает URI в массив, сначала проверяет свои actions, если не находит, то ищет зарегистрированный контроллер
  • Результат работы модели сохраняется в контроллере, передается в View, при создании в методе контроллера render()
  • Метод action() публичный, созданный контроллер можно еще раз запустить и сгенерировать HTML
  • View похож на Kohana_View, для приложения, View необходимо «вытащить» в глобальное пространство имен при помощи наследования, заодно немного настроив, все остальные View должны быть наследниками глобального View
  • Контроллеры и View должны знать в какой папке и в каком пространстве имен они находятся, для этого они наследуются от специального класса NameSpaceAdapter, это нужно для правильного поиска View из контроллера, а так же папки templates из родительского View
  • Главный шаблон для каждой триады — template.php
  • Контроллеры автоматически передают в View свой action, на основании этой информации View из главного шаблона template.php самостоятельно ищет нужный шаблон action.php, поэтому не должно быть action_template(), это приведет к зацикливанию шаблонов
  • Для администрирования можно создать шаблоны с префиксом admin_action.php, которые можно вызвать только если установлена константа ADMIN


В итоге получилась небольшая HMVC структура, Model не играет роли, поэтому код не привожу, скажу только, что склоняюсь к статическому классу.
Читать дальше →
Total votes 7: ↑2 and ↓5-3
Comments6

Интерактивная обучалка ветвлению в Git

Reading time1 min
Views79K
Некий Питер Коттл (Peter Cottle) сделал интерактивную обучалку по основам ветвления в Git. Есть несколько простых обучающих уровней, где нужно сделать пару коммитов, а затем merge или rebase, есть и сложные уровни, над которыми придется подумать. Можно также сохранять уровни и делиться ими с друзьями.

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

image
Читать дальше →
Total votes 162: ↑156 and ↓6+150
Comments38

Загадка выпадающего списка «Амазона»

Reading time2 min
Views191K
Бен Кэменс обнаружил, что в выпадающем списке Shop by Department на сайте «Амазон» ховер-эффект происходит очень быстро, абсолютно без какой-либо задержки. Тем самым происходит нарушение старого, выработанного ещё в 90-х годах прошлого века правила: перед отображением пункта подменю необходим так называемый гистерезис, запаздывание.



Запаздывание необходимо не только для того, чтобы сберечь ресурсы машины пользователя, но и по соображениям юзабилити: если не добавить задержку, то переводить курсор мыши на выпавшее подменю будет неудобно, придётся вести его сначала горизонтально в меню, не задевая другие пункты, и лишь после выбирать нужный подпункт.
Читать дальше →
Total votes 558: ↑548 and ↓10+538
Comments90

Нирвана для тестировщика — Nerrvana

Reading time4 min
Views6K
Больше четырёх лет назад мы озаботились созданием удобной системы для автоматического выполнения Selenium-тестов наших продуктов на разных браузерах. Тогда ещё никто не слышал о Sauce Labs, и все придумывали что-то своё. Мы тоже придумали — сделали свою систему, которая умеет самостоятельно запускать тесты Selenium на выбранных браузерах и ОС по расписанию. Ну, и хранит результаты выполнения, конечно.

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

Не так давно этот сервис — Nerrvana — открылся для всех желающих.
Немного подробностей
Total votes 9: ↑5 and ↓4+1
Comments0

Эффективный интернет-магазин. Что автоматизировать в первую очередь?

Reading time4 min
Views38K

“Сайт — главный инструмент интернет-магазина” — это прописная истина для каждого интернет-предпринимателя. При этом у подавляющего большинства интернет-магазинов бек-офис совсем не автоматизирован. Для начинающего бизнесмена эта задача не кажется приоритетной. Главное — выйти на определенный оборот и получить прибыль. Никто не задумывается о цене, которая будет платиться за отсутствие автоматизации отдельных направлений интернет-магазина впоследствии.
Опишем главные, на наш взгляд, задачи по автоматизации бизнес-процессов, которые необходимо решить на самой ранней стадии развития интернет-магазина.
Читать дальше →
Total votes 14: ↑6 and ↓8-2
Comments4

Первая сертифицированная Android-приставка для скачивания торрентов

Reading time1 min
Views41K


Компания BBK и другие фирмы давно выпускают медиаприставки к телевизору, через которые можно передавать файлы с компьютера на телевизор, принимать IPTV и скачивать торренты. Последняя функция особенно полезна. Приставка остаётся включённой на ночь и скачивает свежие серии фильмов, по заданному списку. После скачивания все эти фильмы сразу доступны для просмотра на телевизоре.

Функция скачивания торрентов обычно позиционировалась как вторичная, дополнительная, но сегодня BBK выпустила в продажу приставку BitTorrent Box под Android, в которой эта функция — основная. Это первая в мире сертифицированная ТВ-приставка со словом BitTorrent в названии. Посмотрим, как на такую «наглость» отреагируют правообладатели.
Читать дальше →
Total votes 46: ↑42 and ↓4+38
Comments100
1

Information

Rating
Does not participate
Location
Беларусь
Date of birth
Registered
Activity