Рубрика «Веб-разработка» - 296

Дисклеймер.

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

Поэтому, я попытаюсь сделать так, чтобы эта статья была полезна не только автору, но и читателям. Я опишу не столько что мы делали, сколько как мы это делали. Начнём мы, естественно, с задачи, которая перед нами стояла.

Задача

Вот такие виджеты можно сделать
Представьте себе, что вы – web-программист, который реализует сложную SCADA систему, дашбоард (простите, но внятного перевода этого слова на русский я так и не встретил), интерактивную систему управления метриками, или просто вам нужно вставить на ваш сайт часы с хитрым дизайном. При этом вам нужно добавлять туда всяческие шкалы, крутилки со стрелками (на английском это называется Gauge), часики и другие «приборы», возможно даже интерактивные.

С первого взгляда, эта задача решается довольно просто. Например, есть бесплатный компонент Google Gauge и множество различных штук, которые выпадают по запросу в том же Google. С другой стороны, в большинстве таких библиотек набор вариантов, как правило, ограничен. Как только вам надо сделать что-то своё – начинает работать принцип «проще написать самому».
Читать полностью »

Многие веб-дизайнеры склонны представлять свои услуги, гарантируя, при первой же встрече с клиентом, их высокое качество. Так ли это на самом деле и что означает словосочетание «высокое качество» попытаемся с вами сейчас выяснить.

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

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

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

В этой статье я расскажу о том, как можно попробовать ускорить работу Node.JS (который сам по себе считается довольно быстрым). Речь пойдет о нативных расширениях, написанных с помощью C++.
Читать полностью »

Уважаемые, коллеги и единомышленники.

Наконец-то мои ноги дошли и до Кремниевой долины. Вот уже несколько дней нахожусь в самом сердце инноваций.

Здесь я много общаюсь с коллегами стартаперами из разных стран и понимаю одну печальную вещь — здесь мало кто делает стартапы ради стартапа и развлечения, они все по уши повязли в коммерции. Это конечно хорошо, но все таки дух стартапа не в этом (ИМХО).

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

Как вы смотрите на то, чтобы сделать стартап, пока я буду находится здесь (до 31 октября)? Стартап ради стартапа. Готов рассматривать любые идеи и финансировать их реализацию. Также буду рад взять в команду всех желающих.

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

в 3:54, , рубрики: css, Веб-разработка, метки:

Предисловие

Многое, ранее сделанное с использованием JS, можно реализовать средствами CSS, часто это упрощает некоторые задачи. В статье будет рассказано о том, как выравнить треугольную стрелку балуна по середине по вертикали и о том, как избежать использования изображения для отрисовки этого самого треугольника.
Читать полностью »

Пару дней назад мои хорошие знакомые из магазина http://www.sakura-shop.ru/ попросили меня посмотреть, почему при оформлении заказа не подсчитывается стоимость отправлений через почту России.

У меня тоже есть несколько магазинов. И на одном из них http://sumki.natropinkah.ru использовался похожий метод расчета. Проверив его работу, я был неприятно удивлен: алгоритм выдавал ошибку.

Пришлось лечить.
Читать полностью »

К сожалению, на многих сайтах без особой необходимости используют капчи. Хотя можно побороть спам и незаметными для пользователя способами. Особенно, капчу больно видеть на небольших коммерческих сайтах в форме обратной связи, поскольку, капча заметно снижает конверсию таких сайтов. Для больших сайтов, которые могут специально спамить, такие метода не применимы. Однако, в большинстве случаев, без капчи можно обойтись
Как обойтись без капчи?
Читать полностью »

Предлагаем вашему вниманию очередную подборку с ссылками на новости, интересные материалы и полезные ресурсы.

Дайджест интересных новостей и материалов из мира айти за последнюю неделю №21 (1 — 7 сентября 2012)
Читать полностью »

В прошлый раз мы попытались разобраться со следующими вещами:

  • 1. Не смотря на расхожее мнение «всё в JS является объектами» — это не так, мы выяснили, что из 6 доступных программисту типов данных аж 5 является примитивами и лишь один представляет тип объектов.
  • 2. Про объекты мы узнали, что это такая структура данных, которая содержит в себе пары «ключ-значение». Значением может быть любой из типов данных (и это будет свойство объекта) или функция (и это будет метод объекта).
  • 3. А вот примитивы – это не объекты. Хотя с ними и можно работать как с объектом (и это вызывает заблуждение что примитив – это объект), но…
  • 4. Переменные можно объявить как по простому (литерально) (var a = ‘str’), так и через функцию-конструктор (обёртка)(var a = new String(‘str’)). Во втором случае мы получим уже не примитив, а объект созданный конструктором String(). (что за магический оператор new и что такое функция-конструктор мы узнаем дальше).
  • 5. Узнали, что именно за счёт создания обёртки над примитивом (new String(‘str’)) c ним можно работать как с объектом. Именно эту обёртку создаёт интерпретатор вокруг примитива, когда мы пытаемся работать с ним как с объектом, но после выполнения операции она разрушается (поэтому примитив никогда не сможет запомнить свойство, которое мы ему присвоим a.test = ‘test’- свойство test исчезнет с обёрткой).
  • 6. Узнали, что у объектов есть метод toString() который возвращает строковое представление объекта (для типа number valueOf() – вернёт числовое значение).
  • 7. Поняли, что при выполнении операций конкатенации или математических операциях примитивы могут переопределить свой тип в нужный. Для этого они используют функции-обёртки своих типов, но без оператора new (str = String(str)).(в чём разница и как это работает, поговорим дальше)
  • 8. И наконец, узнали, что typeof берёт значения из жёстко зафиксированной таблицы (вот откуда ещё одно заблуждение, основанное на typeof null //object).

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

image

Создавая свой проект, мы получили незабываемый опыт работы с американской дизайн-студией, которая позиционирует себя как одна из крупнейших, топовых студий. После работы с американцами у нас появился аналогичный опыт, но уже с российскими дизайнерами из Бюро Горбунова.

Собственно, рады поделиться нашим впечатлениями — устроим небольшой баттл?
Читать полностью »


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