Search
Write a publication
Pull to refresh
23
0
Pavel Plotnikov @ppa80

iOS Engineer

Send message

Kartograph — фреймворк для создания интерактивных карт

Reading time1 min
Views20K
Kartograph — это новый фреймворк для создания интерактивных картографических веб приложений без использования Google Maps/Bing Maps или любого другого сервиса. Он создавался с учетом потребностей дизайнеров и журналистов.

Можно поглядеть на демки, чтобы узнать на что способен Kartograph.
или узнать как это все работает.

Продвинутые шаблоны редактора Wordpress

Reading time6 min
Views31K
Допустим, у вас стоит задача предоставить вашему клиенту для заполнения заранее сверстанный макет или форму, куда он может смело добавить текстовый материал, будь-то описание товара или услуги, разделенный на колонки. Да, эту задачу можно решить многими способами, но хотелось бы, что бы и человеку было проще пользоваться редактором, и к вам вопросов было поменьше. В конце концов WYSIWYG и был создан для того, что бы даже сферическая секретарша в вакууме понимала, что именно будет отображено на сайте в результате её работы в редакторе. Но, пойди, найди такую «секретаршу».

image
Шаблоны в редакторе записи

Госдума запустила открытый API поиска по законопроектам

Reading time6 min
Views2.2K
Эта статья является второй из серии статей о нововведениях на сайте Государственной Думы (статья 1).

В настоящий момент набирает популярность концепция open government («открытое государство»). К примеру, на сайте data.gov публикуются большие объемы данных государственных ведомств США, а на сайте data.gov.uk публикуются аналогичные материалы Великобритании. Важным аспектом публикации структурированной информации является возможность её получения в машиночитаемом виде. Понятно, что и HTML таблицу можно достаточно успешно распарсить, но предоставление информации в удобном для интеграции с внешними системами виде — очень важный показатель открытости. Поэтому, разработка API для системы поиска по законопроектам стала важным этапом реализации концепции «открытое государство» в рамках сайта Государственной Думы. Теперь данные о законопроектах могут быть легко интегрированы во внешние информационные системы. Например, аналитический портал может рядом со статьей, посвященной тому или иному законопроекту, разместить виджет, который будет отражать актульную информацию о ходе рассмотрения законопроекта.
Читать дальше →

Бэкапы своими руками для чайников

Reading time3 min
Views22K
Давно известно, что сисадмины делятся на две категории: те, кто еще не делает бэкапы и те кто уже делает. В то время, когда одни ДЦ горят, а вторые внезапно исчезают, лучше всего принадлежать ко второй категории.

Итак, хочу поделиться опытом простого автоматического резервирования данных для чайников.

Задача


Необходимо по расписанию создавать резервные копии файлов и базы данных. Эти два процесса должны быть независимы друг от друга, потому что бэкап БД делается чаще, чем бэкап файлов (или наоборот).
Дано

  • VPS на базе Centos 5 x86_64.
  • Панель управления ISP Manager. Стандартные средства ISP Manager не устраивают.
  • Свободного места на сервере очень мало.

Цель

Получить архивы файлов и БД на сервере в определенной папке. Архивы должны быть доступны по http-протоколу.
Читать дальше →

Рекомендации по написанию HTML-кода начинающим web-разработчикам

Reading time2 min
Views4.8K
Очевидные вещи, которые выделил для себя. Хотелось бы, чтоб грамотные люди дополнили этот небольшой список. Цель — сделать код и свой, и других — более красивым, валидным, легко понимаемым и семантически грамотным.

Использование тега <br />

В основном это бывает нужно, для улучшения восприятия текста, точнее для форматирования одного элемента. Поэтому, когда нам нужно разделить несколько элементов или просто, чтоб новый элемент был в новой строчке, нужно использовать блочный элемент (div, p, h1..., у которых по умолчанию css-свойство display:block, но при этом, старайтесь не плодить лишних элементов). И если нужно сделать отступ, не нужно вставлять десять <br>, а нужно описать в css свойство margin.

Использование атрибута style и свойство !important

Это нужно в исключительных случаях, когда место уникальное. Почти всегда нужно использовать css-класс со свойствами вынесенными в css-файл. И даже если вам нужно спрятать элемент (display:none), лучше создать универсальный класс, (например css: .hidden {display:none;}), и писать <span class=”error hidden”>.
В описании класса, если у вас не применяется какое-то свойство, не нужно писать !important, чаще всего достаточно впереди дописать родительский селектор, и желательно — class, а не id.
Читать дальше →

Преждевременное масштабирование — главная причина гибели стартапов?

Reading time2 min
Views2.3K
Компания Startup Genome опубликовала приложение к майскому аналитическому отчёту по стартапам. Теперь собрана информация уже по 3200+ компаниям и подробно рассматривается главная причина, по которой стартапы разваливаются.

Изучив опыт тысяч стартапов, Startup Genome делает вывод: 70% неудач объясняются преждевременным масштабированием.
Читать дальше →

Подключение GPS-приёмника к ноутбуку и создание GPS-треккера

Reading time4 min
Views120K
Многие любители путешествий давно уже стали пользоваться GPS-девайсами при проведении своего досуга.
Кто-то использует навигаторы для переезда из одного населенного пункта в другой по ближайшей трассе/дороге, используя при этом, как правило, навигационные программы с векторными картами. А кто-то предпочитает более эстремальное времяпровождение, добираясь из пункта А в пункт Б по ближайшему пути на внедорожниках. Для последних векторные карты не так важны, здесь главное знать особенности рельефа ближайшей местности, и используются навигационные программы с растровыми картами, привязанными к координатам.
Я задался целью, подключить внешний GPS-приёмник к ноутбуку, на который можно установить различные программы для работы с векторными и растровыми картами, чтобы получить удобный инструмент планирования маршрута и просмотра текущего местоположения. Одновременно с тем хотелось передавать данные GPS на сервер, чтобы моё местоположение можно было отслеживать удаленно (импровизированные GPS-треккер).
Итак, если Вам интересна эта тема, добро пожаловать в топик.
Читать дальше →

Универсальный триггер для фотокамеры

Reading time2 min
Views11K
В последнее время, благодаря широкому распространению платформы Arduino, появилось множество проектов разнообразных фототриггеров. Какие-то из них срабатывают на звук, какие-то — на пересечение светового луча. Мне бы хотелось получить все в одном — срабатывание как на звук, так и на свет. Причем с задержкой срабатывания изменяемой прямо на триггере, а не в программном коде.
Оказалось, что я не одинок в своих желаниях, и в одном из блогов, посвященных фотографии я наткнулся на презентацию нового проекта TriggerTrap — универсального триггера для фотокамеры. Прочитал и стал фанатом этого проекта.

Итак, что такое TriggerTrap? Это устройство, собранное на платформе Arduino, которое управляет затвором вашей камеры (или выносной вспышкой). Срабатывание происходит по:
— звуковому сигналу;
— пересечению светового луча;
— истечению запрограммированного временного периода (time lapse);
— сигналу внешнего датчика подключенного к AUX входу.

Цепи управления камеры/вспышки и фототриггер гальванически развязаны через опторазвязки. Но самое главное — это open source проект! Принципиальные схемы будут доступны по лицензии CC-BY-SA-3.0, а программный код — по GPLv3.
Читать дальше →

Switchvox — очередная звезда от Digium

Reading time5 min
Views12K
UPD: Запущен сайт http://switchvox.ru.

О Switchvox на Хабре не написано ничего.  Или, если быть абсолютно точным, почти ничего. В 2007 году хаброжитель alizar опубликовал перевод "25 самых интересных стартапов VoIP", в которой упомянулся и Switchvox.  И в 2011 году,  две недели назад, я вскользь упомянул о Switchvox в своей статье «Обзор открытых IP АТС».  И все :-)
image
Удивительно, ведь Switchvox — это самый популярный коммерческий продукт, созданный на основе телефонного конструктора Asterisk. Не только самый популярный, но, похоже, еще и самый лучший. С самого начала Switchvox получал награды на всех телекоммуникационных конкурсах и рейтингах. Смотрите сами:
  • INTERNET TELEPHONY Magazine's «Product of the Year» Award for 2005
  • INTERNET TELEPHONY Magazine's 2006 Product of the Year Award
  • TMC Unified Communications Product of the Year Award Switchvox SMB 3.0 — 2007
  • Communications Solutions Product of the Year Switchvox SMB 3.0 — 2007
  • CRN Tech Innovators Award Switchvox SMB 3.0 — 2008
  • Internet Telephony West Best in Show, Best of Open Source Switchvox SMB 3.5 — 2008
  • Internet Telephony Magazine Excellence Award Switchvox SMB 3.5 — 2008
  • IT Expo East 2009 Best of Show, Most Innovative Product Switchvox 4.0 — 2009
  • … и так далее каждый год до сегодняшнего дня (смотрите полный список наград). Буквально на прошлой неделе SwitchVox получил премию за расширенные унифицированные коммуникации -  North American SMB Unified Communications Customer Value Enhancement (источник)

Что же такое Switchvox и откуда и когда он такой взялся?  Эту историю я расскажу под лучший микс этого лета от Aurosonic (наши ребята!)… за хабркатом.

Читать дальше →

Пишем одностраничный клиент на javascript

Reading time5 min
Views48K
Данная статья является вольным переводом. Оригинал тут.

Введение


Думаю, ни для кого не секрет, что клиентские приложения в современных веб-сервисах становится все сложнее и количество JS кода в них растет. До недавнего времени архитектура клиентской части, как правило, разрабатывалась с нуля и была специфична для каждого проекта. Не удивительно что приходилось снова и снова сталкиваться с типичными задачами.
К MVC-фреймворкам на серверной стороне все уже привыкли, но JS код на клиенте часто бывает плохо структурирован.

Предлагаю ознакомиться с решением на базе backbone.js, underscore.js и jQuery, которое поможет решить эту проблему.

Постановка задачи


Каким бы мы хотели видеть наше приложение? Вот основные моменты, которые мне кажутся важными:
  1. Должен быть удобный способ описать модели нашей предметной области.
  2. Любые изменения в модели должны немедленно отражаться в пользовательском интерфейсе, если модель в нем представлена каким-либо образом.
  3. Понятная и легко-поддерживаемая структуризация кода в стиле MVC.


Попробуем решить эти задачи на примере простого приложения «Каталог фильмов».
Поехали!

jQuery.waterfall. Небольшая полезняшка

Reading time2 min
Views7.2K
В текущем проекте возникла необходимость выполнить последовательную серию ajax запросов и, по завершении — что-то сделать со всеми их результатами.
Довольно типовая задача, паттерн ее решения обычно называют waterfall (водопад). Реализации этого паттерна есть для node.js, хотя некоторые работают и в браузере — async.
Но включать целый модуль ради одного метода не хотелось. Copy/paste тоже не стал делать, но по соображениям скорее эстетическим. В async в метод передается функция обратного вызова, у нас же везде используется jQuery.Deferred. Разницы, конечно, никакой, но «ломать» стиль проекта мое «чувство прекрасного» мне не позволило :)
В результате написал небольшую утилитку по аналогии с jQuery.when

и хочу поделиться ей с сообществом

IPO for dummies. Часть II: стоимость акций, биржа, самый лучший способ торговать картошкой, и кого же можно встретить на бирже

Reading time6 min
Views6.8K
Начало и оглавление см. в первой части.

А что вообще такое — «биржа»?

Представьте себе магазин, в котором продаётся картошка.
Читать дальше →

cPanel и Parallels Plesk Panel с точки зрения хостера. Часть первая

Reading time14 min
Views24K
Привет, Хабр. Не так давно мне на глаза попалась статья в TheHostingNews.com, в которой редакторы сайта сравнили две наиболее популярные за рубежом панели управления хостингом – cPanel и Parallels Plesk Panel. Я решился на перевод этой статьи по двум причинам. Во-первых, в ней отсутствует предвзятость, особенности каждого продукта переданы максимально корректно. Во-вторых, в Рунете полноценных обзоров хостинг-панелей мне видеть не приходилось: видимо, у нас принято обсуждать какие-то конкретные «болячки» или преимущества того или иного решения, не особо обращая внимание на продукт в целом.

Делая перевод, я пытался обратить особое внимание на какие-то детали обоих продуктов, принципиально важные с точки зрения хостеров. Буду рад, если текст и таблицы будут полезными сообществу.

Под катом – часть первая (всего будет три). В ней – конфигурация тестового «железа» и непосредственно обзор функционала панелей. Вторая и третья части будут посвящены соответственно интеграции панелей с другим софтом и вопросам автоматизации в хостинге, а также подведению итогов. Их опубликую завтра и послезавтра.

Читать дальше →

IPO for dummies. Часть I: акции, мажоритарии, контроль над компанией

Reading time5 min
Views16K
Во время недавнего обсуждения IPO Яндекса в комментариях прошла дискуссия на тему того, как торгуются акции на бирже, как проходит IPO, кто и какую от него получает пользу. По совету других участников обсуждения выношу в отдельную тему — а точнее, в серию тем — небольшой рассказ, который был рассредоточен по нескольким комментариям. Если вы тогда внимательно следили за темой, основная часть рассказа вам уже известна, но тем не менее… Если нет, вы наверняка найдете что-то интересное.

Disclaimer: эта и дальнейшие статьи серии написаны двумя хабраобитателями: honeyman — программистом стартапов, в свободное время экспериментирующим с торговлей на бирже и созданием аналитического софта для этого, в сотрудничестве с kaichik — журналистом и главредом автомобильных проектов. Если вы в предыдущем предложении не заметили слов «финансист», «лицензированные консультативные экономические услуги» и «богатый опыт» — то наверное, это потому, что их там не может быть.

  • Часть I: акции, мажоритарии, контроль над компанией.
  • Часть II: стоимость акций, биржа, самый лучший способ торговать картошкой, и кого же можно встретить на рынке бирже.
  • Часть III: процесс IPO, его польза для компании, основателей и владельцев, а также почему у руководства компании при открытии торгов такой замученный вид.
  • Часть IV: влияние IPO на доход от адулт-партнёрок.
  • Часть V: жизнь после IPO.
  • Часть VI: сложности выбора — два Lamborghini Gallardo или один Aventador?
  • Часть VII: про инсайд.
  • Часть VIII: о мотивации.


Итак, часть I: акции, мажоритарии, контроль над компанией.

Что такое акции, и для чего они нужны?

Читать дальше →

Паттерны Command и Strategy с точки зрения функционального программирования

Reading time9 min
Views14K
В результате изучения функционального программирования в моей голове появились некоторые мысли, которыми я хочу с вами поделиться.
Читать дальше →

Оператор with и почему его не стоит использовать

Reading time2 min
Views13K
Эта статья объясняет как работает with в JavaScript и почему его не рекомендуется использовать.

Синтаксис оператора with


  with (object)
        statement

with создает новую область видимости «scope» и представляет свойства объекта «object» как локальные переменные выражения «statement». Пример (скобки не обязательны для одного выражения, но их рекомендуется использовать):
with({ first: "John" }) { console.log("Hello " + first); } // Hello John

Существует похожий объект свойства которого одновременно являются глобальными переменными — этот объект называется global (в браузерах это window). Но в отличии от глобального объекта, переменные, которые объявлены в выражении with (блок statement) не добавляются к объекту «object», а просачиваются во внешний scope и существуют дальше.
with({}) { var x = "abc"; }
console.log(x) // 'abc'

Читать дальше →

Cross-domain «ajax» — простое решение

Reading time7 min
Views200K
В очередном проекте я столкнулся с необходимостью активно работать с кросс доменными запросами на ajax, тема, как я вижу на хабре особо не поднималась и не освещалась, вот и решил поделиться с читателями свои опытом.
Читать статью

Многопоточный сервер на C# за 15 минут

Reading time11 min
Views334K
C# довольно простой и гибкий язык. Вместе с .NET поставляется довольно много уже готовых классов, что делает его еще проще. Настолько, что вполне можно написать простой многопоточный HTTP-сервер для отдачи статического содержимого всего за 15 минут. Можно было бы использовать уже готовый класс HttpListener и управиться еще быстрее, но цель этой статьи — показать, как вообще можно сделать нечто подобное в C#.
Читать дальше →

Настоящее понимание ViewState'а

Reading time30 min
Views63K
От переводчика: Это перевод статьи от одного из разработчиков ASP.NET, в которой подробно рассказывается о механизме управления состоянием страницы — ViewState'е. Несмотря на то, что статья написана в 2006 году, она до сих пор не потеряла своей актуальности.

ViewState — очень непонятное существо. Я попытаюсь положить конец всяческим кривотолкам, и постараюсь объяснить, как на самом деле работает механизм ViewState'а, от начала до конца, посмотрев на него с различных точек зрения.

Есть множество статей, авторы которых пытаются развеять мифы о ViewState'е. Можно даже подумать, что это все — борьба с ветряными мельницами (где ViewState – ветряные мельницы, а Интернет – инструмент борьбы). Но, я вам доложу, мельницы ещё не остановились. Как раз наоборот, они вертятся и заполняют собой вашу гостиную. Пора бы нанести по ним ещё один удар. Не тревожьтесь, при написании этой статьи ни одна ветряная мельница не пострадала.
Читать дальше →

Information

Rating
Does not participate
Location
Россия
Registered
Activity