Pull to refresh
23
0
Али Алиев @ali_aliev

User

Send message

Переводы всех статей Пола Грэма на всех языках (210+)

Reading time 7 min
Views 31K
image
(иллюстрация Asya_Dyu)

Пол Грэм — один из самых уважаемых людей среди ИТишников, основателей и инвесторов. Он первоклассный программист (написал два языка программирования), хакер, создатель дерзкого акселератора Y Combinator, философ.

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

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

Сейчас около 2 миллиардов человек могут прочитать эссе Пола Грэма. Моя задумка в том, что если перевести его эссе на топ-20 языков, то это даст возможность еще 2 миллиардам людей случайно наткнуться на перевод на родном языке (как это было у меня) и встать на путь стартапера.

Читать лучше в оригинале, но путь к оригиналу иногда бывает (только) через перевод.
Читать дальше →
Total votes 32: ↑25 and ↓7 +18
Comments 15

Теорема Байеса: просто о сложном

Reading time 8 min
Views 59K

В этой статье мы рассказываем об основах и применении одного из самых мощных законов статистики - теоремы Байеса. 

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

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

Читать далее
Total votes 21: ↑19 and ↓2 +17
Comments 5

Про сахара с точки зрения химика. Химия на кухне 2

Reading time 12 min
Views 133K

Старинная форма фасовки сахара — «сахарная голова»
Выкладываю продолжение, как обещал. Первый пост был про соль.
Про сахар. Какие бывают сахара. Про кленовый сахар и сахар ли он? Сосульки из кленового сока — ценный дар природы. Моно- и много- сахариды. Что общего у омара, тарантула, ёлки, гриба, мёда и ракеты «Кассам». Ставим химический опыт по превращению крахмала… Как блеснуть эрудицией. Фруктоза — польза и вред, две стороны вопроса. Кто виноват в том, что от молока болит живот. Как получается, что кислое варенье меньше засахаривается. Из чего делают мёд. Из чего делают сахар. Про тростниковый сахар — едим ради его вкуса.
Всем привет! Что-то после рассказов про «белую смерть», захотелось поговорить про «сладкую». Это такой каламбур, шутка юмора. Вопрос вреда, и в данном случае, как Вы уже догадываетесь, заключается в основном, в неумеренном потреблении. Ну вот, значит, встречаются на полке много разных сортов сахара, и из местных и приезжие, и начинают выяснять, кто из них лучше… Стоп! Не допустим мордобоя, и разберемся сами.
Читать дальше →
Total votes 143: ↑140 and ↓3 +137
Comments 159

PostgreSQL: Приемы на продакшене

Reading time 9 min
Views 89K
Можно прочитать много книг по базам данных, написать кучу приложений на аутсорс или для себя. Но при этом невозможно не наступить на грабли, при работе с действительно большими базами/таблицами особенно, когда downtime на большом проекте хочется свести к минимуму, а еще лучше совсем избежать. Вот здесь самые простые операции, как например изменение структуры таблицы может стать более сложной задачей. Наиболее интересные случаи, проблемы, грабли и их решения из личного опыта с которыми нам на проекте Pushwoosh пришлось столкнуться описаны под катом. В статье нет красивых картинок, зато есть много сухого текста.

image
Читать дальше →
Total votes 75: ↑70 and ↓5 +65
Comments 18

Почему программировать легко

Reading time 8 min
Views 68K
Прочитал я тут на Хабре отличную статью «Почему программировать так тяжело?» и сразу проникся к ней симпатией. «Боже мой!» — подумал я. Наконец-то можно показать толковый и взвешенный текст некоторым моим знакомым, считающим меня высокооплачиваемым бездельником, объяснить родственникам, что это за работа такая — «кнопки целый день тыкать» и предоставить защитившим кандидатские диссертации друзьям доказательства того, что и я тут тоже не коровам хвосты кручу в рабочее время. «Какая прекрасная статья!» — думал я. Наконец-то кто-то понял всю суть работы программиста и объяснил её сложность понятным языком!

И лишь одной малюсенькой детали в этой статье не хватало. Правды.


Правды о том, что программировать легко и приятно, что сложности надуманы, а плюсы работы — недооценены. И я думаю стоит исправить эту несправедливость, написав такую статью. И нет, я не буду тут скатываться в трёп о высоких зарплатах, востребованности на рынке и высокой мобильности. Это всё ведь не о программировании, это о стиле жизни программиста, что не совсем то. А мы ведь на Хабре, а не на Мегамозге каком-то, поэтому давайте рассмотрим именно программирование, во всей его завораживающей красоте и устрашающей мощи!
Читать дальше →
Total votes 89: ↑71 and ↓18 +53
Comments 172

Спросите Итана №18: Почему мы все не внутри чёрной дыры?

Reading time 4 min
Views 40K
image
Мир вам ничего не должен – он был тут раньше вас.
— Марк Твен

Читатель спрашивает:
А почему Вселенная не сжалась в чёрную дыру сразу после Большого взрыва?

Честно говоря, я и сам об этом много думал. И вот почему.
Читать дальше →
Total votes 44: ↑40 and ↓4 +36
Comments 75

Ненастоящие сеньор-девелоперы, или почему годы опыта ни о чем не говорят

Reading time 6 min
Views 141K
Опытный программист из Торонто Мэтт Бриггс так любит свою работу, что говорит: «я бы писал код, даже если бы это было нелегальным». А когда он опубликовал в своем блоге пост о джуниорах, мидлах и старших разработчиках, то собрал больше сотни восхищенных комментариев. Мы в Alconost тоже восхитились и перевели эту статью для вас.

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

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

Реальность такова, что под «старшим разработчиком» понимается человек, который ваяет код более 3 лет. Его ставят на руководящую позицию, и обычно все заканчивается ожидаемо плачевно.

На самом деле, попытка оценивать людей временными интервалами – слишком упрощенный способ для таких тонких материй, как знание и профессиональный опыт. Но дела обстоят именно так. И если продолжать классифицировать специалистов подобным образом, то самое время нашей индустрии брать тайм-аут. Есть разница между человеком с 10-летним опытом, и тем, кто за то же время стал опытнее в 10 раз.


Постер из сериалa «Компьютерщики»
Читать дальше →
Total votes 111: ↑104 and ↓7 +97
Comments 102

LFS: Темная сторона силы. Часть 3

Reading time 10 min
Views 21K

Предисловие


Итак, пришло время расставить последние точки над «i» и рассказать о том, как из кучи исполняемых файлов и библиотек, которые мы героически собирали и настраивали в прошлой статье получить, наконец, Linux.

1. Подсистема инициализации Unix System V


Эта подсистема инициализации долгое время использовалась в Linux и была стандартом «де-факто». Однако время идёт, и нельзя в общем-то называть данный подход устаревшим. Гораздо точнее заметить что эта подсистема инициализации, в тренде развития систем семейства GNU/Linux, уступила свое место systemd, рожденной в недрах корпорации Red Hat. Существуют дистрибутивы до сих пор использующие скрипты инициализации. Однако все популярные линуксы практически поголовно пришли к использованию systemd, причем последним сдался консервативный Debian со своей дочкой Ubuntu.

Вообще-то я жалею, что сразу не стал собирать вариант LFS, использующий systemd. Просто, после первой неудачной попытки сборки не хотелось отклонятся от стабильной траектории. Возможно я ещё вернусь к этому вопросу, возможно так же что и не вернусь. Время покажет. А пока рассмотрим основные принципы работы скриптов инициализации System V.
Читать дальше →
Total votes 20: ↑20 and ↓0 +20
Comments 11

Основы систем счисления

Reading time 11 min
Views 560K
Изучая кодировки, я понял, что недостаточно хорошо понимаю системы счислений. Тем не менее, часто использовал 2-, 8-, 10-, 16-ю системы, переводил одну в другую, но делалось все на “автомате”. Прочитав множество публикаций, я был удивлен отсутствием единой, написанной простым языком, статьи по столь базовому материалу. Именно поэтому решил написать свою, в которой постарался доступно и по порядку изложить основы систем счисления.

Введение


Система счисления — это способ записи (представления) чисел.

Что под этим подразумевается? Например, вы видите перед собой несколько деревьев. Ваша задача — их посчитать. Для этого можно — загибать пальцы, делать зарубки на камне (одно дерево — один палец\зарубка) или сопоставить 10 деревьям какой-нибудь предмет, например, камень, а единичному экземпляру — палочку и выкладывать их на землю по мере подсчета. В первом случае число представляется, как строка из загнутых пальцев или зарубок, во втором — композиция камней и палочек, где слева — камни, а справа — палочки

Системы счисления подразделяются на позиционные и непозиционные, а позиционные, в свою очередь, — на однородные и смешанные.
Читать дальше →
Total votes 100: ↑62 and ↓38 +24
Comments 69

Маленькая идея: перед запуском первого стартапа, возможно, потренироваться хотя бы на простом интернет-магазине?

Reading time 4 min
Views 7.8K
Давайте представим, что у нас горят глаза скорее делать свой стартап на миллиард. Есть миллионы идей, как навсегда изменить мир и возглавить рейтинги Форбса. Двух маленьких вещей только не хватает: опыта и денег даже на минимальную разработку проекта. Недели, месяцы и годы проходят. Эти бестолковые инвесторы идей не понимают. Слишком уж инновационные эти идеи. Денег никто не дает и полезного опыта больше не становится.


Читать дальше →
Total votes 11: ↑10 and ↓1 +9
Comments 14

К черту талант

Reading time 4 min
Views 10K
Поверьте, научиться кодить чертовски сложно

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

Поэтому послушайте, что я понял. На данный момент я научил программировать более 300 людей. Я знаю, что это трудная дорога с препятствиями. Но знаете, что еще трудно? Ходить.

Вы не рождены с умением ходить, вам пришлось учиться и практиковаться. Тогда почему вы считаете, что можете стать мастером в кодировании в один момент? Почему вы уверены, что никогда не будете так же хороши, как «эксперты» в этой области? Вы считаете, им не пришлось практиковаться, и это все чистый талант? Знаете, они тоже когда-то были никчемными кодерами.
Читать дальше →
Total votes 20: ↑16 and ↓4 +12
Comments 10

LFS: Темная сторона силы. Часть 2

Reading time 13 min
Views 18K

Предисловие


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

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

Однако, прежде чем двигаться дальше, немного отойдем от классической схемы, предлагаемой авторами книги и сделаем вот что

$ su - lfs
$ wget http://roy.marples.name/downloads/dhcpcd/dhcpcd-6.7.1.tar.bz2 --directory-prefix=$LFS/sources
$ wget http://www.linuxfromscratch.org/blfs/downloads/7.7/blfs-bootscripts-20150304.tar.bz2 --directory-prefix=$LFS/sources
$ logout


Дело в том, что стандартная документация, касающаяся сборки базовой системы не описывает процесс настройки сети в случае, когда вы будете получать ip-адрес от DNS провайдера, или в случае, если динамический ip выдает вам ваш домашний роутер. Или в том случае, если Вы выполняете сборку под ВМ, имеющей доступ к сети через NAT.

Поэтому после того как мы соберем всё и вся, мы дополнительно установим и настроим DHCP-клиент, который позволит свеженькой системе получить ip сразу после перезагрузки и иметь таки доступ в сеть. Этот шаг относится уже к книге BLFS.
Читать дальше →
Total votes 19: ↑18 and ↓1 +17
Comments 4

Введение в функциональное программирование на Python

Reading time 10 min
Views 152K
Рассуждая о функциональном программировании, люди часто начинают выдавать кучу «функциональных» характеристик. Неизменяемые данные, функции первого класса и оптимизация хвостовой рекурсии. Это свойства языка, помогающие писать функциональные программы. Они упоминают мапирование, каррирование и использование функций высшего порядка. Это приёмы программирования, использующиеся для написания функционального кода. Они упоминают распараллеливание, ленивые вычисления и детерменизм. Это преимущества функциональных программ.

Забейте. Функциональный код отличается одним свойством: отсутствием побочных эффектов. Он не полагается на данные вне текущей функции, и не меняет данные, находящиеся вне функции. Все остальные «свойства» можно вывести из этого.

Нефункциональная функция:

a = 0
def increment1():
    global a
    a += 1


Функциональная функция:

def increment2(a):
    return a + 1


Вместо проходов по списку используйте map и reduce
Читать дальше →
Total votes 33: ↑30 and ↓3 +27
Comments 51

LFS: Темная сторона Силы. Часть 1

Reading time 21 min
Views 70K

Предисловие


Для того чтобы установить на свой компьютер Linux и начать его использовать для конкретных задач существует масса способов. Выбор дистрибутивов чрезвычайно широк, на любой вкус и цвет — и «для домохозяек» и для продвинутых пользвателей, допускающие любой уровень кастомизации, в том числе и сборку из исходников под конкретное железо. Установка системы в принципе доступна любому, мало-мальски грамотному пользователю ПК. И, если не погружаться в популярные по сей дей холивары на тему «Linux vs Другая ОС», то и спользование данной системы не требует знаний, которые были обязательными для новоиспеченного линуксоида скажем десять лет назад. С моей, глубоко субъективной точки зрения, за более чем десять лет, которые я наблюдаю за развитием этой системы, линукс стал более дружественен к новичкам и избавился от многих проблем, присущих ему в прошлом. И это хорошо.

Пингвины ручной сборки...


На Хабре уже мелькала пара статей на тему LFS, например эта, или вот эта. Комментарии к последней наводят на закономерную мысль — если набор возможностей для установки Linux и его изучения и так исчерпывающе широк, зачем нужен LFS?

Не буду витеивато излагать истории о том «как космические корабли бороздят… и когда Земля была огненным шаром...». Я отвечу на поставленный вопрос исходя из своей позиции — я собираю LFS потому, что мне просто интересно это сделать. Я вижу в этом процессе хорошую возможность заглянуть «под капот» системы. Допускаю, что этот путь сложно назвать оптимальным. Тем не менее, данная статья, и последующие за ней будут посвящены процессу ручной сборки Linux-системы. Данные статьи не будут переводом документации по сборке — в этом нет особой нужды. Акценты будут расставлены на специфике и ньюансах процесса, с которыми пришлось столкнуться автору лично. Будем считать этот цикл чем-то вроде дневника неофита.

Читать дальше →
Total votes 22: ↑20 and ↓2 +18
Comments 21

Простое объяснение движения денег в банковской системе

Reading time 10 min
Views 257K
От переводчика: В последние месяцы в жизнь многих людей прочно вошли новости сферы финансов. Одна из недавних тем — возможное отключение России от системы SWIFT. Угроза выглядит очень серьезно, но что на самом деле грозит стране, если события будут развиваться по этому сценарию? Наш сегодняшний материал призван помочь разобраться с тем, как все устроено в глобальном мире финансов.

На прошлой неделе [статья опубликована в ноябре 2013] Twitter сошел с ума из-за того, что кто-то перевел почти 150 миллионов долларов за одну транзакцию в криптовалюте. Появление такого твита было в порядке вещей:



Транзакция 194 993 биткоинов стоимостью в 147 миллионов долларов порождает много тайн и спекуляций

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

С помощью этой статьи я попытаюсь изменить ситуацию и проведу простой, но, надеюсь, не слишком упрощенный, анализ в этой области.
Читать дальше →
Total votes 100: ↑91 and ↓9 +82
Comments 180

Делить на ноль — это норма. Часть 2

Reading time 18 min
Views 75K
Часть 1. Вобще-то уже все поделили до нас!
Часть 2. Истина где-то рядом

В прошлой части мы расширяли алгебру и смогли делить на ноль арифметически. В качестве бонуса, способ оказался не единственным. Однако, все эти алгебры не дали ответа на вопрос: “Что там внутри или почему нам это не показывают?”

Пока древние вязали узелки, такой вопрос возникнуть не мог. Сейчас, куда не глянь, “бла-бла, для а≠0”. Значит ответ затаился где-то между узелками и настоящим. В математике все строго и последовательно, а значит и ответ не мог потеряться.

Читать дальше →
Total votes 83: ↑77 and ↓6 +71
Comments 59

Реализация словаря в Python 2.7

Reading time 15 min
Views 114K
В этой статье пойдёт речь о том, как реализован словарь в Python. Я постараюсь ответить на вопрос, почему элементы словаря не упорядочены, описать, каким образом словари хранят, добавляют и удаляют свои элементы. Надеюсь, что статья будет полезна не только людям, изучающим Python, но и всем, кто интересуется внутренним устройством и организацией структур данных.
Читать дальше →
Total votes 65: ↑64 and ↓1 +63
Comments 37

Делить на ноль — это норма. Часть 1

Reading time 9 min
Views 218K
Часть 1. Вобще-то уже все поделили до нас!
Часть 2. Истина где-то рядом

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


Читать дальше →
Total votes 106: ↑98 and ↓8 +90
Comments 102

Откуда есть пошло комплексное число

Reading time 3 min
Views 149K
В современной математике комплексное число является одним из фундаментальнейших понятий, находящее применение и в «чистой науке», и в прикладных областях. Понятно, что так было далеко не всегда. В далекие времена, когда даже обычные отрицательные числа казались странным и сомнительным нововведением, необходимость расширения на них операции извлечения квадратного корня была вовсе неочевидной. Тем не менее, в середине XVI века математик Рафаэль Бомбелли вводит комплексные (в данном случае точнее сказать, мнимые) числа в оборот. Собственно, предлагаю посмотреть, в чем была суть затруднений, доведших в итоге солидного итальянца до подобных крайностей.
Читать дальше →
Total votes 144: ↑139 and ↓5 +134
Comments 59

Суперсилы Chrome DevTools

Reading time 6 min
Views 70K


Я работаю в команде Онлайн. Мы делаем веб-версию справочника 2ГИС. Это долгоживущий активно развивающийся проект, в котором JavaScript используется как основной язык как на клиенте, так и на сервере.

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

В этой статье я расскажу, как мы используем стандартные браузерные инструменты разработчика для эффективной отладки и исследования. Эти рецепты направлены в первую очередь на изучение приложения снаружи-внутрь, поэтому подойдут для любого проекта.
Читать дальше →
Total votes 83: ↑78 and ↓5 +73
Comments 13

Information

Rating
Does not participate
Location
Баку, Азербайджан, Азербайджан
Date of birth
Registered
Activity