Search
Write a publication
Pull to refresh
53
0
Антон Медведев @Elfet

Программист

Send message

Обзор ExtJS 4. Опыт портирования со старой версии

Reading time6 min
Views6.3K
Несмотря на то, что четвертая версия каркаса ExtJS вышла уже достаточно давно, материалов по этой версии на хабре не слишком много. А если учесть, что в четвертой версии существенно переработан API, структура классов и предлагаемая архитектура приложения, то, как мне кажется, тут есть, о чем поговорить.

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

PHP Namespace

Reading time6 min
Views112K
Недавно инкапсулировал свой проект в namespace и столкнулся с проблемой отсутствия нормальной документации. Все, что удалось найти датируется примерно 2009 годом, а на дворе почти 2012… В найденном материале куча нерабочих мест, использующих то, что в нынешней версии php нет. В связи с этим хочу немного осветить этот вопрос.
Читать дальше →

Практический пример использования Backbone

Reading time5 min
Views44K
В данной заметке речь пойдет об использовании Backbone, а в частности, примеры кода работающего с сервером. Это должен быть некий промежуточный пункт в блужданиях Ищущего, так как иначе начать им пользоваться очень сложно, а вероятность отказаться от идеи перехода стремится к единице.

Зачем вообще нужна данная публикация? Тут уже были статьи по теме, но они затрагивают лишь очень поверхностно то, о чем и так написано в документации, хотя следовало бы показать пути недокументированные. Именно так: backbone это не комплексная standalone библиотека вроде Jquery, которую и не тронешь, не сломав. Данная библиотека предназначена лишь для построения приблизительной структуры; мы же можем лепить из данного материала то, что нам нужно. Еще раз: тут нет смысла искать готовые паттерны, буква в букву примеры не нужно перепечатывать, все равно не поможет. Нужно научиться пользоваться инструментом, после чего уже бросаться в бой.
Читать дальше →

Приближенное решение алгебраических и трансцендентных уравнений

Reading time3 min
Views41K

Введение


Каждый уважающий себя инженер или IT-шник должен быть на «ты» с вычислительной математикой и ее численными методами для решений различных задач, возможно даже тривиальных, которые «голову в порядок приводят». В процессе изучения хотелось обратить более тщательное внимание на методы приближенного решения алгебраических и трансцендентных уравнений, а так же их анализ.

Методы численного решения нелинейных уравнений


Задачу решения я разделил на 3 части:
  • Аналитический способ отделения корней
  • Численные методы уточнения корней
  • Программная реализация вычислительного процесса
Целью статьи, как я уже называл является разбор и анализ численных методов, по этому в этой статье аналитический способ отделения корней я рассматривать не буду.
Читать дальше →

Генерация псевдослучайных чисел

Reading time5 min
Views136K
Довольно часто программисты в своей работе встречаются с необходимостью работать со случайными числами. Чаще всего случайные числа требуются в задачах моделирования, численного анализа и тестирования, но существует и множество других весьма специфических задач.
Конечно, во всех современных языках программирования есть функция random или её аналоги. Эти функции чаще всего дают действительно хорошие псевдослучайные числа, но мне всегда было интересно, как эти функции работают.
В этом топике я постараюсь объяснить, как работает линейный конгруэнтный метод (который чаще всего используется в функции random), и метод получения случайных чисел с помощью полиномиального счётчика (который часто используется для тестирования аппаратуры).
Читать дальше →

Почему ИТшнику стоит стать ИПшником и почему не стоит регистрировать ООО

Reading time7 min
Views86K
В этой статье даются ответы на нижеследующие вопросы, основываясь на личном опыте и опыте коллег.

1. Почему стоит начать работать «в белую»
2. Почему на начальном этапе ИП лучше ООО
3. Что делать, если партнёров несколько

Если вы – начинающий или уже опытный фрилансер и подумываете о работе «в белую», но ещё точно не определились с вопросами «Стоит ли оно того?» и «ИП или ООО?», вэлком
под кат

Алгоритмы используемые при сжатии данных

Reading time4 min
Views47K
Вступление

Одна из самых главных проблем при работе с данными — это их размер. Нам всегда хочется, что бы уместилось как можно больше. Но иногда этого не сделать. Поэтому нам на помощь приходят различные архиваторы. Но как они сжимают данные? Я не буду писать о принципе их работы, лишь расскажу о нескольких алгоритмах сжатия, которые они используют.
Читать дальше →

Автоматическое тестирование в PHP

Reading time4 min
Views14K
Работа по TDD имеет очевидные преимущества: у разработчика всегда есть чётко описанная в виде теста цель, и он сразу узнает, когда она будет достигнута.
Тем не менее, есть и некоторые издержки: необходимо постоянно запускать один и тот же тест при изменениях в нем или в соответствующем классе, чтобы не пропустить тот самый момент истины. Вроде бы не такая уж и большая проблема, но постоянное переключение в консоль для проверки сделанных изменений на работоспособность, да и вообще помнить о необходимости этих манипуляций — лишнее рассеивание внимания.

Далее о том, как все это дело автоматизировать.

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

Сравнительное тестирование JavaScript-календарей

Reading time3 min
Views11K
Долгое время использовал в своих проектах, различные готовые JavaScript-календари для ввода дат, в частности Dynarch jsCalendar, и они полностью устраивали. Но в ходе разработки одного проекта, связанного с автострахованием, возникла необходимость довольно частого ввода дат из прошлого (дни рождения, дата выдачи паспорта и водительских прав, пенсионного и т.п.). Оказалось, что использовать календари в таких случаях не так уж и удобно, так как приходится отматывать несколько десятков лет назад и для этого приходится делать много действий мышкой.
Читать дальше →

Простая real-time коммуникация с посетителем

Reading time2 min
Views8.8K
Я давно интересуюсь вебом в реальном времени. На сегодня уже есть ряд библиотек для этого. В этом топике я хочу рассказать про недавно опробованный нами самый простой способ — использование внешнего сервиса Pusher.com.

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

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

Типографика на Вебе

Reading time3 min
Views5.5K
Типографика на Вебе прошла длинный путь с тех пор как Тим Бёрнерс-Ли нажал на рубильник в 1991-ом году. Давным-давно, во времена IE 1.0, выражение «хорошая типографика на Вебе» было, скорее, оксюмороном (сочетанием противоположных по значению слов). Многое успело измениться. У нас есть не только браузеры, которые умеют показывать картинки (ах!); у нас есть возможность оживлять наши веб-страницы, используя великолепную типографику.

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

Интерполяция: рисуем гладкие графики средствами PHP и GD

Reading time6 min
Views59K
Распространенной задачей для программиста является рисование графиков. Входными данными является массив точек (xi;yi). Как правило, мы знаем только некоторые значения — в определенных точках графика. Чтобы построить непрерывный график кривой необходимо прибегнуть к интерполяции или аппроксимации.



Интерполяция — построение кривой, проходящей через заданные точки.
Аппроксимация — приближение кривой к исходной, но не обязательно проходящей через заданные точки.

В этом топике я хочу продемонстрировать свою библиотеку для PHP, которая производит интерполяцию с помощью многочлена Лагранжа, C-сплайна и сплайна Акимы, а также аппроксимацию кривой Безье. Дополнительно в ней реализована отрисовка отрезка со сглаживанием (антиалиасингом).

Кратко рассмотрим методы интерполяция и аппроксимации.
Читать дальше →

«Сверхсветовые нейтрино» наблюдаются в итоге движения GPS

Reading time2 min
Views8.3K
Пóмните ли, как около трёх недель назад нейтрино, движущиеся из Женевы в Лабораторию Гран Сассо в Италии, прибыли примерно на шестьдесят наносекунд быстрее, чем со скоростью света? Вот это было сверхъестественно. Однако четырнадцатого числа Рональд ван Элбург (Ronald van Elburg) из Университета Гронингена в Нидерландах, кажется, выяснил причины этого явления. Его группа учёных вычислила расстояние между двумя точками пути нейтрино, а затем приняла во внимание релятивистское движение спутников GPS, вовлечённых в эксперимент.
Читать дальше →

node-sync — псевдо-синхронное программирование на nodejs с использованием fibers

Reading time6 min
Views21K
Надавно была опубликована библиотека node-fibers, вносящая в nodejs и v8 поддержку замечательного fiber/coroutine — тоесть, возможность использовать yield.
Параллельно, на nodejs groups прошел целый ряд обсуждений на тему всевозможных вариантов упрощения асинхронного синтаксиса.

Вдохновившись возможностями, которые дают «волокна», я написал библиотеку node-sync, которая делает разработку в асинхронном окружении nodejs значительно удобнее, а код — нагляднее.

Синопсис

// Обычная асинхронная функция, вызывает callback с результатом через 1 сек
function someAsyncFunction(a, b, callback) {
    setTimeout(function(){
        callback(null, a + b);
    }, 1000)
}
// Вызываем эту функцию синхронно, используя Function.prototype.sync(),
// работающий по тому же принципу, что и call()
// на этом моменте текуший поток "зависнет" на секунду, пока функция не вернет значение
var result = someAsyncFunction.sync(null, 2, 3);
console.log(result); // "5" через 1 секунду

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

Наиболее впечатляющие приложения HTML5 для демонстрации WebGL

Reading time1 min
Views21K
Что такое WebGL? Это новая современная библиотека, которая расширяет язык JavaScript, которая позволяет генерировать 3D графику прямо в браузере. WebGL, поддерживается многими современными веб-браузерами, такими как Google Chrome, Mozilla Firefox начиная с v4.0), Safari. Под катом несколько интересных приложений HTML5, сделанных с WebGL.
Читать дальше →

Understanding node.js

Reading time4 min
Views10K
Node.js обычно вызывал у людей, которым я о нём рассказывал, две различные реакции. В основном они воспринимали его «как есть», однако многие были сбиты с толку.

Если вы относитесь ко второй группе, я попробую объяснить, что же такое Node.js:
  • Это инструмент командной строки. Вы скачиваете архив, компилируете и устанавливаете его.
  • Это позволит вам выполнять программы на JavaScript, набрав 'node my_app.js' в терминале.
  • JavaScript выполняется движком V8 (тем самым, благодаря которому так быстро работает Google Chrome).
  • Node.js предоставляет API для доступа к сети и файловой системе из JavaScript.
Вам хочется чего-то большего? Тогда прошу заглянуть под кат и продолжить чтение

Краткий список WYSIWYG редакторов от Марка Андреева

Reading time4 min
Views361K

Однажды мне потребовался WYSIWYG редактор, я помнил как он выглядит, его функции, но не помнил названия. Через 45 минут я все же его нашел… Тогда я поставил перед собой задачу помочь многим, в том числе и себе: сделать сводный список всех чуть более известных WYSIWYG редакторов.
Читать дальше →

Иерархические структуры данных и Doctrine

Reading time15 min
Views83K

Введение



Хранение иерархических данных (или попросту — деревьев) в реляционных структурах задача довольно нетривиальная и вызывает некоторые проблемы, когда разработчики сталкиваются с подобной задачей.

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

Тем не менее, задача «хранить деревья в базе данных» рано или поздно возникает перед любым разработчиком.

Ниже мы подробно рассмотрим, какие существуют подходы в организации хранения деревьев в реляционных БД, а также рассмотрим инструментарий, который нам предоставляет ORM Doctrine для работы с такими структурами.
Читать дальше →

Information

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