Pull to refresh
0
max7 @max7read⁠-⁠only

User

Send message

Как я СКАДу писал

Reading time20 min
Views97K
Введение

Данная история началась примерно год назад. Сам я по специальности автоматчик, занимаюсь разработкой и внедрением систем автоматического управления технологическими процессами (АСУТП). В основном работа состоит в разработке прикладного программного обеспечения в специализированном ПО, так называемом SCADA-пакете. Для тех, кто не знаком с понятием SCADA и с чем его едят — подробно можно ознакомиться здесь. Достаточно долго проработал в компании отечественного разработчика подобной системы, начав с тестировщика, прошел через техподдержку, дорос до уровня руководителя отделом системной интеграции, выполнял разработку проектов автоматизации под ключ на базе ПО, которое разрабатывала компания. В процессе разработки проектов, очутившись в шкуре конечного пользователя продуктом, часто приходилось дорабатывать инструментарий под конкретные задачи напильником, потому как функционал или глючил, или не дотягивал до должного уровня. А все прения с разработкой и маркетингом по развитию продукта либо упирались в нежелание что-либо делать со стороны разработки, либо все списывалось на то, что у меня руки кривые и я ничего не понимаю в колбасных обрезках. Долго так продолжаться не могло, и вот в один прекрасный момент наши пути с этой компанией разошлись, я ушел к одному из своих крупных заказчиков продолжать делать то, что делал им же на заказ, но уже в штате этого заказчика.
Читать дальше →

Будущее гибкой разработки ПО

Reading time14 min
Views21K

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

Проблема в том, что никто не знает, как на самом деле писать классный софт быстро и правильно. Waterfall благополучно скончался на рубеже веков, а новые методы разработки (agile) пока не могут решить фундаментальные проблемы.
Узнать, что нам всем делать и как с этим жить

Программирование в nanoCAD: как зарегистрировать свою команду в среде nanoCAD?

Reading time9 min
Views11K
Год назад я написал статью о том, как использовать скрипты в среде nanoCAD на примере перевода LISP-программы на Visual Basiс Script: достаточно подробно показал как организовать взаимодействие с пользователем, создавать новые объекты, раскладывать их по слоям и как вызвать скрипт на исполнение в среде nanoCAD. Надеюсь, что вы пользовались этой замечательной возможностью простейшей автоматизации.

Этой статьей я хотел бы продолжить цикл публикаций, связанных с программированием под nanoCAD. В частности, пришло время узнать как вашему скрипту назначить команду, включить ее в интерфейс nanoCAD (пункт меню, кнопка на панели инструментов и сочетания клавиш). Добро пожаловать в мир безграничного программирования под nanoCAD.

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

Изучай Хаскель ради добра! Аппликативные функторы

Reading time37 min
Views10K
Совсем недавно издательство No Starch Press подготовило и выпустило печатное издание замечательного учебника Learn You a Haskell for Great Good! (онлайн-версия), написанного Miran Lipovača.

Я хочу представить вам самый актуальный перевод главы 11 Аппликативные функторы, оригиналом для которого послужило именно издание от No Starch Press, адаптированное для печати.
Читать дальше →

О вреде копирайта и пользе лицензионных программ

Reading time16 min
Views23K
В этой статье мы расскажем об основных юридических аспектах информационной безопасности. Иными словами, — о том, как не нарушить закон, не потерять бизнес и не попасть в тюрьму.


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

Законодательство РФ в сфере интеллектуальных прав вызвало у нас сложные чувства... Его основа — Гражданский кодекс в редакции 2008 года. К сожалению, далеко не все руководители российских организаций его внимательно читали. А из тех, кто читал, не все поверили своим глазам. В ходе проведенного нами исследования обнаружился низкий уровень правовой грамотности в сфере ИТ: люди часто не знают, как же нужно действовать, чтобы не оказаться виновными. Впрочем, и у нас в Евросоюзе ситуация вокруг копирайта развивается не лучшим образом :(

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

Прежде всего, «лицензионных» и «нелицензионных» программ с юридической точки зрения не существует. Запомните термин, который используется в законодательстве РФ — «результат интеллектуальной деятельности» (РИД). Примеры РИД — компьютерная программа (.js), музыка (.mp3), видео (.flv), картинка (.jpg), литературный текст (.htm). Есть и другие типы РИД — от торговой марки до дизайна кресла. Каждый РИД сам по себе не может быть «лицензионным» или «нелицензионным». А вот вы либо можете его использовать, либо не можете. Это зависит, в частности, от наличия у вас документа, разрешающего использование этого РИД. Пример использования — запись вами РИД в память компьютера. Чтобы использовать несколько РИД, нужно письменное разрешение на каждый из них. Без явного разрешения правообладателя ГК РФ запрещает вам использование любого РИД любым способом.

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

За баранкой пылесоса или умный Firefox

Reading time5 min
Views4.2K
Браузер, который сам ходит по ссылкам, открывает/закрывает табы, парсит или сохраняет весь контент на файловую систему — интересно посмотреть на такое, не так ли? Лично мне интересно было создать что-то подобное. Никакой фантастики! В общем в очередной раз во мне проснулось нечто вроде программистской лени вдохновения и вместо того, чтобы писать обычный crawler (он же spider или по-простому парсер сайта) на PHP, Perl или Ruby, я начал разбираться, как это сделать на FireFox.
Читать дальше →

Три способа меньше волноваться

Reading time3 min
Views13K

Когда я ходил в детский сад, забывал раздеваться: сидел в раздевалке и думал о своем. Когда ходил в школу, я забывал портфель. Когда вырос, ситуация не улучшилась. Волей-неволей приходится приспосабливаться. Один из способов — не отвлекаться на остальное. На то, что волнует в данный момент. Иными словами, меньше волноваться. Вот три моих способа (о других как-нибудь потом, если вам понравятся эти).



Способ меньше волноваться №1: Отключите вторую линию


Телефонистка и мужик с трусами Bratz

Не мог выбрать одну фотографию и вставил обе


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

Pdf.js прошёл первый пиксельный тест

Reading time3 min
Views3.9K
В июне Андреас Гал (Andreas Gal) с коллегами из Mozilla представили движок pdf.js для отображения PDF средствами HTML5/JavaScript. В первоначальной версии он работал неидеально, но разработчики всерьёз взялись за дело и буквально каждый день добавляли функционал: рендеринг графики, GUI и др. Но самое главное, что реализована динамическая загрузка шрифтов TrueType и кардинально улучшена загрузка шрифтов PostScript Type 1.

В итоге, сейчас Андреас Гал решил, что первый тест пройден и pdf.js попиксельно точно* отображает тестовый документ (демо).

Теперь pdf.js присвоен номер версии 0.2 и поставлена новая задача: отрендерить официальные спецификации PDF 1.7 (документ содержит 1310 страниц, файл 31 МБ).

*На самом деле «идеальный» рендеринг достигается только в сборке Firefox Nightly под Windows 7 (c рендерингом шрифтов через Direct2D и DirectWrite), в остальных — близкий к идеалу или не очень близкий, в зависимости от браузера и ОС.
Читать дальше →

Система учета на базе OCR системы

Reading time5 min
Views7.6K

Пролог


По ходу своей трудовой деятельности получил задачу придумать и реализовать систему учета рекламной информации. Учет заключался в проверке наличия нужной информации на нужном рекламном щите. Щит и полиграфия пронумерованы.
В качестве исходной информации для системы предлагалось использовать фото. После торговли согласования с дизайнерами было оговорено, что оба номера будут располагаться внутри одной рамки. Единственное, что рамка могла быть в любом месте щита.
Собственно на этом постановка задачи заканчивается и начинается повествование о реализации.
Задача решается в три действия:
  1. Нахождение нужного прямоугольника на изображении.
  2. Распознавание текста.
  3. Проверка правильности распознавания.

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

Нездоровый минимализм: ide

Reading time4 min
Views4K
При программировании на common lisp стандартной средой разработки является SLIME. Пожалуй единственным главным недостатком SLIME является emacs, особенно для поклонников vi. Конечно же есть поделки и для vim, но сам vim тоже не верх минимализма.

Под катом минимальный ide для интерпретируемых сред без блэкджека и шлюх.

мне интересно

10 способов улучшить свои навыки программирования

Reading time4 min
Views89K

1. Выучить новый язык программирования


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

Среди языков программирования отличный познавательный эффект и наверстывание опыта дают: Lisp (или Scheme), Форт, PostScript или Factor (стековые языки программирования), Haskell (строго типизированный, чистый функциональный язык) либо OCaml (объектно-ориентированный язык функционального программирования), Пролог (логическое программирование), Erlang (отличные паралельные вычисления).

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

Chaply (приложение для создания соединений без внешнего IP)

Reading time2 min
Views5.3K
В настоящее время все мы живем в мире IPv4. И пока процесс перехода на IPv6 затягивается, IP адресов на всех не хватает. В силу отсутствия достаточного количества уникальных IPv4 адресов, большинство пользователей вынуждено получать доступ к Интернету через NAT устройства на стороне провайдера. С недостатками данного подхода сталкивались многие. Прежде всего, это сложности в организации P2P взаимодействия, в том числе игр. Если хочется запустить «свой» игровой сервер, то без внешнего IP, он будет доступен только из локальной сети, если таковая имеется. Для преодоления возникающих с NAT проблем, были разработаны специальные программы, такие как Hamachi, Garena и др. Теперь, после данного небольшого вступления, перейдем непосредственно к описанию проекта.
Читать дальше →

Обходим чужие тормоза

Reading time8 min
Views6.9K
Бэкапил историю сообщений из Skype самописной утилиткой, год назад она работала отлично, а теперь стала люто тормозить. Это неприемлемо, тк. в том числе ради скорости экспорта она и была написана, поэтому полез в профайлер. По итогам узнал всякое и получил множественные просветления. Оказывается, breakpoint на функцию в подгруженной системной DLL ставить приходится с подвывертом, а не просто по имени, но таки можно и нетяжело. Оказывается, Skype API написан местами зверски криво, отчего и тормозища. Оказывается, чужие бинарники иногда можно очень легко подхачить и подоптимизить (слава MS Research!). Оказывается, профайлер может сильно врать, а не просто слегка подбрехивать. Ключевые слова для нетерпеливых: C++, VS, CodeAnalyst, Skype COM API, MS Research, Detours, SQLite; а для всех остальных подробности под катом.
Читать дальше →

ZTD: Дзен ТуДу — ультра-простая система продуктивности

Reading time7 min
Views29K
Оригинал опубликовал Лео Бабаута на сайте Zen Habits. Я его вольно перевел и немножечко адаптировал. Сразу оговорюсь, я не претендую на точность перевода. Моей задачей было перевести не точно, а понятно. Приятного чтения и применения!

«Это про привычки и делание, а не про систему и инструменты»

Чтобы закрепить основы продуктивности и организованности, сохраняя всё настолько простым, насколько возможно, я разработал свою собственную систему продуктивности: Zen To Done (ZTD).

ZTD складывается из простоты, фокуса на действиях и делании здесь и сейчас, в противовес вечному планированию и системности.
Читать дальше →

Биполь адекватности — ищите и обрящете

Reading time6 min
Views2.4K
Люди обладают разной чувствительностью — ну так получилось у природы. Одни каждый день счастливы от того, что можно вечером сесть перед телевизором с баночкой пива и посмотреть футбол. Другие — постоянно страдают от производственного бардака, грязи и лжи человеческих взаимоотношений и вынуждены развивать мозольные образования на голове, руках и сзади для снижения порога чувствительности.

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

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

Конечно нет :-). Расскажу как выбрать эффективную стратегию, которая сохраняет профессиональную мотивацию и отлично прокачивает нас.

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

Объявлены победители пятого ежегодного конкурса свободных фотографий

Reading time1 min
Views823
Пятый ежегодный конкурс «Изображение года» — событие, в ходе которого среди изображений, получивших за прошедший год статус избранных, в ходе голосования среди участников всех проектов Викимедиа определяется «Изображение Года».

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

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

Итак, победитель:

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

Dataflow-архитектуры. Часть 1

Reading time6 min
Views38K

Вторая часть статьи.
Большинство современных вычислительных машин, будь то суперкомпьютер Fujitsu K, обычная персоналка или даже калькулятор, объединяет общий принцип работы, а именно модель вычислений, основанная на потоке управления (Controlflow). Однако, эта модель не является единственно возможной. В некотором роде ее противоположностью является модель вычислений, управляемая потоком данных, или просто Dataflow. О ней я и хочу сейчас рассказать.
Читать дальше →

Задача Эйнштейна на Прологе

Reading time3 min
Views21K
Хотел продолжить неделю задачи Эйнштейна на Хабре. После очень и не очень нестандартных решений, хотелось бы показать как логические задачки можно (и нужно) решать на языках логического программирования (простите за тавтологию).
Под катом можно увидеть почему Пролог так хорошо подходит для решения этой задачи.
Читать дальше →

Корпоративный троллинг. Часть вторая

Reading time6 min
Views5.3K
Сегодня мы разберем разновидности противодействия, которые встречаются при очных мероприятиях — на презентациях и переговорах. Конечно, трудно охватить одним махом обширнейшую сферу черной риторики, черного пиара и прочей черной мерзости, которая сопровождает любое наше даже самое благое начинание. Но хабралюди народ опытный, информацию искать обученный. Как говорится, хороший инженер не обязан все знать, но он должен уметь быстро добывать необходимые знания. Сам я не являюсь гуру ни в переговорах, ни в риторике, но имел опыт общения с настоящими мастерами своего дела, которые в Хабр писать никогда не станут, даже если знают о существовании этого ресурса. Мне кажется, что этот опыт, обобщенный и очищенный от эмоций, будет многим интересен.
Читать дальше →

Корпоративный троллинг. Часть первая

Reading time4 min
Views8.9K
В коммерческой деятельности одним все время что-то нужно от других. В проектном бизнесе вы жаждете втюхать свои услуги. Вам нужно получить прибыль. Заказчику тоже много чего нужно. Но, независимо ни от чего вам нужно продать услуги и получить за них деньги. На каждом этапе вам будут оказывать сопротивление. Сегодня я начну рассказ о том, кто и как будет оказывать вам сопротивление и что вы можете сделать для того, чтобы этому противостоять.

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

Итак, займемся классификацией троллей и их приемов. Сегодня — формальный троллинг. В другой раз троллинг очный.
Читать дальше →

Information

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