Рубрика «Программирование» - 897

В декабре 2013 – январе 2014 рекрутинговое агентство Luxoft Personnel совместно с порталом it.rabota.ua провели очередной опрос, посвященный удовлетворенности трудом и факторам мотивации персонала в отрасли информационных технологий.

В исследовании приняли участие 943 респондента. Основную аудиторию составили IT-специалисты в возрасте от 18 до 30 лет (69 %) с различным опытом работы, разного должностного уровня.

Краткие демографические характеристики респондентов представлены на следующих диаграммах:

Итоги исследования мотивации IT специалистов в Украине

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

Совсем недавно вышла Java 8. Это большое и долгожданное событие для всех разработчиков на платформе JVM и безусловно повлияет на код в enterprise проектах.

Мы в InfoboxCloud очень любим технологии Java и ценим Java разработчиков. К релизу Java 8 мы написали скрипты, которые позволят в одну команду установить JRE 8 или JDK 8 в Облачную инфраструктуру InfoboxCloud на любою из ОС Linux. Просто выберите скрипт, вставьте в консоль и нажмите Enter. Гораздо лучше тратить время на написание хорошего кода, чем на установку java.
Java 8 InfoboxCloud IaaS
На Облачной платформе InfoboxCloud Jelastic поддержка Java 8 появится в следующем обновлении программного стека довольно скоро.

В этой статье мы, установив Java 8, рассмотрим как тестировать ваше разрабатываемое ПО с Java 8, собирая его под Java 7.
Читать полностью »

Квантовая схемотехника: некоторые приёмы и техникиСегодня в рамках работы над книгой «Квантовые вычисления и функциональное программирование» я хотел бы представить на суд почтеннейшей публики свою очередную статью про квантовые вычисления.

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

  1. Прямой анализ. При наличии схемы входа и описания вычислительного процесса определить схему выхода.
  2. Обратный анализ. При наличии описания вычислительного процесса и схемы выхода определить схему входа.
  3. Синтез. При наличии схем входа и выхода построить описание вычислительного процесса.

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

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

Rails 4 Engines. Разработка gemа через mountable engine — читаем логи сервера
Так уж случилось, что возникло непреодолимое желание написать свой Rails gem. Во-первых, академический интерес — такого еще не делал, во-вторых, назрела проблема, решение которой важно лично для меня и которое хотелось бы использовать в нескольких своих проектах.

На Хабре уже были статьи про создание gem'ов (раз два три)

Но на их основе создать полноценный gem нельзя — они сильно устарели и, как правило, представляют собой перевод скупой официальной документации. А главное, они в большей части описывают создание Readme и License файлов, а собственно функционал gem'a сводится к Hello World.

Проблема

Не знаю, как у кого, а вот у меня регулярно бывает ситуация — прикрутил новую фичу локально, проверил, вроде работает. Запускаешь cap deploy, смотришь на сервер, а там

«Sorry, but something went wrong.
If you are the application owner check the logs for more information.»

Ну а дальше — ssh к серверу, cd к папке приложения и раскопка логов. Что бы ни говорили поклонники vim и emacs, но пытаться найти что-то в логе с их помощью — то еще занятие. Проще уж запустить tailf и пытаться найти руками. Есть еще rmate, но у меня он как-то не прижился.

Идея

Написать gem, который будет выводить результаты команды tail в браузер по заданному пути. Желательно, чтобы была возможность смотреть все .log файлы в папке log/
Читать полностью »

Обмен заказами между 1С Предприятие 8.3 Управление Торговлей 11.1 (далее по тексту 1С УТ) и интернет-магазином на базе 1С-Битрикс 14.0 (далее по тексту Битрикс) — это часть стандартного «коробочного» механизма обмена между указанными системами. Пользователь формирует заказ на сайте, а затем по расписанию и, начиная с определенного статуса заказа, заказы выгружаются в 1С УТ. Описание данного механизма в его стандартном виде можно найти по ссылкам, указанным в конце данной статьи, статья же о том, как расширить указанный функционал и подогнать его под документооборот конкретного торгового предприятия.

В стандартном варианте данный механизм обмена не полностью автоматизирует работу менеджера на стороне 1С УТ: дело в том, что реквизиты заказа, такие как метод оплаты, способ доставки — передаются на сторону 1С УТ и записываются в доп. сведения о заказе.Читать полностью »

Lock free структуры данных. Эволюция стека
В предыдущих своих заметках я описал основу, на которой строятся lock-free структуры данных, и базовые алгоритмы управления временем жизни элементов lock-free структур данных. Это была прелюдия к описанию собственно lock-free контейнеров. Но далее я столкнулся с проблемой: как построить дальнейший рассказ? Просто описывать известные мне алгоритмы? Это довольно скучно: много [псевдо-]кода, обилие деталей, важных, конечно, но весьма специфических. В конце концов, это есть в опубликованных работах, на которые я даю ссылки, и в гораздо более подробном и строгом изложении. Мне же хотелось рассказать интересно об интересных вещах, показать пути развития подходов к конструированию конкурентных контейнеров.
Хорошо, — подумал я, — тогда метод изложения должен быть такой: берем какой-то тип контейнера — очередь, map, hash map, — и делаем обзор известных на сегодняшний день оригинальных алгоритмов для этого типа контейнера. С чего начать? И тут я вспомнил о самой простой структуре данных — о стеке.
Читать полностью »

concurrency

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

С разделяемым состоянием в многопоточной среде существуют два момента, из-за которых возникают все сложности: состояние гонки и видимость изменений. В состоянии гонки, потоки одновременно изменяют состояние, что ведет к недетерменированному поведению. А проблема с видимостью заключаются в том, что результат изменения данных в одном потоке, может быть невидим другому. В статье будут рассказаны шесть способов как бороться с данными проблемами.

Все примеры приведены на Java, но содержат комментарии и я надеюсь будут понятны программистам не знакомым c Java. Данная статья носит обзорный характер и не претендует на полноту. В то же время она наполнена ссылками, которые дают более подробное объяснение терминам и утверждениям.

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

Сегодня меня вновь попросили напомнить человеку о важной вещи в определённое время. Но что делать, если я и про свои-то дела забываю постоянно, а уж тем более про дела кого-то ещё? И тут мне снова помог мой любимый python.

Просим Вконтакте напомнить про пельмешки

Честно говоря, обычные программы-напоминалки, что в телефоне, что в компьютере, меня не устраивали из-за их ограниченности рамками устройства + они совершенно не решали задачу, когда нужно напомнить о чём-то, но не мне. Решение пришло как-то само-собой. А что, если напоминания будут приходить как сообщения вконтакте? Если я не на рабочем месте — телефон свибрирует своим пуш-ап уведомлением, а за компьютером всё ещё очевиднее. Цель — написать скрипт, который читает мои сообщения о напоминании и в заданное время напоминает кому нужно о том, что, собственно, требуется. Ну раз идея пришла, я приступаю к её реализации.
Читать полностью »

Ура! Организаторы Google Summer of Code приняли проект OpenCV для участия в Google Summer of Code 2014! С 10 марта начался приём заявок от студентов-участников. Давайте разберёмся, что это такое – GSoC, что за проект OpenCV и при чём здесь Itseez. А для начала – мотивирующее видео с результатами прошлого лета.

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

Анимированные графики в R (и немного про бифуркацию, хаос и аттракторы) Однажды для презентации мне понадобились анимированные графики. С графиками, собственно, проблем не возникло, а для их анимации пришлось воспользоваться еще одним пакетом animation, который можно установить из CRAN.
Читать полностью »


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