Pull to refresh
20
0
Рахматиллаев Тимур @Eskat0n

Разработчик .NET, Kotlin, Ruby, JS

Send message

Всё в деталях

Reading time2 min
Views3.7K
Доброго времени суток!

Введение


К своему стыду, я совсем недавно познакомился с элементом details, который по сути является виджетом для представления информации о чём-либо. По информации, которая есть у меня, его поддержка достаточна скудна, так как поддерживается он на данный момент лишь в Google Chrome, начиная с 12.0, а также в Android Browser, начиная с версии 4.0. Что же, давайте посмотрим, что это за зверь такой.
Читать дальше →
Total votes 64: ↑49 and ↓15+34
Comments57

Вызываем функции Windows API (и любые другие функции, написанные на языке Си) джаваскриптом из Node.js

Reading time4 min
Views25K
Со вчерашнего дня, господа, можно написать вот такой скрипт:

// функция преобразования строки JavaScript (UTF-8) в UTF-16
function TEXT(text){
   return new Buffer(text, 'ucs2').toString('binary');
}

var FFI = require('node-ffi');

// подключаемся к user32.dll
var user32 = new FFI.Library('user32', {
   'MessageBoxW': [
      'int32', [ 'int32', 'string', 'string', 'int32' ]
   ]
});

// диалоговое окно
var OK_or_Cancel = user32.MessageBoxW(
   0, TEXT('Привет, Хабрахабр!'), TEXT('Заголовок окна'), 1
);

и, запустив его в Windows, получить желаемый результат — диалоговое окно Windows.

Это стало возможным потому, что модуль node-ffi (обёртку вокруг той необыкновенно полезной библиотеки libffi, которая используется для вызова библиотек на языке Си не менее чем в восьми других языках) вчера портировали на Windows.

Читать дальше →
Total votes 65: ↑51 and ↓14+37
Comments33

Digital Metawatch WDS112 оригинальный отладочный комплект от Texas Instruments

Reading time4 min
Views15K
Где-то года полтора назад я увидел такую интересную вещь как часы с bluetooth, умеющие работать с телефоном. Мне понравилась сама концепция, но реализация откровенно говоря хромала. Часы или умели работать только с определенной моделью телефона или же имели довольно бедный функционал и не слишком большие дисплеи. Я продолжал следить за тем, какие модели появляются и что они умеют. Мне понравились часы от iVirt от Citizen, но их ориентированность на японский рынок и стоимость меня не слишком устраивала. Но 2011 год выдался урожайным на подобные устройства, но практически все они или имели закрытое ПО как к примеру Live View on Sony Ericsson (да у меня телефон не на android) или же обладали довольно странным функционалом как InPulse (не ребят одна кнопка для управления это не прикольно), и малым временем жизни. Но у InPulse присутствовал такой полезный функционал как открытая прошивка и возможность писать свое ПО под эти часы. Про остальные часы с полноценным Android я пожалуй промолчу и почту время их работы вставанием. И тут в конце года появляется Metawatch. Что же такое этот самый metawatch?

Читать дальше →
Total votes 28: ↑27 and ↓1+26
Comments31

Двойная буферизация или Назад в прошлое. Часть вторая

Reading time3 min
Views10K
Доброго времени суток!

Введение


На дворе уже четвёртое января, а моя душа всё не успокаивается. Поэтому я решил продолжить тему написания J2ME приложений. Плюс ко всему, несколько человек проявили нешуточный интерес к данной теме. Причём это были не только рядовые пользователи хабра, но и read-only аккаунты. Ну да ладно, ближе к теме.
Буквально сразу же после публикации топика, были получены очень дельные комментарии от хабраюзера barker, а именно замечание, по сути являющееся прописной истиной и второй комментарий — поправка, не менее дельная.

О чём мы поговорим сегодня
Total votes 17: ↑14 and ↓3+11
Comments51

Сервис GymPact берет деньги у лентяев и отдает тем, кто занимается спортом

Reading time2 min
Views7.8K


Лень не всегда бывает «двигателем прогресса», чаще всего она приводит как раз к регрессу, пускай даже не цивилизации в целом, а отдельно взятой личности. Особенно сложно некоторым из нас преодолеть внутреннее сопротивление, и начать заниматься спортом (регулярно). И не просто пару раз в неделю присесть, а тяжело работать над собой в спортзале. Статистика по «спортсменам», кто бросил заниматься в первые же пару месяцев неизвестна, но явно лентяев все же большинство. И стимул «накачаю мышцы и буду легко знакомиться» или «спорт — здоровье» работает не для всех. Зато денежный стимул работает для большинства из нас. И сервис GymPact использует это для мотивирования своих пользователей.

Читать дальше →
Total votes 66: ↑61 and ↓5+56
Comments86

Обзор свежих материалов, октябрь-ноябрь 2011

Reading time10 min
Views1.8K
Этот материал продолжает серию ежемесячных обзоров свежих статей по теме интерфейсов, новых инструментов и коллекций паттернов, интересных кейсов и исторических рассказов. Из лент нескольких сотен тематических подписок отбирается примерно 5% стоящих публикаций, которыми интересно поделиться. Предыдущие материалы: апрель 2010-сентябрь 2011. В связи с повышенной конференционной активностью этой осенью вышла пауза с публикациями, но дальше такого наплыва мероприятий не будет.



Читать дальше →
Total votes 51: ↑49 and ↓2+47
Comments6

Регистрация глобальных «хоткеев» при использовании WPF

Reading time4 min
Views6.1K
Возможно, вы когда-то очень хотели чтобы в вашем приложении присутствовала возможность управления чем-либо через глобальные клавиши. И, возможно, вам нравится программировать с использованием технологии WPF. Тогда этот топик для вас.

Читать дальше →
Total votes 43: ↑37 and ↓6+31
Comments14

Решение судоку с помощью веб-камеры в реальном времени

Reading time12 min
Views60K

Предисловие




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

Программа написана с помощью низкоуровневого языка C++, потому что я действительно хотел понять, как же это все работает изнутри. Если вы тоже хотите начать изучение компьютерного зрения, то для этого пригодиться библиотека OpenCV. На CodeProject вы сможете найти несколько уроков по ней. Изображение с веб-камеры получается с помощью исходного кода Вадима Горбатенко (AviCap CodeProject).
Читать дальше →
Total votes 363: ↑360 and ↓3+357
Comments67

Динамические графики на основе highstock

Reading time4 min
Views23K
Здравствуйте. Я представляю одну из ведущих танцевальных онлайн-радиостанций в России — FreshBeat Radio.

У нас, как у интернет-радио, есть одно огромное преимущество перед FM вещанием. Нам не надо проводить дорогостоящие исследования рынка, чтобы узнать количество слушателей, их местоположение, длительность и частоту прослушивания.

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

В этой статье, я расскажу вам о том, как это визуализировать и периодически обновлять с помощью Highstock. На Хабрахабре уже было несколько статей про этот набор инструментов, но все они описывали работу только со статическими данными.
Читать дальше →
Total votes 17: ↑16 and ↓1+15
Comments12

Node.js на Windows (с тестами производительности)

Reading time11 min
Views48K


В этой статье мы рассмотрим вопросы наиболее важные для начинающих веб программистов и тех кто задумывается об изучении Node.js, а именно:
  • как установить рабочее окружение Node.js на своем компьютере;
  • как писать код;
  • как отлаживаться;
  • как развернуть то, что получилось на удаленном сервере.
А тесты производительности в конце статьи возможно дадут ответ на вопрос зачем собственно вам может понадобится изучать Node.js.
Читать дальше →
Total votes 95: ↑79 and ↓16+63
Comments72

Невероятные приключения с Microsoft.Practices.Unity

Reading time3 min
Views5.8K
Речь пойдет не о возможностях и вкусностях использования АОП, а об одном личном случае использования Unity в своем проекте.

Немного предыстории


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

Собственно история


И вот, в один прекрасный момент, после применения очередного обновления. У далекого клиента в г. Омск стали наблюдаться странные «тормоза» при запуске нашего приложения. Программа висела примерно 30-40 секунд, потом успешно запускалась и в дальнейшем работала с привычным для нас быстродействием.
Хм… Стал смотреть код.
Читать дальше →
Total votes 58: ↑45 and ↓13+32
Comments8

Simon A-20. Живем с Arduino не тупея

Reading time1 min
Views8.8K
Доброго времени суток, %username%.
Я видел много зверья на платформе arduino: сигвеи, трехколесные, четырехосные (квадракоптеры) etc, и захотел своего.
Захотел- сделал!

Simon A-20

Под катом технические характеристики, фотографии и история создания

Читать дальше →
Total votes 75: ↑53 and ↓22+31
Comments49

Шпаргалка по пакетному менеджеру NPM

Reading time5 min
Views407K

npm — это пакетный менеджер node.js. С его помощью можно управлять модулями и зависимостями.
Небольшая шпаргалка всех моих любимых команд npm:

Читать дальше →
Total votes 49: ↑44 and ↓5+39
Comments11

Строим гусеничного Bluetooth-робота с камерой. Часть 1

Reading time7 min
Views146K
По многочисленным просьбам я решил описать процесс создания вот такого робота с камерой на гусеничном шасси и управлением по bluetooth с помощью джойстика.

Я всегда мечтал создать робота, которым можно управлять с помощью компьютера и смотреть за его перемещениями от первого лица.
Весь процесс я условно разделил на три части:
1. Сборка робота
2. Программирование боротового микроконтроллера
3. Программирование управления с ПК
Читать дальше →
Total votes 172: ↑167 and ↓5+162
Comments134

12+ полезных Google Chrome chrome:// команд

Reading time2 min
Views397K
Все знают, что для того чтобы попасть в меню у Хрома, нужно нажать на Гаечный ключ в правом верхнем углу.

Однако есть несколько особенностей, которые не доступны из меню, которые вы можете увидеть только с помощью chrome:// команд.

Под катом приведены 12 самых полезных chrome:// команд, которые должны знать все.
Читать дальше →
Total votes 217: ↑196 and ↓21+175
Comments55

Ino — работа с Arduino из командной строки

Reading time2 min
Views14K
imageХабрадевелоперам, привет!

Те, кто работал с Arduino, знает, что для его программирования существует специальная Arduino IDE. По сути это блокнот с двумя кнопками: «прошить» и «послушать через serial». Блокнот подходит для написания маленьких программок-экспериментов, но выбешивает при написании чего-то большего.

Многие привыкли работать в своих любимых Visual Studio, Eclipse, KDevelop и т.п. Я сам — убеждённый фанат Vim’а, окна терминала и кнопок Alt+Tab. Давно хотелось, чтобы сборка проектов для Arduino была такой же простой, как в официальной IDE, а вот их ужасный редактор на глаза больше не попадался. Тем более, что язык «Arduino» несмотря на позиционирование как отдельного, простого языка программирования — это не что иное, как C++. А собирается всё в конечном итоге инструментами avr-gcc.

Для решения проблемы Амперкой был создан Ino.
Читать дальше →
Total votes 20: ↑20 and ↓0+20
Comments29

Упрощение жизни разработчика с помощью сторонних сервисов

Reading time3 min
Views9.6K
Представляю скромную подборку сервисов, которые ускоряют экономят время разработчику и/или ресурсы сервера. Здесь не будет подробных обзоров, только список с кратким описанием и ссылками. Также, я не претендую на свежесть ресурсов, поэтому кому-то перечисленный список покажется слишком очевидным и известным всем.

Буду рад включить ссылки и описания, предложенные в комментариях.

Google Fusion Tables


Позволяет развернуть реляционную базу данных на серверах гугла с обращениями с помощью библиотеки Visualization или JSONP.
Статья на хабре: habrahabr.ru/blogs/webdev/116035
Ссылка: www.google.com/fusiontables/Home

Минусы: количество обращений в секунду равно пяти с одно IP адреса и столько же при обращении с аккаунта (используя авторизацию). То есть развернуть сайт с хорошей посещаемостью и работать с сервисом с помощью сервера не получится. Стоимость увеличения лимита — от 10 тысяч долларов в год (см. Maps API Premier). Кроме того, отсутствуют джойны, которые заменяются представлениями (view), создаваемыми через интерфейс.
Читать дальше →
Total votes 170: ↑156 and ↓14+142
Comments41

Chainvas: изящный и миниатюрный «костыль», добавляющий средства цепного вызова (method chaining) к любому API

Reading time3 min
Views2.8K
Благодаря библиотеке jQuery примерно с 2006 года (то есть лет пять как) никому не надо объяснять, что такое method chaining: это та самая техника программирования, в которой методы объекта могут быть вызваны друг за другом по цепочке, как в jQuery.

Главнейшим достоинством этой техники является заметная экономия усилий программиста. С нею программисту не приходится заново, неоднократно записывать имя объекта вот в такой манере:
obj.шмяк();
obj.тыдыжжь();
obj.ынц();

Вместо этого программист может вызвать все методы цепóчкою — в одну строку:
obj.шмяк().тыдыжжь().ынц();

Если же ему покажется, что такой вид записи хуже читается человеком, чем предыдущий (особенно когда у методов появляются параметры, иногда довольно обширные), то тогда программист может записывать имена методов с новой строки (JavaScript это позволяет), но всё равно экономить на имени объекта:
obj
   .шмяк(параметр1, параметр2, …)
   .тыдыжжь(параметр1, параметр2, …)
   .ынц(параметр1, параметр2, …);

На практике возможность такой техники обеспечивается тем, что ни один метод объекта не возвращает значение undefined. Вместо этого, если метод является командою, а не запросом (то есть выполняет некоторое действие, а не возвращает некоторое значение), то в конце его автор библиотеки пишет «return this» — этим-то и обеспечивается возможность записи вызова нескольких команд подряд в форме цепочки.

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

Удобство цепного вызова вызывает привыкание. Ну правда же: достаточно пару-тройку-другую недель попрограммировать на jQuery — и обыкновенные API начинают раздражать, даже бесить, своею допотопною невозможностью цепного вызова. Также недостаёт возможности задания их свойств в виде объекта, передаваемого методу, подобному .css({color: 'red', 'line-height': 1}) в jQuery.

Вообразите себе, например, как необыкновенно было бы удобно, кабы по холсту (<canvas>) можно было рисовать цепными вызовами в такой манере:
ctx.beginPath()
   .prop({
      lineWidth: 2,
      strokeStyle: '#333'
   }).moveTo(0,0)
   .bezierCurveTo(50,50, 80,80, 100,100)
   .stroke().closePath();

И средство для именно таких цепных вызовов появилось — благодаря Lea Verou. Вот оно:

[Chainvas]

Читать дальше →
Total votes 58: ↑42 and ↓16+26
Comments10

Как использовать C++ AMP из C#

Reading time5 min
Views12K

В Visual Studio 11 Developer Preview, C++ AMP позволяет ускорить Ваши приложения, используя гетерогенное железо, такое как GPU.
Если Вы являетесь .NET-разработчиком, то все равно сможете использовать C++ AMP в Ваших приложениях. Большинство кода будет писаться на C#, лишь некоторые участки с помощью C++ AMP для его выполнения на GPU, затем использоваться любимый interop-механизм для связывания. Данный пост объяснит, как это сделать через P/invoke.
Читать дальше →
Total votes 31: ↑27 and ↓4+23
Comments8

Микроэлектроника – мотивации псто

Reading time8 min
Views50K
image

Дисклаймер


Мне нравится заниматься микроэлектроникой. Причем я даже не уверен, что я правильно использую слово «микроэлектроника» — может быть, я занимаюсь совсем не ей. Может быть я занимаюсь схемотехникой. Или программированием. Или программированием микроконтроллеров. Или сборкой электронных устройств. Или еще бог знает чем. Но для себя то, что я делаю, я называю микроэлектроникой – мне лень пойти почитать определение и сопоставить с тем, что я делаю — да простят меня сведущие и, возможно, обидевшиеся.
Несмотря на то, что я занимаюсь микроэлектроникой и уделяю этому занятию достаточно много времени на протяжении почти трех лет – я все еще начинающий с массой больших пробелов в знаниях. Но кое-что у меня получается и я стараюсь разобраться в вопросах, в которых все еще не разбираюсь.
Решил я написать этот пост потому, что вижу с одной стороны большой интерес к «ардуино-постам», трепет при виде мигающего светодиода, а с другой стороны какой-то непонятный мне страх самостоятельно взять и сделать что-то. Ребята, от страхов нам надо избавляться.
Читать дальше →
Total votes 208: ↑192 and ↓16+176
Comments92

Information

Rating
Does not participate
Location
Челябинск, Челябинская обл., Россия
Date of birth
Registered
Activity