Pull to refresh
4

Программист

1
Subscribers
Send message

Бухгалтерский учет для программистов

Reading time16 min
Reach and readers86K

Введение


Занимаюсь автоматизацией бухгалтерского учета 17 лет. После универа поработал как программист бухгалтерской программы. Выяснилось, что есть спрос на программистов этой программы. Поменял одну работу, вторую. Начал брать заказы на стороне. Выяснилось (или показалось), что выполнять заказы выгоднее, чем получать зарплату. Стал частным предпринимателем. Выяснилось (или опять показалось), что продавать программу выгоднее, чем программировать. Стал дилером. Оказалось, что выгоднее всего – подписка на обновления и обслуживание. Возможно, еще выгоднее сделать веб-сервис для онлайн-бухгалтерии…

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

Большой тест термокружек. Личный опыт и тесты на себе

Reading time7 min
Reach and readers124K
Некоторое время назад я делал большой сравнительный тест термосов. И в комментариях меня попросили сделать тест термокружек. Что ж, я не мог остаться равнодушным, да и мне самому интересна эта тема, ведь термокружка – это верный спутник автомобилиста.
По традиции, в конце материала видеообзор.


Понимание lvalue и rvalue в C и С++

Reading time9 min
Reach and readers231K
Привет, Хабр! Представляю вашему вниманию перевод статьи Eli Bendersky, Understanding of lvalues and rvalues in C and C++.

От переводчика: предлагаю Вашему вниманию перевод интересной статьи об lvalue и rvalue в языках C/C++. Тема не нова, но знать об этих понятиях никогда не поздно. Статья рассчитана на новичков, либо на программистов переходящих с C (или других языков) на C++. Поэтому будьте готовы к подробному разжёвыванию. Если вам интересно, добро пожаловать под кат
Читать дальше →

«Программист-прагматик. Путь от подмастерья к мастеру»: коротко о главном (часть первая)

Reading time22 min
Reach and readers85K
О книге «Программист-прагматик. Путь от подмастерья к мастеру» Эндрю Ханта и Дэвида Томаса знают, наверное, все, кто занимается программированием, причем многие — в основном из упоминаний в подборках и цитат в более современных статьях. Учитывая, что этот сборник практических советов для разработчиков скоро отметит двадцатилетний юбилей, тот факт, что его до сих пор приводят как источник ценной информации, вызывает уважение. Секрет прост: авторы, хоть и делали акцент на практической применимости своих подсказок, говорили по большей части о фундаментальных принципах построения рабочего процесса. Многие технические моменты, которые упоминаются в тексте, действительно давно устарели, но базовые подходы к разработке, тестированию, взаимодействию внутри команды и с аудиторией остаются актуальными.


Ниже вы найдете конспект первых четырех глав; речь в них идет об авторской концепции самообразования, основах прагматического подхода в программировании и правилах подбора инструментов. Книга очень удобна для «точечного» чтения: материал представляется в виде отдельных параграфов-подсказок, снабженных перекрестными ссылками. За рамками этого конспекта остались примеры из конкретных языков, разбор кейсов из авторской практики, те самые ссылки, упражнения на закрепление и некоторые забавные аналогии, оживляющие текст — так что рекомендую ознакомиться с оригиналом, если какие-то из тезисов вас заинтересуют. Приятного чтения!
Читать дальше →

Заблуждения большинства программистов относительно «времени»

Reading time6 min
Reach and readers61K
Много дней назад я решил записать некоторые наблюдения, сформировавшиеся пока в последние годы я занимался тестированием. Рассматривая области, которые получают наибольшую отдачу от тестирования, я понял, что у меня накопилось много конкретных мыслей о том, как мы — программисты — склонны небрежно обращаться с понятием «время» в программировании.

Тогда я написал пост «Заблуждения программистов относительно „времени“», в котором указал 34 ошибочных представления и заблуждения, относящихся как к календарному, так и к системному времени. С большинством из них я столкнулся сам, занимаясь дебаггингом программ (как рабочих, так и тестовых).

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

Заблуждения программистов об именах

Reading time3 min
Reach and readers94K
Две недели назад на Хабре публиковался перевод «Заблуждения программистов о времени», который по своей структуре и стилю основан на этом классическом тексте Патрика Макензи, опубликованном два года назад. Поскольку заметка о времени была крайне благоприятно воспринята аудиторией, то, очевидно, имеет смысл перевести и исходную статью об именах и фамилиях.

Джон Грэхем-Камминг (John Graham-Cumming) сегодня жаловался в своём блоге, что компьютерная система, с которой он работал, не приняла его фамилию из-за недопустимых символов. Конечно, там нет недопустимых символов, потому что любой способ, как человек представляет себя, — по определению — является подходящим идентификатором. Джон выразил сильную досаду насчёт данной ситуации, и он имеет полное право, потому что имя — суть нашей индивидуальности, практически по определению.
Читать дальше →

Заблуждения программистов относительно времени

Reading time3 min
Reach and readers96K

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


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


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

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

Вы все на одно лицо: 1 из 50 человек не узнаёт окружающих (и может не знать об этом)

Reading time5 min
Reach and readers87K
Прозопагнозия, или лицевая слепота — это расстройство восприятия лица, при котором человек не может узнавать лица, но другие предметы, включая морды животных, узнаёт без каких-либо сложностей. Людям с этим заболеванием приходится адаптироваться и узнавать окружающих по голосу, походке, причёске. При этом сами они чаще всего никогда не слышали о своём диагнозе.


Брэд Питт — один из людей, страдающих от прозопагнозии. Источник
Читать дальше →

5 мифов о ведущих разработчиках, от которых мне становится грустно

Reading time4 min
Reach and readers41K
Ведущие разработчики, они же Senior developers. Это те самые люди, которые на своем веку перевыполняли уже все возможные задачи. Это люди, которые входят в переговорку, открывая дверь с ноги. Они — решение всех проблем компании и гарантия светлого будущего. Они не изучают технологии, а изобретают. Они знают бизнес-требования до того, как те были сформулированы. И самое главное: они четко и отчетливо представляют себя через пять, а иногда и через десять лет.

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

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

Ричард Хэмминг: Глава 23. Математика

Reading time17 min
Reach and readers13K
imageПривет, Хабр. Помните офигенную статью «Вы и ваша работа» (+219, 2194 в закладки, 345k прочтений)?

Так вот у Хэмминга (да, да, самоконтролирующиеся и самокорректирующиеся коды Хэмминга) есть целая книга, написанная по мотивам его лекций. Давайте ее переведем, ведь мужик дело говорит.

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

Мы уже перевели 5 глав.

Глава 23. Математика


(За перевод спасибо Jerry OK, который откликнулся на мой призыв в предыдущей главе".) Кто хочет помочь с переводом — пишите в личку или на почту magisterludi2016@yandex.ru

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

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

Пожалуй, «излюбленное» её определение, данное самими математиками, таково:
«Математика — это то, что делается математиками, а математики — это те, кто делает математику.»
Читать дальше →

Пишем бота-кликера на Python для Lineage 2

Reading time7 min
Reach and readers193K


Предисловие


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


Когда-то в школьные годы был увлечен одной из популярных MMORPG — Lineage 2. В игре можно объединяться в кланы, группы, заводить друзей и сражаться с соперниками, но в общем игра наполнена однообразными действиями: выполнением квестов и фармом (сбор ресурсов, получение опыта).


В итоге решил, что бот должен решать одну задачу: фарм. Для управления будут использоваться эмулированные клики мыши и нажатия клавиш клавиатуры, а для ориентирования в пространстве — компьютерное зрение, язык программирования — Python.

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

Parallel STL. Быстрый способ ускорить C++ STL код

Reading time10 min
Reach and readers33K
За пару последних десятилетий, пока вычислительные системы эволюционировали от одноядерных скалярных до многоядерных векторных архитектур, значительно выросла популярность управляемых языков, а также появились новые языки программирования. Но старый добрый C++, позволяющий писать высокопроизводительный код, остается более чем популярным. Однако, до недавнего времени стандарт языка не предоставлял каких-либо инструментов для выражения параллелизма. Новая версия стандарта (C++17 [1]) предоставляет набор параллельных алгоритмов Parallel STL, дающий возможность преобразовать существующий последовательный C++ код в параллельный, что, в свою очередь, позволяет задействовать такие аппаратные возможности, как многопоточность и векторизация. Эта статья познакомит вас с основами Parallel STL и его реализацией в Intel Parallel Studio XE 2018.


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

Применяем принцип KISS к самим принципам проектирования

Reading time3 min
Reach and readers16K

(Update: заменил картинку на более нейтральную)


Коллега упомянул в беседе принцип "Convention over configuration", и я подумал, блин, наверно это что-то крутое, нужно изучить, почитать статьи, а то отстану от жизни.


Каково было моё удивление, что вcё обьяснение помещается в одной фразе "Используй дефолты, которые можно при желании переопределять".


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


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

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

Старый компьютер, Windows XP, 512 Мб оперативки, Firefox и интернет

Reading time182 min
Reach and readers362K

После очередного обновления Хабра эта статья отображается не правильно. И полностью исправить последствия этого скорее всего у меня не получится. Но вы можете скачать оффлайн версию статьи rutracker.org/forum/viewtopic.php?t=6421580

Несмотря на пройденное время, многие по прежнему ещё пользуются Windows XP. Кто-то вынужден работать на этой ОС или обслуживать такие компьютеры, у кого-то может быть хобби восстановления старых ПК, некоторых полностью устраивает Windows XP или же из-за своих финансовых или прочих убеждений они не хотят менять старого верного «друга» на нового.
Эта статья, возможно поможет многим обладателям старых компьютеров открыть «второе дыхание» своим музейным экспонатам.

Так как оптимизация такого старого оборудования носит комплексный характер, статья будет состоять из нескольких глав:

— Firefox
— Дополнения к браузеру
— Драйверы
— WindowsXP
— BIOS
— Советы по аппаратной части

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

Нотной грамоте учат неправильно*

Reading time11 min
Reach and readers281K

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


Предполагается, что студент должен страдать самостоятельно освоить ноты, путем многократного повторения. И вообще, если «ниасилил», значит у тебя нет Таланта — иди мести двор.


Представьте что было бы, если бы обычной грамоте учили так же. Но мы, почему-то, в большинстве своем читать и писать таки научились.


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


* Дисклеймер

Прошу прощения, если заголовок статьи показался вам чересчур дерзким и провокационным. Таковым он, в общем-то, и является.


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


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


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

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

Логично ли, что Гугл отклонил кандидатуру Макса Хауэлла, автора Homebrew, за неумение инвертировать двоичные деревья?

Reading time5 min
Reach and readers68K
Disclaimer: Вопрос из заголовка был задан на сайте Quora
и сопровождался ссылкой на твит разработчика Homebrew. Ответил, неожиданно, главный персонаж.

Привет, я — тот самый Макс Хауэлл, так что, по-хорошему, наверное, и не должен был бы тут отвечать.
Читать дальше →

Новинки С++17, которые необходимо использовать каждому

Reading time7 min
Reach and readers43K
Дамы и господа, здравствуйте.

Мы как раз закончили перевод интересной книги Яцека Галовица о STL С++ 17, которую надеемся выпустить чем раньше, тем лучше.


Сегодня же мы хотим предложить вашему вниманию перевод статьи Джулиана Темплмана с сайта «O'Reilly» с небольшим анонсом возможностей стандартной библиотеки нового стандарта С++.

Всех — с наступающим новым годом!
Читать дальше →

Git снизу вверх

Reading time27 min
Reach and readers139K
У этого перевода не совсем обычная история. Системы контроля версий далеки от моих профессиональных интересов. Для рабочих проектов они мне требовались нечасто, причем, разные, так что, каждый раз, когда возникала такая необходимость, я заново вспоминала, как в них делается та или иная операция. А для личных проектов мне хватало возможностей Dropbox, хранящей историю версий файлов.


Изображение из твиттера @girlie_mac

Но вот однажды я на три незабываемых дня попала в роддом — это иногда случается с женщинами. Из развлечений у меня были новорожденная дочь и телефон с большим экраном. Дочь поначалу развлекала плохо (дома она быстро исправилась), а на телефоне помимо книг и фильмов обнаружился текст «Git from the bottom up», который оказался более чем годным… С тех пор прошло почти 3 года, подросшей дочке уже пора самой начинать использовать Git Git стал мейнстримом, если не сказать стандартом в современной разработке, а я с удивлением обнаружила, что перевода на русский этого чуда, полезного не только начинающим, но и продвинутым пользователям Git, до сих пор нет. Исправляю эту ситуацию.
Читать дальше →

Ускорение сборки C и C++ проектов

Reading time13 min
Reach and readers47K
Многие программисты не понаслышке знают о том, что программа на языке C и C++ собирается очень долго. Кто-то решает эту проблему, сражаясь на мечах во время сборки, кто-то — походом на кухню «выпить кофе». Это статья для тех, кому это надоело, и он решил, что пора что-то предпринять. В этой статье разобраны различные способы ускорения сборки проекта, а также лечение болезни «поправил один заголовочный файл — пересобралась половина проекта».

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

Information

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