Pull to refresh
22
0
Ga4o @ga4o

User

Send message

Как адаптировать сервис под мобильные платформы

Reading time3 min
Views651
С тем, что мобильный и планшетный рынки является одними из самых быстрорастущих, сегодня не будет спорить никто. Это хороший момент, у многих есть шанс переломить ситуацию и выиграть второй раунд, а для многих нерасторопных есть все шансы остаться только в большом вебе.

В связи с этим появились даже радикальные подходы, когда предлагается делать дизайн в первую очередь для мобильных платформ, а потом уже задумываться о большом вебе (http://www.lukew.com/resources/mobile_first.asp). Это красивая концепция, но суровая правда жизни в том, что многие сервисы уже существуют в веб варианте и им необходимо шагнуть в мобильный мир.
Читать дальше →
Total votes 26: ↑22 and ↓4+18
Comments9

Как из дешевого и простенького роутера сделать полнофункциональный сервер.

Reading time4 min
Views146K

Введение


Первым роутером, который попал ко мне, был D-Link DI-524, у меня не было времени что либо выбирать, просто купил первый попавшийся недорогой роутер с wi-fi. Так как по натуре я люблю всё ломать, я почти сразу полез в интернет искать, как его можно усовершенствовать.
Но в то время почти ничего не нашел кроме советов просверлить в нем дырок. Да действительно он частенько перегревался и поэтому нестабильно работал, но на такой рискованный шаг я не пошел.
Благо я его почти сразу продал своему другу.
Когда мне снова понадобилось такое устройство, я уже знал какие функции мне действительно необходимы, для меня это было QoS. Я как обыденный покупатель начал смотреть на маркетинговые описания возможностей и фишек устройств. Для меня это тогда казалось единственно верным. Оказалось это не совсем так.
Я купил asus w520gu, я им в целом доволен (об этом позже), но считаю правильным поделиться опытом и информацией как я его усовершенствовал.
Кому интересно читаем дальше
Total votes 113: ↑105 and ↓8+97
Comments141

Испанский суд признал пиратство безвредным

Reading time2 min
Views3.9K
image

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

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

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

Есть множество случаев, в которых цифровое пиратство оказало положительный эффект на продажи. Исследования показали, что «пираты» — лучшие покупатели в музыкальной индустрии, что и подтверждал в этом году один из руководителей EMI Дуглас Мерилл.

Читать дальше →
Total votes 287: ↑273 and ↓14+259
Comments120

Постинг данных из скрипта во Вконтакт на публичную страницу

Reading time3 min
Views9.4K

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

Идея
Всё началось с идеи — вначале она мне показалась немного скучной, и смысл в реализации я не видел, но подумав дважды (а то и трижды) я понял, что это может принести некоторый профит к моим навыкам. Но об этом ниже :)
Читать дальше →
Total votes 25: ↑15 and ↓10+5
Comments15

Google запустила кнопку +1 для сайтов

Reading time1 min
Views5.9K
В марте Google запустила кнопку +1 для поисковых результатов и рекламных объявлений. Начиная же с сегодняшнего дня, такую кнопку может установить на свой сайт каждый желающий.

Как объясняет Google: «Одним щелчком мыши вы можете порекомендовать понравившийся вам плащ, новостную статью или любимый фантастический фильм друзьям, контактам и остальному миру. В следующий раз, когда они будут что-то искать, они увидят ваш +1 непосредственно в результатах поиска, что поможет им найти ваши рекомендации, когда они наиболее своевременны».
Читать дальше →
Total votes 86: ↑78 and ↓8+70
Comments85

Twitter добавил кнопку «Follow» для сайтов

Reading time1 min
Views8.2K


Мелочь, а приятно — разработчики сервиса микроблогов Twitter добавили интересную функцию: кнопку «Follow» для сайтов. Теперь, нажав на кнопку, пользователь может автоматически подписаться на Twitter-сообщения аккаунта компании или сайта. Ранее же на сайтах обычно ставилась простая ссылка на аккаунт в сервисе, переходя по которой, пользователю нужно было совершить еще одно действие. Теперь же зафолловить twitter какой-либо компании или частного лица можно в один клик.

Читать дальше →
Total votes 58: ↑51 and ↓7+44
Comments20

С миру по нитке

Reading time3 min
Views3.5K
Были времена, когда сайты создавались для реализации идей, а не для «срубить бабла, да поскорей». Но любой проект, став популярным, все равно встречается с простыми житейскими проблемами: оплатой домена, хостинга, помощи специалистов. И если создателю проекта нередко хватает простого энтузиазма, то компании предоставляющие услуги хостинга, к примеру, хотят денег и «за идею» работать не готовы.

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

Каковы же варианты сбора пожертвований для своего любимого детища?
Читать дальше →
Total votes 34: ↑27 and ↓7+20
Comments53

Второе дыхание бюджетного Android-смартфона

Reading time4 min
Views62K
Android smartphoneОбладатели неновых смартфонов со скромным объемом оперативной памяти (160 в моем случае) очень скоро начинают ощущать тормоза при работе. Поставил буквально несколько программ, а переключение между ними уже сопровождается ощутимыми задержками, и вызов Quick Settings становится уже совсем не «quick».

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

Под катом небольшой личный опыт, как с помощью прав рута и двух небольших программ можно вдохнуть в свой смартфон новую жизнь.
Читать дальше →
Total votes 88: ↑86 and ↓2+84
Comments89

Охотимся за утечками памяти в Node.js (1-я из 12 статей о Node.js от команды Mozilla Identity)

Reading time7 min
Views26K
От переводчика: Это первая статья из цикла о Node.js от команды Mozilla Identity, которая занимается проектом Persona. Как клиентская, так и серверная часть Persona написаны на JavaScript. В ходе работы команда проекта создала несколько инструментов на все случаи жизни — от локализации до отладки, управления зависимостями и многого другого. В этой серии статей разработчики Mozilla делятся с сообществом своим опытом и этими инструментами, которые пригодятся любому, кто пишет высоконагруженный сервис на Node.js.

Первая статья цикла посвящена распространённой проблеме Node.js — утечкам памяти, особенностям утечек в высоконагруженных проектах и библиотеке node-memwatch, которая помогает найти и устранить такие утечки в Node.




Зачем заморачиваться?


Вы можете спросить, зачем вообще отслеживать утечки памяти? Неужели нет более важных дел? Почему бы просто не перезапускать процесс время от времени, или просто добавить памяти на сервер? Есть три причины, по которым устранять утечки всё-таки важно:

  1. Возможно, вы не сильно переживаете об утечках памяти, но этого нельзя сказать о V8 (движок JavaScript на котором работает Node). Чем больше памяти занято, тем активнее работает сборщик мусора, замедляя ваше приложение. Так что в Node утечки напрямую вредят производительности.
  2. Утечки могут привести к другим проблемам. Протекающий код может блокировать ограниченные ресурсы. У вас могут закончиться файловые дескрипторы или вы вдруг не сможете открыть ещё одно соединение с БД. Такие проблемы могут возникнуть задолго до того, как кончится память, но обрушат ваше приложение ничуть не хуже.
  3. Рано или поздно ваше приложение упадёт. И это наверняка случится во время наплыва посетителей. Вас все засмеют и будут писать про вас гадости на Hacker News.

Откуда доносится звук падающих капель?
Total votes 63: ↑61 and ↓2+59
Comments1

Google выпустил HTML5-редактор для веб-дизайна

Reading time1 min
Views131K
Компания Google выложила в свободный доступ программу Google Web Designer (бета): HTML-редактор кода со встроенным графическим редактором для создания рекламных баннеров.


Читать дальше →
Total votes 81: ↑75 and ↓6+69
Comments60

Node.js не подходит для типовых веб-проектов

Reading time6 min
Views104K


«Node.js не подходит для серьезных сайтов и веб-приложений, а только для написания небольших API».
This is bull*hit. I have to say it.

От переводчика: недавно на coderwall.com появилась интересная статья от Ionut-Cristian Florescu об использовании Node.js для создания обычных («типовых») веб-проектов. До ее прочтения я был полностью согласен с заголовком статьи, но сейчас мое мнение несколько поменялось. Позиция автора может быть спорной во многих моментах, но его аргументы достаточно интересны. Если у вас есть собственное мнение по этому поводу, оставляйте его в комментариях.
Читать дальше →
Total votes 117: ↑95 and ↓22+73
Comments178

Свежий взгляд на примеси в JavaScript

Reading time8 min
Views19K
В этой статье я детально исследую примеси в JavaScript, и покажу менее общепринятую, но, на мой взгляд, более естественную стратегию «примешивания», которую, надеюсь, вы найдете полезной. Закончу я матрицей результатов профилирования, подводящей итог влиянию на производительность каждой техники. (Большое спасибо блистательному @kitcambridge за ревью и улучшение кода, на котором основан этот пост!)

Повторное использование функций

В JavaScript каждый объект ссылается на объект-прототип, из которого он может наследовать свойства. Прототипы — отличные инструменты для повторного использования кода: один экземпляр прототипа может определять свойства бесконечного числа зависимых сущностей. Прототипы могут так же наследоваться от других прототипов, формируя, таким образом, цепочки прототипов, которые более-менее повторяют иерархии наследования «классовых» языков типа Java and C++. Многоэтажные иерархии наследования иногда бывают полезны при описании природного порядка вещей, но, если первичным мотивом служит повторное использование кода, такие иерархии могут быстро стать искривленными лабиринтами бессмысленных субклассов, утомительных избыточностей и неуправлямой логики («кнопка — это прямоугольник или контрол? Вот что, давайте унаследуем Button от Rectangle, а Rectangle может наследоваться от Control… так, стоп…»).
Читать дальше →
Total votes 55: ↑50 and ↓5+45
Comments39

Удачная модель ветвления для Git

Reading time10 min
Views978K
Перевод статьи Vincent Driessen: A successful Git branching model

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



В качестве инструмента управления версиями всего исходного кода она использует Git.

Читать дальше →
Total votes 180: ↑171 and ↓9+162
Comments105

Ключевое отличие AngularJS от Knockout

Reading time6 min
Views48K
imageЗа последнее время я несколько раз успел поучаствовать в дискуссиях о том, чем Angular лучше или хуже Knockout и других JS-фреймворков. И очень часто я сталкивался с тем, что есть некоторое непонимание сути различий в подходах, заложенных в эти продукты. Иногда дело доходило даже до того, что в качестве преимущества Knockout приводились валидные по умолчанию префиксы «data-», что ну просто совсем смешно (не говоря уж о том, что их можно использовать и в Angular).

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

  1. Модульная организация кода, тестируемость и жестокая война с любыми глобальными данными.
  2. Пропаганда декларативного подхода через создание собственных HTML-директив.
  3. Механизм проверки изменения данных в дата-биндинге без использования коллбэков.

И третий пункт мне здесь видится наиболее сложным для понимания. Поговорим именно о нем.
Читать дальше →
Total votes 68: ↑66 and ↓2+64
Comments64

Лёгкий сайт или как посадить браузер на диету

Reading time14 min
Views144K

А что если объединить профессионалов, работавших над крупными web проектами, чтобы создать исчерпывающее руководство по оптимизации front-end разработки?
И получить в результате не скучную инструкцию, а что то поинтереснее? А если позвать Briza Bueno (Americanas.com), Davidson Fellipe (Globo.com), Giovanni Keppelen (ex-Peixe Urbano), Jaydson Gomes (Terra), Marcel Duran (Twitter), Mike Taylor (Opera), Renato Mangini (Google), и Sérgio Lopes (Caelum) чтобы собрать лучшие практики?

Именно это мы и сделали! Мы научим вас создавать быстрые сайты.

Zeno Rocha, руководитель проекта.


Читать дальше →
Total votes 193: ↑179 and ↓14+165
Comments80

ThL W8 — гармоничное сочетание цены и качества

Reading time7 min
Views110K
Китайская компания ThL уже достаточно давно известна на рынке мобильной техники. Производитель не стоит на месте и развивается вместе с прогрессом и потребностями покупателей. И на этот раз компания ThL выпустила свой флагманский смартфон W8. Данная модель является на сегодняшний день наиболее технологичной во всей линейке от китайского производителя.

image

В смартфоне ThL W8 присутствуют все необходимые атрибуты современного мобильного средства связи. Мощные характеристики, различные модули, а также одна из последних версий Android. Хоть внешний вид аппарата был идеально скопирован со всем известного Samsung Galaxy S3, работа данной китайской компании заслуживает отдельного внимания…
Читать дальше →
Total votes 45: ↑40 and ↓5+35
Comments102

Миллион одновременных соединений на Node.js

Reading time9 min
Views104K


TL;DR:


  • Node.js v0.8 позволяет обрабатывать 1 млн одновременных HTTP Comet соединений на Intel Core i7 Quad/16 Gb RAM практически без дополнительных настроек.
  • На 1 соединение тратится чуть больше 10 Kb памяти (4.1 Kb Javascript Heap + 2.2 Kb Node.js Native + 3.8 Kb Kernel)..
  • V8 Garbage Collector не рассчитан на управление > ~500Mb памяти. При превышении нужно переходить на альтернативный режим сборки мусора, иначе «отзывчивость» сервера сильно уменьшается.
  • Подобный опыт можно (и нужно!) без особых затрат повторить самому (см. под катом).

Читать дальше →
Total votes 193: ↑187 and ↓6+181
Comments125

Рекомендательные системы: SVD на perl

Reading time3 min
Views14K
В предыдущих сериях мы обсудили, что такое сингулярное разложение (SVD), и сформулировали модель сингулярного разложения с базовыми предикторами. В прошлый раз мы уже довели дело до конкретных формул апдейта. Сегодня я продемонстрирую очень простую реализацию очень простой модели, мы применим её к уже знакомой матрице рейтингов, а потом обсудим, какие получились результаты.


Читать дальше →
Total votes 7: ↑7 and ↓0+7
Comments3

Важнейшие $in'ы: производительность MongoDB в диапазонах

Reading time3 min
Views11K
Перевод этой статьи уже есть на хабре, но он ужасен и содержит ложную информацию.

Приветствую, искатели приключений! Путешествуя по территории индексации MongoDB хотя бы некоторое время, вы, возможно, познакомились с таким правилом: если ваш запрос содержит сортировку/порядок (orderby) – добавьте сортируемое поле в конец индекса который используется для запроса.

Во многих случаях когда запрос содержит равенство (то есть поиск конкретного значения, например, {“name”: “Charlie”}) данная мантра бывает весьма полезной.

Запрос

db.drivers.find({"country": {"$in": ["A", "G"]}}).sort({"carsOwned": 1})

Индекс

{"country": 1, "carsOwned": 1}

Такая комбинация будет не такой эффективной, как может показаться, не смотря на то, что индекс соответствует правилу. В этом запросе есть ловушка, в которую вы с легкостью попадете следуя общепринятому мнению.
Читать дальше →
Total votes 42: ↑40 and ↓2+38
Comments9

Sony SmartWatch, 7 приложений мечты

Reading time3 min
Views70K


Предисловие


На днях вышло в свет обновление для часов Sony Smart Watch, и я, как наверное и большинство обладателей сего девайса, решил в очередной раз заглянуть в гуглмаркет для поиска интересных, а главное полезных приложений для часов. Автор обзора обновления сообщил — приложений уже порядка 200, что меня сильно обрадовало, и я кинулся просматривать все подряд. Но, потратив не один час, я в итоге установил лишь одно, которое в итоге меня все равно частично разочаровало. Неужели нет приложений, которые действительно могут раскрыть потенциал связки «Часы — Телефон»? Ведь именно их отсутствие вынудило меня забросить эти часы через пару недель после покупки. Или же сам принцип такой связки в реальной жизни малоперспективен и годен лишь для проверки твиттера с часов? Задавшись этими вопросами, я как дизайнер (от слова design — проектировать), решил устроить небольшой брейнсторм на тему «Приложения, которые смогут раскрыть потенциал связки SmartWatch + Телефон».
Что же из этого вышло?
Total votes 80: ↑67 and ↓13+54
Comments52

Information

Rating
Does not participate
Registered
Activity