Search
Write a publication
Pull to refresh
-24
0
Антон Холодцов @Error_403_Forbidden

User

Send message

JS Charts — генератор графиков и схем.

Reading time1 min
Views16K
image
JS Charts является бесплатным JavaScript-генератором графиков и схем, который требует минимум знаний программирования. С JS Charts рисование диаграмм становится простой и легкой задачей. Он не требует никаких дополнительных плагинов и серверных модулей. Просто подключите скрипты, подготовьте данные для схемы в XML или массиве JavaScript и ваша таблица готова.
Читать дальше →

CloudMade официально запустился

Reading time2 min
Views2.6K
CloudMadeСегодня ночью в Сан-Франциско состоялся запуск очень интересного стартапа в области картографии CloudMade. Данный проект основан на данных OpenStreetMap и расширяет их предоставляя дополнительные сервисы, в том числе и уникальные. Среди этих сервисов:

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

Планарий. Легкое управление делами

Reading time2 min
Views1.2K
image Еще с момента поступления в университет я был постоянно в раздумьях о том, что дел-то как-то много стало, и в голове держать их все вместе сложно, поэтому пора уж заняться планированием. Было перепробовано множество способов, начиная с ежедневника и аутлука, заканчивая всевозможными сайтами. И чаще всего, тот или иной инструмент не устраивал по ряду причин.
Читать дальше →

О том, как можно проверять значения, введёные пользователем

Reading time3 min
Views13K
В любых программных продуктах, будь то windows-приложение или web-сайт, получение информации от пользователей зачастую осуществляется с помощью форм ввода данных.

Конечно же, нельзя быть абсолютно уверенным, что пользователь введёт именно то, что нужно, поэтому все данные необходимо тщательно проверить.

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

На практике это выливается с довольно длинные последовательности «if-else». Лично мне это жутко не нравилось, так как сложно с первого взгляда определить, какие поля как проверяются и какие сообщения выдаются в случае ошибок. А ведь полей в форме может быть и десять, тогда код проверки вообще затягивается. Вобщем, я задумался над тем, как можно минимизировать объём работ и вот что из этого получилось.
Читать дальше →

3D-печать через интернет

Reading time1 min
Views1.8K
Компания Philips запустила уникальный стартап Shapeways, который будет осуществлять дешёвую трёхмерную печать через интернет.

Работает это просто: вы создаёте 3D-модель в каком-то из 3D-редакторов и загружаете файл к ним на сайт, затем выбираете, из какого материала печатать изделие (бронза, гипс, пластик и т.д.) и какого оно должно быть цвета. После этого модель отправляется вам по почте.

В данный момент идёт регистрация для участия в закрытом бета-тестировании. Бесплатные аккаунты раздают только по приглашениям. По коду “BoingBoing” сегодня с утра было доступно 500 аккаунтов (наверное, уже разобрали).

via Boing Boing

Знакомство с Arduino

Reading time4 min
Views81K

Введение


Торжественно открываю новый блог на Хабре, посвящённый Arduino! Блог об универсальном opensource-микроконтроллере Arduino, который будет интересен всем любителям микроэлектроники, самодельных гаджетов и всем, кто не боится взять в руки паяльник.

Внешний вид платы Arduino Diecimila Arduino представляет собой линейку электронных блоков-плат, которые можно подключать к компьютеру по USB, а в качестве периферии — любые устройства от светодиодов до механизмов радиуоправляемых моделей и роботов. Программы для него пишутся на простом и интуитивно понятном си-подобном языке Wiring (c возможностью подключения сторонних библиотек на C/C++, например, для управления LCD-дисплеями или двигателями), компилируются и загружаются в устройство одной кнопкой, после чего вы тут же получаете работающий автономный гаджет. Никакого ассемблера, никаких лишних проводов и дорогущих деталей и программаторов — чистое творчество, включай и работай!
Читать дальше →

Пара копеек про микроконтроллеры

Reading time3 min
Views16K
Довелось мне проработать три года в фирме, которая занималась встраиваемыми системами, а именно автоматикой, что поезда водит. Жесткое реальное время, серьезное тестирование и выгрызание микросекунд везде, где только можно. Попробую дать пару советов тем, кто интересуется встраиваемыми системами (а по постам на хабре я понял, что таких — немало ;-)
Читать дальше →

Простая реализация схемы шагового двигателя на мк

Reading time3 min
Views43K
И так, данный пост нацелен на новичков в электронике а так же на новичков в программировании и освоении мк и разработке радиоэлектронных устройств.
Данная разработка представляет простейшее включение МК такого как PIC16F84A для управления шаговым двигателем.
Читать дальше →

StaticAPI Яндекс.Карт

Reading time1 min
Views4.1K

Три месяца назад мы анонсировали сервис API Яндекс.Карт, который представляет собой инструментарий, позволяющий встраивать карты Яндекса на ваш сайт. Число сайтов, использующих Яндекс.Карты, постоянно растет. Но оставались задачи, которые требовали других решений.

Сегодня мы представляем вам новую технологию — StaticAPI. Она позволит показать на вашем сайте карту в виде обычной картинки, без использования JavaScript.

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

Испытать возможности StaticAPI вы можете самостоятельно и прямо сейчас. Владелец любого сайта, например сайта на "Яндекс.Народе", может воспользоваться инструментом "Установка точек и линий на карте" и быстро оформить и опубликовать карту.

Подробности об этой технологии можно прочитать в разделе Документация промо-сайта API Яндекс.Карт.
Ответы на любые вопросы, которые у вас возникнут, вы можете получить в Клубе API Яндекс.Карт 

Блокнот для иконок

Reading time1 min
Views2.4K


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

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

Рисоваська — «аська», в которой рисуют с друзьями

Reading time2 min
Views1.7K
Рисоваська
Сегодня мы запустили Рисоваську — скачиваемую программу, в которой можно устраивать рисованные чаты и креативные мозговые штурмы с друзьями, рисовать и постить комиксы, общаться в рисованных каналах-комьюнити.

Как это работает


После установки и регистрации у вас появляется симпатичное окошко-телевизорик, в которое приходят сообщения от друзей. В телевизоре есть разные каналы: «Все друзья» — все, что вы туда нарисуете, придет вашим друзьям, а все, что нарисуют они в этот канал, придет вам, «Новички» — канал, куда мы автоматически подписываем всех новых пользователей, чтобы они быстрее освоились в Рисоваське, «Моя песочница» — канал для опытов и развлечений, его содержимое никуда не отправляется, можно делать всё что угодно :))))
Читать дальше →

Prett Parsing — метод Вогана Пратта для разбора выражений

Reading time3 min
Views5.8K
В тему компиляций и вычислений выражений.

В далёком 1973 году Воган Прэтт (Vaughan Pratt) предложил простой и эффективный метод разбора выражений, не использующий ни автоматы, ни грамматику как таковую.

Идея заключается в том, что каждый символ (token) наделяется свойствами:
lbp = приоритет связывания символа слева,
nud = функция, определяющая результат применения оператора в начале выражения,
led = функция, определяющая результат применения в середине выражения.

Основной разбор осуществляется по схеме:
разбор(приоритет продолжения):
    вытолкнуть символ из входного потока
    результат = вызов nud этого символа
    пока приоритет lbp следующего в потоке символа > приоритета продолжения:
        вытолкнуть символ из входного потока
        результат = применени led этого символа к текущему результату

Константы и переменные имеют приоритет связывания 0, а функция nud возвращает их значение (или ссылку). Поэтому применение разбора к константам сразу возратит их значение.
Для бинарных операторов функция led рекурсивно вызывает продолжение разбора (справа) вплоть до более низкого приоритета, и делает что-нибудь с уже накопленым (слева) результатом, и полученным рекурсивно.
Результат применения оператора аггрегируется для внешнего вызова.
Много-арные операторы — получают аргументы дополнительным вызовом функции разбора.
Префиксные операторы делаются с помощью определения для них функции nud.
Для правостороннего связывания меняется приоритет продолжения рекурсивного разбора.

На сайте effbot.org приводится подробная реализация на питоне.
Там же есть ссылки для жаваскрипта и схемы.
наглядный пример на питоне

OCR и нейронная сеть на Javascript

Reading time1 min
Views7.4K
Некий Shaun Friedle написал любопытный javascript который автоматизирует распознавание captcha на megaupload.

Пара любопытных особенностей скрипта:
  1. используется HTML 5 функция javascript getImageData для работы с пикселями;
  2. используется искусственная нейронная сеть для распознавания и работает довольно точно.

Пример работы: herecomethelizards.co.uk/mu_captcha
Исходник: userscripts.org/scripts/review/38736

CUDA: с места в карьер

Reading time5 min
Views29K
Многие видели моё введение в современные технологии высокопроизводительных вычислений и оценки производительности, теперь я продолжу тему более подробным рассказом о технологии CUDA.
Для тех кто не смотрел предыдущие серии: CUDA позволяет писать и запускать на видеокартах nVidia(8xxx и выше) программы написанные на С++ со специальными расширениями. На правильных задачах достигается значительное превосходство по производительности на $ по сравнению с обычными CPU.
Достижимая производительность — 1 трлн и выше операций в секунду на GTX295.

NB: Статья — краткое введение, покрыть все ньюансы программирования под CUDA в одной статье вряд ли возможно :-)
Читаем дальше CUDA crash course

Компилятор выражений

Reading time12 min
Views19K
Недавно у меня возникла необходимость в вычислении выражений. Выражение представлено в виде строки и может содержать имена переменных, целые числа, строковые константы и любые операции над ними.

Пример:
   выражение: «x + 10 == 5 * y / (1 + z*2)»;
   требуется уметь вычислять это выражение для любых значений x, y и z.

И конечно при этом надо учитывать приоритеты операторов.

Для решения нужно сделать компилятор, который по строке строит объект «Вычислимое Выражение». У этого объекта будет метод «вычислить для данных значений переменных».

Решение на Java, но может быть легко переведено на другие языки.

Подробнее...

Парсер математических выражений

Reading time5 min
Views48K
Спасибо всем! Статья набрала необходимое число плюсов и автор к нам присоединяется! Вот и он: elw00d
Представляю вниманию товарищей-дотнетчиков библиотечку собственного написания, с помощью которой можно легко обращаться с несложными математическими функциями, переводя их из строковой формы инфиксной записи в обработанное представление, составленное в постфиксной нотации, и обратно. Для чего это может понадобиться?

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

Проверка орфографии с помощью Google

Reading time2 min
Views15K
Иногда в проекте требуется проверить данные на предмет орфографических ошибок, не полагаясь на познания пользователя по части языков. Тут нам сможет помочь компания Google, с таким их сервисом, как проверка орфографии, используемым в Google Toolbar. Но, к сожалению, Google не предоставляет открытого API для работы с ним.

Итак, краткое описание:
Для того, чтобы проверить текст нам нужно отослать его в POST на https://google.com/tbproxy/spell?lang=ru, где для смены языка следует заменить значение параметра lang на соответствующий по ISO 3166-1 alpha-2. Текст оформляется в XML вида:
<?xml version="1.0" encoding="UTF-8" ?><br/>
<spellrequest textalreadyclipped="0" ignoredups="0" ignoredigits="1" ignoreallcaps="1"><br/>
 <text>Текст для проверки</text><br/>
</spellrequest>
ignoredups — подсветка повторов
ignoredigits — считать цифры ошибками
ignoreallcaps — не проверять слова написанные капсом (подсказал pointum)

Если всё успешно, мы получаем ответ вида
<?xml version="1.0" encoding="UTF-8"?><br><spellresult error="0" clipped="0" charschecked="272"><br> <c o="27" l="13" s="0"></c><br> <c o="73" l="11" s="1">орфографии и орфографии</c><br> <c o="190" l="11" s="1">пользоваться</c><br> <c o="226" l="13" s="0">пред оставляет пред-оставляет</c><br></spellresult>
Атрибуты тега spellresult:
error — произошла ли ошибка
charschecked — количество проверенных символов

В нем идет перечисление допущенных ошибок (теги c), их параметры:
o — начало исходного слова в тексте
l — длина этого слова
s — точность результата

В самом теге c содержатся предполагаемые варианты написания слов, разделенные символом \t.

P.S. Когда этот текст уже был написан, случайно наткнулся на статью в блоге Paul Welter, которая, в принципе, описывает тоже самое…


UPD: Пользователь wayly написал на PHP класс для проверки текста с помощью этого сервиса, скачать можно по ссылке proxysoft.ru/files/spellchecker.zip (зеркало).

UPD2: mezhevikin подсказал ajax-решение с использованием этого сервиса — orangoo.com/labs/?page_id=3

UPD3: Список поддерживаемых языков

_________
Текст подготовлен в ХабраРедакторе
Код подсвечен в Source Code Highlighter

Модальность за рамками диалоговых окон

Reading time3 min
Views3.2K
Статью написал jagoterr. Если эта статья наберет +50 то автор получит инвайт на Хабрахабр.

Аза не так давно опубликовал заметку о модальных оверлеях (Здесь и далее по тексту используется именно такой перевод слова overlay, наименее “русский”, но зато не искажающий сути данного понятия). О тех самых диалоговых окошках, которые внезапно выскакивают и блокируют то, что находится позади них. Вы полностью свободны в своих действиях в рамках модального окна, но вы не можете использовать ни один “перекрытый” им элемент до тех пор, пока это окно не исчезнет.

Обычно, когда мы говорим о модальных окнах, мы говорим именно о диалогах, таких как на приведённом ниже фрагменте приложения Google Documents. Критика Аза относится как раз к модальным окнам такого рода. После того, как вы открыли диалог поиска/замены, вы не можете кликнуть мышью нигде, кроме как внутри этого диалога. Это означает, что вы не можете пролистать документ, находящийся под диалогом, или скопировать слово из документа и вставить его в строку поиска, не закрывая диалог.

image

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

Настройка Ubuntu 8.10 для кодинга под NVIDIA CUDA

Reading time4 min
Views9.4K
image

Решил я всерьез заняться программированием распределенных вычислений с использованием этой технологии. Не буду подробно рассказывать, что она из себя представляет, скажу только, что CUDA предназначена для проведения распределенных вычислений не на процессоре, а на чипе видеокарты, что позволяет производить неграфические вычисления с феноменальной скоростью (производительность чипа GeForce 8800 GTX при математических расчетах примерно равна производительности 180(!)-ядерного Pentium 4 1,5 ГГц). В основном это используется для решения научных задач, вроде моделирования различных сложных систем. Кстати, данную технологию использует последняя версия Adobe Photoshop (CS4) — рендеринг картинок и многие эффекты обрабатываются именно с помощью CUDA. Технология поддерживается видеокартами на чипах NVIDIA начиная с 8 серии и новее, включая, само собой, Quadro и Tesla.

Сказано — сделано. Буду настраивать свою убунту под это дело, а заодно и о своем опыте расскажу ;)
Поехали!

ASP.NET 4.0: обзор ClientID

Reading time10 min
Views3.8K

Вступление


Одним из нововведений в четвертой версии ASP.NET стала возможность контролировать формирование идентификаторов элементов разметки на клиенте. Ранее фреймворк задавал уникальный идентификатор для каждого элемента. Это приводило к тому, что определяемые вами идентификаторы преображались во что-то похожее на это: ctl00_MasterPageBody_ctl01_Textbox1.

Проблема


Модификация идентификаторов на клиентской стороне отлично работает, когда требуется обеспечить уникальность идентификаторов для каждого элемента, но работа с такими идентификаторами могла расстроить любого, кому приходилось работать с клиентскими скриптами. И если вы работали с ASP.NET, то скорее всего сталкивались с этими трудностями. Проблема состоит в том, что во время исполнения скрипта вы не можете точно знать каким может быть идентификатор, что затрудняет написание клиентских скриптов. Кроме того, любые модификации на странице, добавление или удаление элементов управления, могут привести к генерации других идентификаторов.
Читать дальше →

Information

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