Рубрика «Программирование» - 1067

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

Проблема в контроле. Я стал жестче и глубже контролировать процесс разработки и… стал тратить на этот контроль слишком много ресурсов.

Основной принцип прост. Если контролю подлежит 10-20% случаев, то на контроль надо тратить… 0% ресурсов. Баги и переписывания всё равно будут.

Немного теории и аналогий

Читать полностью »

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

Проблема в контроле. Я стал жестче и глубже контролировать код и… стал тратить на этот контроль слишком много ресурсов.

Основной принцип прост. Если контролю подлежит 10-20% случаев, то на контроль надо тратить… 0% ресурсов. Баги и переписывания всё равно будут. Но лучше разделить кодирование и отладку и на время кодирования об ошибкахЧитать полностью »

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

Проблема в контроле. Я стал жестче и глубже контролировать код и… стал тратить на этот контроль слишком много ресурсов.

Основной принцип прост. Если контролю подлежит 10-20% случаев, то на контроль надо тратить… 0% ресурсов. Баги и переписывания всё равно будут. Но лучше разделить кодирование и отладку и на время кодирования об ошибкахЧитать полностью »

image
Мы продолжаем публиковать на Хабре лекции курса «Сетевое программирование в UNIX». Хотя тема второй лекции – не сетевая, ее можно считать смежной с сетевым программированием. Видео посвящено способам обработки нескольких клиентов в одном сетевом сервере. «Использование более одного процесса можно организовать по-разному. Можно создавать процессы заранее (это модель prefork) или делать это по мере необходимости. Оба способа рассмотрены в лекции», — рассказал Александр Патраков, автор курса.

Стоит отметить, что в нашем курсе не затронутаЧитать полностью »

Недавно у меня возникла такая необходимость — использовать распознавание музыки в собственной программе. Программа разрабатывалась на C#, это сортировщик коллекции mp3 файлов, заточенный под себя. В двух словах скажу, что к примеру, он умеет распознавать по ID3 тэгам принадлежность произведения к классической музыке, и соответственно раскладывать по папкам на диске не /Исполнитель (год-год)/Альбом (год)/Произведение, а /Композитор/Альбом/Произведение.
Изначально, мне пришла в голову идея использовать для этой цели Winamp, так как он неплохо справляется с задачей распознавания ID тэгов по отпечатку аудио. Есть идея — есть реализация! ВЧитать полностью »

Понадобилось мне, чтобы торрент клиент оповещал меня в QIP о закачке очередной порции добра.
Ринулся я искать подходящую утилиту с интерфейсом командной строки для отправки XMPP сообщений… и ничего не нашел — кругом клиенты, не заточенные для нужд автоматизации. Отсутствие очевидных кандидатов подвигло меня к написанию собственной утилиты.
Для того, чтобы быстро сваять что-то для собственного потребления я использую ruby.
Весь код помещается в 12 строк, хотя конечно можно ужать и в одну.
require 'rubygems'
require 'xmpp4r/client'

include Jabber

server, login, password = "qip.ru", "my_login", "my_password"
to, subject, body = "someone@qip.ru", "XMPP4R test", "Hi, this is my first try from XMPP4R!!!"

Jabber::debug =Читать полностью »

Введение


Здравствуйте. Этот мини гайд для тех, кто хочет настроить подсветку Brackets (скобочек), как, например, в notepad++, при этом не используя сторонних плагинов.

image

Для этого нам понадобится сам Sublime Text 3, программа-архиватор, официальная документация.
Читать полностью »

Современные тенденции в Web-разработке, или «лёгкий» backend

Хотелось бы поделиться размышлениями о наметившихся тенденциях в Web-разработке.

На сегодняшний день в мире Web-разработки существует почти официальное разделение разработчиков на категории frontend и backend.

Frontend это те, кто делает пользовательский интерфейс для клиентского устройства.
Backend разработчики обеспечивают серверную часть функционала Web-сайта.

В различных публикациях, со стопроцентным совпадением, обозначен набор рабочих инструментов frontend разработчика. Это HTML, CSS и JavaScript (плюсом есть ещё упоминания о CSS-фреймворках, но CSS-фреймворк это тот же CSS, а фреймворк понятие растяжимое, каждый может сам написать себе фрейворки хоть и на HTML, хоть и на JavaScript).

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

Зачем же frontend разработкам нужен backend?
Читать полностью »

Привет! Представляю вашему вниманию перевод статьи "The dark side of ergonomics".

Дисклеймер: Тема, о которой я собираюсь рассказать, несколько спорна и потенциально непопулярна. Я не собираюсь троллить, провоцировать холивар или задевать чьи-либо чувства. Не давайте моему несогласию с чем-то препятствовать вам. Если бы вы и люди вроде вас не проделали столько отличной работы над Rust, я бы не стал о чем-либо спорить. Моё намерение в том, чтобы поделиться иной точкой зрения и начать разумную дискуссию, а не войну. Поэтому, я попрошу кое о чём. Не соглашайтесь с тем, что я пишу, если хотите, но попробуйте обдумать это. И если у вас возникнет желание прокомментировать, сделайте это, но, может быть, дайте себе полчаса на то, чтобы эмоции остыли. У меня тоже есть эти чувства, и обещаю, что постараюсь сделать то же самое (я перечитываю эту статью уже несколько часов).

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js