Как стать автором
Обновить
70
Карма
0
Рейтинг
Пешков Евгений @GraDea

Развиваю DDDevotion💪

Уменьшаем количество ошибок с помощью чек-листа Code Review

Разработка веб-сайтов *Программирование *
Перевод
В нашей статье об эффективных ревью кода мы рекомендовали использовать чеклист. Чеклисты (контрольные списки) — это великая вещь в ревью: они гарантируют, что ревью действительно прошло через вашу команду. Также они способствуют выявлению и решению общих трудностей.

Исследование, проведенное Software Engineering Institute, показывает, что программисты делают 15-20 распространенных ошибок. Добавив такие ошибки в чеклист, вы можете быть уверены, что заметите их в момент появления и поможете от них избавиться надолго.

Чтобы вам было от чего отталкиваться, вот вам список типичных пунктов:
Читать дальше →
Всего голосов 26: ↑25 и ↓1 +24
Просмотры 29K
Комментарии 13

14 вопросов об индексах в SQL Server, которые вы стеснялись задать

Разработка веб-сайтов *Программирование *SQL *Microsoft SQL Server *
Туториал
Перевод
Индексы — это первое, что необходимо хорошо понимать в работе SQL Server, но странным образом базовые вопросы не слишком часто задаются на форумах и получают не так уж много ответов.
Роб Шелдон отвечает на эти, вызывающие смущение в профессиональных кругах, вопросы об индексах в SQL Server: одни из них мы просто стесняемся задать, а прежде чем задать другие сначала подумаем дважды.


От переводчика
Данный пост является компиляцией двух статей Роба Шелдона:

Если вы пишите запросы на языке T-SQL, но плохо понимаете откуда берутся данные, то стоит прочитать данный перевод.
Если же вы захотите знать больше, то в конце перевода я даю тройку книг с которых следует двигаться дальше.

Перейти к чтению
Всего голосов 40: ↑37 и ↓3 +34
Просмотры 934K
Комментарии 44

Оптические иллюзии: игрушка «Дракончик-наблюдатель»

Чулан
В связи с тем, что наступила пятница, можно порадовать себя и окружающих собственноручно склеенным бумажным 3D-дракончиком. Как порядочный молодой дракон, он умеет вертеть головой и пристально следить за всеми вашими действиями. В общем, смотрим видео, а потом тут вот качаем чертеж, вырезаем и клеим.
Всего голосов 58: ↑29 и ↓29 0
Просмотры 1.1K
Комментарии 24

Вертикальная черта, затем ноль

JavaScript *
Заголовок, выраженный словами, понадобился только для поисковой находимости. Но речь пойдёт о роли символьной конструкции «|0» в JavaScript.

Впервые на неё я обратил внимание, когда переводил FAQ про asm.js и читал спецификации этого подмножества языка JavaScript. Там «|0» служит, например, для указания типа значения, возвращаемого из функции: увидели «|0» после значения — значит, перед нами знаковое целое.

Вдругорядь я заметил конструкцию «|0» в примере кода на Гитхабе, где происходило преобразование к целому числу результата деления на 1024².

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

( 3|0 ) === 3;       // целые числа не изменяет
( 3.3|0 ) === 3;     // у дробных чисел отбрасывает дробную часть
( 3.8|0 ) === 3;     // не округляет, а именно отбрасывает дробную часть
( -3.3|0 ) === -3;   // в том числе и у отрицательных дробных чисел
( -3.8|0 ) === -3;   // у которых Math.floor(-3.3) == Math.floor(-3.8) == -4
( "3"|0 ) === 3;     // строки с числами преобразуются к целым числам
( "3.8"|0 ) === 3;   // при этом опять же отбрасывается дробная часть
( "-3.8"|0 ) === -3; // в том числе и у отрицательных дробных чисел
( NaN|0 ) === 0;     // NaN приводится к нулю
( Infinity|0 ) === 0;     // приведение к нулю происходит и с бесконечностью,
( -Infinity|0 ) === 0;    // и с минус бесконечностью,
( null|0 ) === 0;         // и с null,
( (void 0)|0 ) === 0;     // и с undefined,
( []|0 ) === 0;           // и с пустым массивом,
( [3]|0 ) === 3;          // но массив с одним числом приводится к числу,
( [-3.8]|0 ) === -3;      // в том числе с отбрасыванием дробной части,
( [" -3.8 "]|0 ) === -3;  // и в том числе с извлечением чисел из строк,
( [-3.8, 22]|0 ) === 0    // но массив с несколькими числами вновь зануляется
( {}|0 ) === 0;                // к нулю также приводится пустой объект
( {'2':'3'}|0 ) === 0;         // или не пустой
( (function(){})|0 ) === 0;    // к нулю также приводится пустая функция
( (function(){ return 3;})|0 ) === 0;    // или не пустая

Итак, во-первых, перед нами удобное средство отбрасывания дробной части.

  • По отношению к отрицательным числам оно полезно тем, что дробное число превращается не в ближайшее меньшее целое число (возрастая по модулю), как это случилось бы после «Math.floor()», а в ближайшее меньшее по модулю целое число (возрастая по значению). Нередко именно это и требуется.
     
  • По отношению к положительным числам оно полезно уж тем одним, что конструкция «|0» более чем на порядок короче по сравнению с «Math.floor()». Поэтому она может и должна вызывать у разработчиков привыкание не меньшее, чем та принятая в jQuery запись «$()», о которой я говорил четыре дня назад, что с неё никто добровольно не перейдёт обратно на «document.getElementsByClassName()», например.

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

Читать дальше →
Всего голосов 184: ↑159 и ↓25 +134
Просмотры 40K
Комментарии 93

Chrome Logger — серверсайд логи в консоли хрома

Разработка веб-сайтов *PHP *Django *


Chrome Logger это Google Chrome расширение для отладки серверсайд приложений в консоли хрома.

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

Инструкции по применению инсайд.
Читать дальше →
Всего голосов 75: ↑71 и ↓4 +67
Просмотры 33K
Комментарии 27

Делаем приватный монитор из старого LCD монитора

DIY или Сделай сам
Перевод


Вы наконец-то можете сделать кое-что со своим старым LCD монитором, который завалялся у Вас в гараже. Превратите его в шпионский монитор! Для всех вокруг он будет выглядеть просто белым экраном, но не для Вас, потому что у Вас будут специальные «волшебные» очки.

Всё что Вам нужно – это пара старых очков, нож для бумаги и растворитель для краски.

Читать дальше →
Всего голосов 1484: ↑1466 и ↓18 +1448
Просмотры 955K
Комментарии 321

Functional thinking: Thinking functionally, Часть 1

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

Эта история может показаться Вам знакомой, поставив функциональное программирование на место бензопилы. Проблема в совершенно новой парадигме программирования — не изучение нового языка. Более того, синтакс языка — это всего лишь детали. Вся тонкость же — научиться мыслить иначе. Это то, почему я оказался тут — заводящий бензопилы и “функциональный” программист.

Итак, добро пожаловать в Functional thinking. Эта серия исследует предмет функционального программирования, но не несет исключительной направленности описать функциональные языки. Как я покажу дальше, написание кода в функциональном стиле касается дизайна, компромиссов, разных повторно используемых кусков кода и служит основой для иных догадок. Насколько это окажется возможным, я попытаюсь показать концепции функционального программирования в Java (или близких к Java языках) и перейду к другим языкам, чтобы осветить возможности, отсутствующие на данный момент в Java. Я не полезу сразу в дебри, рассказывая о довольно необычных вещах, таких как монады (monads). Напротив, я постепенно проведу Вас через новый путь мышления.

Эта и пара следующих частей выступят в роли быстрой экскурсии по предметам, связанным с функциональным программированием, включая базовые концепции. Некоторые из этих концепций в дальнейшем будут рассмотрены более детально в то время, как я буду постепенно расширять контекст применения на протяжении всей серии. В качестве отправной точки нашей экскурсии я покажу Вам две разные реализации решения задачи. Одна написана в императивном стиле и другая — с некоторыми функциональными особенностями.
Читать дальше →
Всего голосов 74: ↑66 и ↓8 +58
Просмотры 15K
Комментарии 102

Где наша бизнес-логика, сынок?

Проектирование и рефакторинг *
Перевод
Спасибо небу за то, что в субботу шел дождь, и я это прочитал (а вы скажите спасибо за то, что перевел). В воскресенье, однако, светило солнце и форматирование текста было отложено.

Отдельное спасибо автору, за разрешение отдельной публикации.

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

не поддайся темной стороне силы usernаme
Всего голосов 121: ↑112 и ↓9 +103
Просмотры 76K
Комментарии 122

Прохлаждаемся: кондиционер своими руками

DIY или Сделай сам
Статья даже для тех, у кого руки не от туда растут.

Мечта москвичаПреамбула: меня 5 недель не было в Столице всея России. По возвращении жара меня встретила ещё в Пскове, а дым – в Твери. Но в Москве меня ждал ещё один сюрприз – ажиотаж на вентиляторы и кондиционеры. Внимание! Под катом куча картинок и трафика.

Вентиляторов нигде не оказалось, кондиционеров тоже. Даже если и удастся что-то найти – наценка будет x4 и более. А очередь на установку кондишена – перевалила за 3 недели ожидания.

Ну не безобразие, скажете? Нет, не безобразие. Пораскинув мозгами, в день приезда простенький кондиционер уже стоял у меня в квартире.

Кликайте же скорее все, кто тоже хочет себе прохладу домой.
Всего голосов 271: ↑247 и ↓24 +223
Просмотры 213K
Комментарии 337

Советы программисту-дизайнеру интерфейсов

Интерфейсы *
Нет сложным интерфейсам

Проблема


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

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

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

Читать дальше →
Всего голосов 270: ↑246 и ↓24 +222
Просмотры 11K
Комментарии 147

Именование узлов в сети

IT-инфраструктура *
Хочу поднять вопрос, который, как мне кажется, никто не рассматривал ранее системно. Вопрос звучит так:

как называть узлы и интерфейсы узлов в сети?


Для начала обрисую суть проблемы: когда у вас 2-3-5-10 серверов, то их названия, адреса и т.д. вы быстро запоминаете, и особой путаницы они не вызывают. Но если у вас несколько тысяч серверов (добавим к реальным ещё виртуальные), если у вашего маршрутизатора несколько сотен реальных или виртуальных (в виланах) интерфейсов, каждому из которых нужно дать имя (хотя бы для PTR/A записей в DNS), когда у вас есть интерфейсы для конфигурирования коммутаторов, принт-серверов, сетевых принтеров… В этих условиях нужно реально садиться и думать, как их называть. Лучше садиться думать до того, как начали называть, чем после.

Читать дальше →
Всего голосов 135: ↑121 и ↓14 +107
Просмотры 45K
Комментарии 87

Новая справочно-правовая система «Право.ru»

Я пиарюсь
image

Любая сфера деятельности человека регулируется нормативными документами и законодательными актами. И чем лучше вы подготовлены и информированы, тем проще вам жить в крайне бюрократизированной системе. Справочно-правовая система «Право.ru» интересна прежде всего тем, что предоставляет любому человеку полный доступ к нормативным документам любых субъектов Российской Федерации, а также к судебной практике арбитражных судов, и уже в ближайшем будущем, мнениям ведущих экспертов любых юридических областей.

Читать дальше →
Всего голосов 134: ↑125 и ↓9 +116
Просмотры 1.5K
Комментарии 199

Agile-чеклист в помощь Agile-командам

Блог компании ScrumTrek
Зачем мы это сделали?

Многим известно, что практики Agile/Scrum просты на бумаге. Каждый, кто читал про Agile, может расказать все принципы и практики всего за каких-то полторы минуты (а то и меньше). Однако, не смотря на простые правила организации Agile-процесса, нередко допускают большое количество ошибок. Это приводит к тому, что у вас получается ScrumButt.

Поэтому мы решили написать чеклист по Agile-процессу, основанный на нашем опыте. Он поможет разобраться с базовыми вещами и не наступить на типичные «Грабли» совершаемые большинством команд.
Читать дальше →
Всего голосов 32: ↑29 и ↓3 +26
Просмотры 12K
Комментарии 28

Времена меняются, или смена часовых поясов сразу в пяти регионах РФ

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

Телевизор я не смотрю, возможно, там этот вопрос подробно обсуждается уже давно, но лично для меня эта информация в начале этой недели стала новостью.
До недавнего времени я был уверен, что идея с сокращением числа часовых поясов в России до 5 штук — это просто чьё-то неудачное предложение или очередной бредовый законопроект, который обязательно будет отвергнут и далее обсуждений не пройдёт. Однако, оказывается, все решения на этот счёт «у них там наверху» уже приняты и соответствующие постановления Правительства уже подписаны (В.Путиным) и опубликованы.
Постановление по Кемеровской области было подписано ещё осенью 2009 года, а постановления по Самарской области, Удмуртии, Камчатке и Чукотке были подписаны буквально на днях.

Time Zone changes

Далее рассмотрим когда и как именно будет происходить этот переход, кого это коснётся, чего от этого ждать и как к этому готовиться с точки зрения администрирования IT-инфраструктуры.
Читать дальше →
Всего голосов 119: ↑110 и ↓9 +101
Просмотры 15K
Комментарии 223

Как начать программировать с использованием WPF или Silverlight: Путь обучения для новичков

.NET *
Перевод
Итак, вы новичок в WPF или Silverlight и желаете знать с чего вам начать? Здесь описан мой путь изучения “Как начать с WPF и Silverlight”. Я предполагаю, что вы знаете что из себя представляют эти технологии (на высоком уровне), но не знаете как использовать их.
Читать дальше →
Всего голосов 92: ↑64 и ↓28 +36
Просмотры 46K
Комментарии 22

Удаленное обучение на основе Open Source — BigBlueButton

Учебный процесс в IT
Какое-то время работал с организацией системы обучения на основе ВКС Tandberg. Когда была поставлена задача организации удаленного обучения, Open Source решения были просты и унылы. Конторе пришлось изрядно потратится. Но Open Source не стоит на месте, все больше и больше компаний выходят на рынок с новыми идеями и большинство из них бесплатны для простого обывателя.


Читать дальше →
Всего голосов 85: ↑77 и ↓8 +69
Просмотры 21K
Комментарии 33

XamlWriter и Bindings

.NET *
Доброй ночи Хабра-сообщество.
Я только что получил инвайт к вам в компанию, и сразу же решил написать что-то, что возможно окажется для кого-то полезным… Не судите строго.

Я являюсь одним из разработчиков одного Open Source проекта, одной из основных частей которого является графический редактор, который должен сохранять векторную графику в формате XAML в рамках объектной модели WPF. В процессе разработки, я столкнулся с проблемой. Bindings, созданные из кода ,(или из загруженного XAML файла) не сохраняется обратно в XAML при попытке сериализации стандартным XamlWriter. Как оказалось это стандартное поведение XamlWriter описанное в MSDN. Я пытался найти решение в сети, но нашёл только одну статью на CodeProject. К сожалению, как оказалось, это решение не подходит для сложных XAML документов по ряду причин. Я уже начал рассматривать вариант написания собственного сериализатора, когда увидел, что расширение TemplateBinding прекрасно сохраняется стандартными средствами, это меня натолкнуло на мысль, что ещё не всё потеряно, и вооружившись Reference Source Code от MS и дебагером я начал изучать проблему. И вот что у меня вышло.
Читать дальше →
Всего голосов 35: ↑29 и ↓6 +23
Просмотры 2.4K
Комментарии 22

SharePoint + WCF + jqGrid + jQueryUI. Создание справочника на сайте SharePoint

Разработка веб-сайтов *
Этот пост посвящен описанию создания справочника на сайте SharePoint с использованием WCF-сервиса, библиотеки jQuery и плагинов к ней.

image

Читать дальше →
Всего голосов 49: ↑36 и ↓13 +23
Просмотры 3.5K
Комментарии 11

Были получены исходники 3300 глобальных интернет-проектов

Информационная безопасность *
Пару месяцев назад нами (2Товарища и Антон Исайкин) была обнаружена уязвимость, присущая в основном большим интернет-проектам (вроде Рамблера, Мейла, Яндекса, Оперы и пр.). Удалось получить доступ к файловым структурам известнейших сайтов (в общей сложности 3320 сайтов) и в ряде случаев их полные исходные коды.
Читать дальше →
Всего голосов 1226: ↑1190 и ↓36 +1154
Просмотры 265K
Комментарии 909

ScottGu о Visual Studio 2010: поддержка нескольких мониторов

Visual Studio *
Перевод
image
Это четвертая статья в серии статей посвященных ожидаемому выходу VS 2010 и .NET 4.
[первая, вторая, третья]

В этой статье я расскажу про важное улучшение сделанное для IDE Visual Studio, которое, насколько мне известно, уже нашло немало поклонников — поддержку нескольких мониторов.

Читать дальше →
Всего голосов 56: ↑43 и ↓13 +30
Просмотры 2.1K
Комментарии 44
1

Информация

В рейтинге
3,249-й
Дата рождения
Зарегистрирован
Активность