Как стать автором
Обновить
-10
Юрий @addewydread⁠-⁠only

Программист

Отправить сообщение

20 правил, которым стоит следовать, когда начинаете работать с EXT JS & Sencha Touch

Время на прочтение7 мин
Количество просмотров31K

Эта статья — перевод статьи из блога www.swarmonline.com с небольшими моими дополнениями

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

В этой статье мы собрали список некоторых из вещей, которые рекомендуем вам делать, когда вы начинаете работать с Ext JS (даже, если вы ветеран разработки, всё равно можете узнать что то новое!). Эти вещи прошли через наш опыт, через просмотр и ответы на одни и те же вопросы на форумах. Это наиболее общие из лучших техник программирования.

Надеюсь, это поможет вам перепрыгнуть несколько ступеней в изучении Ext JS и поможет избежать стандартных ошибок.
Читать дальше →
Всего голосов 34: ↑32 и ↓2+30
Комментарии50

Компонент для интеграции строк Ext.grid.Panel с Ext.toolbar.Toolbar

Время на прочтение4 мин
Количество просмотров5.7K
В рамках создания административной части одного из проектов, мне посчастливилось разработать довольно стройный компонент, элегантно дополняющий достаточно богатый функционал библиотеки ExtJS 4.

Пример использования: http://siterra.org/examples/rowtoolbar.html
Репозиторий: https://github.com/siterra/RowToolbar
Тестировался с ExtJS 4.1.1a.

Читать дальше →
Всего голосов 22: ↑20 и ↓2+18
Комментарии7

Про автоматизацию подбора аккордов

Время на прочтение17 мин
Количество просмотров59K
Меня давно занимал вопрос: «а что, если попробовать прогнать цифровую запись песни через преобразование Фурье, посмотреть зависимость спектра от времени и попытаться вытащить из полученной информации аккорды песни?». Вот, наконец, нашел время попробовать…
Читать дальше →
Всего голосов 137: ↑135 и ↓2+133
Комментарии42

Квантовый парадокс Зенона

Время на прочтение4 мин
Количество просмотров59K
image
Картинка для привлечения внимания, но относящаяся к теме.
Привет, хабр!
Хотите немного размять свои мозги? «Жили-были древние греки. Хорошо жили, потому что вместо них трудились рабы. И было древним грекам очень скучно: работать не привыкли, заняться нечем. Смастерили лиру для музицирования, придумали театр, геометрию, математику, философию и прочие науки, а развлечений всё равно не хватало.
И тут на помощь страждущим пришёл Зенон Элейский с его так называемыми апориями — парадоксами, предназначенными для изрядной нагрузки на мозги современников.

Современники возрадовались: теперь можно было не просто бездельничать, а долго и упорно размышлять над предложенными парадоксами, которые, к тому же, отчасти оправдывали лень».

В самом деле, если движения не существует в принципе, то зачем зря стараться, куда-либо идти и что-то делать, достаточно просто лежать на травке под акациями и мудрствовать лукаво над тайнами Вселенной.
Заинтересовало? Добро пожаловать под хабракат (привёл несколько ссылок на учебники квант.физики).
Читать дальше →
Всего голосов 67: ↑52 и ↓15+37
Комментарии45

ExtJS4: практические впечатления

Время на прочтение5 мин
Количество просмотров25K
При выборе программной платформы обычно разбегаются глаза — тут такое, тут сякое и все неизменно превосходно. Не больше помогают и разного рода сравнительные матрицы — можно увидеть, что во фреймворке Х нет подключения к промышленной системе автоматического смыва воды в унитазах, но эта информация не всегда полезна.

А хочется понять, на что годится та или иная библиотека в практических применениях, хочется прочитать о чьем-нибудь опыте. А с этим не очень. Например, по ExtJS я ничего такого не нашел. Пришлось пробовать самому.

Далее следуют мои впечатления от работы на ExtJS 4.1.1. Они по определению субъективны и не претендуют на вселенские обобщения.

Читать дальше →
Всего голосов 54: ↑42 и ↓12+30
Комментарии60

Создание сложных приложений в ExtJS.

Время на прочтение8 мин
Количество просмотров4.8K
Автор: Jozef Sakalos, aka Saki
Статья в оригинале: Создание сложного приложение в Ext на blog.extjs.eu

Предисловие


Я решил написать эту статью для тех пользователей Ext 2.x, которые уже переросли одну единственную HTML-страницу со встроенными скриптом, создающим простое окно или форму, для тех, которые уже решили, что Ext — это их путь и для тех, которые превозмогая трудности связанные с большими объемами кода, понимают, что нуждаются в его структурировании.
Сколько людей, столько и мнений. И поэтому способ, который я опишу ниже, не является одним единственным возможным. Также хотелось бы отметить, что не каждое приложение, написанное с применением этого подхода, является гарантированно хорошим. Ничего подобного.
Замечу, что описываемый подход является работоспособным, четко структурированным, без труда поддерживаемым и, одним словом: рабочим!
Читать дальше →
Всего голосов 44: ↑44 и ↓0+44
Комментарии17

Хранение деревьев в базе данных. Часть первая, теоретическая

Время на прочтение4 мин
Количество просмотров130K
Полгода назад написал бандл ClosureTable для фреймворка Laravel 3. Поводом для написания стала вот эта замечательная презентация Билла Карвина о способах хранения и обработки иерархических данных в MySQL с использованием PHP.

Итак. Существует несколько шаблонов проектирования баз данных для хранения и обработки иерархических структур:
  • Adjacency List («список смежности»)
  • Materialized Path («материализованный путь»)
  • Nested Sets («вложенные множества»)
  • Closure Table («таблица связей»)

Читать дальше →
Всего голосов 47: ↑41 и ↓6+35
Комментарии66

База GeoIP – страны и города, сентябрь 2013

Время на прочтение2 мин
Количество просмотров70K
Вышла в свет обновленная версия русскоязычной базы данных стран и городов.

База распространяется в двух модификациях: «Страны и города» (13Mb, после установки ~74Mb)  и «Только страны» (2Mb, после установки ~9Mb). Также в архивах находится небольшой пример использования базы данных на php.
Читать дальше →
Всего голосов 35: ↑31 и ↓4+27
Комментарии31

Загадка выпадающего списка «Амазона»

Время на прочтение2 мин
Количество просмотров191K
Бен Кэменс обнаружил, что в выпадающем списке Shop by Department на сайте «Амазон» ховер-эффект происходит очень быстро, абсолютно без какой-либо задержки. Тем самым происходит нарушение старого, выработанного ещё в 90-х годах прошлого века правила: перед отображением пункта подменю необходим так называемый гистерезис, запаздывание.



Запаздывание необходимо не только для того, чтобы сберечь ресурсы машины пользователя, но и по соображениям юзабилити: если не добавить задержку, то переводить курсор мыши на выпавшее подменю будет неудобно, придётся вести его сначала горизонтально в меню, не задевая другие пункты, и лишь после выбирать нужный подпункт.
Читать дальше →
Всего голосов 558: ↑548 и ↓10+538
Комментарии90

Алгоритм Self-Organizing Incremental Neural Network (SOINN)

Время на прочтение7 мин
Количество просмотров23K

Введение


Одной из задач обучения без учителя является задача нахождения топологической структуры, которая наиболее точно отражает топологию распределения входных данных. Существует несколько подходов решения этой задачи. Например, алгоритм Самоорганизующихся Карт Кохонена является методом проецирования многомерного пространства в пространство с более низкой размерностью (как правило, двумерное) с предопределенной структурой. В связи с понижением размерности исходной задачи, и предопределенной структурой сети, возникают дефекты проецирование, анализ которых является сложной задачей. В качестве одной из альтернатив данному подходу, сочетание конкурентного обучения Хебба и нейронного газа является более эффективным в построении топологической структуры. Но практическому применению данного подхода препятствует ряд проблем: необходимы априорные знания о необходимом размере сети и сложность применения методов адаптации скорости обучения к данной сети, излишняя адаптация приводит к снижению эффективности при обучении новым данным, а слишком медленная скорость адаптации вызывает высокую чувствительность к зашумленным данным.

Для задач онлайн обучения или длительного обучения, перечисленные выше методы не подходят. Фундаментальная проблема для таких задач — это как система может приспособиться к новой информации без повреждения или уничтожения уже известной.

В данной статье рассматривается алгоритм SOINN, который частично решает озвученные выше проблемы.
Читать дальше →
Всего голосов 32: ↑31 и ↓1+30
Комментарии7

Создаём Zoomquilt

Время на прочтение4 мин
Количество просмотров12K
Захотелось продолжить серию постов о всяких интересных автореферентных штуковинах и решил я написать о жанре Zoomquilt. Сделал поиск, увидел, что один пост на Хабре уже есть. Подумал, подумал и решил, что пост я всё равно напишу, но он будет технический, о технологии создания Zoomquilt.

Для начала собственно о жанре. Тут проще показать чем рассказывать.

zoomquilt.org

zoomquilt2.madmindworx.com/zoomquilt2.swf

www.syfy.com/tinman/oz

www.deviantart.com/art/kopfsalat-digital-edition-30069104

Приближаемся к картинке и вместо того, чтобы в какой-то момент увидеть пиксели величиной с кулак, видим следующую картинку, повторяем процедуру многократно (на самом деле, выглядит это как один вполне себе плавный процесс и если художники хорошо поработали, то «стыков» мы вообще не увидим) и в итоге приходим к первоначальной картинке. В общем мультиквайны, только для художников.
А как такая штука делается? Конечно можно нарисовать это всё покадрово, более того, некоторые талантливые аниматоры вполне бы с этим справились. Но практически во всех существующих произведениях этого жанра указано, что это плоды коллективного творчества. Обычно есть коллектив художников, координатор проекта и программист, который собственно собирает это всё вместе и пишет интерфейс.

Дальше о технологии создания. Под катом много картинок.
Читать дальше →
Всего голосов 44: ↑43 и ↓1+42
Комментарии14

Моделирование гидродинамики: Lattice Boltzmann Method

Время на прочтение16 мин
Количество просмотров53K
Извержение вулкана
Моделирование извержения вулкана
с помощью Lattice Boltzmann Method. (с) Источник

В этой статье я расскажу о численном методе моделирования гидродинамики Lattice Boltzmann Method, LBM. На русском—метод решёточных уравнений Больцмана. Он превосходит другие известные методы (например, finite element method) в легкости распараллеливания, возможности моделирования многофазных потоков, моделировании потоков в пористых средах. Кроме того, вычислительный алгоритм содержит только простейшие арифметические операции. Метод весьма новый, первые коммерческие продукты на его основе стали появляться около 2010 года.
Читать дальше →
Всего голосов 33: ↑31 и ↓2+29
Комментарии25

Пишем свой синхронный/асинхронный клиент-сервер

Время на прочтение6 мин
Количество просмотров42K
Всем привет.

В этой статье рассмотрим принцип многопоточного TCP сервера приложений в котором реализуем синхронные и асинхронные вызовы, а также разграничение доступа к процедурам и сжатие данных.
Читать дальше →
Всего голосов 21: ↑13 и ↓8+5
Комментарии10

Python изнутри. Объекты. Голова

Время на прочтение8 мин
Количество просмотров56K
1. Введение
2. Объекты. Голова
3. Объекты. Хвост
4. Структуры процесса

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

Как я и писал в предыдущем эпизоде (который, кстати, оказался успешным; спасибо всем, ваши просмотры и комментарии буквально заставляют меня двигаться дальше!) – сегодняшний пост посвящён реализации объектов в Python 3.x. Поначалу я думал, что это простая тема. Но даже когда я прочитал весь код, который нужно было прочитать перед тем, как написать пост, я с трудом могу сказать, что объектная система Питона… гхм, «простая» (и точно не могу сказать, что до конца разобрался в ней). Но я ещё больше убедился, что реализация объектов — хорошая тема для начала. В следующих постах мы увидим, насколько она важна. В то же время, я подозреваю, мало кто, даже среди ветеранов Питона, в полной мере в ней разбирается. Объекты слабо связаны со всем остальным Питоном (при написании поста я мало заглядывал в ./Python и больше изучал ./Objects и ./Include). Мне показалось проще рассматривать реализацию объектов так, будто она вообще не связана со всем остальным. Так, будто это универсальный API на языке C для создания объектных подсистем. Возможно, вам тоже будет проще мыслить таким образом: запомните, всё это всего лишь набор структур и функций для управления этими структурами.
Читать дальше →
Всего голосов 59: ↑59 и ↓0+59
Комментарии13

Ext JS 4 Grid «на пальцах»

Время на прочтение10 мин
Количество просмотров69K
Добрый день, уважаемые хабрапользователи.

С недавних пор я занимаюсь разработкой на Ext JS 4 и Zend framework 2.

Пользуясь случаем, хотелось бы создать небольшую серию статей, «на пальцах» освещаюшую некоторые основные компоненты Ext JS 4, без которых не обойдется ни одно приложение на Ext JS (простите, серия,- громко сказано,- пишу из песочницы).

Итак, Grid, часть 1.

Читать дальше →
Всего голосов 45: ↑40 и ↓5+35
Комментарии25

Архитектура клиентского приложения на ExtJS. Часть 2

Время на прочтение12 мин
Количество просмотров7.2K
ExtJS
В предыдущей статье мы затронули такие темы: как организовать код, что такое фасад, как его построить и что такое компоненты.
В этой мы коснёмся трёх вещей: продолжим наш разговор об архитектуре компонент, узнаем, что такое плагины и как они помогают в архитектуре, а также, как итог, я дам несколько советов.
Читать дальше →
Всего голосов 31: ↑25 и ↓6+19
Комментарии25

Архитектура клиентского приложения на ExtJS. Часть 1

Время на прочтение6 мин
Количество просмотров6K
ExtJS
Самое сложное в любой работе — это начать её. Итак, с чего же начать наше огромное клиентское приложение? В этой части я расскажу с чего начать и затрону три темы: Как организовать код, Что такое фасад, как его построить, что такое компоненты (и, конечно, как их начать писать).
Читать дальше →
Всего голосов 44: ↑34 и ↓10+24
Комментарии28

Делаем красивый список с GroupingStore/View и ExtJS

Время на прочтение11 мин
Количество просмотров6.1K
Сегодня мы поговорим, как сделать на базе ExtJS красивый (и функциональный) список каких-либо данных, например, список пользователей или групп. Я применяю такой список в одном из текущих проектов (правда, там уже не настолько красивый и удобный) Такой виджет можно использовать при выводе любых данных, которые характеризуются не только тестовой строкой, но и расширенными данными, а также необходимо сопоставить какие-то действия каждому набору. Допускается динамическое обновление данных (через Store), а также сортировка и группирование — в общем, все возможности, предоставляемые компонентом Grid из ExtJS. Сразу скажу, что я буду использовать версию ExtJS 3.0, но и в предыдущем релизе, 2.3.х пример также должен быть работоспособным. Приведенный компонент является примером и никак не готовым для использование кодом, а лишь демонстрацией возможностей, вы в своих проектах можете как угодно менять и дорабатывать под свои возможности. По этой же причине к статье намеренно нет исходного кода.
читать дальше
Всего голосов 31: ↑28 и ↓3+25
Комментарии27

Отдам библиотеку в хорошие руки

Время на прочтение3 мин
Количество просмотров25K
Давным давно, в 2008 году, когда я работал над своей диссертацией меня заинтересовала тема применения сверточных нейронных сетей для задач распознавания изображений. На тот момент они еще не были так популярны как сейчас и попытка найти готовые библиотеки ни к чему не привела — нашлась только реализация на Lush (языке созданном автором сверточных сетей, Яном ЛеКуном). Тогда я подумал, что можно было бы их реализовать на Матлабе используя Neural Network Toolbox. Но столкнулся с невозможностью реализации разделяемых весов в рамках этого тулбокса. И тогда было принято решение написать собственную реализацию.
Читать дальше →
Всего голосов 63: ↑60 и ↓3+57
Комментарии6

Итак, вы всё ещё не понимаете Хиндли-Милнера? Часть 1

Время на прочтение3 мин
Количество просмотров23K
Как-то мы сидели в баре с Джошем Лонгом и ещё несколькими друзьями с работы, когда он обнаружил, что я на «эй, ты!» с математикой. А он как раз недавно наткнулся на вот этот вопрос на StackOverflow и сейчас спросил меня, что это означает:



Однако, перед выяснением смысла данной китайской грамоты, думаю, стоит в принципе получить представление о том, для чего вообще это нужно. Пост в блоге Даниэля Спивака (перевод) даёт по-настоящему хорошее объяснение конечной цели алгоритма Хиндли-Милнера (в дополнение к углубленному примеру его применения):
Функционально говоря, Хиндли-Милнер (или Дамас-Милнер) — это алгоритм для вывода типов, основанный на рассмотрении того, как они используются. Он буквально формализует интуитивное знание о том, что тип может быть выведен через функционал, который он поддерживает.

Итак, мы хотим формализовать алгоритм вывода типа для любого заданного выражения. В этом посте я собираюсь остановиться на том, что означает «формализовать что-то», а затем описать «кирпичики» формализации Хиндли-Милнера. Во второй части я дам более конкретное описание этих блоков. Наконец, в третьей части я переведу вопрос со StackOverflow.
Читать дальше →
Всего голосов 62: ↑54 и ↓8+46
Комментарии14

Информация

В рейтинге
Не участвует
Откуда
Ижевск, Удмуртия, Россия
Дата рождения
Зарегистрирован
Активность