Как стать автором
Обновить
4
0
Шаукат Амирханов @shaukote

Программирую пользовательские интерфейсы.

Отправить сообщение

У семи программистов адрес без дома

Время на прочтение4 мин
Количество просмотров98K
Привет, Хабр!

Мы в HumanFactorLabs парсим адреса в особо крупных размерах. Наши продукты упрощают ввод контактных данных и работу с ними.

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

Недавно на Хабре нас попросили привести примеры необычных адресов, в связи с чем и написана эта статья.
Читать дальше →
Всего голосов 104: ↑101 и ↓3+98
Комментарии211

Смысл — это иллюзия

Время на прочтение8 мин
Количество просмотров46K
Это перевод статьи, которая очень странно на меня повлияла. Оригинал

checkerboard

Поля Α и B — одного и того же цвета

Скорее всего это самое важное, что я когда-либо писал, т.к. я считаю, что нашёл не что иное, как смысл жизни, или его отсутствие. Если вы умны/образованны, начало этого эссе может показаться вам достаточно стандартным. Тем не менее следите за мыслью.

Основной аргумент


Смысл << Эмоция << Химия << Физика

"Смысл" жизни исходит исключительно из эмоционального опыта, который базируется на химии. Мы знаем, что эмоция, и даже духовный опыт, по своей природе химические события. В наше время с помощью науки возможно, используя препараты и/или прямые манипуляции с мозгом индуцировать "духовный" опыт.
Читать дальше →
Всего голосов 57: ↑34 и ↓23+11
Комментарии86

Цикломатическая сложность: Логика CSS

Время на прочтение4 мин
Количество просмотров12K
На протяжении многих лет мы утверждали, что в CSS нет логики. Тем самым мы хотели сказать, что не было потока управления или способа программно им манипулировать. Этот свойственный недостаток логики использовался в качестве аргумента в пользу использования процессоров (для обеспечения этой недостающей функции), и в качестве аргумента против препроцессоров (CSS никогда не подразумевал наличия логики, поэтому нам не стоит пытаться ее внедрить).

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

Я обнаружил, что я объясняю клиенту сложные селекторы, как будто они состоят из предмета – вещи, в которой мы фактически заинтересованы – и его условий. Например:
Читать дальше →
Всего голосов 18: ↑10 и ↓8+2
Комментарии4

SELinux – описание и особенности работы с системой. Часть 1

Время на прочтение11 мин
Количество просмотров276K


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

Читать дальше →
Всего голосов 76: ↑74 и ↓2+72
Комментарии13

Внезапный диван леопардовой расцветки

Время на прочтение8 мин
Количество просмотров83K
Если вы интересуетесь искусственным интеллектом и прочим распознаванием, то наверняка уже видели эту картинку:


А если не видели, то это результаты Хинтона и Крижевского по классификации ImageNet-2010 глубокой сверточной сетью

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

Это вообще довольно любопытный результат, если задуматься. Потому что… скажем, вы знаете, как отличить одного большого пятнистого котика от другого большого пятнистого котика? Я, например, нет. Наверняка есть какие-то зоологические, достаточно тонкие различия, типа общей стройности/массивности и пропорций тела, но мы же все-таки говорим о компьютерном алгоритме, которые до сих пор допускают какие-то вот такие достаточно глупые с человеческой точки зрения ошибки. Как он это делает, черт возьми? Может, тут что-то связанное с контекстом и фоном (леопарда вероятнее обнаружить на дереве или в кустах, а гепарда в саванне)? В общем, когда я впервые задумался над конкретно этим результатом, мне показалось, что это очень круто и мощно, разумные машины где-то за углом и поджидают нас, да здравствует deep learning и все такое.

Так вот, на самом деле все совершенно не так.
под катом пятна
Всего голосов 148: ↑145 и ↓3+142
Комментарии141

ГМ-источники пищи. Данные о безопасности

Время на прочтение23 мин
Количество просмотров38K
Отгадка в тексте

ГМО − изучены ли? Не похоже ли это на эксперимент над человечеством? Зачем заменять натуральное искусственным?

Эти вопросы могут даже раздражать, но надо признать, что они закономерны. Давайте постараемся дать ответы.

Обычно под проблемой ГМО понимают проблему их пищевой безопасности: возможный вред ГМ-пищи организму при употреблении человеком. Когда я встречаю утверждения о недостаточной изученности влияния ГМО, о слишком малом количестве проведенных исследований, то испытываю горячее желание уточнить, а сколько все-таки исследований было, и сколько не хватает? Давайте разберемся, какие мы имеем данные о технологиях генной инженерии и безопасности употребления ГМО в пищу.

Обратите внимание, я ни то, что не биолог, но не смог окончить даже экономический факультет. Поэтому, не доверяя себе, я ищу информацию у тех, кто посвятил жизнь и карьеру вопросам биологии. Я игнорирую экстравагантные заявления и ссылаюсь на те, что являются общим местом для большинства специалистов мира. Если по какой-то причине вам не подходит такой анализ, то, вероятно, дальнейший текст не будет представлять для вас ценности.
Читать дальше →
Всего голосов 70: ↑59 и ↓11+48
Комментарии197

Здоровье гика: кофеманим правильно

Время на прочтение5 мин
Количество просмотров65K
Привет, Geektimes. Мы тут что-то серьёзно увлеклись темой здоровья гиков и хотим опять поговорить об этом. На этот раз решено было коснуться хоть и довольно-таки заезженной, но окруженной кучей мифов и глупостей темы — кофе.


Действительно, о кофе не писал только ленивый. Буквально каждый ресурс, так или иначе касающийся темы работы и фриланса, тут отметился. Неудивительно — кофе уже даже не одно десятилетие является напитком №1 в офисах всего мира, да и дома люди предпочитают начать день с чашечки ароматного напитка, дабы побыстрее согнать с себя остатки сна и нормально осознать окружающую реальность. И несмотря на то, что, казалось бы, врачи и учёные только и делают, что изучают кофе и его влияние на организм человека, про него по-прежнему рассказывают кучу небылиц. Да что там — учёные по многим нюансам воздействия кофе сами не могут прийти к компромиссу, так как многие исследования прямо опровергают друг друга. И постоянно проводятся новые…

Итого, давайте-ка поговорим о кофе в контексте только действительно подтверждённых (или, по крайней мере, подтверждённых большинством исследователей) фактов — что от него бывает, что не бывает, как его правильно пить и пить ли вообще.
Читать дальше →
Всего голосов 50: ↑42 и ↓8+34
Комментарии147

mc — всё!?

Время на прочтение1 мин
Количество просмотров59K
На днях один из ведущих разработчиков midnight commander в конференции для разработчиков написал следующее
andrew_b: Я позакрывал энное количество тикетов, и, видимо, на этом всё.
Всему приходит конец. Это были не самые плохие 5 лет в моей жизни. mc сейчас как чемодан без ручки: и бросить жалко, и нести тяжело и неудобно.
Мне всё это надоело, «я устал, я ухожу».

Так что история развития mc, которая велась нашей командой, пожалуй, подходит к определённой логической точке.

Немного грустно.
Сам лично я уже больше года не делал ни одного коммита в мастер.

Как бы там ни было, это были действительно классные 5 лет и моей жизни в команде разработчиков тоже.
Всего голосов 100: ↑92 и ↓8+84
Комментарии281

ГМО. Группе ученых не удалось доказать вред ГМ-пищи. Разбор исследования дилетантом и комментарии специалистов

Время на прочтение13 мин
Количество просмотров70K
image

Я вижу, что сообществу интересна тема генетически модифицированной пищи. Были интересные публикации, которые оказались для меня полезны, но до сих пор здесь не публиковали разбор какого-то конкретного исследования. Я не специалист, не имею специального образования, но интересуюсь темой и постараюсь рассказать об одной нашумевшей работе по исследованию ГМО.
Читать дальше →
Всего голосов 126: ↑117 и ↓9+108
Комментарии313

Печальное состояние сисадмина в эпоху контейнеров

Время на прочтение3 мин
Количество просмотров81K
Системное администрирование сейчас в печальном состоянии. Оно в хаосе.

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

Проблема в контейнерах, готовых виртуальных машинах (prebuilt VMs), а также в невероятном хаосе, который они создают, потому что в их концепции не хватает «доверия» и «обновлений».

Давайте взглянем на Hadoop. Судя по всему, никто не знает как собирать Hadoop с нуля; это просто огромная куча из зависимостей, необходимых версий и утилит сборки.

Ни одна из «замечательных» утилит не собирается традиционной командой make. Каждая утилита поставляется со своим собственным не переносимым и не совместимым c чем-либо «методом дня» для сборки.

И так как никто не умеет собирать вещи с нуля, то все просто скачивают бинарники со случайных веб-сайтов, часто даже без проверки цифровой подписи.
Читать дальше →
Всего голосов 141: ↑130 и ↓11+119
Комментарии99

Когда строка не является строкой?

Время на прочтение6 мин
Количество просмотров21K
В рамках моей «работы» над стандартизацией C# 5 в технической группе ECMA-334 TC49-TG2 мне посчастливилось увидеть несколько интересных способов, которыми Владимир Решетников проверял C# на прочность. В данной статье описана одна из проблем, которые он поднял. Разумеется, она, скорее всего, никак не затронет 99.999% C#-разработчиков… но разобраться все равно любопытно.

Спецификации, используемые в статье:


Что такое строка?


Как бы вы объявили тип string (или System.String)? Я могу предположить несколько вариантов ответа на данный вопрос, от расплывчатых до довольно конкретных:

  • «Какой-нибудь текст в кавычках»
  • Последовательность символов
  • Последовательность символов Юникода
  • Последовательность 16-битных символов
  • Последовательность слов UTF-16

Только последнее утверждение полностью верно. Спецификация C# 5 (раздел 1.3) гласит:

Обработка строк и символов в C# использует UTF-16. Тип char представляет слово UTF-16, а тип string – последовательность слов UTF-16.

Пока всё в порядке. Но это C#. А как насчет IL? Что используется там, и имеет ли это значение? Оказывается, что имеет… Строки должны быть объявлены в IL как константы, и природа этого способа представления важна – не только кодировка, но и интерпретация этих закодированных данных. В частности, последовательность слов UTF-16 не всегда может быть представлена в виде последовательности слов UTF-8.
Читать дальше →
Всего голосов 31: ↑29 и ↓2+27
Комментарии18

Рекуррентное соотношение Мюллера: проблемы с округлением чисел с плавающей точкой

Время на прочтение4 мин
Количество просмотров37K
Некоторое время назад я натолкнулся на упражнение, которое выглядит не так уж и сложно:

Пусть последовательность xn определена так:

посчитайте x30.

Это не так уж и трудно закодировать, возможно реализовав xi как рекурсивную функцию. С обычными числами с плавающей запятой двойной точности, по мере увеличения i, результат красиво сходится к 100. Супер!

К сожалению, 100 даже близко не является правильным ответом. На самом деле последовательность сходится к 5.
Читать дальше →
Всего голосов 60: ↑59 и ↓1+58
Комментарии116

Революция интерфейсов. USB 3.1 Type-C в деталях. Взгляд электронщика

Время на прочтение10 мин
Количество просмотров330K
image

Редко бывает, что одна лишняя буква в названии стандарта грозит совершить революцию в мире интерфейсов передачи данных и гаджетов, но появление последней разновидности USB 3.1 Type-C похоже как раз тот случай. Что же нам обещает принести очередное обновление старого доброго USB интерфейса?
  • Скорость передачи данных до 10 GBps
  • Возможность запитывания от порта устройств с потребляемой мощностью вплоть до 100Вт
  • Размеры коннектора сравнимые с micro-USB
  • Симметричность разъёма — у него не существует верха и низа, а значит нет ключа, который часто приводит к повреждениям как самих разъёмов, так и подключаемых через них гаджетов
  • С помощью данного интерфейса можно запитывать устройства с напряжением вплоть до 20 вольт
  • Больше не существует разных типов коннекторов — А и В. На обоих концах кабеля стоят совершенно одинаковые разъёмы. Как данные так и питающее напряжение могут передаваться через один и тот же разъём в обоих направлениях. В зависимости от ситуации каждый разъём может выступать в роли ведущего или ведомого
  • Нам обещают, что конструкция разъёма способна выдерживать до 10 000 подключений
  • Возможно использование этого интерфейса для непосредственного подключения вместо некоторых других широко распространённых интерфейсов для быстрого обмена данными.
  • Стандарт совместим сверху вниз как c обычным USB 3 интерфейсом, так и с его младшими братьями. Конечно не на прямую, но с помощью переходника через него возможно подключение скажем USB 2.0 диска

Под катом постараюсь разобрать тему по косточкам — начиная от конструкции разъёма и кабеля, и заканчивая кратким обзором профилей оборудования и новинок чипов для поддержки возможностей данного интерфейса. Я долго думал на какой площадке размещать статью, ведь все предыдущие касающиеся этой темы выходили на GT, но в моей публикации так много технических деталей, что она будет полезней не гикам, а потенциальным разработчикам, которым уже сегодня стоит начинать к нему присматриваться. Поэтому рискнул поселить статью тут.
Читать дальше →
Всего голосов 77: ↑74 и ↓3+71
Комментарии138

50+ лучших дополнений к Bootstrap

Время на прочтение5 мин
Количество просмотров202K


Благодаря популярности CSS фреймворка Bootstrap, для него разработали массу различных дополнений. Даже сейчас вы можете использовать Bootstrap практически для любой задачи при разработке и оформлении вебсайта.

Для статьи я подобрал наиболее полезные дополнения «на все случаи жизни».
Читать дальше →
Всего голосов 123: ↑111 и ↓12+99
Комментарии25

Еще немного о дескрипторах в Python

Время на прочтение3 мин
Количество просмотров19K
Не так давно на Хабре уже был перевод статьи Раймонда Хеттингера Руководство к дескрипторам. В этой статье я постараюсь рассмотреть вопросы, которые возникли у меня после прочтения. Будет немного примеров кода, собственно вопросов и ответов к ним. Для понимания того, о чем речь, вам нужно знать, что такое дескрипторы и зачем они.

Читать дальше →
Всего голосов 47: ↑45 и ↓2+43
Комментарии29

Руководство к дескрипторам

Время на прочтение10 мин
Количество просмотров170K

Краткий обзор


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

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

Читать дальше →
Всего голосов 51: ↑48 и ↓3+45
Комментарии5

Абстракции без накладных расходов: типажи в Rust

Время на прочтение11 мин
Количество просмотров16K
В предыдущем посте (англ.) мы затронули два столпа дизайна Rust (поскольку во внутренней речи я постоянно склоняю название языка, дальше я буду использовать русскоязычное название «раст», что мне кажется более органичным — прим. перев.):
  • безопасное использование памяти без сборщика мусора,
  • многопоточность без гонок данных.

Этот пост начинает рассказ о третьем столпе:
  • абстракции без накладных расходов.

Одна из мантр C++, которая делает его таким подходящим для системного программирования — принцип абстракции с нулевой стоимостью:
Реализации C++ подчиняются принципу нулевой стоимости: ты не платишь за то, что не используешь [Страуструп, 1994]. Более того: то, что ты используешь, кодируется наилучшим образом.

– Бьёрн Страуструп

Читать дальше →
Всего голосов 39: ↑37 и ↓2+35
Комментарии38

Ещё раз о неопределённом поведении или «почему не стоит забивать гвозди бензопилой»

Время на прочтение8 мин
Количество просмотров38K
Про неопределённое поведение писали не раз. Приводились цитаты из стандартов, объяснения их интерпретации, разного рода поучительные примеры, но, похоже, все люди, пытавшиеся об этом писать пропускали важный пункт: по-моему никто внятно так и не удосужился объяснить — откуда это понятие в языке, собственно, появилось, и, главное, кому оно адресовано.

Хотя на самом-то деле, если вспомнить историю Си, всё достаточно очевидно и, главное, логично. А все жалобы людей, «обжёгшихся» на неопределённом поведении для людей не забывших что такое Си и зачем он вообще существует звучат примерно как: «я тут гвозди бензопилой забивал… забивал и забивал, всё было хорошо, а потом я дёрнул за ручку и у неё коготки как забегают, задёргаются, мне руку оттяпало и полноги… ну кто так строит?».

Люди, которые знают что такое бензопила пытаются, конечно, объяснить, что за если за эту рукоятку дёрнуть, то так, в общем-то, и должно быть, но люди, считающие, что у них у руках такой себе молоток говорят «мимо» них, и, в результате, все остаются при своих.

Так какой же важный секрет люди упускают из виду?
Всего голосов 83: ↑76 и ↓7+69
Комментарии206

Первые 6 лекций онлайн школы Android-разработчиков

Время на прочтение2 мин
Количество просмотров38K
Чуть больше месяца назад мы совместно с Google стартовали онлайн школу Android-разработчиков и сегодня хотим подвести промежуточные итоги.

За этот месяц:
— в школе зарегистрировалось 18 000 человек
— мы охватили русскоговорящее Android-сообщество из России, СНГ, Европы, США, Канады, Сингапура и Китая
— было выпущено 6 лекций от JetBrains, Parallels, Kaspersky Lab, LinguaLeo и Тинькофф Банк (посмотреть их вы можете на сайте школы)



Целью школы LearnDroid было поднять уровень интереса к разработке под Android и собрать материал от ведущих разработчиков, курс не был предназначен заменить университетское образование.

Чтобы начинающим разработчикам было легче изучать Android, мы попросили лекторов составить список литературы и статей, которые необходимо прочитать, чтобы стать гуру Android-разработки.
Читать дальше →
Всего голосов 35: ↑31 и ↓4+27
Комментарии14

GrabDuck: новый взгляд на закладки

Время на прочтение6 мин
Количество просмотров13K
Привет читатель. Этот небольшой вступительный пост о нашем проекте — поисковом сервисе GrabDuck. О том, что это такое, какие проблемы мы пытались решить и, что из всего этого получается.



Проще говоря, история проекта в поисках своих благодарных клиентов, которую мы постарались сделать не нудной и интересной. Получилось или нет — судить вам. Кого заинтересовало, просим под Cut.
Читать дальше →
Всего голосов 21: ↑19 и ↓2+17
Комментарии60

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность