Обновить
162
0
Валерий Макаров@valemak

Программист

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

Как я использовал-таки классы в VBA и даже полюбил это дело

Уровень сложностиПростой
Время на прочтение13 мин
Охват и читатели19K

На собеседовании:

- Как у вас с Экселем?

- Я его ненавижу!

- О, да вы VBA-разработчик!

Я не могу открывать здесь Америк, ибо не технарь, но раз тут был чей-то текст, как написать "Hello world" в Word'e, и всем понравился, то думаю, что нелишним будет и мой небольшой опыт.

п1. Как обычный пользователь пишет макросы в эксельке

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

Ну, например, очень редко для обращения к ячейке употребляется метод Cells с индексами номера строки и колонки, по большей части используют уродцев типа Cells("A"&(i+1)) , а переход к следующей ячейке делают через Offset (и. что интересно, код работает - умудряются не запутываться в сдвиге А относительно Б, С относительно Б и так далее, могу только предположить, сколько такую связку из офсетов отлаживают). Массивов в их классическом виде средний российский макрописец не признает в принципе, и я догадываюсь, что он просто не знает, что есть такая сущность, и все переборы и вычисления проводит. обращаясь напрямую к ячейкам (хотя сансэй Уокенбах в каждой книжке повторяет, что массивы работают на порядок быстрей).

Читать далее

12 важнейших сайтов для освоения CSS в 2023 году

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели49K

Хотите войти в веб-разработку, но не знаете, с чего начать? Освоение CSS станет отличным стартом и, к счастью для вас, в сети существует огромное количество учебных ресурсов.
Мы провели исследование и собрали 12 наиболее актуальных сайтов, которые помогут вам продвинуться от уровня новичка до профессионала по CSS за кратчайшие сроки.

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

Так что пристегните ремни и приступайте к написанию кода!
Читать дальше →

Полиморфизм для начинающих

Время на прочтение7 мин
Охват и читатели1M
Полиморфизм — одна из трех основных парадигм ООП. Если говорить кратко, полиморфизм — это способность обьекта использовать методы производного класса, который не существует на момент создания базового. Для тех, кто не особо сведущ в ООП, это, наверно, звучит сложно. Поэтому рассмотрим применение полиморфизма на примере.
Читать дальше →

Основы библиотеки cURL PHP

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели52K

cURL — библиотека, используемая для отправки HTTP-запросов с различных языков программирования, включая C, PHP и другие.

В статье проведено знакомство с библиотекой, описаны основные функции и предопределённые константы. Представлены способы настройки сеанса, совершения GET- и POST-запросов, обработка исключений, проверки SSL-сертификата и аутентификации на сервере.

Читать далее

Как искать первых заказчиков на фрилансе

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

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

Если ты теперь фрилансер и готов к волне заказов,
Размышляя, что же делать, чтоб заказ тебя нашёл.
Ты уже и так прекрасен! О тебе и так узнают!
Сядь на стул и жди клиентов, пусть стучатся сами в дверь.

Вопрос «Где искать клиентов?» — самый популярный среди начинающих фрилансеров. Раньше я отвечал на него так: «Определитесь с тем, какие именно вам нужны клиенты, и станет понятно, где их искать». Так себе ответ, не правда ли? Ведь откуда начинающему знать, какие именно ему нужны клиенты? Ему бы хоть каких-нибудь найти. Поэтому я копнул глубже и стал отвечать по-другому.

Не нужно активно искать клиентов. Клиенты сами вкладывают много сил в поиск исполнителей. Лучше сделать так, чтобы во время поисков они пришли именно к нам. Как это сделать? Заявить о себе как можно громче в тех местах, с которых обычно начинает свой поиск среднестатистический клиент. Если он будет просить рекомендаций у своих знакомых — значит, кто-то из них должен знать о нашем существовании. А если воспользуется поиском в Интернете, то рядом с названием услуги должно появиться наше имя.

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

Читать далее

Определение комбинации в Техасском Холдеме

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

Всем привет! Меня зовут Григорий Дядиченко, и я технический продюсер. А в прошлом я был профессиональным игроком в покер. Сейчас я решил сделать на Unity пример проекта с покером, который выложу в опенсорс, когда я его доделаю. А пока хочется посмотреть на интересную задачку с определением сильнейшей комбинации в техасском холдеме. Разберём хеш-функции, битовые операции, поиск подмножеств определённой длинны из множества, биномиальный коэффициент и другое. Если вам интересна эта тема, то добро пожаловать под кат!

Читать далее

Работаем с XML как с массивом, версия 2

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

Всем привет.

Хочу поделиться с вами опытом в парсинге XML файлов размером до четырёх гигабайт. Что бы это происходило быстро, мы читаем файл последовательно, частями, парсим только нужные нам элементы.

В двух словах для быстрого парсинга файлов надо пользоваться XMLReader в связке с yield.

О моей реализации этой связки читайте ниже.

Читать далее

Сортировка слиянием через рекурсию

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели19K

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

Читать далее

Парсим сайты с защитой от ботов

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

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

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

Читать далее

Парсили сайты, парсим и будем парсить. И не нужно этому мешать

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

Здравствуйте, меня зовут Максим Кульгин. Моя компания xmldatafeed.com занимается парсингом много лет. На днях мы вернули 16 000 руб. клиенту, так как не смогли парсить весь iherb.com с нужной клиенту скоростью (а там очень много товаров). Проверил и оказалось, что это единичный случай за весь год и родилась эта, чуть-чуть философская статья.

Одна из наших прошлых статей (самостоятельный парсинг сайтов) спровоцировала острые дискуссии среди читателей. И в комментариях к статье, и в нашем телеграм-канале (пишем, в том числе, про заработок на парсинге) обсуждение дилеммы «человек против роботов» (здравствуй, Будущее!) перевело взгляд в философскую плоскость. Все технические разговоры про парсинг неизменно сводятся к рассмотрению средств противодействия ботам и способам это противодействие нейтрализовать.

Читать далее

Как быстро бег уничтожает колени. Опрос любителей и мнение профессионалов

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

Широко распространенно мнение, что бег серьезно нагружает колени ударными нагрузками и травмирует их. С другой стороны существуют медицинские исследования с несколько другими выводами и на беговых форумах реально найти людей, бегающих марафоны 20 и более лет со здоровыми коленями. Кто же прав?

Читать далее

Парсинг HTML с помощью PHP и SQL. Немного провокационный пример с анализом пользователей Хабра

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

Выковыривание информации из html — это скучно. Очень. Между тем, эта потребность выстреливает редко, но метко (© Суворов). Из-за этого есть спрос на готовые и короткие инструкции о том, как это сделать, чтобы не тратить время на изучение. Перед вами как раз такая.

Чтобы добавить хоть какой-то интерес скучнейшему занятию мы для примера будем парсить пользователей Хабра. А чтобы не мелочиться — ещё и реанимируем для этого экспериментальную библиотеку 11-летней давности.

Есть такой проект — htmlSQL. Старая библиотека времён Очаковских и покоренья Крыма (© Грибоедов). Она позволяет делать выборку из HTML в стиле SQL-запросов как на КДПВ, чем она мне когда-то и полюбилась.

Воскресим старую любовь?

Новые форматы публикаций

Уровень сложностиПростой
Время на прочтение1 мин
Охват и читатели5.6K

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

Читать далее

Раскрываем карты: информационная служба Хабра рассказывает о себе и своей работе

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

Пользователи Хабра уже знакомы с командой и принципами работы отдела модерации, которые уже рассказывали о себе и своей работе. При этом мало кто знает про некое туманное образование под названием «Информационная служба Хабра», что неудивительно. Мало того, что мы открыто не представлялись, так ещё и как самостоятельный отдел существуем относительно недавно. Вот и получается, что о нас известно исключительно по слухам. Сегодня исправим это досадное недоразумение.

Читать далее

Турецкий гамбит для механического пианино

Время на прочтение6 мин
Охват и читатели7.1K
В 18 веке человечество, пожалуй, впервые начало ощущать себя «царем природы». Один за другим сдавались перед пытливыми умами законы физики, химии и биологии, покорялись водные и воздушные стихии. Всем казалось, что вот еще небольшой рывок — и человек сможет подобно богу изменять свойства материи и превращать неживое в живое. Эти идеи породили моду на автоматоны — механические подобия человека и животных, способные имитировать различные действия — играть на музыкальных инструментах, танцевать, писать, рисовать. Разумеется, набор движений был строго ограничен их конструкцией и «перепрограммировать» автоматоны было почти невозможно. Во всяком случае, было проще построить новый. Но на фоне этих механизмов разительно выделяется один автомат, который мог не просто имитировать человека — он мог думать, анализировать и принимать решения. Эта автоматическая шахматная машина называлась «Механический турок» и была создана венгерским изобретателем Вольфгангом фон Кемпеленом во второй половине 18 века.


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

Обзор книги Дэна Бейдера «Чистый Python. Тонкости программирования для профи»

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

Для кого эта книга? Точно не для начинающих — это не учебник. Скорее, для профессионалов, но и не для гуру. Если вы уже программируете на Python, но всё ещё чувствуете себя неуверенно в чисто питоновских концепциях, то эта книга для вас. Особенно, если до этого вы писали приложения на каком-то другом языке программирования. Книга «Чистый Python» позволит вам существенно продвинуться на пути к цели — постижению дзена Python. Ваш код станет чище, красивее и понятнее. А ещё гораздо более эффективным, ведь дзен — это не только про красоту, но и про использование всех возможностей этого прекрасного языка. И даже только ради этого книгу «Чистый Python» стоит прочитать.

Читать далее

Пять экзистенциалистов заходят в бар: занимательные логические задачки

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

Первое совместное фото Жан-Поля Сартра и Симоны де Бовуар – на ярмарке в Порт-д'Орлеане, июнь 1929 года, Париж, Франция.

Три сегодняшних загадки оформлены в виде небольших драм с участием известных философов.

1. Усопший Витгенштейн


Кто-то убил Витгенштейна. Преступником является один из четвёрки: Фридрих Ницше, Лу Андреас-Саломе, Карл Маркс или Людвиг Андреас Фейербах. В результате их допроса были записаны следующие заявления (причём известно, что убийца лжёт, а все остальные всегда говорят правду):

Ницше: убийца – Саломе.
Саломе: Маркс невиновен.
Фейербах: Саломе говорит правду.
Маркс: Ницше лжёт.

Кто убил Витгенштейна?
Читать дальше →

К вопросу о математических способностях студентов или как учить переполненный мозг

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

Я люблю давать простые задачки студентам на лекции. Во-первых, понятно, скольких мы потеряли, во-вторых, это переключение из режима потребления информации в режим выдачи результатов, в третьих — возможность проявить себя для шустрых. Сплошные плюсы!

Одна из простых задач звучит так: «При переводе картинки из цветового пространства RGB в YUV мы выполняем прореживание, то есть выкидываем каждый четный столбец и каждую четную строку в компонентах U и V (все компоненты пикселя по 1 байту). Вопрос: во сколько раз меньше данных у нас стало?» Эта операция называется chroma subsampling и широко используется при сжатии видео, например.

Забавно, что когда-то давно, когда винчестеры были меньше, а дискеты больше, студенты реально отвечали на этот вопрос быстро. А в последние годы регулярно народ в ступор впадает. Приходится разбирать по частям: «Если выкинуть каждую четную строку и каждый четный столбец, во сколько раз меньше данных будет у компоненты?» Почти хором: «В четыре». Начинаю подкалывать: «Отлично! У нас было 3 яблока, первое осталось как есть, а от второго и третьего осталось по четвертинке. Во сколько раз меньше яблок у нас стало?» Народ ржет, но, наконец-то, дает правильный ответ (заметим, не все). 

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

И хорошо видно, как эта способность в широких массах студентов заметно плавно падает. Причем не только в нашей стране. Придуман даже специальный термин: «цифровое слабоумие» ("digital dementia") — снижение когнитивных способностей, достаточно серьезное, чтобы повлиять на повседневную деятельность человека. 

Кому интересно как теряют мозг студенты масштабы бедствия и что с этим делать — добро пожаловать под кат!

Читать далее

Метод Помидора — убийца прокрастинации. Использовала 6 месяцев и вот результаты

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

Всем привет! Меня зовут Маруся, на текущий момент я - аналитик данных, блоггер (пишу в телеграм и на VC).

Я использовала Метод Помидора 6 месяцев ежедневно и в честь такого праздника хочу подвести итоги.

Для тех, кто не в курсе, Метод Помидора (итал. tecnica del pomodoro) — техника управления временем, предложенная Франческо Чирилло в конце 1980-х.

Метод помидора состоит из нескольких простых действий:

Заводите таймер на 25 минут, приступаете к работе, когда время заканчивается, отправляетесь отдыхать на 5 минут. Так 4 раза подряд, а затем большой перерыв на 15 минут.

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

Почему я решила провести эксперимент и использовать метод Помидора?

Вот несколько моментов, которые у меня были до использования метода Помидора.

Читать далее

Информация

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