Обновить
1179.18

Программирование *

Искусство создания компьютерных программ

Сначала показывать
Период
Уровень сложности

Sonar как источник задач для регулярного рефакторинга

Время на прочтение1 мин
Охват и читатели25K
Простая и короткая статья. Из серии «на заметку хозяйке».

Есть гибкая система сканирования кода на соответствие правилам, метрикам (полезным, типа цикломатической сложности), и так далее.
Называется Sonar.



Пара скриншотов на живых данных под катом.
Читать дальше →

Сервис управления заявками на отпуска для SharePoint 2013 в интеграции с БОСС-Кадровик

Время на прочтение8 мин
Охват и читатели12K
Полгода назад мы рассказывали о том, как реализовали сервис бронирования переговорных комнат у крупного заказчика с территориально разнесенными офисами и штатом несколько тысяч человек. Мы продолжаем работать с SharePoint-порталом этой компании, в рамках его развития специалисты EastBanc Technologies создали еще один модуль — сервис управления заявками на отпуска в интеграции с автоматизированной системой управления персоналом БОСС-Кадровик.

Назначение этого сервиса, как нам кажется, не нуждается в пространном разъяснении: попросту говоря, сервис автоматизирует учет отпусков в компании. Гораздо интересней, какие практические задачи стояли перед нами в данной конкретной компании, об этом — дальше.

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

Должен ли программист быть немножко «product manager-ом»?

Время на прочтение3 мин
Охват и читатели12K


Хотелось бы поднять интересную довольно-таки тему исполнения чужих обязанностей. Всем хорошо известна крылатая фраза «Не суй свой нос в чужой вопрос». А всегда ли это верно? В самом частом взаимодействии «постановщик задач — разработчик» я и хотел бы разобраться. Сразу оговорюсь, что мнение сугубо IMHO, а цель публикации обобщить высказанное предположение на более высокий уровень абстракции и понять, а как у других.

Перво-наперво, ряд вводной информации, которая отразит мою специфику:

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

Подобие LINQ на PHP для EAV модели хранения данных

Время на прочтение4 мин
Охват и читатели5.6K
Увидев пост о LINQ на PHP, я решил незамедлительно поделиться своими наработками в этой области.
Моей реализации далеко до полноценного LINQ, но в ней присутсвует наиболее заметная черта технологии — отсутвие инородной строки запроса.
Читать дальше →

Компоненты by T.J.Holowaychuk

Время на прочтение5 мин
Охват и читатели5.1K
Доклад на девятой конференции «Свободное программное обеспечение в высшей школе», 25–26 января 2014. Исходный код заметок и примеров к ним доступен на https://github.com/mbykov/articles.



Все, кто работает с node.js, знают TJ Головайчука, автора веб-сервера express, библиотеки для тестирования mocha, и прочая, и прочая. Но, наверное, самый блестящий его проект на сегодня — это Component — http://github.com/component. На русском пока немного литературы о Компонентах, попробую восполнить этот пробел. TJ опубликовал первое сообщение о Компонентах в своем блоге 19 декабря 2012 г. Сейчас, после взрывного роста, количество компонент уже зашкаливает за тысячу, и растет каждый день.

первое знакомство с компонентами

Cognitive и МИСиС провели олимпиаду школьников

Время на прочтение3 мин
Охват и читатели3.2K
Здравствуй, Хабр!!


НИТУ «МИСиС» совместно с компанией Cognitive Technologies подвели итоги Всероссийской заочной олимпиады по программированию среди учащихся 9-11 классов. Олимпиада состоялась 20 октября и проводилась по правилам ACM ICPC. Ее целью был поиск новых талантов для последующего отбора в команду МИСиС по спортивному программированию. По данным организаторов олимпиады, в ней приняло участие 1871 человек, из них 191 получили сертификат участника за успехи в решении задач. А 33 самых способных пригласят на зимние сборы по программированию с 03 по 10 января 2014 года, в рамках которых состоится очный тур олимпиады. Это будет в одном из домов отдыха в Подмосковье. Причем, организаторы примут на себя расходы, связанные с проживанием и питанием. Его победители, помимо ценных призов и получат шанс войти в состав новой команды Cognitive Technologies и МИСиС по программированию.
Читать дальше →

JavaFX, HelloWorld — продолжение

Время на прочтение6 мин
Охват и читатели26K
HelloWorld из примера, предложенного Oracle в «Getting Started with JavaFX», на ПК с Windows. Развитие простейшего приложения до окна ввода логина и пароля. По-прежнему с использованием командной строки с приоткрытием недоговоренностей туториала, в котором приведен код этого приложения.

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

Сказ о Selenium тестировании

Время на прочтение4 мин
Охват и читатели24K
Когда перед вашей командой стоит задача написать действительно крупный проект, всегда становится задача тестировать написанный код. Если сервер тестировать относительно легко, то JS код чаще всего тестировать просто невозможно в связи с его природой.

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


А поговорим о следующем:
  1. Архитектура тестов
  2. Запуск тестов
  3. Кодовая база
  4. Таймауты
  5. Взаимодействие кода тестов и браузера.
  6. Разные среды исполнения
  7. Баги драйверов и самого селениума


Данная статья больше ориентирована на новичков, чем на профессионалов.

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

Загрузка данных в списки Sharepoint

Время на прочтение6 мин
Охват и читатели17K
При разработке SharePoint-решений часто стоит задача, помимо автоматического разворачивания структуры сайта (поля, типы контента, списки), также и наполнять его базовым контентом. Это могут быть, в основном, списки со справочной информацией. Но, помимо этого, может возникунть потребность наполнить их какими-то тестовыми данными, чтобы провести тестирование решения, в том числе и нагрузочного.

Есть способ наполнить списки данными, указывая их в XML файле к ListInstance. Но такой подход менее удобен, чем рассматриваемый в статье. ListDefinitions не всегда практично использовать для создания списков, кроме того может возникнуть потребность наполнить списки, которые уже существуют на сайте, а не разворачиваются из решения.

Итак, идея заключается в следующей логике:
Читать дальше →

Loc Kit: управление локализацией и машинный перевод

Время на прочтение4 мин
Охват и читатели5.2K
Добрый день, читатели.

Мы продолжаем знакомить вас с докладчиками, которые выступят на конференции Loc Kit. На этот раз это специалисты из компаний IBM, Dell и Acronis.

image

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

image
Михаил Васильев, кандидат медицинских наук (не удивляйтесь ;)), работает в данной отрасли с 1988 года, с 1991 года — в компании IBM, а с 1992 года занимается вопросами поддержки национальных языков, а также переводом и локализацией.

Михаил — «отец» русской раскладки клавиатуры и русскоязычной версии OS/2. С 1995 года по настоящее время руководит Центром сервисных переводческих услуг IBM Russia/CIS.

image

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

Правило программиста #1: оставьте эмоции дома!

Время на прочтение3 мин
Охват и читатели15K
Как программисты, мы гордимся нашей работой. Мы показываем эту гордость, выполняя наши задачи лучшим образом. Мы относимся к ним со всей дотошностью, вплоть да названий переменных и методов. Мы всегда выбираем нужные классы для конкретной задачи, не смотря на то, что пользователю все равно, использовали ли мы List<KeyValuePair<Guid, string>> или Dictionary<Guid, string>. Мы нервно стараемся довести все до идеального состояния. Многие даже могут подумать, что у нас ОКР.

Но что происходит, когда разработчик слишком гордится тем, что он или она написали?

Что, если из-за этого эмоции проникают в код? Что может случиться, если программист не может расстаться не только с его или ее кодом, но и с методами ведения работы, принятия решений и своим поведением, как разработчика?
Читать дальше →

23 мая в 10.00 прямая трансляция запуска RAD Studio XE4

Время на прочтение1 мин
Охват и читатели3.8K
Уважаемые разработчики!

Для тех, кто не сможет посетить запуск RAD Studio XE4 в Москве, Минске или Киеве, мы предлагаем присоединиться к прямой трансляции, которая начнется 23 мая в 10 утра.

Смотреть трансляцию можно прямо с сайта мероприятия softwarepeople.ru/delphixe4.

В этом году мы специально пригласили в качестве спикеров представителей центра разработки что позволит вам получить информацию о новых возможностях из первых рук, а также на запуске выступит Дмитрий Арефьев, создатель AnyDAC, ребрендированной в FireDAC, после приобретения Embarcadero в этом году.

Как вы, наверное, уже догадались, основной темой запуска XE4 станет кроссплатформенная разработка и, к уже привычной Windows, мы добавили MAC OS и iOS – самую монетизируемую платформу. Мы также будем обсуждать планы развития RAD Studio.

Кроме того, вы увидите много демонстраций по созданию приложений для iOS и MAC OS.

Не пропустите!

Отличный способ научиться оценивать работу на проекте

Время на прочтение3 мин
Охват и читатели16K
Ни для кого не секрет, что лучший способ научиться что-то хорошо делать — это постоянная практика. Так же обстоят дела и с оценками работы на проекте. Но мало просто оценивать. Надо потом отслеживать реальный результат, анализировать его и делать выводы, чтобы ваша методика оценивания постоянно совершенствовалась. Без этого важного компонента вы никогда не научитесь оценивать классно. Но что если найти некий способ тренироваться в оценках «на кошках»? Причем, как можно чаще и интенсивнее. О таком способе и пойдет речь в статье…
Читать дальше →

Ближайшие события

Работа с FTP и выгрузка данных в xlsx (Caché Object Script)

Время на прочтение5 мин
Охват и читатели8.3K
Предлагаю Вашему вниманию статью на следующие на темы:
  1. Работа с FTP сервером с помощью %Net.FtpSession
  2. Простой способ выгрузки данных в формат xls
  3. Несколько полезных советов

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

Смена парадигмы программирования на C#, переход на сигналы и очереди (слоты)

Время на прочтение7 мин
Охват и читатели17K
В этом посте я рассматриваю концепцию и ее реализацию (пока в начальной, но рабочей стадии), которая с недавних пор стала меня сильно привлекать. Опыта в программировании на сигналах у меня ранее не было, поэтому что-то мог упустить или неоптимально продумать, потому и пишу сюда. Надеюсь на квалифицированные отзывы и советы. Несмотря на то что библиотека только начала развиваться, я уже начал ее использование в реальных проектах, на реальной нагрузке, это помогает быстро понять что действительно нужно и куда двигаться дальше. Так что весь приведенный код находится в рабочем состоянии, компилируется и готов к использованию. Единственное все делается на Framework 4.5, но не думаю что это будет для кого-то препятствием, если же идея окажется стоящей, пересобрать под 3.5 проблем не будет.

Что же не так с текущей парадигмой


Устройство обычного приложения на .NET подразумевает что у нас есть набор классов, в классах есть данные, и методы которые эти данные обрабатывают. Также нашим классам надо знать друг о друге, о public методах, свойствах и событиях. То есть у нас сильносвязная архитектура. Конечно мы можем уменьшить связность, построить взаимодействие исключительно через интерфейсы и фабрики (что увеличит размер кода раза в два, и существенно усложнит читабельность), можем убрать открытые методы и стоить все на событиях, придумать можно много чего, но перейти к слабосвязанной архитектуре все равно не выйдет, получим в лучшем случае «среднюю» связанность.

Да, и еще есть такая вещь, которая с развитием процессоров становится все более актуальной, это асинхронность, microsoft делает много хорошего в этом направлении, тот же PLINQ, всякий сахар вроде await, но все это делается все равно в привычных рамках ООП, и нам все еще приходится самим создавать потоки, пускай и в виде тасков, но самим. Нужно отслеживать окончание исполнения задач, чтобы определить когда рессурсы станут ненужными.

В общем все это постепенно надоедает, становится лень писать одни и те же вещи в каждом новом проекте, когда правильнее было бы сосредоточиться на логике задачи.
Читать дальше →

Примеры генерации и отправки Email средствами СУБД Caché

Время на прочтение6 мин
Охват и читатели4.4K
Нередко возникает необходимость в автоматической генерации и отправке электронных писем на основе данных из БД. Это могут быть различные отчёты с таблицами, диаграммами или уведомления о наступлении каких-то событий.
Всё это можно реализовать непосредственно в самой СУБД Caché, выступающей здесь и как почтовый сервер приложений.

Далее рассмотрим следующие примеры:
  • создание текстового письма
  • создание письма в формате HTML
  • добавление вложений
  • добавление изображений в само тело письма
  • другие примеры
Читать дальше →

Используем method decorator в CoffeeScript(Javascript) для удобного и читаемого DRY-кода

Время на прочтение2 мин
Охват и читатели4.4K
Статья о простом, но не очевидном способе как сделать код чище и избавиться от копипасты.

Условно проблема выглядит вот так:
###
My awesome class
###
class Awesome
  doFoo : (arg, cb) ->
    unless arg is 42
      return cb Error """
                      only The Answer may be an argument, but got:
                      |arg| = |#{arg}|
                      """
    cb null, "#{arg} is The Answer"

  doBar : (arg, cb) ->
    # hm... arg must be The Answer too

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

Совсем немного текста о том, как method decorator делает мою жизнь лучше

Эмуляция троичной системы. Вариант концепции

Время на прочтение4 мин
Охват и читатели15K
1. Пролог

Недавно я прочитал замечательную статью [1]. В ней автор рассказывает о том, что не всегда вычислительные машины были двоичными. На заре компьютерной эры существовали машины, которые использовали десятичную и троичную систему счисления.
Десятичная система удобна человеку, но ее достаточно сложно реализовать на существующей элементной базе. Кроме того, десятичная система подвержена ошибкам в результате искажения сигнала при передаче. Троичную систему реализовать не на много сложнее двоичной ([2]), но она способна дать как минимум три преимущества.
Читать дальше →

О некоторых неочевидных хаках при работе с entity framework и unique constraints

Время на прочтение5 мин
Охват и читатели11K
image
Пару лет назад, когда деревья были большие и зеленые, ко мне пришли злые дотнетчики, и сказали — ага, попался! пришлось мне помочь коллегам в одном весьма странном проекте.

А именно — представьте себе пачку цифирей, которые аналитики составляют раз в месяц, в любимом ими пакете MS Office. И вот раз в месяц появилась необходимость эти цифры пережевывать и загружать в БД под управлением MS SQL.

И конечно же — этот мега-тул надо было сделать быстро. Чтобы потом передать на суппорт дешевым то ли малайцам, то ли индусам. Так что еще и рекомендовалось делать максимально понятно.

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

Готовим продвинутые CGridView

Время на прочтение6 мин
Охват и читатели40K
Данный пост будет интересен тем кто начинает знакомится с Yii framework, то есть пользователям от начального до среднего уровня знаний данного фреймворка, а так же тем кто любит похоливарить на тему какой из фреймворков круче.
Читать дальше →

Вклад авторов