Search
Write a publication
Pull to refresh
4
0
Сергей @sketcompani

User

Send message

OData контроллеры в .NET MVC

Reading time10 min
Views40K
В недавно вышедшем ASP.NET and Web Tools 2012.2 Update заявлена частичная поддержка протокола oData в ASP.NET Web API. Решил сам попробовать, да и с коллегами поделиться. В статье опишу как использовать запросы и CRUD операции по протоколу oData с несколькими связанными объектами модели данных. В качестве front-end клиента использован Kendo UI framework.
Читать дальше →

Автоматизированное тестирование веб-приложения (MS Unit Testing Framework + Selenium WebDriver C#). Часть 2.2: Selenium API wrapper — WebElement

Reading time14 min
Views44K
Selenium + C#
Введение

Привет! В предыдущей части я описал основные проблемы, возникающие при работе с Selenium WebDriver, а так же привел пример обертки Browser. Вроде было не сложно, да?) Ну что ж, идем дальше. Надо разобраться с оставшимися проблемами:
  • Описание элемента происходит одновременно с его поиском, т.е. на момент определения элемента он должен существовать в браузере. Очень часто решается путем написания getter для каждого элемента. Это накладно и плохо с точки зрения производительности
  • ISearchContext.FindElements принимает только один параметр типа OpenQA.Selenium.By, т.е. мы не можем искать сразу по нескольким свойствам. Обычно элемент ищется по первому критерию, а затем начинается отсеивание по остальным
  • Отсутствие многих, казалось бы, очевидных методов и свойств. Например: Exist, SetText, Select, SetCheck, InnerHtml и т.д. Вместо этого мы вынуждены довольствоваться Click, SendKeys и Text
  • Множество проблем на различных браузерах, например на Firefox и Chrome элемент кликается, а на IE — нет. Приходится писать special cases, «костыли»
  • Производительность. Да, драйвера работают не быстро. Впереди планеты всей как обычно IE — поиск может занимать секунды, иногда и десятки секунд

В этой части мы будем писать wrapper WebElement, который целиком направлен на пользователя, т.е. на разработчиков автотестов. Признаюсь, что в момент его написания моя задача заключалась в создании «фреймворка», которым должны пользоваться инженеры по ручному тестированию для написания автотестов. Естественно предполагалось, что они имеют весьма скромные познания в программировании. Поэтому было совершенно не важно, сколько тонн кода будет в самом фреймворке и насколько он будет сложным внутри. Главное, чтобы снаружи он был прост как три буквы. Предупреждаю, будет много кода и мало картинок =)
Читать дальше →

Советы Google по кодированию на языке Python. Часть первая: советы по программированию

Reading time13 min
Views115K

Хай, Хабр!
Сегодня я хочу представить, дорогому хабрасообществу свой первый хабраперевод. Программировать на языке Python — подобно песне. Но еще лучше, когда Ваш код читаем и понятен, а значит чуть более поэтичен, чем обычно бывает производстве. У каждого свои правила и свои стереотипы относительно написания и оформления исходного кода, на каком бы языке он ни был написан. Множество копий сломано о щиты на форумах, но, как ни крути, нельзя не считаться с мнением авторитетных товарищей. Так что сейчас будет представлен перевод первой части стайл-гайда для языка Python от Google. Коснется он именно постулатов написания кода (вторая часть тоже скоро появится, а посвящена она будет форматированию исходного кода). Сразу предупреждаю: тут много (если не большая часть) прописных истин, которые все знают уже давно. Но я искренне надеюсь, что Вы сможете найти тут что-то новое или хотя бы вспомнить старое. Приступим под катом. И pdf тут как тут.
Читать дальше →

Ускоряем выборку произвольных записей MySQL

Reading time3 min
Views33K
Последнее время оживилась публика с вопросом случайной выборки из таблицы. Решений по оптимизации полно, и нового сейчас я вам наверное ничего не покажу, просто напомню про основные методы оптимизации — упрощение запроса и индексацию. Без предисловий про фриленсеров, сразу к делу ;)

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

Интеграция AJAX в ASP.NET MVC 4

Reading time6 min
Views80K
Наверное, уже не существует веб разработчика, который не слышал о Ajax. Microsoft в такой ситуации не может оставаться в стороне, с каждым релизом старается облегчить жизнь именно нам, ASP.NET MVC разработчикам. Но прежде чем я продолжу статью, немного отступлюсь от темы.

Когда я познакомился с MVC фреймворком, он был тогда только во второй версии и, столкнувшись с такими хелперами как @Ajax...., честно говоря, их реализация на стороне клиента меня не впечатлила. Нет, так нет, подумал я про себя, у меня есть jQuery со своим $.ajax, мне его за глаза. Вот и забыл я про них на несколько лет, к своему великому сожалению проморгав этот момент с третьим релизом. Что было, то было. Благо что взялся за ум и почитал две книги по MVC 4. Далее расскажу, как можно сократить написание строк кода благодаря хелперам, упомянутым мною выше.

Начну с того, что MVC может работать с двумя вариантами Ajax библиотек (конечно я же имею ввиду с коробки, не более того) — jQuery и Microsoft Ajax. Чтобы знать, для какого адаптера создавать разметку, существует настройка в web.config UnobtrusiveJavaScriptEnabled и соответствующее значение true (для работы с jQuery) и false (для работы с Microsoft Ajax). Если же нам необходимо поменять значение только для одного представления, можно воспользоваться методом — @{Html.EnableUnobtrusiveJavaScript(bool);}. Хочу обратить внимание, что данная настройка влияет и на формирование валидационных данных на стороне клиента.

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

Одна особенность FastScript + Delphi

Reading time2 min
Views8.7K
При разработке одного небольшого проекта на Delphi с использованием FastScript, столкнулись с одной неочевидной особенностью.
Надеюсь, кому-то найденная особенность будет полезной и сэкономит время разработки.
Читать дальше →

Lexand LPB-78W: роутер и «розетка» на дачу и в путешествия

Reading time5 min
Views36K
Столбик термометра в последние несколько недель более-менее стабильно держится выше отметки в 20 градусов, а в отдельные дни и вовсе выдает все 30-35 Цельсиев. Это мотивирует на самые разные виды отдыха, сопряженные с пребыванием вне дома. Проблема для меня заключается в том, что где бы я ни был, мне всегда хочется получать доступ в Интернет. По счастливой случайности в моих руках оказался Lexand LPB-78W, который (насколько мне известно) не может похвастаться большим (да и вообще хоть каким-то) количеством конкурентов. В одной небольшой коробчонке с габаритами 111 х 63 х 23 мм было обнаружено совмещение ряда крайне небесполезных функций.

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

Наклейка на сим-карту с микропроцессором поможет сэкономить в роуминге

Reading time2 min
Views102K
imageПока я готовил ежегодный обзор стоимости роуминга от различных операторов (будет доступен в ближайшее время, есть обязательства перед СМИ, предыдущая версия — тут) прикатила вообще фантастическая новость от Теле2 — «подсимка» — сверхтонкая наклейка на SIM-карту со встроенным процессором, благодаря которой абонент может пользоваться двумя номерами в одном обычном телефоне. Эта штукенция может довольно фантастические вещи.
Что это за зверь такой

В Google App Engine появилась поддержка PHP в тестовом режиме

Reading time1 min
Views7.8K
Просматривая справочник по GAE наткнулся на ссылку.
Теперь в GAE можно запускать PHP-приложения, но только после предварительной регистрации и разрешения Google.
Об это говорится здесь.
Там же пишут, что 16 мая на Google I/O будет анонс и подробности по PHP runtime.

Использование разметки schema.org для логотипов организаций

Reading time1 min
Views33K
Уровень подготовки веб-мастера: любой

Теперь наша система поддерживает разметку schema.org для логотипов организаций. Это позволит вам выбрать логотип, который будет представлять ваш сайт в результатах поиска Google.

С помощью этой разметки вы можете указать системе, где находится ваш логотип. Например, если вы – владелец сайта www.example.com, можно использовать следующую разметку элементов на странице:

<div itemscope itemtype="http://schema.org/Organization">
<a itemprop="url" href="http://www.example.com/">Главная</a>
<img itemprop="logo" src="http://www.example.com/logo.png" />
</div>

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

Виртурилка — текущее положение дел

Reading time2 min
Views35K
Мы довольно долго молчали после прошлой публикации про предзаказ, так как всякие незначительные новости писать не хотелось. Сейчас вот появились новости которые, думаю, многие ждали.

КДПВ


Итак:



Мы доработали конструкторскую документацию на тиражную версию Виртурилки

Была частично переделана принципиальная схема устройства, Wi-Fi вынесен с основной платы на дополнительный модуль, что позволит в дальнейшем использовать различные коммуникационные чипсеты, добавлены ранее неиспользуемые выводы для специальных устройств (например, для подключения LCD) и многое другое.

Также отказались от применения в штатном модуле Wi-Fi чипа HDG104, заменили на более приятный Marvell 88W8686.
Читать дальше →

Мультимедийная акустика для нетбука

Reading time3 min
Views65K
Вскоре начинается сезон отпусков, то самое время, на которое ноутбук или нетбук зачастую становится основным компьютером. И так же, зачастую, хочется иметь звук немного лучше, чем это позволяет встроенное подобие динамиков…

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

Разработка мобильных приложений: с чего начать

Reading time10 min
Views470K


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

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

Как заставить хлам приносить пользу?

Reading time20 min
Views31K

О чём это я?


Задачи бывают разные… Бывают простые, бывают сложные, а бывают такие, на решение которых может уйти не одна неделя и достаточное количество нервных клеток. Одной из подобных задач как можно считать разворачивание чего-то серьёзного на большом количестве слабого железа. А именно…

(Здесь и далее будет говориться о немного специфичной и оптимизированной настройке LTSP и поднятии на его основе кластера серверов).
Читать дальше →

IP-АТС на базе 3CX Phone System: особенности и настройка

Reading time2 min
Views37K
В этом посте мы хотели бы рассмотреть возможности и вкратце рассказать о подключении 3CX Phone System — одной из самых популярных SIP АТС (которая, к слову, 2 мая обновилась до 12-й альфа-версии).

Программная мини-АТС от 3CX хорошо известна во всем мире и в России в частности (по данным Sipnet, это более 12% всех российских абонентов). В мире ситуация еще более радужная (исследование WindowsNetworking.com):

1 3CX Phone System for Windows 27%
2 Cisco Unified Communications Manager 24%
3 Asterisk 23%
4 Sphericall IP PBX 3%
5 CommuniGate Pro 3%
6 Axon Virtual PBX System 2%
7 Dial-Office IP-PBX 2%
8 Icecom Multimedia PBX 1%
9 Brekeke PBX 1%
10 Другие 14%

Причин популярности 3CX много: простое подключение к публичным операторам связи и к местным провайдерам, которые поддерживают SIP-протокол, возможность подключения SIP АТС к каналам традиционной телефонной сети через специальные аналоговые шлюзы. Поддерживается 3CX практически всё: IP-телефоны Aastra, Grandstream, Yealink, Cisco, Linksys, Snom и шлюзы Linksys, Patton, Portech, Grandstream, AddPac, PCI-карты Sangoma.
image

Подключение 3CX к VoIP оператору — вполне тривиальный процесс. Например, вот так выглядит подключение к тому же Sipnet:
Читать дальше →

Как мы делали лазер из DVD-RW привода

Reading time2 min
Views851K
image

Без особых прелюдий начну с того, какой привод лучше использовать.
  • Во-первых, это должен быть пишущий привод (RW);
  • Во-вторых, чем выше у него скорость записи, тем мощнее получится лазер;
  • Ну и, в-третьих, чем более ненужным он уже является, тем больше удовлетворения от этого можно получить. Я заметил прямую зависимость :)
Читать дальше →

Yii2. Знакомство

Reading time4 min
Views109K

Введение

На днях, свершилось событие, которое Я и думаю еще немало людей ждали. Авторы Yii Framework выкатили превью-версию.

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

Дайджест интересных новостей и материалов из мира PHP за последние две недели №16 (22.04.2013 — 06.05.2013)

Reading time5 min
Views21K


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

Приятного чтения!
Читать дальше →

Простой радиопередатчик FM диапазона на основе ПЛИС

Reading time1 min
Views29K
7 мая — День Радио!
Надеюсь эта заметка будет как раз кстати.

Совсем недавно на хабре была статья про проект на базе платы Raspberry Pi — к ней подключался просто кусок провода и… это все. Программа, работающая на Raspberry Pi умудрялась вести вещание в FM диапазоне просто через этот кусок провода.

Вот ссылка на ту статью на хабре.

Теперь уже похожий проект появился и для ПЛИС Altera Cyclone III. Опять короткий кусок провода подключен прямо к выходу микросхемы, в данном случае микросхемы ПЛИС.

Аудио файл в формате WAV 22050Гц, 8 бит, МОНО просто передается в плату через последовательный порт. Плата принимает байты и ведет вещание этого потока в FM диапазоне на частоте 90МГц.



Демонстрационное видео трансляции есть на youtube, правда музыка несколько усыпляющая.

Видно, что мелодия принимается не только бытовым радиоприемником рядом с платой, но и в автомобиле во дворе, примерно в пятнадцати метрах.
Читать дальше →

Радиопередатчик из Raspberry Pi и куска провода

Reading time1 min
Views165K
Теперь каждый может сделать из своего Raspberry Pi неплохой FM передатчик. Для этого не нужно каких-то особых умений или деталей, всё, что вам понадобится — кусок провода длиной примерно в 20см.


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

Information

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