Метка «web» - 7

Добрый день, сообщество!

Изначально я планировал написать статью в виде конспекта с доклада на devconf. Потом на меня снизошло понимание, что сорокапятиминутное выступление сложно переложить в статью на хабре, при этом оставив ее размер вменяемым. Поэтому в статье речь пойдет об архитектуре plus1.wapstart.ru, а слайды с конференции можно посмотреть здесь.

Plus1.wapstart.ru — это рекламная сеть для мобильного интернета. Наша «экосистема» — это рекламодатели, владельцы площадок (сайтов и приложений) и аудитория пользователей.
Владельцы площадок хотят максимально просто и эффективно монетизировать свою аудиторию, рекламодатели хотят эффективно вложить деньги, потребителей реклама должна как минимум не раздражать, а как максимум — они должны быть ей довольны.
Задача plus1.wapstart.ru — удовлетворение потребностей этих групп. Для нас их желания означают, что мы должны работать максимально быстро, не допускать ни минуты даутнайма и само собой следить за качеством и внешним видом рекламы.

Немного цифр:

  • Пиковая нагрузка > 103 динамических запросов в секунду.
  • В день мы показываем более ~ 107 объявлений.
  • Cуммарное число баннеров и площадок измеряется четырехзначными цифрами.
  • Среднее время отдачи баннера не превышает 90ms.

Если вам интересно как это всё работает — добро пожаловать под кат!

Читать полностью »

Постепенно, с изучением C# и .NET Framework, я начал писать различные Helper'ы, которые скрывали рутинный код за вызовом всего одного метода. После, это переросло в разработку полноценной библиотеки, которую я хочу вам представить. Данная библиотека написана полностью 'с нуля'.

Так что же такое xNet?

xNet — это библиотека классов для .NET Framework, которая включает в себя:

  1. Классы для работы с прокси-серверами: HTTP, Socks4(a), Socks5.
  2. Классы для работы с HTTP 1.0/1.1 протоколом: keep-alive, gzip, deflate, chunked, SSL, прокси и другое.
  3. Классы для работы с многопоточностью: многопоточный обход коллекции, асинхронные события и другое.
  4. Классы помощники, расширяющие возможности стандартных классов .NET Framework: FileHelper, DirectoryHelper, StringHelper, XmlHelper, BitHelper и другие.

Читать полностью »

в 8:59, , рубрики: html, ie8, web, Веб-разработка, метки: , ,

2 бага в IEРешил написать про баги в ie с которыми столкнулся на этой недели.
Перекопал весь гугл, даже на яндекс заходил, хотя по кодингу всегда ищу только в гугл, про данную проблему никто не слышал и не встречал.
Задача стояла вывести данные из БД в таблицу и представить это все в виде веб-морды, соответственно все это кроссбраузерное.

Поехали

Вот значит, вывожу я данные из БД в таблицу, дальше стоит задача по редактированию этих данных.
У нас это делается двойным кликом по тексту, на js это попадает в input, по enter это все записывается в БД.
Все бы ничего, но вот только данные у нас сортируются по пробелам в начале и в конец строки.
Читать полностью »

После длительного перерыва мы вновь публикуем результаты нашего исследования рынка труда в IT индустрии. Напомним, что в предыдущих наших постах мы рассказали о зарплатах «Мобильных» разработчиков, Дизайнеров, Системных администраторов windows, Руководителей проектов по разработке ПО и даже описали из чего состоит социальный пакет в IT компании.
Обзор зарплат WEB программистов
Это пост мы решили посвятить отцам интернета — Web программистам:

  • HTML верстальщик, Web мастер
  • Программист PHP
  • Старший (ведущий) программист PHP
  • Программист ASP.NET
  • Программист JavaScript
  • Программист (старший, ведущий) Perl
  • Программист (старший, ведущий) Python
  • Программист (старший, ведущий) Ruby
  • Программист (старший, ведущий) Flash/Flex

Читать полностью »

После добавления статьи и вывода списка статей на главной странице своего самописного блога возник вопрос об анонсе. Если обрезать определенное количество символов, то обрезаются и хтмл теги добавляемые текстовым редактором. От такого «анонсирования» верстка ползет по швам. И, ясное дело, меня не устраивает. После неслабого наряга в этой связи решение было найдено. Вот он метод для создания правильного анонса.

Читать полностью »

Простой метод хранения паролей в голове

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

image

Уважаемые хабрачитатели!
Ниже приведена подборка подготовленных и опубликованных на MSDN материалов за май.

Web

Windows Azure

в 10:02, , рубрики: QML, web, Песочница, метки: ,

Примерно год назад я всерьез задумался над недавно пошумевшими на хабре темами про ненависть к html. Действительно, html — это просто средство разметки текста, его нельзя применять для построения UI, который на 90% состоит из layout'ов. Вернее можно, но получается ад. Кроме всего прочего, случай с html — это когда данные смешиваются с представлением. Не получится скачать отдельно html, а отдельно данные. Возникает идея парсеров.

И даже если в тысяче и одном шаблонизаторе это разделение явно, то оно перестает таковым быть на выходе. Кто-нибудь задумывался, а почему сервер занимается генерацией представления, которое нужно юзеру, но не нужно серверу? Вдобавок появляется проблема проверки данных, отображаемых для всех юзеров: эти xss и прочее. Не закрыл теги — убил сайт, который еще и упал на юзеров.

На мой взгляд, единственная задача html — это отображать br,strong,a, ну и так далее. Нет никакой необходимости пытаться верстать блочно, потому что блочная верстка — это попытка средставми html сделать layout. И вся эта идея иерархичности блочного контента рассыпается в пыль, когда child вылезает за пределы parent'a. Кому в голову вообще пришла такая издевательская над инкапусяцией идея, почему это вообще ВОЗМОЖНО? WYSIWYG с точки зрения кода какой-то странный получается — видишь один код, а отображаться он может как и где угодно. Зачем нужна эта двусмысленность?

И не получится сделать сложный блочный ui без костылей вида -999px и т.д. Кстати, почему до сих пор нет нативной поддержки layout'ов? Уже на языке низкого уровня быстрее описать интерфейс, чем на вебе. И заметьте: каждый дизайнер изголяется над созданием/стайлингом/размещением контролов, которые уже ДАВНО есть в ЛЮБОЙ ОС. Так зачем столько телодвижений для создания такого же, но другого? Чтобы что? Кстати, а для чего каждый сайт должен иметь уникальный дизайн? Разве это чем-то вынуждено? Почему desktop ui с одинаковыми контролами не приедается, а шибко пестрые-нестандартные интерфейсы на десктопе считаются моветоном? Ну да, можно написать еще штук 20 шаблонизаторов, позволяющих абстрагироваться от печальных реалий. А дизайнеры пускай сами своими -99999px гвоздями прибивают ui к html.

В комментариях предлагали запилить QML в браузеры. Это, имхо, очень интересный подход. Кстати, никто ведь не мешает генерить qml теми же методами, что и html.

Читать полностью »

Для начала немного уточним о чем идет речь. Wicket хранит последнюю просмотренную страницу в сессии, но в случае если страница очень большая, иногда это может стать проблемой. Для того что бы избежать этих проблем, можно попытаться сделать страницу Stateless(т.е. не имеющую состояния).
Итак, Stateless page — это страница не имеющая состояния, Statefull page — это страница с состоянием.

Stateless страницы не хранят никакого состояния из-за чего нет необходимости сохранять их от запроса к запросу.
Такие страницы не сохраняются ни в сессии ни в истории посещённых страниц хранящейся на диске, таким страницам не присваивается версия, как это происходит со statefull страницами. При каждом запросе к такой странице, её экземпляр создаётся заново.
Читать полностью »

в 9:17, , рубрики: gmail, Google, web, почта, метки: , ,

image
Руководство содержит описание поиска личных и корпоративных email различными методами с использованием специальных сервисов и поисковых систем. Включает практические примеры поиска email и рекомендации для начинающих.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js