Pull to refresh
15
0
Vladislav @int_index

Пользователь

Send message

Когда-то я говорил…

Reading time2 min
Views173K
Когда-то я* говорил, что без идеального задокументированного кода с многоуровневой плагинной архитектурой заказчик будет мучиться в конвульсиях каждый раз, когда его пальцы будут соприкасаться с клавиатурой. Теперь я заказчик и понимаю, что мне нафиг не нужен идеальный код, депенденси инджекшены и два синьора по цене одного. Главное, чтобы работало и было сделано в срок. И желательно бесплатно.

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

Когда-то я говорил, что опаздывать на встречи могут только пид$расы. Теперь я сам часто опаздываю на встречи, но в то же время не сплю с мужиками.

Когда-то я говорил, что главное в любом проекте – правильный процесс. Ну и еще печеньки. Теперь у меня только православный скрам, настоянный на канбане, но проекты факапятся с таким же успехом.
Читать дальше →

Эволюция альтруизма и P2P

Reading time10 min
Views24K
Недавно я слушал по радио передачу об эволюции альтруизма. Обсуждался вопрос о том, каким образом «ген альтруизма» выдерживает естественный отбор. Это обсуждение навело меня на мысли о том, какие функции должны присутствовать в современных сетевых приложениях, чтобы они «выживали» в естественном отборе.
Сначала немного о биологии...

Без паники! Про то, что сделал Google с XMPP

Reading time12 min
Views86K
После выхода Google Hangout, в интернете стало популярно мнение, что Google закрывает XMPP. На самом деле это не так. Однако такое впечатление могло сложиться даже из предыдущей статьи, которая в себе содержала адское ничего — минимум подробностей, одну ссылку (нерелевантную — видимо, с Опеннета) на форум Маэмо (который к Гуглу, естесственно, не имеет никакого отношения) и потому собрала аж 254 комментария разной степени правдивости.

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



Что в Google сделали с XMPP? Ничего.


Под катом полное собрание происшествий и фактов вокруг Google Hangout, GTalk XMPP, s2s, пользовательские и экспертные оценки ситуации.
Читать дальше →

Ленивый hGetContents. Баг или фича? (Haskell)

Reading time4 min
Views3.4K
Меня давно беспокоит одна тема. Вот решил высказаться и услышать, что думают люди по этому поводу. Речь пойдет о функции hGetContents. Если вы когда-нибудь работали с файлами, то вы знаете, что эта функция возвращает содержимое файла (потока). Вот типичный пример использования этой функции.
import System.IO

main = do 
	file <- openFile "1.txt" ReadMode
	content <- hGetContents file
	print content
	hClose file
-- результат: выводит содержимое файла на экран

Читать дальше →

Google Keep, вероятно, будет с нами до марта 2017 — в среднем

Reading time7 min
Views45K
Закрытие Google Reader заставило поволноваться любителей новинок и разработчиков, подняв вопрос о том, не закроет ли Google свои сервисы и API, к которым пользователи так привыкли. Проанализировав 39 закрытых продуктов можно сделать выводы о том, сколько они протянут.


Пополнит ли Google Keep ряды сервисов и API закрытых “корпорацией добра”? Если да, то когда? Фотограф: Alamy.
Читать дальше →

Почему я ненавижу фреймворки

Reading time4 min
Views70K
Я собираюсь сделать Java-веб-приложение (да, это будет Java, по некоторым причинам, которые сейчас озвучивать не хочу). В процессе работы, я оцениваю кучу J2EE portlet-enabled JSR-compliant MVC role-based CMS web service application container фреймворков.

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

Давайте представим, что я решил сделать шкафчик для специй.
Читать дальше →

Консервативная логика

Reading time14 min
Views20K
Вооруженные жидким азотом оверклокеры неоднократно показывали, что современные чипы могут стабильно работать на частотах в разы выше номинальных, обеспечивая соответствующий рост производительности. Тем не менее, прогресс в области «гонки гигагерц» остановился давно и надежно. Первый «Pentium 4» с частотой больше 3 ГГц появился в далеком 2002 году, почти 10 лет назад. За прошедшие годы нормы техпроцессов уменьшились со 180 до 32 нм, но даже это не позволило существенно поднять штатные рабочие частоты. Все упирается в огромное тепловыделение элементов цифровой логики.

В основе «проблемы тепловыделения» лежит глубокая связь между информационной и термодинамической энтропией, а также второе начало термодинамики, запрещающее уменьшение общей энтропии замкнутой системы. Любое вычисление, уменьшающее энтропию информационную, обязано приводить к увеличению энтропии термодинамической, то есть к выделению тепла. Рольф Ландауэр в 1961 году показал [pdf], что уничтожение одного бита информации должно приводить к выделению не менее k∙T∙ln 2 джоулей энергии, где k – постоянная Больцмана и T – температура системы. Само по себе эта энергия невелика: для T=300K она составляет всего 0.017 эВ на бит, но в пересчете на процессор в целом суммарная энергия вырастает уже до величин порядка одного Джоуля за каждую секунду работы, то есть порядка одного Ватта [Компьютерра №538]. На практике этот теоретический минимум умножается на ненулевое сопротивление и прочие неидеальности реальных полупроводников. В результате мы получаем процессоры, которые по тепловыделению обгоняют утюги.
Читать дальше →

Истинное могущество регулярных выражений

Reading time16 min
Views94K
Как частый посетитель тэга PHP на StackOverflow, я очень часто встречаю вопросы о том, как распарсить какие-то конкретные аспекты HTML, используя регулярные выражения. Самый распространённый ответ на это:
«Ты не можешь парсить HTML с помощью регулярных выражений, потому что HTML не является регулярным. Используй XML парсер, и будет тебе счастье»

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

Первый интерфейс «мозг-мозг» (пока у крыс)

Reading time2 min
Views87K


Мигель Николелис и Михаил Лебедев с коллегами из отдела нейробиологи университета Дьюка (США) опубликовали научную работу с описанием первого в мире интерфейса для передачи сигналов из мозга в мозг через интернет.
Читать дальше →

Линус Торвальдс и драйвера Microsoft в Linux

Reading time2 min
Views9.6K
Линус Торвальдс публично высказал свое мнение по поводу добавления драйверов в ядро линукса компанией Microsoft. В интервью журналу Linux Magazine он ответил на следующие вопросы:

Q — Смотрели ли вы исходный код Microsoft?
A — Нет. Главным образом потому, что я не занимаюсь всем подряд, что попадает в код драйверов ядра (это ни на что не влияет), особенно когда я не использую этот код сам. В таких вещах я доверяю мейнтейнерам (сопровождющим). Как правило, я смотрю на код, когда в них обнаруживаются баги или, если код затрагивает многие подсистемы или этот код — часть важной подсистемы ядра, в разработке которой я активно участвую (например, код вроде VM, обработка ресурсов ядра, код базового ядра и т.д). Скорее всего я посмотрю на этот код, когда он фактически будет представлен мейнтейнеру (в данном случае — это Greg Kroah-Hartman), просто из любопытства.

Q — Как вы относитесь к включению этого кода? Ведь он от Microsoft.
A — О, я искренне верю в то, что технологии должы стоять выше политики. Мне все равно от кого приходит технология, пока есть основания для появления кода и пока не стоит вопрос лицензирования и прочие вопросы того же характера.

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

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

Существуют экстремисты в мире свободного программного обеспечения, и это одна из основных причин, из-за которой я больше не говорю, что я занимаюсь тем, что называют «свободным ПО». Я не хочу быть связаным с людьми, для которых это является источником маргинализации и ненависти.

Q — Должно ли быть к Microsoft другое отношение?
A — Я согласен с тем, что Microsoft преследует свои интересы в этом деле с публикацией кода. Но это та же самая причина по которой написан весь другой open source! Мы все преследуем свои собственные цели. По своим собственным интересам я начал писать Linux и из-за них я продолжаю это делать. Собственная выгода — это то, что преследуют в той или иной мере, все кто занимаются open source.

Так что жаловаться на то, что Microsoft работает над кодом для своих собственных интересов — это глупость. Конечно, они уделяют внимание тому, что приносит им выгоду. Это и есть то на чем стоит open source — возможность делать код лучше для ваших конкретных потребностей, всякий раз когда вам лично это нужно.

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

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

— Источник: www.linux-mag.com/id/7439

Неизбежность нодокалипсиса

Reading time3 min
Views50K
Каждый объект в OpenStreetMap имеет уникальный номер. Базовый элемент карт — точка, из них состоит всё, и их очень много. 9 февраля идентификаторы точек превысили 2³¹−1: максимальное число, помещающееся в 32-битный int со знаком. О надвигающейся проблеме предупредили за полтора года, и все более-менее популярные программы успели перейти на long. Та суббота прошла без приключений.

На самом деле, нет.
Читать дальше →

Немного о клеточных автоматах

Reading time5 min
Views56K

На хабре уже много-много-много раз писали про игру «Жизнь». Совсем недавно была удивительная статья Жизнь на плоскости Лобачевского. Но игра «Жизнь» является частным случаем т. н. клеточных автоматов. Существует много других клеточных автоматов совсем не похожих на игру «Жизнь», но тем не менее очень интересных. Про некоторые из них и хочется рассказать здесь.

Начнём с того, что рассмотрим ряд клеток, в которых, кроме одной, находятся нули:

... 0  1  0  0  0  0  0  0 ...

Рассмотри следующее правило, заменяем число в клетке на сумму этого числа и соседа слева. Получим следующую серию состояний:

... 0  1  0  0  0  0  0  0 ...
... 0  1  1  0  0  0  0  0 ...
... 0  1  2  1  0  0  0  0 ...
... 0  1  3  3  1  0  0  0 ...
... 0  1  4  6  4  1  0  0 ...
... 0  1  5 10 10  5  1  0 ...
... 0  1  6 15 20 15  6  1 ...

Не сложно увидеть, что это — треугольник Паскаля. А теперь вместо обычного сложения будем использовать сложение по модулю два. Известно (и даже недавно рассказывалось в хабрастатье Треугольник Серпинского и треугольник Паскаля), что получится дискретный аналог треугольника Серпинского:

... 0  1  0  0  0  0  0  0 ...
... 0  1  1  0  0  0  0  0 ...
... 0  1  0  1  0  0  0  0 ...
... 0  1  1  1  1  0  0  0 ...
... 0  1  0  0  0  1  0  0 ...
... 0  1  1  0  0  1  1  0 ...
... 0  1  0  1  0  1  0  1 ...

Интересно? Читаем дальше!
Читать дальше →

Лучший интерфейс — отсутствие интерфейса

Reading time7 min
Views124K
“Atmadm” 
Раньше наша работа была кошмаром из нагромождения букв.
“chkntfs”
“dir”



Тогда, в 1984, адаптировав Ксерокс ПАРК ВИМП, Эпл забросила нас вперед на целый галактический прыжок вдаль от этих ужасных командных строк ДОСа, в мир графических пользовательских интерфейсов [ПИ].


Эпл Лиза

Мы словно прозрели. И позже, десять лет спустя, когда мы смогли касаться Палм Пилот вместо того чтобы перемещать мышь, мы были впечатлены еще больше. Но сегодня наша любовь к цифровым интерфейсам вышла из-под контроля.
Что же случилось?

Найдено 48-е простое число Мерсенна

Reading time5 min
Views72K
Математики из распределённого проекта по поиску простых чисел GIMPS объявили об обнаружении нового простого числа Мерсенна. Это важное событие для математического сообщества, потому что до сих пор было известно только 47 таких чисел, последнее было найдено в июне 2009 года.

48-е простое число Мерсенна — 257.885.161-1, с 17.425.170 десятичными разрядами. См. полную запись числа в текстовом формате.

Числа Мерсенна имеют вид 2n-1, где n — натуральное число. Простые числа Мерсенна являются самыми большими простыми числами, известными науке. Предыдущий мировой рекорд принадлежал числу 243.112.609-1, имеющему 12.978.189 десятичных разрядов.
Читать дальше →

Как превратить браузер в notepad за 1 секунду

Reading time1 min
Views138K
Открыть новую закладку, скопировать в адресную строку

data:text/html, <html contenteditable>

и нажать Enter.

Вуаля.


При клике на белом поле появляется курсор, и можно писать мысли, заметки, наблюдения. Романы, стихи…

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

Просто, как дважды два четыре

Reading time4 min
Views78K
Наверное, каждый из хабровчан хотя бы раз в жизни слышал это выражение. Действительно, что может быть проще? Однако я знавал преподавателя математического анализа, который, услыхав подобное, ехидно улыбался в усы и предлагал доказать этот факт. После этого у говорившего обычно случался когнитивный диссонанс.

И действительно, как же доказать, что 2 × 2 = 4? Ответ под хабракатом.

Дисклеймер


Данная статья не содержит ничего нового для читателей с серьёзным математическим образованием. Также, вполне вероятно, она будет неинтересна людям с чисто инженерным складом ума. Этот текст писался в расчёте на тех, кому интересны основания математики, но кто до сих пор не нашёл времени и сил в них разобраться.
Читать дальше →

Насколько плохим код должен быть?

Reading time6 min
Views74K
Эрик Липперт — ветеран Microsoft, проработавший в компании 16 лет и стоящий за разработкой VBScript, JScript и C#.

На прошлой неделе в комментариях к одной из статей разгорелся спор о роли низкоуровневой оптимизации в программировании, и я вспомнил относящуюся к этому статью Эрика. Она была написана в конце 2003, и хотя реалии с тех пор несколько изменились — принципы остались теми же самыми. Можете мысленно заменить ASP и VBScript на PHP, JavaScript, или на другой скриптовый язык по вашему вкусу.

Эту статью я уже пытался перевести в 2005, но русский текст тогда получился неуклюжий, так что этот перевод — новый и ранее не публиковался, в соответствии с требованиями НЛО. В Переводе блога Эрика Липперта этого текста тоже нет — наверное, для них он слишком стар.


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

Например, за семь лет в Microsoft я получил десятки вопросов, аналогичных по своей сути этому, заданному в конце 1990-х:
У нас есть код на VBScript, и в одной часто вызываемой функции мы определяем оператором Dim несколько переменных, которые нигде в функции не используются. Не замедляется ли каждый вызов функции из-за объявления этих переменных?
Какой интересный вопрос! В компилируемом языке, таком как Си, объявление локальных переменных общим размером n байт всего лишь вычитает n из указателя стека при входе в функцию. Если n будет чуть больше или чуть меньше, затраты времени на вычитание никак не изменятся. Наверное, в VBScript точно так же? Оказалось, что нет! Вот что я написал автору вопроса:
Читать дальше →

Зачем Mail.Ru занимается разработкой шпионского программного обеспечения?

Reading time3 min
Views242K
Всем известно, что существуют программы со скромными названиями, типа «Яндекс.Защитник» и «Guard@Mail.Ru». И если первый еще не настолько кардинален в своей работе, то после установки второй программы(ее установка как правило осуществляется без согласия и ведома пользователя) вам придется либо строго использовать только те интернет-сервисы, которые вам будут «предложены» данным приложением, либо потратить собственные ресурсы на дезактивацию данного ПО.
Читать дальше →

Пара слов об интернационализации приложений

Reading time12 min
Views46K
Я давно регулярно читаю Хабр и заметил, что здесь довольно мало внятных статей о локализации ПО, ориентированных на разработчиков. По своему опыту управления проектами локализации я могу сказать, что локализация — это не только перевод строк и адаптация приложения к контексту той или иной страны, но и постоянное противоборство (в идеальных случаях — равноправное взаимодействие) с разработчиками.
В этой статье я постараюсь на примере показать, как можно создать так называемый localization-friendly code, то есть, организовать ресурсы таким образом, чтобы существенно облегчить локализацию приложения, снизив избыточные временные и финансовые затраты.
Сразу же оговорюсь, что речь пойдёт в первую очередь об интернационализации, то есть, об учёте всех лингвистических особенностей на этапе разработки. Если же ресурсы вашего проекта изначально не подразумевали локализацию, а впоследствии вы решились на неё, то их «затачивание» под локализацию может выйти намного дороже, чем доход от неё.



Читать дальше

Числа Каталана

Reading time5 min
Views186K
Несомненно, самым замечательным математическим фактом является тождество . В нем удивительным образом сошлись, казалось бы, совершенно не связанные константы из разных областей математики. Доказать это тождество не так сложно, но объяснить его, понять глубинный смысл, удается немногим.
В качестве еще одного замечательного факта хотелось бы вспомнить числа Каталана, которые удивительным образом всплывают в самых разных комбинаторных задачах. К сожалению, они выпадают из рассмотрения типовой школьной программы, но уверен, что любой специалист компьютерных наук должен быть знаком с ними.
Читать дальше →

Information

Rating
Does not participate
Location
Россия
Registered
Activity