Search
Write a publication
Pull to refresh
10
0
Фёдор @krox

Специалист в области IT

Send message

Интеграция wysiwyg редактора с Django. Обзор

Reading time4 min
Views45K
Одно из самых частых требований заказчика — wysiwyg редактор в админке. Wysiwyg редактор имеет (как правило) интуитивно понятный интерфейс и позволяет пользователям, не знающим html, подготовить текст для размещения на сайте. Редакторы позволяют: форматировать текст, вставлять изображения и таблицы, создавать списки и много другое. Но имеют и свои минусы, самый главный из них, пожалуй, большое количество лишнего html кода.
На сегодняшний день существует большое количество различных wysiwyg редакторов и приложений для интеграции этих редакторов с django. Сегодня я расскажу про самые популярные.
Помимо собственно разметки текста, на практике важными характеристиками wysiwyg редактора для клиента являются — удобная вставка изображений и перенос отформатированного текста из сторонних источников (Word, веб-ресурсы). Важно чтобы при переносе отформатированного текста редактор удалял стили, которые могут конфликтовать со стилями сайта, например, шрифт текста. Во время обзора приложений особое внимание будет уделено этим двум характеристикам.
Читать дальше →

Печенье от Ватсона

Reading time3 min
Views32K
Суперкомпьютер IBM Watson уже успел продемонстрировать успехи в медицине и телевикторинах. Его планируют использовать в службах техподдержки вместо живых операторов. Однако все эти задачи связаны скорее с нахождением правильного ответа на запросы пользователей на базе известной информации. В IBM считают, что настоящий искусственный интеллект должен уметь находить творческие решения, создавать и изобретать новое, а не только анализировать старое.

Для развития креативных способностей Ватсона его создатели выбрали кулинарное искусство. Это весьма удобный испытательный полигон: приготовление пищи — очень «человеческий», интуитивный процесс, слабо поддающийся алгоритмизации и стандартизации. А оценить результат способен любой человек с улицы. Миндально-шоколадное печенье в испанском стиле, клубничный десерт по-эквадорски, помидоры гриль на гренках с шафраном — эти и другие блюда, созданные Ватсоном, уже были приготовлены и с удовольствием съедены в ходе экспериментов. А пару недель назад был опубликован препринт статьи с описанием алгоритмов и математических моделей, которые Ватсон использует для создания оригинальных рецептов.

image
Печенье, испечённое по рецепту Ватсона
Читать дальше →

Как сверстать веб-страницу. Часть 1

Reading time13 min
Views1.3M
Уважаемый читатель, этой статьей я открываю цикл статей, посвященных вёрстке.
В первой части будет описано, как это сделать с помощью стандартных средств на чистом HTML и CSS. В последующих частях рассмотрим как сделать тоже самое, но с помощью современных фреймворков и CMS.

Часть 1. Верстка стандартными средствами


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

Итак, давайте приступим. В качестве нашего подопытного мы возьмем бесплатный psd шаблон Corporate Blue от студии Pcklaboratory.
Читать дальше →

Постигаем интегралы с помощью Maple

Reading time3 min
Views57K
Познакомившись с магией систем компьютерной алгебры, я провела несколько вечеров в странных и на первый взгляд бессмысленных занятиях — перерешивая вузовские задачки по алгебре, математическому анализу, дифференциальным уравнениям… Просто потому, что было интересно — найдется ли такое уравнение, которое не смогут решить ни Maple, ни Maxima? В моем арсенале были эти две системы, и со всеми проблемами они справлялись «на ура». Это вовсе не означает, что всё решалось мгновенно и без применения математических знаний. Некоторые задачи требовали особых подходов, многочисленных преобразований и замен переменных. Так что, с противниками компьютерной алгебры можно поспорить — при правильном применении она нисколько не расслабляет мозг, а наоборот — развивает логическое (и прочее) мышление.

Иллюстрируя вышесказанное, в этом посте я расскажу о нескольких различных сценариях использования СКА Maple в борьбе с интегралами. Надеюсь, что персоны, знакомые с тонкостями символьных вычислений, найдут для себя здесь что-нибудь новенькое. А для тех, кому такой способ решения задач в новинку, я постаралась добавить побольше комментариев.


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

Несколько интересностей и полезностей для веб-разработчика (выпуск 8)

Reading time3 min
Views44K
Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

Riot.js — The 1kb client-side MVP framework



Немного статистической правды:
Самый маленький среди похожих популярных фреймворков

Самый емкий код (в примере для Todo MVC приложения)

Самый быстрый из существующих

«Материнский» проект Moot тоже очень крутой и демонстрирует то, каким должен быть форум.

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

10 правил подготовки модели к 3D печати

Reading time3 min
Views290K


Скачал модель, распечатал, пользуйся — что может быть проще!? Но, если говорить про FDM 3D-принтеры, то не каждую модель можно распечатать, и практически каждую модель(не подготовленную для 3D-печати) приходится подготавливать, а для этого необходимо представлять как проходит эта 3D-печать.
Читать дальше →

Простая установка сервера GIT на Windows

Reading time6 min
Views180K
image

Предисловие или от куда взялась «бредовая» идея ставить Git на Windows

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

А теперь внимание! Только мы одни во всей фирме работаем на Линуксе, а все остальные сидят исключительно на Windows и сервера у нас тоже под управлением серверных редакций ОС от Билла Гейтса. И если перенос базы Redmine не вызывает особых вопросов, то задача поднять на сервере Windows сервер для Git меня сразу поставила в тупик. Но несколько часов потраченных на поиски дали мне простое работающее решение.

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

Несколько интересностей и полезностей для веб-разработчика (выпуск 6)

Reading time3 min
Views29K
Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

Zephir — Ze(nd Engine) Ph(p) I(nt)r(mediate). Зефир — это компилируемый высокоуровневый язык программирования, предназначенный для написания PHP расширений без использования C. Проект от создателей Phalcon (скомпилированный PHP MVC Framework). О Zephir на Sitepoint
   

JSDB.IO — большая и качественная база нужных скриптов/библиотек/фреймворков на JavaScript. Все распределено по категориям: Animation, Application, Audio, Video, Games и др. Дабы собрать все популярные .js воедино добавлю еще три ссылки: Microjs (множество маленьких полезностей до 5кб), а еще jsdelivr и cdnjs, которые позволяют добавлять собственные скрипты.

Snap.svg — продукт от Adobe Webplatform. Недавно я рассказывал про "достойного конкурента Raphaël" и в комментариях оспоривали эту фразу из за отсутствия поддержки такого же множества браузеров. В разработке Snap участвует автор Raphaël — Дмитрий Барановский, а причина создания новой библиотеки для работы с SVG — невозможность поддерживать все возможности SVG в старых браузерах.

At.js — очень юзабельный скрипт для автозаполнения (в демо используется Emojify). А еще есть более функциональная библиотека для автозаполнения — Typehead от Twitter.
$('.atwho-inputor').atwho({
  at: "@", data: ["one", "two", "three"],
});

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

Кое-что об edX Blades

Reading time4 min
Views12K
Последнее время очень много выходит статей о проектах онлайн-обучения, которые стали новым этапом в образовании. Сейчас онлайн-курсы более популярны за рубежом. Среди всех ресурсов, предоставляющих возможность онлайн-обучения, можно выделить три самых популярных: Coursera, edX и Udacity. Эти три ресурса отличаются интерактивностью своих курсов и, что самое главное, дают возможность любому желающему пройти обучение абсолютно бесплатно.

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

Наша команда работает в компании Инновекс над проектом edX. Основные задачи нацелены на создание так называемых «blades» – модулей встраиваемых в платформу, как лезвия (blades) в бритвенный станок. Кроме того, часть задач связана с модификацией платформы.

Каждое «лезвие» представляет собой Rich UI приложение, состоящее из front-end части (javacript) и back-end части (python). Например, возьмем курс «Introduction to Solid State Chemistry». В материал курса встроена проверка химических реакций. Студенту, после прослушивания короткого (5-7 минут) видеоролика лекции, предлагают проверить свои знания. Вместо обычных вопросов и текстовых полей для ввода, студенту предлагают нечто особенное. Например — написать химическую реакцию определенного процесса. Эта химическая реакция проверяется на сервере автоматически, с использованием pyparsing и nltk. То есть, помимо front-end части для ввода химических реакций с использованием latex, а точнее MathJax, существует back-end часть, которая представляет собой питоновский модуль для проверки правильности ответа студента.

Я все же не хотел бы слишком углубляться в технические детали реализации «лезвий» по двум причинам. Во первых, код можно посмотреть на гитхабе, так как с 1 июля платформа edX стала open-source. Теперь каждый может ознакомиться с «лезвиями», заглянув в код по приведенным ссылкам, и кроме того, создать и запустить свой собственный виртуальный университет :) А во-вторых, мы не делаем чего-то экстраординарного в технических аспектах. Мы реализуем новые идеи для обучения, помогая делать его интересным, интерактивным и живым — по сути делаем качественную инженерную работу. Лучше я еще расскажу о «лезвиях» на конкретных примерах: как они устроены, на чем основаны. И вы сможете представить, насколько курсы состоящие из подобных модулей, могут быть интересными для студентов:
Читать дальше →

Metaio SDK: дополненная реальность стала полнее

Reading time3 min
Views30K

Вот уже течение 10 лет компания Metaio GmbH разрабатывает и совершенствует технологии дополненной реальности (ДР) для ПК и мобильных устройств. Одним из результатов этих титанических усилий стал Metaio SDK – набор инструментов для внедрения элементов ДР в приложения и программы, оптимизированный при поддержке и помощи Intel под ее платформы. Набор, между прочим, совершенно бесплатный! Предлагаем вам поближе познакомиться с этим продуктом и посмотреть, как он работает.
Узнать больше о Metaio SDK

Десятка лучших консольных команд

Reading time2 min
Views198K
imageВ данном посте я расскажу о наиболее интересных командах, которые могут быть очень полезны при работе в консоли. Однозначных критериев определения какая команда лучше другой — нет, каждый сам для своих условий выбирает лучшее. Я решил построить список команд на основе наиболее рейтинговых приемов работы с консолью от commandlinefu.com, кладовой консольных команд. Результат выполнения одной из таких команд под Linux приведен на картинке. Если заинтересовало, прошу под кат.
Узнать больше

Как не потерять данные в PostgreSQL

Reading time5 min
Views63K
PostgreSQL предлагает несколько вариантов резервирования данных. Обо всех них уже рассказано не раз, в том числе и на хабре. Но в основном рассказывается про технические особенности методов. Я же хочу постараться рассказать про общую стратегию резервного копирования, объединив все методы в эффективную систему, которая поможет вам сохранить все данные и уменьшить число погибших нервных клеток в критических ситуациях.
Вводные данные: сервер PostgreSQL 9.2, База размером >100Gb.
Читать дальше →

Введение в визуализацию данных при анализе с помощью Pandas

Reading time6 min
Views54K
Доброго времени суток, уважаемые читатели.
Как обещалось в предыдущей статье, сегодня я продолжу рассказ о модуле pandas и анализе данных на языке Python. В данной статье хотелось бы затронуть тему быстрой визуализации данных результатов анализа. В этом нам помогут библиотека для визуализации данных matplotlib и среда разработки Spyder.
Читать дальше →

Некоторые возможности Python о которых вы возможно не знали

Reading time8 min
Views116K

Предисловие


Я очень полюбил Python после того, как прочитал книгу Марка Лутца «Изучаем Python». Язык очень красив, на нем приятно писать и выражать собственные идеи. Большое количество интерпретаторов и компиляторов, расширений, модулей и фреймворков говорит о том, что сообщество очень активно и язык развивается. В процессе изучения языка у меня появилось много вопросов, которые я тщательно гуглил и старался понять каждую непонятую мной конструкцию. Об этом мы и поговорим с вами в этой статье, статья ориентирована на начинающего Python разработчика.

Подробности

Реализация условия «ИЛИ» в SphinxQL

Reading time1 min
Views10K
SQL-подобный язык SphinxQL пока не поддерживает условие «OR» в выражении «WHERE». То есть при запросе к поисковому индексу нельзя написать нечто вроде

SELECT * FROM `goods_index` WHERE `price` > 100 OR `price` = 0;
выбрать из индекса все товары, с ценой большее 100 тугриков или если цена не указана

Но выходы, конечно, есть: использовать вычисления. Перепишем запрос для придуманного мною примера в таком виде:
Читать дальше →

Секционирование таблиц моделей в Django с PostgreSQL

Reading time4 min
Views8.6K
Привет.
Это топик о том, как относительно быстро и безболезненно настроить секционирование (партицирование) таблицы по месяцам, если вы используете Django+PostgreSQL. Многое из описанного подойдёт и для других фреймворков и ORM.

О том, что такое секционирование и зачем оно нужно, можно почитать, например, здесь, здесь и здесь.

Итак, есть проект на Django и таблица одной из моделей должна быть очень большой. Если чтение из этой таблицы происходит часто, и всегда известен период времени, в который запись была сделана, секционирование ускорит работу базы данных.

Каждый раз писать запросы для включения секционирования не очень хочется, так что попробуем автоматизировать. Хорошо, если на выходе получится что-то, что может использовать и не сильно знакомый с SQL человек. I've read the docs, so you don't have to.
Читать дальше →

Несколько интересностей и полезностей для веб-разработчика (выпуск 4)

Reading time3 min
Views41K
Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

Pace.js — это самый простой способ (документация здесь) добавить к вашему проекту прогресс бар. Для Pace существует несколько тем, которые описываются только на CSS. От Hubspot есть еще два универсальных проекта на GitHub: Vex и Messenger — «Dialogs for the 21st century» и «Alerts for the 21st century» соответственно. Рекомендую.

imageFlat UI Free 2.1
Популярный информационный ресурс Designmodo опубликовал на GitHub обширный набор элементов интерфейса в стилей трендового плоского дизайна. Об этом еще в марте писал хабраюзер ilya42. А на этой недели проект обновился до версии 2.1. Теперь в Flat UI есть поддержка Bootstrap 3, появился ряд новых элементов, иконок, обновилились шрифты. Количество старов уже больше 5000.

Framer
Потрясающее изобретение разработчика Koen Bok. Framer — это бесплатный инструмент для прототипирования интерактивных и анимационных интерфейсов. Приложение синхронизируется с Photoshop, нарезает слои макета на .png (конечно же для верстки придется немного порезать руками, но все зависит от педантичности дизайнера к макету) и все верстает на z-index и trasnform matrix3d. А интерактив и анимацию дизайнеры добавят с помощью этого простого синтаксиса прямо в браузере (к сожалению только Chrome). PSD.Logo, PSD.OverviewButton — это имена PNG файлов. Говоря о разработчике Framer, хочется также упомянуть про его проект Cactus — генератор статистических сайтов на Python использующий Django template.
Читать дальше →

Процедурная генерация трёхмерных моделей

Reading time9 min
Views71K


Процедурная генерация — замечательная штука! Интереснее всего работать именно с графикой, особенно трёхмерной — сразу видно результат. Всего пары инструкций достаточно, чтобы создать облако треугольников как на картинке выше.

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

На примере движка Unity и C# я покажу как можно работать с моделями и превращать текст в графику. Большинство приводимого кода легко портируется на другие фреймфорки и языки.

Треугольник


Начнём с простейшей формы — треугольника. В Unity и во многих других движках используется популярный способ описания моделей: с помощью массивов вершин, треугольников и нормалей. Дополнительно для текстурирования используются uv-координаты вершин. Для работы с моделями есть класс Mesh, в котором для каждого набора данных имеется отдельный массив. В Mesh.vertices хранятся координаты вершин, в Mesh.triangles — индексы вершин группами по три. А в Mesh.normals и Mesh.uv лежат векторы нормалей и координаты uv-карт, индексы которых должны совпадать с индексами соответствующих вершин, т. е. порядок в массивах должен быть одинаковым. Покажу на примере, чтобы было понятнее.
Читать дальше →

Биллинг в крохотном проекте. 10 строк HTML кода

Reading time2 min
Views13K
Только что прочитал про биллинги в больших проектах и хочу поделиться опытом биллинга для крохотных проектов.

Основа — PayPal. Он довольно широко распространён + если нет у клиента учетной записи в PayPal, то можно обычной кредиткой оплатить. Поиск по хабру выявил уже один мануал, но он реально страшен. Мы пойдем простым путем!
Читать дальше →

TogetherJS: добавь на сайт коллективизма

Reading time1 min
Views15K
Mozilla Labs выпустила открытую библиотеку TogetherJS, с помощью которой на сайт легко добавить возможность коллективной работы в реальном времени.

Библиотека написана на JavaScript, не требует от посетителей установки никаких плагинов или программного обеспечения, всё работает сразу в браузере.

Для установки достаточно скопировать и вставить библиотеку и HTML-сниппет. TogetherJS дружественна к существующей структуре сайтов: скрипт ничего не меняет на сайте, только добавляет небольшую кнопку . По нажатию открывается дополнительное меню и появляется уникальная ссылка для отправки коллегам. Каждый, кто откроет эту ссылку, присоединится к групповой работе над данным документом.
Читать дальше →

Information

Rating
Does not participate
Location
Иркутск, Иркутская обл., Россия
Registered
Activity