Pull to refresh
99
0
Евгений Белодед @Zhendalf

User

Send message

Observer vs Pub-Sub

Reading time4 min
Views64K
Observer и Pub-sub, наверное самые известные паттерны взаимодействия в мире разработки интерфейсов и JavaScript. Но несмотря на свою известность, некоторые разработчики считают эти паттерны одинаковыми, что и послужило подспорьем написать данную статью.



Пофилософствуем
Total votes 16: ↑13 and ↓3+10
Comments43

Как устроен наш код. Серверная архитектура одного проекта

Reading time22 min
Views29K
Картинка для привлечения вниманияТак сложилось, что к тридцати годам я менял работу лишь единожды и не имел возможности на собственном опыте изучить, как в различных компаниях устроены веб-проекты, расчитанные на высокую скорость отклика и большое количество пользователей. <irony> Так что, дорогой хабраюзер, попавший в поле моего зрения в оффлайне, увидев меня, лучше беги, пока я не начал докучать тебе вопросами на тему обработки ошибок, логирования и процесса обновления на рабочих серверах&lt/irony&gt. Мне интересен не столько набор используемых технологий, сколько принципы, на которых построена кодовая база. Как код разбит на классы, как классы распределены по слоям, как бизнес-логика взаимодействует с инфраструктурой, каковы критерии по которым оценивается качество кода и как организован процесс разработки нового функционала. К сожалению, подобную информацию найти непросто, в лучшем случае всё ограничивается перечислением технологий и кратким описанием разработанных велосипедов, а хочется, конечно, более детализированной картинки. В этом топике я попытаюсь как можно более подробно описать, как устроен код в компании, где работаю я. Этот подход — мой суммарный опыт полученный за 10 лет разработки в разных компаниях.
Читать дальше →
Total votes 19: ↑17 and ↓2+15
Comments32

Как продвигать игру в AppStore: делюсь опытом на примере Wordrive

Reading time13 min
Views35K
Хочу поделиться опытом по продвижению своей новой игры для iPhone/iPad — Wordrive.

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

Итак, вот у вас готово приложение и оно появилось в AppStore. Первый поток людей на него направляется из iTunes/App Store, сам собой — за счет появления в «новинках». Рассчитывать на него нечего — он как пришел, так и уйдет через пару-тройку дней. За это время нужно делать все, чтобы о программе или игре стали писать в сети. Если программа за это время сможет собрать еще и интернет-аудиторию, то выйти в топы будет сильно проще. А чтобы ее собрать, к моменту запуска в App Store нужно уже много что сделать.

Читать дальше →
Total votes 109: ↑104 and ↓5+99
Comments89

Разработка привлекательных реалистичных пользовательских интерфейсов

Reading time4 min
Views15K
Cекрет разработки привлекательных интерфейсов заключается в реализме. Ваша задача — придать плоским элементам объём, используя свойства реальных объектов, вроде неровностей и шероховатостей, бликов и теней, различных текстур поверхностей. В идеале они должны выглядеть как предметы на вашем столе. Создавая классный интерфейс, в первую очередь нужно думать не «как», а «почему».
Читать дальше →
Total votes 212: ↑205 and ↓7+198
Comments49

App Store — получение денег

Reading time2 min
Views32K
Когда мы только начинали заниматься вопросом создания приложений для iPhone/iPod Touch, остро стоял вопрос легализации получения денег, т.к. яблочники их отправляют только на банковский счет.
Аккаунт мы регистрировали на физлицо, но, в связи с нашим интересным законодательством, проблема абсолютно актуальна и для аккаунтов компаний.

Все, что описано ниже, касается Украины. В других странах, насколько я общался с разработчиками, жизнь проще и дела обстоят получше, но точно утверждать не буду, т.к. руками не щупал.

Итак, есть 2 основных варианта открытия валютного счета для получения денег из-за границы SWIFT-переводом: счет предприятия (ЧП, ООО, ОАО — без разницы) и счет физлица (частного лица).

Больше под катом
Total votes 51: ↑44 and ↓7+37
Comments117

Качаем с Народ.Диска без капчи и без яндекс.бара

Reading time2 min
Views15K
Как известно, чтобы скачать файл с Народ.Диска, необходимо либо ввести капчу, либо установить яндекс.бар. А если не хочется, чтоб яндекс.бар мозолил глаза(либо любимый браузер — опера)? Да, его можно скрыть, но зачем он тогда вообще нужен, если используется только для скачки файлов с Народ.Диска?
А можно обойтись и без него, при этом скачивая файлы без ввода капчи в любом удобном браузере, позволяющем изменять юзер-агент.
Читать дальше →
Total votes 127: ↑119 and ↓8+111
Comments103

Плавное изменение содержимого страницы

Reading time3 min
Views1.1K
Если читатели открывали временно.нет в IE, в чем я, основываясь на статистике, сомневаюсь, то наверняка замечали плавный эффект при переходе со страницы на страницу.

Несмотря на то, что данный прием работает только в IE, стоит знать, как делаются такие переходы.
Читать дальше →
Total votes 16: ↑12 and ↓4+8
Comments3

Неологизмы, часть вторая

Reading time1 min
Views715
Продолжение предыдущего топика. Новые слова, которые используются сейчас с англоязычной блогосфере, пускай не так тесно связаные с информационными технологиями, но от этого не менее интересные. Осторожно, много букв!
    • Рефрижераторное право (refrigerator rights) — синоним очень близких отношений; в буквальном смысле право залезть в холодильник без спроса

    • Синдром водителя автобуса (driving the bus) — человек, который решил в выходные поехать за покупкам и обнаружил себя на полпути к работе

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

Принят стандарт Sitemaps Auto-Discovery

Reading time1 min
Views1K
Крупнейшие поисковые сайты Google, Yahoo, Ask и MSN объявили о принятии единого стандарта для хранения файла Sitemap XML. Веб-мастерам рекомендуется добавить такую строчку в robots.txt:

Sitemap: www.example.com/sitemap.xml

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

Как объясняется на сайте Sitemaps.org, единый стандарт должен облегчить процесс индексации сайта поисковыми системами. С помощью этого XML-файла веб-мастер прямо указывает поисковику, какие страницы на сайте нужно индексировать. Таким образом можно существенно сэкономить исходящий трафик, а часто обновляемые страницы индексируются чаще.
Читать дальше →
Total votes 67: ↑67 and ↓0+67
Comments12

Несколько интересностей и полезностей для веб-разработчика (выпуск 2)

Reading time3 min
Views82K
Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

Webflow



С помощью данного сервиса вы сможете сверстать кроссбраузерный отзывчивый макет за 55 минут. Очень красивый и удобный интерфейс. Идеальное решение для веб-дизайнеров, 26 000 из которых уже используют Webflow. Для создания двух проектов сервис бесплатный, а в дальнейшей перспективе вас ждут вполне демократичные цены. Инструмент реально «крутой».

Если Вам GUI для верстки не комильфо сам по себе как для меня, все равно рекомендую зарегистрироваться и экспортировать парочку responsive макетов. А еще есть простой генератор отзывчивого лэйаута и Responsive Patterns.

Parallax.js


Функциональный и простой инструмент для создания параллакс эффекта.

Читать дальше →
Total votes 124: ↑114 and ↓10+104
Comments27

Работа с файлами .plist в Cocoa/CocoaTouch

Reading time6 min
Views27K
Всем доброго хабрадня!

Сегодня я бы хотел рассказать о некоторых аспектах сохранения настроек и прочих данных программы в OS X и/или iOS. Как обычно, у нас есть несколько вариантов: Core Data, «голый» SQLite, свои бинарные форматы, свои текстовые форматы, NSUserDefaults и, как Вы уже наверняка слышали, файлы типа PLIST, то есть XML Property List.

Вкратце, plist-файлы представляют из себя обычный XML, но с некоторыми оговорками. К примеру, порядок тегов в нём обусловлен некоторыми правилами: они идут парами «ключ-значение», но теги типа «ключ» и теги типа «значение» располагаются на одном уровне. Типичный пример:

	<key>identifier</key>
	<string>j3qq4-h7h2v</string>

Плисты умеют хранить основные типы данных Cocoa: NSString, NSNumber (int, float, BOOL), NSDate, NSArray, NSDictionary и NSData. Этим типам соответствуют следующие теги: , , , <true/>, <false/>, , , , . Собственно, plist состоит из тегов , за которыми следуют перечисленные теги со значением.

Под катом - описание дополнительных ограничений и, что самое главное, API для работы с такими файлами.
Как с ними работать
Total votes 18: ↑16 and ↓2+14
Comments23

Посылаем сообщения в Notification Center из браузера

Reading time1 min
Views12K
С выходом Mac OSX 10.8 пользователям был представлен «Центр Уведомлений» — Notification Center. Как только вам приходит новая почта или сообщение в Facebook, то вы видите в правом верхнем углу всплывающее окошко с уведомлением об этом. Notification Center идентичен панели уведомлений в iOS.

Используя Notifications API, можно посылать уведомления в Notification Center Mac OSX Mountain Lion из браузера Safari.
Читать дальше →
Total votes 33: ↑27 and ↓6+21
Comments22

Миллион одновременных соединений на 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

Objective-C с нуля

Reading time23 min
Views435K
У любого желающего писать программы для продукции фирмы Apple в жизни наступает такой момент, когда ему приходиться изучить новый язык программирования — Objective-C. Когда-то этот счастливый момент постиг и меня. А чтобы лучше запомнить основные особенности этого языка, решил законспектировать свои мысли во время осмысления его документации, которыми и делюсь с вами.
Читать дальше →
Total votes 163: ↑155 and ↓8+147
Comments61

Пример web-проекта на VS2010

Reading time9 min
Views9.5K
Выход VS 2010 для меня, в первую очередь, это возможность работать с .Net 4, Entity Framework 4, ASP.NET MVC 2.
Все полученные теоретические знания, на мой взгляд должны быть выражены в практическом опыте. Поэтому как только представилась возможность, я реализовал проект с использованием VS 2010. И теперь готов поделиться своими впечатлениями от новых возможностей.
Статья рассчитана на искушенных разработчиков )

Читать дальше →
Total votes 87: ↑60 and ↓27+33
Comments27

Сообщаем о ремонтных работах на сервере

Reading time1 min
Views4.5K
Обновление Хабра, проходившее вчерашним вечером, побудило написать краткую заметку. Во время тех.работ Хабр вывешивает одностраничную заглушку, текст на которой гласит о происходящих работах. Заглушка отдается по всем запрошенным адресам. Никакого редиректа: по какому адресу статьи не зайди — везде одинаковый текст о ремонте. При этом ответ сервера сопровождается статусом «HTTP/1.1 200 OK». Так делает большинство известных мне сайтов. И если человеку, по большому счету, все равно, то поисковик, проводящий индексацию сайта в этот момент, видит, что по адресу со статьей обновилось содержание — надо обновить индекс.

Это всё модальные окошки, которые придумали программисты:
[произошла какая-то фигня] — [OK] — Да это же ни фига не ОК!
@mad_escape

Решение придумано до нас и давно стандартизировано
Total votes 145: ↑139 and ↓6+133
Comments25

Пишем свой Windows service

Reading time3 min
Views143K
Многие из нас сталкиваются с такой задачей, когда нужно запускать своё приложение при запуске компьютера. Конечно можно поместить ярлык в автозагрузку, но как-то это неправильно. Да к тому же если комп перегрузился, а пользователь не залогинелся, то и ваше приложение тоже не запустится.

Самым верным решением в данной ситуации является написание Windows сервиса.

Пример создания сервиса в Studio 2010, .Net C# под катом
Читать дальше →
Total votes 95: ↑62 and ↓33+29
Comments47

Улучшаем border-radius.htc

Reading time1 min
Views17K
Думаю многим верстальщикам известно решение, которое заставляет IE рисовать скругленные уголки: «curved-corner» (или border-radius.htc).

В этой статье я расскажу, как избавиться от ошибок «Invalid argument» при его использовании, а также как в разы ускорить его работу.
Читать дальше →
Total votes 78: ↑73 and ↓5+68
Comments34

Дополнительные 24 часа в сутках. Игры со временем

Reading time8 min
Views16K
Мечта многих моих друзей и знакомых, чтобы у них было больше времени. На что, вопрос второй. Кому-то время нужно на семью, кому-то на любимую работу, кому-то на отдых. Но время, это тот ресурс, которого не хватает у нас всех. Мне удалось спрессовать время и получить в сутках, вначале лишние десять минут, потом час, потом еще несколько часов. За десять лет, время спрессовалось так, что в моих сутках около 48 часов. За неделю я успеваю сделать столько, сколько многие люди за две, три, а то и месяц. Без ущерба личной жизни, качеству работы, не с помощью бессонных ночей и постоянных авралов. В небольшой заметке постараюсь изложить основные положения той системы, которой придерживаюсь, чем она помогает мне, какие слабые и сильные стороны в ней есть. Чтобы изложить все приемы и уловки, понадобится не один материал, рассматривайте эту заметку, как вводную. Если вам понравится, и вы скажете, что желаете прочитать продолжение, то оно появится.

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

Время это не только физическая величина, но и психологическая

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

Читать дальше →
Total votes 269: ↑207 and ↓62+145
Comments100

Как создавалась Айчиталка. Часть 1: движок

Reading time10 min
Views28K
Совсем недавно мы выпустили в свет первую бета-версию нашей онлайн-читалки, с которой можно ознакомиться, почитав книгу Михаила Лермонтова «Герой нашего времени». Эта читалка — результат почти семимесячной работы, пять из которых ушло только на разработку движка. Казалось бы, в интернете уже есть бесплатные и открытые JavaScript-движки для чтения электронных книг и такой долгий срок может вызвать сомнения в профпригодности разработчика (то есть меня). Но есть одно большое и жирное «НО». Мы поставили перед собой слишком амбициозную и трудновыполнимую задачу: мы хотели использовать один и тот же движок на разных устройствах, в том числе маломощных, таких как айфон или электронная читалка.

В чём же заключается трудновыполнимость задачи? В первую очередь — в очень низкой скорости работы веб-приложений на айфоне. Например, мобильный Сафари по моим прикидкам работает раз в 100 медленнее своего десктопного собрата. Если на декстопе одна и та же операция выполняется 10 мс и совершенно незаметна для пользователя, то на айфоне она может выполняться больше секунды. Для сравнения: первая версия движка разбивала небольшую главу на страницы примерно за 15 секунд. Сейчас, спустя полгода, он делает то же самое менее, чем за секунду и вполне сносно работает в нашем приложении booq.

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

Читать дальше
Total votes 165: ↑151 and ↓14+137
Comments98
1

Information

Rating
Does not participate
Location
Санкт-Петербург и область, Россия
Date of birth
Registered
Activity