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

Коты и счастье

Reading room
Хочу поделиться моей любимой притчей.



Однажды старый кот, повстречал молодого котёнка. Котёнок бегал по кругу и пытался поймать свой хвост.
Старый кот стоял и смотрел, а молодой котёнок всё крутился, падал, вставал и опять гонялся за хвостом.
— Почему ты гоняешься за своим хвостом? — спросил старый кот.
Читать дальше →
Total votes 295: ↑231 and ↓64 +167
Views 1.2K
Comments 189

Две реализации Дао

Lumber room
Нашёл недавно притчу на просторах необъятного рунета в блоге некоего the7ofdiamonds. Очень уж понравилась. И с юморком и про IT и вроде как присутствует неисчерпаемая восточная мудрость. В общем, решил с вами ей поделиться.
читать про Дао
Total votes 22: ↑18 and ↓4 +14
Views 309
Comments 6

Дао опозданий

GTD *
Я много опаздывал. На занятия в школу, институт, работу, поезд (не один раз) и даже самолёт. Я даже гордился этим. Вплоть до создания своей особенной философии: «Лучше поздно, чем никогда», «приходят с запасом закомплексованные ботаны, трусы или те, кто не умеет рассчитывать время».

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

Только для убеждённых опаздунов! Те кто всегда вовремя — это не для вас!

Только для убеждённых опоздунов
Total votes 42: ↑14 and ↓28 -14
Views 701
Comments 12

Дао программирования, часть 1

Abnormal programming *
Translation

Книга 1


Безмолвная пустота.

И сказал Великий Программист: «Если ты научился выхватывать ошибочный код из эксепшена, значит пришла пора тебе уходить».
Читать дальше →
Total votes 108: ↑74 and ↓34 +40
Views 51K
Comments 16

Дао программирования, часть 2

Abnormal programming *
Translation
Часть 1



Книга 4


Кодим

И сказал Великий Программист: «Хорошо написанная программа сама себе Рай. Плохо написанная программа сама себе Ад»

4.1

Программа должна быть лёгкой и гибкой, а подпрограммы её – словно нанизанные на нить жемчужины. Дух и цель программы должны быть сохранены на всём её протяжении. Кода не должно быть слишком много или слишком мало. Ни ненужных циклов, ни бесполезных переменных. Ни хаотичности, ни излишней структурированности.

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

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

Если программа не удовлетворяет этим требованиям, это ведёт к беспорядку и путанице. Остаётся лишь переписать её заново.
Читать дальше →
Total votes 42: ↑30 and ↓12 +18
Views 21K
Comments 5

О бедной рекурсии замолвите слово, или всё, что вы не знали и не хотите о ней знать

Programming *Perfect code *C++ *Algorithms *
Tutorial
Рекурсия: см. рекурсия.

Все программисты делятся на 112 категорий: кто не понимает рекурсию, кто уже понял, и кто научился ею пользоваться. В общем, гурилка из меня исключительно картонный, так что постигать Дао Рекурсии тебе, читатель, всё равно придётся самостоятельно, я лишь постараюсь выдать несколько волшебных пенделей в нужном направлении.

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

— Как она сложена?
— Превосходно! Только рука немного торчит из чемодана.

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

  def fib(n):
    if n<0: raise Exception("fib(n) defined for n>=0")
    if n>1: return fib(n-1) + fib(n-2)
    return n

приходится городить всевозможные грязные хаки, начиная от:

  @memoized
  def fib(n):
    if n<0: raise Exception("fib(n) defined for n>=0")
    if n>1: return fib(n-1) + fib(n-2)
    return n

И заканчивая вообще:

  def fib(n):
    if n<0: raise Exception("fib(n) defined for n>=0")
    n0 = 0
    n1 = 1
    for k in range(n):
      n0, n1 = n1, n0+n1
    return n0

Читать дальше →
Total votes 55: ↑44 and ↓11 +33
Views 71K
Comments 63

Криптовалюта Dash: Симбиоз человека и кода

Development Management *Project management *Venture investment Start-up development Business Models
Translation
image

Даже по меркам мира криптовалют проект “The DAO” недавно получил беспрецедентную огласку после релиза. Её рекламировали как истинно децентрализованную автономную организацию, The DAO обещала стать будущим смарт-контрактов. Тем не менее, несколько недель назад кто-то воспользовался уязвимостью в коде The DAO и переписал на себя свыше 3,6 миллионов токенов Эфира (т.е. на сумму более 60.000.000 USD по курсу на момент инцидента).

Многие средства массовой информации называли это «атакой», хотя с этим можно и не согласиться, если учесть, что программный код в “The DAO” является законом, а значит тот, кто пользуется уязвимостями кода, не сделал ничего незаконного и даже неэтичного.
Читать дальше →
Total votes 6: ↑3 and ↓3 0
Views 4.3K
Comments 34

OpenCASCADE и Невидимое солнце Дао

Python *Working with 3D-graphics *CAD/CAM *WebGL *3D printers
🔥 Technotext 2020

Тот лучший путник, что следов не оставляет
Тот лучший лидер, что без речи вдохновляет
План совершенен, если плана вовсе нет
И если мудрый двери закрывает,
Вам никогда не разгадать секрет

Великая книга Дао - Стих 27 ( Перевод Ю. Полежаевой)

Привет, Хабр! Хочу сегодня пригласить в увлекательное 3D-путешествие. Мне нравится 3D. Я пробовал работать в разных программах, но меня не покидало чувство, что мне чего-то не хватает. Даже если пользоваться встроенным скриптингом.

Поэтому я постепенно пришел к идее, что для реализации моих безумных творческих идей, наверное лучше подойдут CAD-системы. Вот там есть где разгуляться 3D-фантазии. Мощные алгоритмы создания поверхностей пересечений, проекций, аппроксимаций. Это как раз то, что нужно. Вообще, мне кажется, что разработчики промышленных геометрических CAD-ядер относятся к остальному 3D миру по принципу "Солдат ребенка не обидит".

Конечно, в своих поисках я не мог пройти мимо открытого CAD-ядра OpenCascade. Эта библиотека предоставляет уникальную возможность ближе познакомится с принципами внутреннего устройства современных CAD-систем. Вдвойне приятно, что это можно сделать на дружелюбном языке Python.

От одной мысли о всех этих чудесах, мое сердце начинает биться сильнее. Как поется в одной песне - я приятную дрожь ощущаю с головы до ног. Тех у кого в этот вечер похожее настроение - прошу под кат. Будем рисовать Инь и Янь в объеме.

Читать далее
Total votes 16: ↑15 and ↓1 +14
Views 5.3K
Comments 5