Pull to refresh
24
0
Константин Волков @kozzztik

User

Почему опытные разработчики пишут тупой код и как распознать новичка за километр

Reading time 3 min
Views 86K
Предлагаю читателям «Хабрахабра» перевод публикации «Why Senior Devs Write Dumb Code and How to Spot a Junior From A Mile Away» за авторством Scott Shipp.


Одна из моих любимых цитат на все времена — Брайана Гетца (Brian Goetz), умнейшего чувака из мира Java, одного из авторов «Java Concurrency in Practice», кроме всего прочего. Цитата взята из интервью, опубликованного на сайте Oracle под заголовком «Пишите тупой код» («Write Dumb Code»). Гетца спросили, как писать хорошо работающий код.
Вот что он ответил
Total votes 165: ↑147 and ↓18 +129
Comments 407

50 цитат о программировании всех времён

Reading time 6 min
Views 158K
Перевёл после прочтения комментариев к статье «О ненависти к C++». В цитатах можно найти ответы на большинство возникших там вопросов.

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

49. Lisp — это не язык, а строительный материал.
— Alan Kay

48. Ходить по воде и разрабатывать программы, следуя спецификации, очень просто… если они заморожены.
— Edward V Berard
Читать дальше →
Total votes 344: ↑336 and ↓8 +328
Comments 137

Почтовый сервер на Linux

Reading time 11 min
Views 294K
Как наладить работу почтового сервера, умеющего принимать и отправлять электронную корреспонденцию, бороться со спамом, взаимодействовать с клиентами? На самом деле, всё довольно просто.

Сегодня поговорим о почтовых серверах на Linux. Мы расскажем о том, как настроить сервер, о широко распространённом в интернете протоколе SMTP, а также о других протоколах, таких, как POP и IMAP. В итоге вы окажетесь обладателем полноценной системы для работы с электронной почтой.



Начнём с SMTP-сервера на Linux
Читать дальше →
Total votes 51: ↑39 and ↓12 +27
Comments 84

Thunderbird и Kontact вместо MS Outlook

Reading time 7 min
Views 46K

Когда вы работаете в крупной компании, где на рабочих станциях в основном стоит ОС Windows, а вы один из немногих пользователей Linux, то вы тратите определенную долю ваших усилий на преодоление сопротивления недружественной ИТ среды. С годами некоторые проблемы остаются в прошлом, но новые появляются. Так например почти исчезли как класс сайты заточенные только под IE. Все меньше страшных .docx, .xlsx файлов приходит по почте. Куда-то исчезли обязательные для всех чудо-юдо программы, которые написаны только для Windows. Теперь почти все можно открывать и редактировать из веб браузера. Изменилось многое, но не все.


Угадай картинку и получи бейсболку в подарок приз знатока почты. В 2000-м это был почтовик года по версии PC Magazine, и я сам пользовался им пару лет. Только по-честному, без поиска картинок.




Кстати о почте, что с ней? В тех организациях, где используется Exchange Server, постоянно приходят события на календарь и как-то неудобно оправдываться тем, что твой почтовик с не взаимодействует календарем, а Outlook-ом ты не пользуешься, так как его нет на Linux. Как правильно настроить почту, чтобы все работало на Exchange Server: почта, календарь, адресная книга, работа с папками? Статью об этом пишу я эту.

Читать дальше →
Total votes 12: ↑11 and ↓1 +10
Comments 68

Python-пакеты и их использование

Reading time 3 min
Views 26K

Всем добрый день!


На Хабре уже поднималась тема организации работы с внешними пакетами с использованием подмодулей или деревьев в Git. Это показалось хорошим решением, но на деле вылилось в неудобства и запутанность. Тогда я решил перенести всё на python-пакеты. Чем и поделюсь сейчас на примере Django приложения.


Читать дальше →
Total votes 33: ↑24 and ↓9 +15
Comments 15

Невидимые друзья вашего github-репозитория

Reading time 13 min
Views 17K
image
Github это незаменимый инструмент, прочно вошедший в жизнь практически каждого разработчика.

Хотя многие из нас используют его постоянно, не все знают, что существует большое количество сторонних (и бесплатных) сервисов и инструментов, которые тесно интегрированы с github и расширяют его функциональность.

В данной статье мы уделим внимание, в основном, инструментам, работающим в инфраструктуре npm. Полный список сервисов, интегрирующихся с github, можно посмотреть на странице github integrations directory.

Сегодня в выпуске:




Читать дальше →
Total votes 43: ↑41 and ↓2 +39
Comments 16

Сказ о том как я свой REST фреймворк с веб-сокетами писал

Reading time 14 min
Views 22K
Эта статья посвящена очередному REST фреймворку (для Python 3), особенностью которого является использование веб-сокетов для обмена данными между клиентом и сервером. О том откуда пришла идея, с чем мне пришлось столкнулся при написании своей первой библиотеки для Python и что из этого в итоге получилось, я расскажу далее.


Для тех, кому интересна эта статья — пожалуйста, заходите под кат.
Читать дальше →
Total votes 17: ↑15 and ↓2 +13
Comments 35

Внедрение DMARC для защиты корпоративного домена от спуфинга

Reading time 9 min
Views 55K
A Thief on the Run by Manweri
A Thief on the Run by Manweri

Привет, Хабр! В этом посте мы снова поговорим о проблеме подделки отправителя (или так называемом спуфинге). В последнее время такие случаи очень участились: подделывается все: письма со счетами за ЖКХ, из налоговой инспекции, банков и так далее. Решить эту проблему помогает настройка строгой DMARC-политики. Мы как почтовая служба проверяем все приходящие к нам письма на DMARC начиная с февраля 2013 года. Мы были первым в рунете почтовым сервисом, поддержавшим стандарты DMARC. Однако чтобы минимизировать число поддельных писем, этого, к сожалению, недостаточно. Главное, чтобы строгий DMARC был поддержан на стороне отправителя. Вот почему мы не устаем качать эту тему, ведем активную разъяснительную работу и всячески призываем всех включать у себя строгий DMARC.

Позитивные сдвиги уже есть: с каждым месяцем мы видим прирост числа корпоративных отправителей, прописавших DMARC, на десятки процентов. Однако безусловно, еще есть над чем работать. Практика показывает, что IT-культура находится на очень разном уровне. Кто-то слышал краем уха про DMARC, но пока не собирается его внедрять. Есть и такие, для кого факт, что в транспортных протоколах электронной почты отсутствует какая-либо проверка и защита адреса отправителя, до сих пор является настоящим откровением. Кроме того, поддержка DMARC — задача непростая. Только на первый взгляд кажется, что достаточно опубликовать запись в DNS, и не требуется никакого дополнительного софта или технических средств (подробнее в нашей статье DMARC: защитите вашу рассылку от подделок). На практике в крупной компании с многочисленными потоками электронной почты и развесистой структурой почтовых доменов все гораздо сложнее. И есть моменты, которые следует предусмотреть и продумать заранее. Именно для таких сложных случаев мы написали эту статью, постаравшись собрать в ней все нюансы.
Читать дальше →
Total votes 51: ↑44 and ↓7 +37
Comments 33

Как не угробить архитектуру сразу же? Видео с лекции Евгения Кривошеева

Reading time 1 min
Views 59K
Всем привет!

Две недели назад в Москве прошла очередная встреча CodeFreeze. Нашим гостем стал Евгений Кривошеев, признанный российский эксперт в области архитектуры программных систем, консультант из Scrumtrek/Skilltrek. Евгений прочитал офигеннейшую лекцию по архитектуре, как он любит и умеет.



В рамках этой встречи Евгений предложил обсудить последовательность решений, критичных для архитектуры любой системы. Выстраданная последовательность действий такова:
  • Точки зрения на систему, или Почему мы слепнем при проектировании
  • Адресация ключевых рисков, или Гордыня убивает
  • Учитываем контекст, или Как не долбиться в закрытую дверь

Краткое содержание и видеозапись
Total votes 46: ↑43 and ↓3 +40
Comments 18

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

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

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

На самом деле, я повидал так много заблуждений, которые оставляют след в чужих (и моих собственных) программах, что посчитал полезным составить список самых частых проблем.
Читать дальше →
Total votes 241: ↑218 and ↓23 +195
Comments 216

Аквапоника своими руками с применением микроконтроллера

Reading time 5 min
Views 157K
image

Всем привет. Как-то на просторах Интернета мне попался интересный американский проект. Суть проекта в том, что можно выращивать различные агрокультуры, используя не почву, а, так сказать, симбиоз рыб с растениями. Получается замкнутый цикл. Вы кормите и выращиваете рыб, их продукты жизнедеятельности, растворённые в воде, являются питательной средой для растений. А эти растения, получая питательные вещества для роста из воды, очищают её. Весь процесс повторяется по кругу. Данный метод называется «аквапоника».
Читать дальше →
Total votes 112: ↑112 and ↓0 +112
Comments 122

Эра фаблетов: Проектирование для крупных экранов

Reading time 10 min
Views 20K


«С тех самых пор, как Samsung создала свою линию Galaxy Note, тем самым открыв рынок «больших телефонов», подобные девайсы называются фаблетами. Такое название они получили в силу своего размера, который находится где-то между размерами традиционного телефона и небольшого планшета»

За последнее время я успел прочитать много статей о том, что новая серия iPhone 6 заставит нас всех изменить подход к проектированию пользовательского интерфейса для мобильных телефонов. Возможно, это справедливо для тех дизайнеров, которые до сих пор фокусируются только на iOS и делают вид, что остальной мир не существует.
Читать дальше →
Total votes 27: ↑22 and ↓5 +17
Comments 22

Ликбез: почему дома интернет по Wi-Fi тормозит

Reading time 5 min
Views 284K


Классическая схема включения услуг Интернет в многоквартирном жилом доме выглядит следующим образом: ТКД (точка коллективного доступа) — витая пара — роутер в квартире клиента, к которому подключены клиентские устройства по проводу и по Wi-Fi.

Характерные жалобы абонентов – скорость ниже тарифа, и возникают регулярные «замирания» при работе в интернете, что выражается долгим открыванием страниц в браузере, прерываниями видео, потерей связи с игровыми серверами и т.д. Данное поведение носит нерегулярный характер, а наиболее часто возникает в часы наибольшей пользовательской активности примерно с 18:00 до 23:00 в зависимости от города.

Есть несколько простых шагов, которые позволят определить возможную причину подобных проблем и решить 90% пользовательских ситуаций. Они ниже.
Читать дальше →
Total votes 87: ↑54 and ↓33 +21
Comments 164

Эти незаменимые регистрационные карточки

Reading time 10 min
Views 73K
image

Продолжается цикл постов, посвященных старинной офисной технике.
В прошлых постах я рассказывал о русских счетах и приспособлениях для копирования, в настоящем посте предлагаю вниманию хабравчан иллюстрированный обзор о регистрационных карточках.
Пост длинный из-за множества картинок.
Читать дальше →
Total votes 168: ↑165 and ↓3 +162
Comments 40

История рождения, развития и смерти Flight Simulator

Reading time 7 min
Views 29K
subLOGIC Flight Simulator

Flight Simulator — это самая долгая и успешная серия из всех когда-либо созданных симуляторов. В истории её развития интересно то, как код и принципы, заложенные в конце 70-ых, оставались неизменными десятилетиями.

В 1975-ом году Брюс Артвик получил степень бакалавра естественных наук как инженер-электрик в Иллинойском университете. Не стоит думать, однако, что ему была далека кибернетика: изначально, в 1973 году он выбрал проектирование ЭВМ как свою специальность, и лишь позже сменил направление учебы на электротехнику, поскольку считал, что в эти ранние годы развития компьютерной техники людям будет понятней такая ученая степень. В 1975-1976 гг. параллельно с работой в группе, разрабатывавшей для Digital Computer Lab графические терминалы, где Брюс мог общаться с Кеном Томпсоном, создателем оригинального UNIX, и работать с одной из первых UNIX-машин — PDP-11, Артвик находил время для летных уроков ради написания диссертации, темой которой стала многослойная динамическая компьютерная графика полета. Артвик рассмотрел модель полета воздушного судна, показываемую на экране вычислительной машины, что фактически означало рождение всей серии.
Читать дальше →
Total votes 97: ↑91 and ↓6 +85
Comments 55

fheroes2 — Open Source движок Heroes of Might and Magic II

Reading time 1 min
Views 8.6K

free heroes2 — свободная версия движка Heroes of Might and Magic II. Написан с использованием SDL русским (вроде бы) программистом. Существуют порты на Windows, Linux, WM, WinCE, Dingoo a320, Cowon V5… ну почти везде. Все кто хочет узнать больше — под кат
Читать дальше →
Total votes 117: ↑110 and ↓7 +103
Comments 97

Мобильник на кока-коле

Reading time 2 min
Views 1.3K
Инженеры из Лондона создали телефон, способный работать на Кока-коле, либо любой другой холодной жидкости, содержащей сахар. В качестве примера исследователи продемонстрировали мобильник Nokia, работающий на всем известной коричневой газировке.

Дайци Женг, один из разработчиков новинки, говорит, что их телефон может работать в 3-4 раза дольше, чем точно такая же модель на литий-ионном аккумуляторе. Новый телефон полностью экологичен и выигрывает у своих собратьев ещё и тем, что время его зарядки составляет несколько секунд — именно столько времени нужно, чтобы залить новую порцию сладкой воды в специальный контейнер позади телефона.
Читать дальше →
Total votes 61: ↑51 and ↓10 +41
Comments 85

Еще десять маленьких программ, с которыми уютно

Reading time 4 min
Views 13K
Всем привет.
В этом посте я опишу несколько маленьких и удобных windows-программ, к тому же абсолютно бесплатных. Предыдущий пост вызвал бурную дискуссию, в результате которой, как водится, родилась истина :)
Итак, этот пост — дань благодарному хабрасообществу — в комментариях по крупицам собрались полезные программки, о которых, возможно, мы бы никогда и не услышали. Заранее извинюсь перед людьми, которые предлагали свои программы, не вошедшие в этот обзор — в каментах было много утилит, так или иначе дублирующих функции друг друга, и опробовать их все, сравнить и разложить по полочкам — задача для википедии. :)
Ну что ж, от слов к делу.

01) Сворачиваем окно в заголовок и не только — куча возможностей в обмен на 90 килобайт
02) Сворачиваем окно в трей правым кликом по «крестику»
03) Создаем виртуальные рабочие столы — теперь с помощью бесплатной программы
04) Двигаем кнопки окон на панели задач как табы в браузере
05) Клейкие листочки на рабочем столе — когда не хочется заносить в ToDo
06) Мини-консоль для быстрого запуска программ по алиасам
07) Мгновенный поиск по компьютеру — программа-индексатор жесткого диска
08) Копируем текст откуда угодно, даже из рисунков
09) создаем хранилище заметок с вложениями посредством быстрой и бесплатной программы
10) управляем буфером обмена — теперь можно запомнить больше!

Поподробней...
Total votes 132: ↑117 and ↓15 +102
Comments 122

Математика для тестировщиков

Reading time 17 min
Views 40K
Доклад Никиты Налютина на конференции SQA Days – 13, 26-27 апреля 2013 г. Санкт-Петербург, Россия

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



Читать дальше →
Total votes 32: ↑26 and ↓6 +20
Comments 6

Автоматизация складских процессов интернет-магазина: опыт Аудиомании — Часть 2

Reading time 6 min
Views 27K


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

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

Читать дальше →
Total votes 36: ↑34 and ↓2 +32
Comments 17

Information

Rating
Does not participate
Location
Пушкин, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity