Pull to refresh
  • by relevance
  • by date
  • by rating

Откуда берутся NaNы?

C++ *
Пользователь yruslan опубликовал хорошую статью про арифметику с плавающей запятой: «Что нужно знать про арифметику с плавающей запятой».

Хочу добавить к ней пару поучительных примеров. Ситуации, которые я опишу, встречались несколько раз в моей практике. Ошибки, которые при этом порождались были очень редкими, трудно воспроизводимыми и сложными в поиске.

Возможно, я сейчас буду рассказывать прописные истины, но вызывает удивление частота, с которой люди забывают, что числа которые описывает стандарт IEEE754 это не то же самое, что вещественные числа.
Читать дальше →
Total votes 79: ↑77 and ↓2 +75
Views 3.2K
Comments 22

Почему бакалавриат в России готовит ИТ-недоучек? Советы первокурсникам

Studying in IT
Поздравляю всех поступивших в ВУЗ!

Хочу поделиться некоторыми мыслями по поводу ИТ-образования в России. Шо, опять?!

В настоящее время Россия переходит на систему бакалавр+магистр. Переходит с большим скрипом.

Чему учат

Что же за зверь такой «бакалавр»?
Откроем новый образовательный стандарт (для примера специальность 230200 «Информационные системы и технологии»).
Бакалавра учат 4 года, из них:
13% Гуманитарный, социальный и экономический цикл
27% Математический и естественнонаучный цикл
1% Физ-ра
3% Практика, НИР
6% Аттестация, диплом
Собственно на предметы по специальности остается ровно 50%. В предыдущем стандарте было 45%.
В эти 50% еще входят такие далекие от компьютеров предметы, как метрология и БЖД.

Читать дальше
Total votes 196: ↑152 and ↓44 +108
Views 56K
Comments 267

Groupon. Show me the money или как знание цифр может помочь бизнесу

Sales management *
Sandbox
На Хабре было уже множество статей по поводу Групона, в большинстве своем в отрицательных тонах. Читая их можно сделать вывод, что Групон типичное кидалово, когда клиент получает непонятно что, непонятно за какие деньги, непонятно с каким выхлопом. Но если немного изменить ракурс, все становится чуть-чуть не так, или даже совсем не так. О правильном использовании Групона и не только под катом.
Читать дальше →
Total votes 88: ↑69 and ↓19 +50
Views 979
Comments 56

5 основных анти-паттернов системного администрирования

System administration *Puppet *
Sandbox

Введение


Эта статья – скорее из разряда «для самых маленьких», чем «для умудренных опытом», но она призвана повышать профессиональную культуру системных администраторов.
В силу специфики работы мне «по наследству» достается самый разнообразный облачный ад, который приходится разгребать, оптимизировать, приводить в чувство и делать прозрачным и красивым. Эти заметки, пожалуй, иллюстрация к тем моментам, которые вообще недопустимы в системном администрировании.
В причинах, которыми порождаются эти анти-паттерны, можно разбираться очень долго: дедлайны, законы и темпы бизнеса, да и просто идиотизм, наконец. Но цель статьи другая. Мне бы хотелось породить конструктивную дискуссию. А вот уже её результаты и являются основной целью статьи.
Читать дальше →
Total votes 81: ↑71 and ↓10 +61
Views 46K
Comments 59

Введение во фреймворки (Часть 1)

IT systems testing *
Translation
Автоматизированное тестирование
Автоматизированное тестирование (АТ) наиболее эффективно, когда реализовано с помощью фреймворка. Несмотря на то, что в АТ термин фреймворк зачастую используется для описания совокупности объектов, которая формирует инструмент модульного тестированиия, эта статья будет в основном сфокусирована на фреймворках другого рода. Мы обсудим типы фреймворков, которые могут быть определены как совокупность абстрактных понятий, процессов, процедур и сред, с помощью которой автоматические тесты проектируются, создаются и реализуется. Кроме того, это определение фреймворка включает в себя физические объекты, используемые для создания тестов и их реализации, а также для организации логического взаимодействия между компонентами.
Автоматизированное тестирование (и, следовательно, фреймворки) развивалось годами, формируясь и усложняясь с каждой новой фазой эволюции. Эти фазы могут быть описаны в терминах трех поколений, каждое из которых обладает набором недостатков и преимуществ, благодаря которым каждое из них остается актуальным, несмотря на новые разработки. Представленные ниже понятия обычно используются для автоматизации функционального тестирования, но в некоторых случаях их можно применить и для решения задач модульного тестирования.
Читать дальше →
Total votes 17: ↑10 and ↓7 +3
Views 20K
Comments 0

Введение во фреймворки (Часть 2)

IT systems testing *
Translation
Тестирование
Часть 1

Второе поколение фреймворков

Это поколение является промежуточным уровнем фреймворков автоматизированного тестирования, среди них могут быть и достаточно простые фреймворки, а могут быть и достаточно хорошо спроектированные. Подобные фреймворки должны рассматриваться в случае, когда поддержка автотестов является важным фактором. Хорошее понимание этого поколения фреймворков является важным, так как на концепциях фреймворков этого уровня основываются фреймворки третьего поколения.
К фреймворкам второго поколения относятся фреймворки ориентированные на данных и фреймворки использующие функциональную декомпозицию. Большинство фреймворков этого уровня являются гибридами и используют оба подхода, но так как возможно использование только одного из них, то эти подходы будут рассмотрены независимо друг от друга.
Читать дальше →
Total votes 8: ↑4 and ↓4 0
Views 11K
Comments 3

Три правила хорошего программирования

Website development *
Sandbox
В последнее время я видел мало действительно хорошего кода, много посредственного и очень много — плохого. (Много того, что я писал раньше — особенно, когда я только начинал — относится к последним, увы.) Читая случайные статьи в интернете и профессиональные книги, я пришел к выводу, что писать хороший код — легко. Невероятно трудно, но в то же время легко. На самом деле, это настолько просто, что сводится к трем правилам.
Читать дальше →
Total votes 70: ↑55 and ↓15 +40
Views 58K
Comments 20

Product management: от неплохой идеи к уместной фиче

Project management *
Product manager – позиция неоднозначная. На постсоветском пространстве еще не сложилось полноценной культуры управления продуктом, хотя продуктовых компаний уже в общем-то немало. «Продактами» становятся бывшие бизнес-аналитики, проектные менеджеры, маркетологи и другие специалисты, каждый из которых по-своему подходит к своим новым задачам. Я хотел бы поделиться несколькими тезисами о работе с новыми фичами продукта, которые кажутся важными с моей колокольни.

image
Это тоже в своем роде управление продуктами, но речь пойдет о другом.

Disclaimer:

Едва ли хоть что-то из сказанного ниже может являться универсальным советом. Я в основном занимаюсь сервисами, с которыми практически не сталкивается пользователь, что накладывает своеобразный отпечаток на работу и те правила, которыми я руководствуюсь.
Читать дальше →
Total votes 18: ↑15 and ↓3 +12
Views 14K
Comments 7

Локальный интернет?

Information Security *IT Standards *
Recovery mode
Несмотря на всю «желтизну».
Надёжность – это правильно, но люди, не делайте Интернет «нашим» или «вашим».

Сделайте его лучше действительно общим, чтобы никто не смог его контролировать при всём желании – ни Штаты, ни Россия, ни кто-то ещё.
Как – это вопрос к спецам.

www.interfax.ru/russia/397541
russian.rt.com/article/50608
Total votes 47: ↑14 and ↓33 -19
Views 5.4K
Comments 19

Одна точка зрения на тестовое задание

IT career
«Смысл поста можно выразить в одной фразе». Знакомо?

Просто приведу точку зрения одного работодателя (где я ПМ и иногда вынужденно HR):

Тестовое задание нужно, чтобы показать, на что вы способны, а не рассказать о том, что бы вы сделали, если бы это был не тест.


Минусуйте, но я оставлю это здесь.
Total votes 55: ↑15 and ↓40 -25
Views 5.8K
Comments 15

Какая-такая Data? Или ещё раз про MapReduce

InterSystems corporate blog C++ *Algorithms *
Big Fish Small Fry by John Pollack Если Вы последние 10 лет провели на удаленном острове, без интернета и в отрыве от цивилизации, то специально для Вас мы попытаемся еще раз рассказать про концепцию MapReduce. Введение будет небольшим, в объеме достаточном, для реализации концепции MapReduce в среде InterSystems Caché. Если же Вы не сильно далеко удалялись последние 10 лет, то сразу переходите ко 2ой части, где мы создаем основы инфраструктуры.


Читать дальше →
Total votes 32: ↑27 and ↓5 +22
Views 19K
Comments 15

Киллер фича Vim

Programming *VIM *

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


Гуглим, выясняется, что для превращения вима в нормальный редактор нужно нажать i. Только сохранить поредактированный текст нельзя, перед этим надо несколько раз нажать эскейп, а потом набрать :w. А, чтобы его закрыть, нужно нажать эскейп, а потом набрать :q. Тяжёлое наследие прошлого. Ну, зато вим есть везде.


Но в какой-нибудь из статей, рассказывающей, как провести 5 минут в виме и остаться в живых, обязательно будет написано, что вим — лучший текстовый редактор в мире. И ещё выяснится, что люди в нём программируют. То есть, натурально, пишут код. То есть, на дворе 21 век, в любой момент можно скачать Visual Studio, Intellij Idea или, прости господи, Eclipse, а они пишут код в виме. Добровольно.


Читать дальше →
Total votes 123: ↑82 and ↓41 +41
Views 45K
Comments 622