Рубрика «разработка» - 232

image

Фреймворки Google Web Toolkit и Vaadin достаточно хорошо себя показывают, когда вы просто используете их. Если вдруг вам понадобилось расширить их функциональность, то вам придётся серьёзно попотеть. В этой статье я хочу рассказать, как написать простой компонент на GWT, добавить к нему серверную часть Vaadin и использовать в своём приложении. Я не буду создавать некий совсем пустой GWT/Vaadin проект и с самого начала настраивать компиляцию GWT, вместо этого возьму приложение на базе CUBA.Platform, в котором и реализую сам компонент, а затем попробую в деле. Так будет видно, насколько хорошо всё впишется в настоящее приложение. Отдельное внимание я бы хотел уделить отладке компонента, поскольку она нетривиальна и всегда вызывает трудности у разработчиков.

Хочу предупредить, что не всё описанное в статье относится к GWT и Vaadin, часть шагов и приёмов применимы только в контексте использования CUBA.Platform, за счёт этого сильно упрощена настройка окружения и некоторые рутинные действия.
Читать полностью »

Фотосинтез, пистолет, яйца, хлеб и газировка

Пистолет (газовый), это не только оружие для поражения цели. У него есть одна общая с человеком черта — выпускать диоксид углерода (он же углекислый газ, двуокись углерода, угольный ангидрид, а также сухой лед в твердом состоянии). Люди не пришли к окончательному выводу об оптимальном количестве углекислого газа: одни считают, что его надо много и без него невозможно существование человека, другие утверждают, что чем его меньше, тем лучше.
Кто рассудит их спор?

image

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

В статье показаны примеры практического использования измерителя уровня углекислого газа МТ8057: изучение фотосинтеза растений и дыхания яиц, исследование обстановки в офисе, и выяснение причины, почему Маяковский пытался искоренить все заседания.
Измеритель испытал шок под дулом пистолета и у стакана газировки, побывал на кухне, в ведре с картофелем и пакете с хлебом, опускался в погреб и прокатился в автомобиле.

Статья получилась объемная и для улучшения восприятия разбита на три части.

  • Часть 1: фотосинтез, все живое дышит, шоковые измерения.
  • Часть 2: вентиляция помещений, вред собраний, преимущество двух приборов для проведения экспериментов.
  • Часть 3: графики, калибровка, разбор прибора, принцип работы.

Читать полностью »

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

Читать полностью »

WebSocket RPC или как написать живое WEB приложение для браузера - 1

В статье речь пойдет о технологии WebSocket. Точнее не о самой технологии, а о том, как ее можно использовать. Я давно слежу за ней. Еще когда в 2011 году один мой коллега прислал мне ссылку на стандарт, пробежав глазами, я как-то расстроился. Выглядело настолько круто, и я думал, что в момент, когда это появится в популярных браузерах, я уже буду планировать, на что потратить свою пенсию. Но все оказалось не так, и как гласит caniuse.com WebSocket не поддерживается только в Opera Mini (надо бы провести голосование, как давно кто-либо видел Opera Mini).

Кто трогал WebSocketы руками, тот наверняка знает, что работать с API тяжело. В Javascript API достаточно низкоуровневый (принять сообщение — отправить сообщение), и придется разрабатывать алгоритм, как этими сообениями обмениваться. Поэтому и была предпринята попытка упростить работу с вебсокетами.

Так и появился WSRPC. Для нетерпеливых вот простое демо.
Читать полностью »

Всем привет,

Как вы знаете, JetBrains сейчас активно ведет разработку сразу нескольких продуктов, поддерживающих языки С и С++. ReSharper C++ и CLion сейчас пока находятся в стадии ранней программы тестирования (Early Access Program), а в AppCode мы не только добавляем функции для работы с новым языком Swift, но и активно дорабатываем поддержку С и С++.

27-28 февраля 2015 в Москве пройдет первая в своем роде конференция C++ Russia, организованная сообществом C++ User Group Russia. Нас ждет множество отличных докладов на самые разнообразные темы из мира С++.

Читать полностью »

Пишем драйвер поддержки графовой базы данных Neo4j для Meteor

В Meteor любая работа с даными связана с двусторонней реактивностью. На данный момент 100% реактивностью обладают встроенная в Meteor MongoDB и Redis (оба драйвера разработаны в стенах Meteor), частично реактивность реализована для MySQL и MSSQL (сторонними разработчиками).

Для вышеуказанных баз данных реактивность реализована посредством observer'ов, которые сообщают где, как, когда и какие данные изменились, для того чтобы драйвер, обслуживающий связь [данные <-> представление], знал какие данные и у каких клиентов обновить. Neo4j лишен каких-либо watcher'ов и observer'ов, но это нас не остановило. Как мы вышли из данной ситуации и зачем нам нужен Neo4j читайте под катом.
Читать полностью »

В некоторых языках существует возможность вызова функции с именованными параметрами. Такой способ позволяет указать аргумент для определённого параметра, связав его с именем параметра, а не с позицией. Это возможно, например, в C# или Python.

Рассмотрим «игрушечный» пример на Python с использованием именованных аргументов:

#вычислим объем параллелепипеда
#если значение стороны не указано, то считаем что оно равно единице
def volume(length=1, width=1, height=1): 
  return length * width * height; 
print(volume())                            # V = 1 
print(volume(length=2))                    # V = 2 
print(volume(length=2, width=3))           # V = 6 
print(volume(length=2, width=3, height=4)) # V = 24

Здесь в примере одна и та же функция вызывается с разными аргументами. И видно, какой параметр каким значением проинициализирован. Если у функции есть параметры, значения которых можно оставить по умолчанию, то очень удобно проинициализировать только необходимые параметры с помощью именованных аргументов. Но в языке C аргументы функции связаны с позицией, поэтому разработчику нужно помнить порядок следования параметров, что может быть неудобно, если их достаточно много.

Ниже я покажу, как можно сымитировать использование именованных аргументов в C.
Читать полностью »

Как написать хорошую демку - 1

Демонстрация программного продукта — как яркая конфетная обертка, привлекает и поглощает внимание пользователей. Поэтому написание демок — довольно часто встречающаяся задача. Но все ли демки одинаково полезны? И как сделать по-настоящему хорошую демку?
Читать полностью »

Привет!

Опыт построения команды Big Data - 1

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

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

Этой публикацией я начинаю цикл аналитических статей по анализу необходимых и востребованных навыков для различных специализаций на российском и зарубежном IT-рынке.Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js