Как стать автором
Обновить
1
0
Петр Серегин @petypen

Пользователь

Отправить сообщение

Записки оптимизатора 1C (часть 7). «Нелогичные» блокировки MS SQL для систем 1С: Предприятие

Время на прочтение10 мин
Количество просмотров5.5K

Продолжаем тему блокировок на сервере СУБД. Сегодня «нелогичные» блокировки. Нелогичные в кавычках, потому что с точки зрения пользователя они выглядят как обычные логические (Записки оптимизатора 1С (часть 6). Логические блокировки MS SQL Server в 1С: Предприятие), но природа их совсем другая.

Читать далее
Всего голосов 11: ↑11 и ↓0+14
Комментарии6

Охота на мифический MVC. Обзор, возвращение к первоисточникам и про то, как анализировать и выводить шаблоны самому

Время на прочтение24 мин
Количество просмотров144K
— Не понимаю, почему люди так восхищаются этим Карузо? Косноязычен, гугнив, поёт — ничего не разберешь!
— А вы слышали, как поёт Карузо?
— Да, мне тут кое-что из его репертуара Рабинович напел по телефону.

Детектив по материалам IT. Часть первая


Я осознаю, что писать очередную статью на тему Модель-Вид-Контроллер это глупо и вредно для «кармы». Однако с этим «паттерном» у меня слишком личные отношения – проваленный проект, полгода жизни и тяжелой работы «в корзину».


Проект мы переписали, уже без MVC, просто руководствуясь принципами – код перестал быть похож на клубок спагетти и сократился наполовину (об этом позже, в обещанной статье про то, как мы применяли «принципы» в своем проекте). Но хотелось понять, что же мы сделали не так, в чем была ошибка? И в течении долгого времени изучалось все, что содержало аббревиатуру MVC. До тех пор пока не встретились исходные работы от создателя – Трюгве Реенскауга…


И тогда все встало на свои места. Оказалось что фактически на основе принципов мы пере-изобретали «original MVC». А то, что зачастую преподносится как MVC, не имеет к нему никакого отношения… впрочем также как и к хорошей архитектуре. И судя по тому сколько людей пишет о несостоятельности «классического MVC», спорит о нем и изобретает его всевозможные модификации, не одни мы столкнулись с этой проблемой.


Более 30 лет собранные в MVC идеи и решения остаются наиболее значимыми для разработки пользовательских интерфейсов. Но как ни странно, несмотря на существующую путаницу и обилие противоречивых трактовок, разработчики продолжают довольствоваться информацией «из вторых рук», черпая знания о MVC из википедии, небольших статей в интернете и фреймворков для разработки веб-приложений. Самые «продвинутые» читают Мартина Фаулера. И почему-то почти никто не обращается к первоисточникам. Вот этот пробел и хотелось бы заполнить. И заодно развеять некоторые мифы.


Читать дальше →
Всего голосов 73: ↑71 и ↓2+69
Комментарии391

M в MVC: почему модели непоняты и недооценены (перевод)

Время на прочтение14 мин
Количество просмотров75K
(статья очень старая, по поднятые в ней вопросы актуальны по сей день и регулярно поднимаются в различных обсуждениях)

Многие из вас наверняка заметили, что я пишу книгу о Zend Framework. Недавно я закончил черновики двух глав: «Архитектура приложений на Zend Framework» и «Понимая Zend Framework». В первой главе объясняется архитектурный шаблон Model-View-Controller (MVC) и причины, по которым он стал стандартом де-факто для веб-приложений. Во второй исследуется связь MVC с компонентами Zend Framework, их структурой и взаимодействием.

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

Эта сторона фреймворков никогда не привлекала особого внимания. И все же именно она лежит в основе целого класса проблем в тех приложениях, которые пытаются использовать MVC по образу и подобию фреймворков для веб-приложений. Более того, попытки донести идею модели до других разработчиков нередко напоминают битье головой о стену. Я не хочу сказать, что все разработчики тупые или не понимают саму идею, просто никто из них (вне зависимости от того, работают они с PHP или нет) не связывает модели с той областью, которая наделяет их смыслом — принципами объектно-ориентированного программирования.
Читать дальше →
Всего голосов 59: ↑54 и ↓5+49
Комментарии53

Введение в смарт-контракты

Время на прочтение23 мин
Количество просмотров58K
В этой статье мы рассмотрим, что такое смарт-контракты, какие они бывают, познакомимся с разными платформами смарт-контрактов, их особенностями, а также обсудим, как они устроены и какие преимущества могут в себе нести. Данный материал будет очень полезен для читателей, которые недостаточно хорошо знакомы с темой смарт-контрактов, но хотят приблизиться к ее пониманию.
Читать дальше →
Всего голосов 16: ↑13 и ↓3+10
Комментарии16

Руководство по промисам для тех, кто хочет в них разобраться

Время на прочтение9 мин
Количество просмотров36K
Лес чуден, тёмен — глянь в глубину.
Но прежде я все долги верну…
И много миль, пока я усну,
Так много миль, пока я усну...

Роберт Фрост

image

Промисы — это одно из самых замечательных новшеств ES6. JavaScript поддерживает асинхронное программирование посредством функций обратного вызова и с помощью других механизмов. Однако при использовании функций обратного вызова мы сталкиваемся с некоторыми проблемами. Среди них — «ад коллбэков» и «пирамида ужаса». Промисы — это паттерн, который значительно упрощает асинхронное программирование на JS. Асинхронный код, написанный с использованием промисов, выглядит как синхронный и лишён проблем, связанных с коллбэками.

Материал, перевод которого мы сегодня публикуем, посвящён промисам и их практическому использованию. Он рассчитан на начинающих разработчиков, которым хочется разобраться с промисами.
Читать дальше →
Всего голосов 35: ↑31 и ↓4+27
Комментарии22

Открытый курс машинного обучения. Тема 1. Первичный анализ данных с Pandas

Уровень сложностиПростой
Время на прочтение15 мин
Количество просмотров1M


Открытый курс машинного обучения mlcourse.ai сообщества OpenDataScience – это сбалансированный по теории и практике курс, дающий как знания, так и навыки (необходимые, но не достаточные) машинного обучения уровня Junior Data Scientist. Нечасто встретите и подробное описание математики, стоящей за используемыми алгоритмами, и соревнования Kaggle Inclass, и примеры бизнес-применения машинного обучения в одном курсе. С 2017 по 2019 годы Юрий Кашницкий yorko и большая команда ODS проводили живые запуски курса дважды в год – с домашними заданиями, соревнованиями и общим рейтингом учаcтников (имена героев запечатлены тут). Сейчас курс в режиме самостоятельного прохождения.

Читать дальше →
Всего голосов 44: ↑43 и ↓1+42
Комментарии61

Вы и ваша работа *

Время на прочтение40 мин
Количество просмотров817K
Длинный материал. Время чтения – около 40 минут.

image

Доктор Ричард Хэмминг, профессор морской школы Монтерея в штате Калифорния и отставной учёный Bell Labs, прочёл 7 марта 1986 года очень интересную и стимулирующую лекцию «Вы и ваши исследования» переполненной аудитории примерно из 200 сотрудников и гостей Bellcore на семинаре в серии коллоквиумов в Bell Communications Research. Эта лекция описывает наблюдения Хэмминга в части вопроса «Почему так мало учёных делают значительный вклад в науку и так многие оказываются в долгосрочной перспективе забыты?». В течение своей более чем сорокалетней карьеры, тридцать лет которой прошли в Bell Laboratories, он сделал ряд прямых наблюдений, задавал учёным очень острые вопросы о том, что, как, откуда, почему они делали и что они делали, изучал жизни великих учёных и великие достижения, и вёл интроспекцию и изучал теории креативности. Эта лекция о том, что он узнал о свойствах отдельных учёных, их способностях, чертах, привычках работы, мироощущении и философии.
Читать дальше →
Всего голосов 239: ↑229 и ↓10+219
Комментарии127

Удачная модель ветвления для Git

Время на прочтение10 мин
Количество просмотров993K
Перевод статьи Vincent Driessen: A successful Git branching model

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



В качестве инструмента управления версиями всего исходного кода она использует Git.

Читать дальше →
Всего голосов 180: ↑171 и ↓9+162
Комментарии105

1Script или Как я начал open-source проект

Время на прочтение11 мин
Количество просмотров30K

Тезис о том, что open-source создается гиками-энтузиастами в наше время несколько утратил актуальность. Тем не менее, идеология открытого кода родилась именно так. Классные программы, написанные ночью, бородатыми (и не очень) чудиками, бескорыстно, просто, чтобы сделать мир лучше — изменили мир разработки ПО.

Любой программист втайне мечтает сделать что-то большое и светлое, чтобы всем понравилось. Если вы скажете мне, что вы не из таких, что вам нравится только закрывать тикеты в рабочем багтрекере, и вы не мечтаете о выпуске своего проекта в большой мир, то я вам не поверю. Или посоветую сменить профессию. Я убежден, что программист — это художник, а художнику важно делать что-то свое, возможно, просто «в стол» — но делать.

Однажды, мне в голову упала идея проекта. Идея была чисто исследовательской и я не собирался делать из этого некий «продукт». Кроме того, я раньше не вел проектов в открытом доступе и мне очень хотелось попробовать, как это вообще происходит. Что из этого получилось — под катом.
Читать дальше →
Всего голосов 59: ↑56 и ↓3+53
Комментарии30

Не читайте тексты про западные стартапы

Время на прочтение7 мин
Количество просмотров28K
Привет, Гиктаймс!

Не думал, что вообще буду сюда писать тексты такой специфической тематики, но свежий пост ФРИИ — «С чего начинается hardware-стартап: Команда и прототип» — меня зацепил. Дело в том, что центральная часть текста там посвящена тому, как правильно раздавать направо и налево доли в вашем стартапе — от основателей до рядовых сотрудников, причём последним предлагается раздавать минимальные доли почти по конец первой сотни нанятых вами работников.

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

Подробно причины этого описаны в законе 14-ФЗ («Об обществах с ограниченной ответственностью», то есть базовый закон по данной теме), который любому человеку, в принципе задумывающемуся о каком-либо стартапе, стоит прочитать хотя бы по диагонали, чтобы в общих чертах представлять себе, как работает и регулируется ООО в России.

Я сознательно говорю именно про ООО, потому что примерно 100 из 100 стартапов в России — это ООО. Теоретически, вы можете зарегистрировать стартап как непубличное АО и избавиться от описанных ниже проблем, но немедленно влететь в другие: например, если в ООО любые решения о судьбе общества вы можете подтверждать просто подписями всех соучредителей, то в АО требуется проведение полноценного собрания с присутствием нотариуса, заверяющего все принятые решения.

Итак, ООО — что делать с долями и инвестициями стартапу, живущему в России.

Читать дальше →
Всего голосов 73: ↑63 и ↓10+53
Комментарии132

Нейронные сети на Javascript

Время на прочтение7 мин
Количество просмотров166K
image
Идея для написания этой статьи возникла прошлым летом, когда я слушал доклад на конференции BigData по нейронным сетям. Лектор «посыпал» слушателей непривычными словечками «нейрон», «обучающая выборка», «тренировать модель»… «Ничего не понял — пора в менеджеры», — подумал я. Но недавно тема нейронных сетей все же коснулась моей работы и я решил на простом примере показать, как использовать этот инструмент на языке JavaScript.

Мы создадим нейронную сеть, с помощью которой будем распознавать ручное написание цифры от 0 до 9. Рабочий пример займет несколько строк. Код будет понятен даже тем программистам, которые не имели дело с нейронными сетями ранее. Как это все работает, можно будет посмотреть прямо в браузере.
Читать дальше →
Всего голосов 58: ↑54 и ↓4+50
Комментарии79

«IT — это достаточно бедная индустрия» — интервью с Дмитрием Нестеруком из JetBrains

Время на прочтение29 мин
Количество просмотров83K
Всем привет. Это снова «Без слайдов», и сегодня у меня для вас интервью с Дмитрием Нестеруком aka mezastel, техническим евангелистом компании JetBrains. Дмитрия я знаю довольно давно и, не скрою, сам очень долго ждал момента, когда мы наконец поедем на студию и запишемся. Уж больно много вопросов у меня к нему накопилось.



Мы больше часа беседовали с Дмитрием, но не успели затронуть даже половины тем, которые хотелось обсудить. Что Дмитрий успел рассказать мне:
  • Чем технический евангелист отличается от Developer Advocate
  • Как работает евангелизм в JetBrains
  • О восприятии мира настоящими гиками
  • Почему IT — это бедная индустрия
  • Про маржу и инвестиции российских аутсорсеров
  • Про то, какие enterprise решения позорят индустрию и почему
  • Насколько далека JetBrains от своего простого потребителя
  • Об том, как индустрия видеоигр смогла «вырастить» под себя целый сектор железа
  • Что сейчас творится на рынке видеокарт
  • Что еще могут придумать компании, для того, чтобы программы работали быстрее
  • О том, как будет выживать ReSharper и о 64-битных IDE от Microsoft


Вот видео, а под катом, как обычно, текстовая версия этого интервью.


(на одиннадцатой минуте нет звука, к сожалению.)
Читать дальше →
Всего голосов 93: ↑72 и ↓21+51
Комментарии229

Новые варианты приобретения и бесплатные предложения Visual Studio 2015

Время на прочтение2 мин
Количество просмотров31K


В предыдущей статье мы познакомили вас с главными анонсами крупнейшего мероприятия об инструментах разработки компании Microsoft. Теперь давайте подробнее поговорим о новых возможностях приобретения Visual Studio.

Как стало известно 19 ноября, компания Microsoft сформировала новые предложения и варианты приобретения и использования инструментов, как для крупных компаний, так и для небольших команд и индивидуальных разработчиков.
Читать дальше →
Всего голосов 23: ↑19 и ↓4+15
Комментарии8

Извлечение упоминаний сущностей и поиск в Textocat API

Время на прочтение9 мин
Количество просмотров17K
Textocat API — это облачный SaaS анализа текстов. Качественное извлечение полезной информации из текстов — сложная задача и требует серьезной экспертизы. Миссия команды Textocat — сделать процесс обработки текстов настолько легким для использования, чтобы его мог включить в свой арсенал любой современный разработчик. Используя Textocat API, вы можете быстро прототипировать приложения на основе текстовой аналитики и превращать их в свой бизнес. В данной публикации мы покажем, насколько легко интегрировать в любое приложение возможности Textocat API по распознаванию упоминаний сущностей (объектов) и поиску документов на русском языке.

Возможности Textocat API Beta


В начале апреля мы запустили бета-тестирование Textocat API. В этой версии мы предлагаем разработчикам бесплатно использовать часть функционала сервиса со следующими возможностями:
  • распознавание упоминаний сущностей (entity recognition) в коллекциях документов на русском языке;
  • хранение обработанных коллекций;
  • полнотекстовый поиск с учетом выделенных типов сущностей.


пример распознавания упоминаний сущностей

Читать дальше →
Всего голосов 24: ↑23 и ↓1+22
Комментарии66

Анализ изображений и видео. Сегментация изображений

Время на прочтение2 мин
Количество просмотров25K
Сегодня мы публикуем восьмую лекцию из курса «Анализ изображений и видео», прочитанного Натальей Васильевой в петербургском Computer Science Center, который создан по совместной инициативе Школы анализа данных Яндекса, JetBrains и CS-клуба.



Всего в программе девять лекций, из которых уже были опубликованы:
  1. Введение в курс «Анализ изображений и видео»;
  2. Основы пространственной и частотной обработки изображений;
  3. Морфологическая обработка изображений;
  4. Построение признаков и сравнение изображений: глобальные признаки;
  5. Построение признаков и сравнение изображений: локальные признаки;
  6. Поиск по подобию. Поиск нечетких дубликатов;
  7. Анализ изображений и видео. Классификация изображений и распознавание объектов.

Под катом вы найдете план новой лекции и слайды.
Читать дальше →
Всего голосов 31: ↑29 и ↓2+27
Комментарии3

Git и Visual Studio: как правильно приготовить

Время на прочтение3 мин
Количество просмотров159K
Некоторое время назад мы анонсировали поддержку Git в Visual Studio и TFS. Для того, чтобы научиться правильно готовить все это, я сам прошел весь путь и хочу рассказать вам о нем. Ниже — о том, как использовать Git в VS.
Читать дальше →
Всего голосов 34: ↑28 и ↓6+22
Комментарии50

Список YouTube-каналов для обучения веб-разработке

Время на прочтение2 мин
Количество просмотров218K
image


Привет, хабражители!

Представляю вам список YouTube-каналов для обучения веб-разработке. Список доступен на гитхабе, там он будет пополняться и редактироваться. В планах — создание отдельной странички для фильтрации каналов по тегам и рубрикам.

Также хочу попросить вас о небольшой услуге: если вы знаете канал, не вошедший в список — опубликуйте ссылку на него в комментариях или отправьте pull request. Сообщество будет благодарно вам.

Под катом — текущая версия списка.
Читать дальше →
Всего голосов 64: ↑59 и ↓5+54
Комментарии16

Как начать работать с GitHub: быстрый старт

Время на прочтение6 мин
Количество просмотров1.2M


Распределенные системы контроля версий (DVCS) постепенно замещают собой централизованные. Если вы еще не используете одну из них — самое время попробовать.

В статье я постараюсь показать, как можно быстро начать экспериментировать с git, используя сайт github.com.

В статье не будут рассмотрены различия между разными DVCS. Также не будет детально рассматриваться работа с git, по этой теме есть множество хороших источников, которые я приведу в конце статьи.
Читать дальше →
Всего голосов 182: ↑165 и ↓17+148
Комментарии51

Html Agility Pack — удобный .NET парсер HTML

Время на прочтение5 мин
Количество просмотров163K
Всем привет!
Как-то раз мне пришла в голову идея проанализировать вакансии размещенные на Хабре. Конкретно интересовало, есть ли зависимость между размером зарплаты и наличия высшего образования. А еще сейчас у студентов идет сессия (в том числе и у меня), то возможно кому-то уже надоело трепать нервы на экзаменах и этот анализ будет полезен.
Так как я программист на .Net, то и решать эту задачу — парсить объявления на Хабре я решил на C#. Вручную разбирать строки html мне не хотелось, поэтому было придумано найти html-парсер, который помог бы осуществить задачу.
Забегая вперед скажу, что из анализа ничего интересного не вышло и сессию придется сдавать дальше :(
Но зато немножко расскажу про весьма полезную библиотеку Html Agility Pack
Читать дальше →
Всего голосов 58: ↑41 и ↓17+24
Комментарии69

Философия программирования 2 — Миф и язык

Время на прочтение10 мин
Количество просмотров58K
def Миф и язык extends «трёхнаправленное программирование»;

Миф о том, что русские программисты лучшие в мире, запущен вовсе не партийными пропагандистами, он возник на перестроечной волне, вместе с мифами о хозяине-предпринимателе, невидимой руке рынка и ста сортах колбасы. Миф, это то, что человек не читавший взрослых книг называет «мем», а человек вообще не читающий, называет правдой. Передача «Разрушители мифов» берёт поверхностные мифы, которые можно легко опровергнуть, например, бросив бутерброд с маслом на пол тысячу раз. А вот Гордон, в одном из своих первых телепроектов «Собрание заблуждений», брался за раскрытие мифов посложнее, такие мифы нельзя раскрыть затопив машину и проверив, можно ли всё-таки открыть двери до того, как машина полностью наполнится водой, они как плавающий баг у которого нету «steps to reproduce». Вспомните Холмса или Хауса, интеллектуал в первую очередь отличается тем, что видит невидимое — пока паникующие пассажиры всматриваются в туман за бортом, он закрывает глаза и всматривается в свои «чертоги разума», вспоминает карту местности и ТТХ парохода.


«Всё содержится в моих чертогах разума, вы же понимаете о чём я мистер Холмс? Я обладаю знаниями, и поэтому могу щёлкать доктора Ватсона по носу хоть целый день.»
Читать дальше →
Всего голосов 99: ↑61 и ↓38+23
Комментарии103
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Волгоградская обл., Россия
Дата рождения
Зарегистрирован
Активность