Search
Write a publication
Pull to refresh
0
@IGQRread⁠-⁠only

User

Send message

Язык REXX, к 40 летию появления

Reading time8 min
Views7.9K
REXX — довольно древний, передовой для своего времени язык. Он появился, согласно википедии, в 1979 году, то есть ему недавно исполнилось 40 лет. Не самый конечно старинный язык, но возраст достойный.

Rexx это аббревиатура, означает она Restructured Extended Executor, что вероятно отсылает нас к его предкам EXEC/EXEC2. Я с ним познакомился в операционной системе VM/SP 3, где он пришел на замену именно этим скриптовым языкам. Потом он был популярен в OS/2, использовался во многих других ОС, было создано множество реализаций и производных диалектов.

image

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

Генеалогические исследования — метрические книги, переписи, архивы, открытые базы

Reading time13 min
Views161K
Не один год я увлекаюсь генеалогией. Практической пользы в этом хобби нет, но интересного очень много. Здесь я хотел поделиться накопленным опытом, частью интересных сведений, не сильно погружаясь в персональные истории. Чтобы текст сильно не распухал, расскажу всего 2 кейса: поиск в военных архивах на основе данных онлайн-баз и продолжительный просмотр и анализ метрических книг одного села периода конца XIX — начала XX вв. вплоть до конца революции и гражданской войны.

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

Осознаю, что некоторым тема публикации может показаться далекой от IT, но в процессе у меня было и программирование, VBA-скриптинг, SQL, и впереди, надеюсь, ML\DS\AI.


Страница метрической книги, рождения в 1898 г. Еще в книгах записывались браки и смерти — до появления ЗАГСов в начале 1920х
Читать дальше →

Начинаем работу с Google Sheets на Python. От регистрации до чтения данных

Reading time11 min
Views215K
Довольно долго я обходился выгрузкой данных в Excel, но мода меняется, пользователи хотят в облака.

Начав переводить ряд проектов на Python, решил, что самое время сменить (или дополнить) Excel чем-то более современным.

Когда я впервые столкнулся с необходимостью работы c таблицами Google из Python, то пребывал в иллюзии, что все это можно сделать в пару кликов. Реальность оказалась менее радужной, но другого глобуса у нас нет.

Мне очень помогли статьи:


Как обычно – когда впервые за что-то берешься, то сталкиваешься с массой вопросов, которые потом вызывают лишь недоумение – как можно было об этом вообще задумываться. Элементарно же!

Возможно, я просто шел длинным путем – буду рад, если вы меня поправите.

Все действия выполнялись на компьютере с Windows + Python 3.6.6, также использовался Jupyter Notebook.

Основные трудности у меня возникали на этапе предварительных настроек. Найти работоспособный код не представляет особого труда.

Код, использованный в статье, доступен в репозитории
Читать дальше →

Управляя коллективом, нарушьте все правила

Reading time23 min
Views41K

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

Если ответы на эти вопросы вас интересуют, то вам стоит почитать книгу Маркуса Бакингема и Курта Коффмана «Сначала нарушьте все правила: Что лучшие в мире менеджеры делают по-другому». Эта книга могла бы стать для меня настольной, но перечитывать нет времени, поэтому я сделал выжимку, которой и хочу с вами поделиться.
Читать дальше →

Автоматизированное восстановление баз данных MS SQL из бэкапов

Reading time7 min
Views17K
image

В этой статье я хотел бы рассказать о том, как с помощью утилиты Quick Maintenance & Backup for MS SQL настроить автоматическое восстановление баз данных из бэкапов на тестовом экземпляре SQL Server в сети. При этом создавать бэкапы будет штатный План обслуживания. Потребность в автоматизированном восстановлении может возникнуть в следующих случаях:

  1. Если требуется регулярно актуализировать базы данных на тестовых серверах.
  2. Если требуется периодически проверять через восстановление созданные бэкапы: полный, разностный и журналы транзакций.

В сети можно найти примеры скриптов позволяющие в той или иной мере автоматизировать эти задачи. Но большинство решений требуют хорошего понимания T-SQL, предметной области и скорее всего потребуют изменения ваших Планов обслуживания. Я покажу как это сделать за 15-20 минут с помощью утилиты Quick Maintenance & Backup for MS SQL (QMB). Мы задействуем механизм XML планов восстановления — это XML файл с последовательностью бэкапов, который умеет создавать утилита. По информации в XML файле программа получит последовательность бэкапов, сформирует T-SQL скрипт для восстановления и запустит его на выполнение. Подробнее об этой возможности можно почитать здесь.
Читать дальше →

Дни рождения в Google Календаре с обозначением возраста

Reading time4 min
Views24K

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



Когда стал целенаправленно искать ответ на этот вопрос, обнаружил, что запрос на отображение возраста в календаре от гугл довольно популярный и однозначного ответа на него до сих пор нет. Это сподвигло меня создать решение на основе Google Apps Script.

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

Новые бесплатные видео-курсы и гайды по C#, .NET, и ASP.NET для начинающих

Reading time1 min
Views9.1K
Если вы думали о том, чтобы начать изучать C#, то сейчас как раз самое время, чтобы начать! Наш коллега Скотт Хансельман работал над этим проектом несколько месяцев и рад представить страницу http://dot.net/videos 

На ней вы найдете около сотни коротких видео (в ближайшее время их станет еще больше), которые научат вас разным темам, например C# 101, .NET, созданию настольных приложений, созданию веб-приложений ASP.NET, использованию контейнеров и Docker, и даже основам машинного обучения. Вы найдете очень много крутых, размеренных видео для новичков. Большинство из них длятся менее 10 минут, и вы можете найти их на YouTube!

Решились? Я рекомендую начать с этих трех в следующем порядке — C#, .NET, и затем ASP.NET. Ну а после них выбирайте любые темы, которые вам нравятся больше всего.

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

20 SEO-мифов, которые должны умереть в 2020

Reading time17 min
Views42K
Хабр читают не только разработчики, и не только люди связанные с IT, некоторые из моих клиентов иногда кидали мне ссылки на Хабр, и среди них были такие, которые совсем далеки от IT. Поэтому в этой статье будет максимально простым языком объясняться некоторые аспекты SEO. К сожалению, тренд последних лет о том, что контент стоит во главе всего, многие мои “коллеги по цеху” воспринимают так, что “вещать” в своем корпоративном блоге можно, что угодно и как угодно. Это рождает массу бредовых мифов о SEO.


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

Мы из другого теста — тестируем базу данных на MSTest

Reading time27 min
Views7.6K

Тестирование как универсальный принцип


Уже почти четверь века празднуем миллениум, а тестирование ещё только входит в нашу жизнь… Сложно убедить начинающих разработчиков использовать эту потрясающую технику в своей работе… Да чего уж там говорить о разработчиках, простым смертным и то не всегда доступно понимание того, что тестирование — основа устойчивых систем! Как сложно бывает убедить продавщицу в том, что протестировать новый продукт — не значит съесть его! Даже бывалые охранники явно работают по старинке — пытаются догнать и отобрать тестируемое. И не докажешь им, что если уж сам Господь Бог не гнушается использовать TDD в своей работе (вспомним Великий Потоп), то нам как говорится сам бог велел…

Количество разводов растёт — почему? Да всё потому же! TDD! Сначала тестируй — потом женись! Нет, доверчивые мужички в расхристанных тулупах, падкие на эксплуатирующую секс рекламу, выкатывают молодую жену прямо в продакшн…

Ну мы то с вами из другого теста, сначала тестирование — потом всё остальное!

Я тестировщика узнаю по походке…


И вот когда я начал писать очередную базу данных code first то задумался, а почему бы не сделать автоматическое тестирование своего DAL слоя прямо на встроенных в VisualStudio тестах?

И у меня получилось! Прозрачно для EntityFramework, без всякой ловкости рук под одеялом и мошенничества с fake-объектами. Кому интересно — расчехляем VS, одеваемся как тестировщики и вперёд! (я всегда одеваюсь как тестировщик)

Одежда тестировщика
image
Читать дальше →

Нарастающий итог в SQL

Reading time10 min
Views153K
Нарастающий (накопительный) итог долго считался одним из вызовов SQL. Что удивительно, даже после появления оконных функций он продолжает быть пугалом (во всяком случае, для новичков). Сегодня мы рассмотрим механику 10 самых интересных решений этой задачи – от оконных функций до весьма специфических хаков.
Читать дальше →

Как проектировать большие и сложные веб-таблицы

Reading time13 min
Views41K
image

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

В этом случае дизайнер сталкивается со многими проблемами. Например, сопоставление дизайна с существующими фронт-енд фреймворками или борьба с «неудобными» данными, которые разрушают макет. Мы преодолеем эти проблемы с помощью следующих шагов: систематизируем потребности, станем атомарными и определим взаимодействие.
Читать дальше →

Бэкап файловых и SQL баз 1С (в облако и с шифрованием)

Reading time8 min
Views30K
В этой статье я хочу поделиться опытом резервного копирования файловых и SQL баз 1С в локальное, сетевое и облачное (на примере Google Drive) хранилище с помощью Effector Saver.

ПО является платным: 2500₽.
Переход на новую версию (с 3 на 4) также является платным: 1250₽.

Писал инструкцию для друга, но думаю она пригодиться и кому-то из вас.

И как всегда, в комментариях, вы научите меня чему-то новому =)

В конце инструкции приведен пример журнала, по которому хорошо видна скорость выполнения задачи.

Цель:
Автоматическое создание шифрованных бэкапов по расписанию с отчётом об ошибках на почту.
Читать дальше →

Компиляция программ с помощью Notepad++

Level of difficultyHard
Reading time17 min
Views61K

Компиляция программ при помощи текстового редактора на примере Notepad++




Цель статьи: Научиться компилировать программы из командной строки. Научиться компилировать из текстового редактора Notepad++ (вернее научиться писать скрипты и связывать их), создавать скрипты и макросы, устанавливать системные переменные.

Сам текстовый редактор ничего не компилирует и не запускает. Также как и IDE не компилирует. Компиляция происходит с помощью компилятора. Выполнение производится некоторой средой выполнения. Это может быть интерпретатор команд или среда выполнения.
При компиляции программы на C# упаковываются в сборки. Код на языке IL автоматически преобразуется в код для конкретного процессора. Что касается языка java, то скомпилированные файлы .class выполняется виртуальной машиной Java. Файлы .java компилируются в бай-код, то есть некоторый промежуточный код. Компиляция в exe файл тоже производится компилятором.

.EXE (сокр. англ. executable — исполнимый) — расширение исполняемых файлов, применяемое в операционных системах DOS, Windows, Symbian OS, OS/2 и в некоторых других, соответствующее ряду форматов. Процесс получения exe файла состоит из следующих этапов: препроцессинг, ассемблирование, компилирование, линковка.

ОUT файлы — исполняемые файлы для UNIX-подобных операционных систем.
Файл может хранить исполняемый код, общую динамическую библиотеку или объектный код.

Терминология

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

Авторский курс по обучению Ардуино для собственного сына

Reading time3 min
Views8.2K
Здравствуйте! Прошлой зимой я рассказывал на страницах Хабра о создании робота-«охотника» на Ардуино. Я занимался этим проектом со своим сыном, хотя, по сути, 95% всей разработки осталось за мной. Робота мы доделали (и уже, кстати, разобрали), но после этого возникла новая задача: как обучать ребенка робототехнике на более систематичной основе? Да, интерес после выполненного проекта остался, но теперь нужно было возвращаться к самому началу, чтобы не торопясь и основательно изучать ардуино.

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

Обзор ispmanager – панели управления хостингом и сайтами

Level of difficultyEasy
Reading time8 min
Views42K
В этой статье разбираем панель управления сайтами и сервером ispmanager. Мы делали обзор на неё в 2019 году, и за это время многое в продукте поменялось. Поэтому сейчас вы читаете обновлённую публикацию за 2023 год.


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

Книга «Java для всех»

Reading time11 min
Views10K

image Привет, Хаброжители! Данная книга предназначена для начинающих.


Вот уже многие годы язык Java входит в число самых популярных и востребованных. Он красивый, эффектный и, самое главное, очень производительный. Но, к сожалению, не самый простой. Именно поэтому спрос на Java-программистов неизменно высок. Язык Java — это бриллиант, который украсит багаж знаний любого программиста. А учить Java, как, я надеюсь, предстоит убедиться читателям этой книги, не только полезно, но и интересно. В основу книги положены курсы лекций, в разное время прочитанные мной для магистров физического факультета Киевского национального университета им. Тараса Шевченко, бакалавров медико-инженерного факультета Национального технического университета Украины «Киевский политехнический институт» и слушателей различных курсов по программированию. Материал книги и способ изложения адаптированы для всех, кто желает изучать Java не только в учебных заведениях, но и самостоятельно. Поэтому книга может использоваться и как самоучитель.

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

Проектирование Базы Данных. Лучшие практики

Reading time5 min
Views29K
В преддверии старта очередного потока по курсу «Базы данных» подготовили небольшой авторский материал с важными советами по конструированию БД. Надеемся данный материал будет полезен для вас.




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

Изучаем SEO самостоятельно: большая подборка материалов

Level of difficultyEasy
Reading time5 min
Views558K
Привет, Хабр!

Меня зовут Артём Сайгин, я веду телеграм канал Growth Lab, в котором делюсь опытом роста IT-продуктов.

Сделал для вас большую подборку материалов о поисковом продвижении для самостоятельного изучения. Эти бесплатные материалы легко заменят вам платные курсы.

Также в конце статьи вы найдёте список книг по SEO, бесплатные курсы, чек-листы SEO-аудита, SEO-сервисы и расширения.

Добавляйте в закладки, чтобы не потерять.

image

Отмечу, что список материалов будет пополняться. Если я не добавил стоящий материал, свяжитесь со мной — добавлю.

Приступим!
Читать дальше →

Руководство по SQL: Как лучше писать запросы (Часть 2)

Reading time11 min
Views57K
Продолжение статьи Руководство по SQL: Как лучше писать запросы (Часть 1)

От запроса к планам выполнения


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

Следует также отметить, что некоторые из антипаттернов, упомянутых в последнем разделе, коренятся в проблемах производительности, таких, как операторы AND, OR и NOT и их отсутствие при использовании индексов. Размышление о производительности требует не только более структурированного, но и более глубокого подхода.

Однако этот структурированный и углубленный подход будет в основном основан на плане запроса, который, как вы помните, является результатом запроса, впервые проанализированного в «дерево синтаксического анализа» или «дерево разбора» («parse tree»), и точно определяет, какой алгоритм используется для каждой операции и как координируется их выполнение.
Читать дальше →

Руководство по SQL: Как лучше писать запросы (Часть 1)

Reading time13 min
Views87K

Узнайте о антипаттернах, планах выполнения, time complexity, настройке запросов и оптимизации в SQL


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

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

  • Во-первых, вы начнете с краткого обзора важности обучения SQL для работы в области науки о данных;
  • Далее вы сначала узнаете о том, как выполняется обработка и выполнение запросов SQL, чтобы понять важность создания качественных запросов. Конкретнее, вы увидите, что запрос анализируется, переписывается, оптимизируется и окончательно оценивается.
  • С учетом этого, вы не только перейдете к некоторым антипаттернам запросов, которые начинающие делают при написании запросов, но и узнаете больше об альтернативах и решениях этих возможных ошибок; Кроме того, вы узнаете больше о методическом подходе к запросам на основе набора.
  • Вы также увидите, что эти антипаттерны вытекают из проблем производительности и что, помимо «ручного» подхода к улучшению SQL-запросов, вы можете анализировать свои запросы также более структурированным, углубленным способом, используя некоторые другие инструменты, которые помогают увидеть план запроса; И,
  • Вы вкратце узнаете о time complexity и big O notation, для получения представления о сложности плана выполнения во времени перед выполнением запроса;
  • Вы кратко узнаете о том, как оптимизировать запрос.
Читать дальше →

Information

Rating
Does not participate
Registered
Activity