Pull to refresh
2
0
Николай Кулаков @Kellis

User

Send message

Оканчивается эпоха восьмеричных чисел с ведущим нулём в языке JavaScript

Reading time1 min
Views18K
Равенство parseInt("042") === 42 (как и другие ему подобные) станет верным в Firefox следующей версии (Firefox 21) и в более новых, хотя прежде Firefox действовал по образу и подобию языка Си, считая восьмеричными числа, запись которых начиналася нулём — так что вызов parseInt("042") давал тогда значение 34.

Обсуждение в мозилловской багзилле показывает, что перемена эта произошла под влиянием ECMAScript 5 и соответствует изменениям, случившимся в других браузерах (Safari 6, Google Chrome 23 и др.), в движке V8 (и в основанном на нём Node.js, например), так что в этом году Firefox оставался последним оплотом восьмеричности.

Теперь оплот этот не устоял, оплот этот пал. Обновите свои сайты по мере необходимости, особенно если они имели дело с обработкою записей времени, где нередко попадаются числа с ведущим нулём.
Total votes 74: ↑61 and ↓13+48
Comments68

Практические советы по выбору облачного провайдера

Reading time15 min
Views22K
Выбор облачного провайдера — сложная задача. В этом посте я расскажу, как к ней подступиться, на что обратить внимание в первую очередь, где может быть скрыт подвох, и как вообще построить общение с провайдером. Ниже — о самом сложном и комплексном сценарии развития событий, переносе всей ИТ-инфраструктуры в облако. Давайте рассмотрим перенос в «облако» критической части ИТ-инфраструктуры, недоступность которой в течение даже нескольких часов может нанести существенный ущерб бизнесу компании.

Памятка


Как отсеять хостинг провайдеров
  1. Используется ли виртуализация серверов в принципе?
  2. Используется ли виртуализация систем хранения данных или виртуализация сетей? Это необязательные требования, но они свидетельствуют о технологическом уровне облачного провайдера.
  3. Как управлять услугами? Есть ли портал самообслуживания? Можно ли самому запускать новые серверы, управлять производительностью уже запущенных? Можно ли добавить диски, настроить внутреннюю адресацию и управлять маршрутизацией? Можно ли самому настраивать расписание резервного копирования и запускать задания по восстановлению данных? И т.д.
  4. Как учитываются ресурсы? Есть ли автоматизированный биллинг (посекундный-почасовой)? Или все учитывается руками?


Площадка
  1. Где расположен ЦОД: за границей или в РФ? Насколько далеко от вашего офиса и второго ЦОДа, если он есть? Задержки?
  2. Кому принадлежит ЦОД? Можно ли войти посмотреть?
  3. Он сертифицирован? Какие были аварии на этой площадке ранее?
  4. Какие провайдеры связи присутствуют на площадке?
  5. Как можно будет подключиться к «облаку»?


Услуги «облака»
  1. Что такое vCPU (виртуальное ядро)? Чему оно равняется: целому физическому ядру процессора или, например, его четверти?
  2. Какие используются дисковые ресурсы? Локальные или подключенные по SAN?
  3. Как резервируются каналы до Интернет?
  4. Что делать, если стандартного функционала «облака» не хватает? Можно ли, например, подключить к «облаку» специализированное сетевое оборудование или машины не x64 архитектуры и так далее?
  5. Доступен ли гибридный режим работы? Как сделана интеграция в этом случае?
  6. Есть ли сервис резервного копирования?
  7. Как средства ИБ доступны в базе, какие нужно отдельно заказывать?
  8. При необходимости построения HA (high availability) или DR (disaster recovery) решений возможно ли разнести части размещаемого ИТ-сервиса между двумя ЦОД? Есть ли у провайдера второе облако для построения подобных решений?


Поддержка
  1. Отвечает ли поддержка 24/7, быстро и по делу, а не «мы разберёмся позже»?
  2. Язык — русский и английский?
  3. Как далеко можно выходить за SLA, если очень нужно? (Как правило, на Западе — ни шагу в сторону).
  4. Нужно ли обращаться в поддержку за мониторингом ресурсов и баланса, или все данные доступны через портал самообслуживания?
  5. Есть ли демо-режим? Насколько он отличается от «боевого» и чем конкретно?
Читать дальше →
Total votes 22: ↑17 and ↓5+12
Comments8

ASP.NET MVC. Урок 0. Вступление

Reading time2 min
Views782K
Я пишу сайты на asp.net mvc. В этих 16 главах я хочу рассказать, как я это делаю. Это некий учебник-справочник всех тех знаний, которые я накопил в течение трех лет.

Почему именно asp.net mvc

ASP.NET MVC я люблю потому что:
  • Это .net. Я знаю .net и С#.
  • Это компилируемый код.
  • Это не ASP.NET WebForms, я работаю с html-кодом.
  • Используется MVC-паттерн.
  • Visual Studio – самое популярное средство разработки, в котором есть IntelliSense.
  • Отличные инструменты отладки.


Читать дальше →
Total votes 290: ↑215 and ↓75+140
Comments67

Взломать Wi-Fi за… 3 секунды

Reading time2 min
Views2M
Какой человек не любит халявы? Практически все ее просто обожают, и я не исключение. Вдохновленный статьей «Взломать Wi-Fi за 10 часов» я достал из недр харда BT5, скачанный ранее, и записал его на болванку. Результат не заставил себя ждать, и первый пароль был получен на следующее утро. И понеслась…
Читать дальше →
Total votes 133: ↑112 and ↓21+91
Comments63

Космики: моделирование эволюции многоклеточных организмов

Reading time4 min
Views42K
Здравствуй, Хабр!

Несколько лет назад в прикладных целях я реализовал обычный Force-based визуализатор графов.

На меня произвело впечатление, как простые итеративные преобразования могут производить субъективно сложные и интересные вычисления, формируя нетривиальные визуально-кинетические модели.

Со временем возникло несколько идей, что интересного можно смоделировать.

Вот что получилось с одной из них (в кадре мелкие объекты, смотреть в HD):



Читать дальше →
Total votes 91: ↑86 and ↓5+81
Comments71

Что такое Selenium?

Reading time4 min
Views551K
Время от времени мне приходится распутывать терминологические хитросплетения, связанные с употреблением словосочетаний, в которых встречается слово Selenium – Selenium 2.0, Selenium IDE, Selenium RC, Selenium WebDriver, Selenium Server, Selenium Grid.

Путаница возникает во многом из-за того, что нигде нет чёткого описания всех этих терминов на одной страничке, и я постараюсь восполнить этот информационный пробел.
Читать дальше →
Total votes 42: ↑36 and ↓6+30
Comments31

Еще раз о невыносимой легкости тестирования

Reading time6 min
Views6.9K
Продолжаем разговор.

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

mtikhon в своей статье «Легкий способ пройти тестирование» прекрасно дополнил тот список «внешними» проблемами, влияющими на результат тестирования. Внешними – в том смысле, что они зарождаются не в отделе тестирования, а в прочих подразделениях, а еще чаще – где-то на стыках подразделений, при взаимодействии отделов. (Я понимаю, что не всегда под тестирование формально выделен специальный отдел. Но это косметическая разница, сути не меняет: тут речь скорее о разделении ролей)
mtikhon’у слегка попеняли в комментариях, что список проблем изложен, а легкий способ их обойти – нет. Он, в свою очередь, уже справедливо отметил, что «способы как правило разнятся очень сильно». Вот на этой мысли я и хочу потоптаться чуть подробней.

Пожалуй, пойду прямо по тем же пунктам.
Читать дальше →
Total votes 4: ↑3 and ↓1+2
Comments0

ePayService + eBayToday = Бесплатный Mail Forwading

Reading time2 min
Views11K
Любому хабраюзеру, известно, что цены и ассортимент различных гаджетов и хорошей одежды в западных интернет-магазинах в большинстве своем намного лучше чем на родных просторах. Поэтому такие названия, как eBay, Amazon, Zappos уже давно не кажутся нам чужими. И это хорошо, ведь теперь есть повод познакомиться с интернет-шопингом еще ближе – все пользователи платежной системы ePayService имеют возможность воспользоваться специальным предложением от сервиса покупок за рубежом eBayToday: бесплатный Mail Forwading.

бесплатный Mail Forwading от ePayService и eBayToday
Читать дальше →
Total votes 7: ↑4 and ↓3+1
Comments3

Взгляд рядового программиста на вектор изменения оболочек и что делать дальше

Reading time5 min
Views32K
imageLinux на моём компьютере уже 5 лет стоит как основная операционная система. Пришлось проходить через всякое: ставить разные дистрибутивы, как для фана, так и для работы. Почти все шесть лет я сидел на Gnome 2, и сейчас бы сидел, если бы не новый ноутбук, нормально работающий только на третьем ядре из-за каких-то драйверов. А с новым ядром пришла новая проблема: новые оболочки. В этом топике я просто опишу свои мысли насчет оболочек, чем они удобны или не удобны лично для меня. Так что, можете сразу ставить после каждого предложения ИМХО.
Подробности
Total votes 175: ↑136 and ↓39+97
Comments291

Обзор инструментов для визуального сравнения и разрешения конфликтов слияния

Reading time6 min
Views136K
На хабре уже было много статей о распределенных системах управления версиями (DVCS), их сравнений, а также сравнений GUI-клиентов для них. Также были обсуждения плагинов к IDE для работы с git и mercurial. Но практически не было информации об инструментах визуального сравнения и разрешения конфликтов слияния.

diff and merge
Недавно я «перескочил» с mercurial (который до сих пор считаю более удобным и логичным) на git, потому что, подавляющее большинство проектов, которые мне интересны, используют git и хостятся на github. В связи с этим, встал вопрос о пересмотре арсенала инструментов, в частности вопрос выбора инструмента визуального сравнения и слияния (diff and merge). Дабы восполнить недостаток информации на хабре, я решил написать этот мини-обзор. Как говориться — по горячим следам.

Под катом Вы также найдете примеры настроек Git для использования с DiffMerge и WinMerge под Windows. Думаю многим сэкономит время.
Читать дальше →
Total votes 53: ↑46 and ↓7+39
Comments45

Тестирование — это не поиск ошибок!

Reading time5 min
Views152K
Многие считают, что тестирование ПО — это поиск ошибок. Иногда я говорю тестировщикам: «не старайся найти как можно больше ошибок, старайся пропустить как можно меньше!», и меня не понимают: а в чём разница?

А разница огромная! В этой статье я хочу рассказать, в чём она заключается, и какие инструменты необходимо использовать для настоящего полезного тестирования.
Читать дальше →
Total votes 148: ↑142 and ↓6+136
Comments71

Ментальные ловушки

Reading time3 min
Views126K
Данная статья является кратким конспектом по книге "Andre Kukla: Mental Traps"

Ментальные ловушки — это так называемые грабли, на которые мы наступаем снова и снова. Безусловно каждый нормальный человек хочет, чтобы этот «неудачный шаг» в его деятельности был последним и больше не повторялся.

С «граблями» или ментальными ловушками можно легко справиться, если они лежат перед вами во всей красе, безо всякой маскировки. Но так бывает далеко не всегда и зачастую мы не видим и не понимаем в чем заключаются наши ошибки. Целью этой статьи является знакомство с наиболее «популярными» ментальными ловушками, которые Андре Кукла описал в своей книге.
Читать дальше →
Total votes 110: ↑88 and ↓22+66
Comments54

Война миров: программисты vs. тестировщики!

Reading time5 min
Views26K

Когда-то я был тестировщиком. Помню, как в те далекие времена порой был крайне недоволен программистами:
Эти вечные сомнительные доводы «это не баг, это фича» или «если это и баг, то незначительный, пусть остается».

Да как же остается, если система колом встает!?

Потом я стал программистом. И всё изменилось – меня начали жутко бесить эти бесконечные возвраты на доработку:
То им это не нравится, то тут не работает! Да нафига было вообще в этом окне контекстное меню вызывать и вставлять нечитабельные символы!? Как они вообще до этого додумались!? Бред же, в боевом режиме так ни один пользователь не сделает!

Не буду править, пусть остается!

В общем, классика – вражда программистов и тестировщиков.

А потом я стал менеджером. И понял, что вражда эта губительна для общего дела. К счастью, я хорошо помнил себя и программистом и тестировщиком, что и помогло мне осознать истинную суть проблемы и изменить ситуацию.
Под катом ответ, как.
Total votes 66: ↑52 and ↓14+38
Comments37

Памятка пользователям ssh

Reading time13 min
Views1.5M
abstract: В статье описаны продвинутые функций OpenSSH, которые позволяют сильно упростить жизнь системным администраторам и программистам, которые не боятся шелла. В отличие от большинства руководств, которые кроме ключей и -L/D/R опций ничего не описывают, я попытался собрать все интересные фичи и удобства, которые с собой несёт ssh.

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

Оглавление:
  • управление ключами
  • копирование файлов через ssh
  • Проброс потоков ввода/вывода
  • Монтирование удалённой FS через ssh
  • Удалённое исполнение кода
  • Алиасы и опции для подключений в .ssh/config
  • Опции по-умолчанию
  • Проброс X-сервера
  • ssh в качестве socks-proxy
  • Проброс портов — прямой и обратный
  • Реверс-сокс-прокси
  • туннелирование L2/L3 трафика
  • Проброс агента авторизации
  • Туннелирование ssh через ssh сквозь недоверенный сервер (с большой вероятностью вы этого не знаете)
Читать дальше →
Total votes 360: ↑352 and ↓8+344
Comments148

Генетический алгоритм для генерации лиц

Reading time1 min
Views8.4K
Что будет, если генератор случайных фигур соединить с детектором лиц? Способен ли эволюционный алгоритм путём случайных мутаций сгенерировать человеческое лицо? Разработчик программы Pareidoloop отвечает на этот вопрос утвердительно (генератор протестирован только в Chrome 21).


(с) spiritedflow
Читать дальше →
Total votes 54: ↑44 and ↓10+34
Comments57

Какие устоявшиеся практики или традиции есть в вашей компании?

Reading time1 min
Views5.1K
Доброе утро.

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

Например, в одной компании можно 20% времени уделять воплощению своих замыслов и задумок, полная свобода творчества — с целью внедрить это позже в уже существующий продукт.
В другой выдаются премии за вовремя сданную работу.
В третьей каждый 6-ой спринт отдается в полное владение разработчиков и они сами создают продукт, который выносится потом на суд общественности.
Четвертая компания отправляет самых талантливых разработчиков в Лондон.
А в пятой все просто собирают вещи, снимают дом в горах Хорватии и работают всей командой на природе.

С какими практиками или традициями в компаниях встречались вы? И как они влияли на процесс работы?
Total votes 46: ↑34 and ↓12+22
Comments68

«Непофигизм» — опыт создания некоммерческого проекта (три года выдержки)

Reading time6 min
Views5.1K


Несколько недель назад проекту «Непофигизм» исполнилось три года, что, на мой взгляд, является достаточно серьезным «возрастом». Некоммерческому проекту, который работает исключительно на голом энтузиазме и которому не помогают материально ни инвесторы, ни единомышленники, сравнительно непросто прожить дольше одного года, так что можно с уверенностью констатировать как минимум единственный факт: проект определенно является востребованным.

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

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

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

Итак, начнем?
Читать дальше →
Total votes 34: ↑30 and ↓4+26
Comments17

«Игрушечная» картография или 3D карты своими руками

Reading time4 min
Views11K
Около полутора лет назад на Хабре был размещен пост про уникальные карты китайского поисковика Baidu (для тех, кто не видел, вот он: http://habrahabr.ru/post/115107/). Я был поражен тем, насколько кропотливо, детально и красиво эти карты сделаны, поэтому однажды мы, вместе с группой товарищей, решили разобраться в процессе создания Baidu-карт и сделать собственные карты всего мира, которые выглядели бы так же круто. Под катом много картинок, раскрытие секрета Baidu-подобных карт и то, что получилось у нас.



Читать дальше →
Total votes 214: ↑202 and ↓12+190
Comments118
12 ...
10

Information

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