Pull to refresh
0
0
Тихенко Эдуард @tikhenko

User

Send message

Моё разочарование в софте

Reading time11 min
Views388K

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


Я занимаюсь программированием уже 15 лет. Но в последнее время при разработке не принято думать об эффективности, простоте и совершенстве: вплоть до того, что мне становится грустно за свою карьеру и за IT-отрасль в целом.

Для примера, современные автомобили работают, скажем, на 98% от того, что физически позволяет нынешняя конструкция двигателя. Современная архитектура использует точно рассчитанное количество материала, чтобы выполнять свою функцию и оставаться в безопасности в данных условиях. Все самолёты сошлись к оптимальному размеру/форме/нагрузке и в основном выглядят одинаково.

Только в программном обеспечении считается нормальным, если программа работает на уровне 1% или даже 0,01% от возможной производительности. Ни у кого вроде нет возражений.
Total votes 505: ↑474 and ↓31+443
Comments2474

Почему «мотивирующие» статьи не работают, не сработают и как устроена мотивация на самом деле

Reading time3 min
Views51K
Многие любят читать мотивирующие статьи типа «30 способов заставить себя работать». Да и писать многие любят. Но что многие не любят — так это писать о том, что советы, изложенные в этих статьях, у них не сработали. То есть советы-то разумные. И применить их часто пытаются. Но есть одна проблема — стоит начать их применять, как возникает огромное внутреннее сопротивление. Настолько огромное, что применить советы не получается. Так в чем же дело?

Ответ, на самом деле, является сколь простым, столь и ошеломляющим — причина в том, что мы сами не знаем, чего хотим.

Читать дальше →
Total votes 68: ↑62 and ↓6+56
Comments361

Двенадцать способов перестать относиться к себе слишком сурово

Reading time3 min
Views11K
image

Независимо от того, начинаете ли вы работать над новым стартапом, или занимаетесь расширением уже существующей компании, вы неизбежно будете делать ошибки, и это очень сильно ударит по самооценке. С самих себя мы обычно спрашиваем гораздо строже, чем с других людей. Иногда собственным злейшим врагом можете оказаться вы сами. Нужно научиться распознавать случаи, когда вы несправедливо к себе относитесь, и отбрасывать негативные мысли. Каким образом?
Читать дальше →
Total votes 12: ↑10 and ↓2+8
Comments3

Точки выхода или немного о структурном программировании

Reading time3 min
Views15K
Читая Хабрахабр или просматривая чужие исходные коды, мне довольно часто приходится замечать примерно следующий кусок кода, который совершенно одинаково «звучит» на любом языке, на каком бы не был написан:
function(single_document)
{  
  if (single_document.getElementById("comments") != null)
    return;
    …
    …
    …
    …
}
* This source code was highlighted with Source Code Highlighter.

Здесь приведён кусочек кода на Javascript, но то же самое можно написать на нескольких десятках других языков. Что здесь не так? Только то, что у функции (метода, свойства, процедуры) несколько точек выхода. Если вам интересно почему это плохо, прочитай то что написано под катом.
Читать дальше →
Total votes 102: ↑56 and ↓46+10
Comments167

Хватит работать, давайте лениться

Reading time4 min
Views21K
Если я попрошу вас назвать факторы личной продуктивности, то, скорее всего, услышу слова типа «целеполагание», «тайм-менеджмент», «упорство». Найдется ли в этом списке место лени? Да-да, обычной, такой близкой, знакомой всем и тщательно скрываемой? Позвольте сделать, на первый взгляд, абсурдное заявление: лень – один из факторов продуктивной работы!

Читать дальше →
Total votes 24: ↑21 and ↓3+18
Comments8

Мобильный этикет

Reading time7 min
Views19K


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

Конечно, ничего страшного во всём этом не было, жили же как-то люди несколько тысячелетий без мобильников, и ничего. Но за какие-то несколько десятилетий мы настолько привыкли к наличию этого средства связи, что уже разучились жить в отсутствие мобильных телефонов. Они оказали сильное влияние на нашу культуру, на повседневную жизнь. И вполне естественно, что со временем выработались определённые правила приличия при пользовании мобильниками, позволяющих уважительно относиться к окружающим нас людям. Появился так называемый «мобильный этикет». Ведь культура проявляется далеко не только в начитанности и образованности, в первую очередь это личный кодекс поведения. Советов на эту тему много, поэтому мы подобрали из нескольких источников (1, 2, 3) рекомендации, которые нам показались наиболее актуальными.
Читать дальше →
Total votes 36: ↑15 and ↓21-6
Comments20

Реклама, которая не уважает пользователей

Reading time2 min
Views6.3K
Реклама, которая не уважает пользователей.

Именно такая мысль промелькнула у меня в голове, прочитав очередное спам-письмо от известной мировой компании.

Эта статья является не более чем рассуждением о рекламной рынке, в частности рынке интернет рекламы, пишу ее для того чтобы поделиться своими мыслями и услышать мнение других по этому поводу. Может даже кого-то это статья вдохновит на создание нового стартапа.
Читать дальше →
Total votes 12: ↑10 and ↓2+8
Comments12

Культ деловых совещаний должен исчезнуть

Reading time5 min
Views8.2K


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

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

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


Я слышу подобное каждый день. (Знаю, что и вы тоже.) Я слышу эти фразы ТАК часто, что уже не обращаю внимание на то, насколько все это невероятно и иронично. Только подумайте: как вы можете сфокусироваться на десяти главных задачах первостепенной важности? Это же самое важное. Это то, что должно быть сделано в ПЕРВУЮ очередь. Как вам добиться того, чтобы эти десять задач были решены?
Читать дальше →
Total votes 9: ↑7 and ↓2+5
Comments8

Культ работы, к которому ты не собирался присоединяться

Reading time10 min
Views30K


Эксплуатируются ли на работе наши самые ценные качества? Давайте взглянем на то, как наши сильные стороны оказываются впутаны в формирование плохих привычек, которые – если мы не изменим свою жизнь – вполне могут убить нас.

Ты и не думал, что столкнёшься с подобным. Ты даже не заметил, как сам сюда пришел.
Читать дальше →
Total votes 25: ↑24 and ↓1+23
Comments19

10 отвратительных практик найма, или Как распугать лучших соискателей

Reading time6 min
Views33K
Переведено в Alconost.

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

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

Когда резюме начнут поступать, каждое из них вы удостоите приветливого и человечного ответа. Слава технологиям, это стало простой задачей еще 35 лет назад! Вы проведете интервью с несколькими кандидатами и отправите вдумчивое «Нет, спасибо» остальным.

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

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

Это очень серьезно, и к каждому, кто ответил на объявление, я буду относиться как к ценному партнеру — ведь именно таков каждый из них!»

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

Человечность будет стержнем вашего процесса приема на работу, ведь вы же человек, к тому же умный и достойный. Но почему обычно все происходит не так? Ниже — десять глупых и саморазрушительных процессов при найме, которые ежедневно отпугивают от работодателей лучших соискателей.
Читать дальше →
Total votes 35: ↑32 and ↓3+29
Comments15

Философия программирования 5 — Колибри и Реактос

Reading time7 min
Views35K
Кто умеет копировать, тот умеет ДЕЛАТЬ. Это сказал Леонардо да Винчи. Видите ли, вы исходите из своих представлений, о том, что такое ХР, винда, операционка. Люди как рассуждают:

— Мне было ещё мало лет у меня стояла ХР, вот были золотые деньки, но тепереча не то, что давеча. Новые времена, современное ПО. Не понимаю, зачем копаться в старье? Вы бы хоть делали клон десятой винды, но куда с вашей то скоростью, вы его сделаете лет через 100.

Но если люди копируют старое ПО, это ещё не значит, что они ретрограды или некрофилы. Во-первых они это делают сейчас, находясь в современных условиях, зная все тенденции и направления. Во-вторых, устаревание софта вообще вещь крайне контр-интуитивная. Например, в самых современных приложениях есть куски кода написанные более двадцати лет назад, и, заметьте, — никто не собирается их переписывать. Это информация, она не изнашивается, как изнашиваются метал или дерево. Но людям свойственно своё бытовое восприятие переводить на вещи нематериальные и требующие совершенно иного взгляда. Понимаете? Информация. Это не вещь. Сравнивайте со стихами Пушкина.
Читать дальше →
Total votes 105: ↑85 and ↓20+65
Comments68

Кэти Сьерра о том, как создавать востребованные приложения и повышать «крутизну» своих пользователей

Reading time14 min
Views27K
Можно ли сегодня создать популярное приложение? Рынки поделены, ниши заняты, конкуренция — очень плотная… Но не время разработчикам предаваться печали! Общая планка приложений все еще остается низкой, и обойти всех конкурентов все еще возможно. Так утверждает Кэти Сьерра (Kathy Sierra) в своем выступлении со сложно переводимой темой «Building the minimum Badass User» и его продолжении.

Кэти Сьерра известна в России прежде всего как автор мирового бестселлера «Изучаем Java». Но книги по программированию — это далеко не всё, чем она занимается. Теория обучения, разработка интерфейсов, маркетинг приложений, мотивация — вот неполный список тем, по которым она регулярно пишет статьи и выступает на конференциях. В поле нашего внимания попали именно эти два выступления, потому что они обобщают и резюмируют самое ценное из её собственного опыта разработки, а также сотен прочитанных Кэти научных работ. Перед вами — не перевод, а, скорее, конспект наиболее интересных мыслей и практических рекомендаций.
Читать дальше →
Total votes 36: ↑34 and ↓2+32
Comments9

Джо Армстронг об инструментах разработчика

Reading time2 min
Views19K
Недавно на Erlang-mail листе проскочил следующий вопрос:
Тулы, которые у нас есть для разработки на Erlang — просто мусор! Я прошу прощения, но сейчас 2014-ый, а мы все еще используем Vim и Makefile'ы. Да, есть Rebar. Но по сравнению с Maven, Gradle (или даже SBT) это студенческая поделка, которую кто-то выложил на GitHub. Про плагины для Eclipse и Intellij я вообще молчу. Они просто не работают. Поэтому я всегда возвращаюсь к Vim. Я просто хочу писать код, который решает мою задачу а не думать о том как написать Makefile со всеми зависимостями.

Что ответил Джо этому нахалу?
Total votes 92: ↑63 and ↓29+34
Comments173

10 правил дзен-программиста

Reading time9 min
Views111K
От переводчика: это перевод статьи Кристиана Глобмайера The Ten Rules of a Zen Programmer. Статья мне понравилась, решил сделать перевод, после окончания перевода загуглил название, нашел вариант перевода: 10 принципов дзен программиста. Отличается от моего, поэтому решил свой вариант перевода все-таки запостить.

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


Одним дождливым утром я сидел за своим столом и думал об эффективной работе. До того, как я начал работать фрилансером, у меня бывало, что я работал много, но никогда не был доволен результатом. Я начал практиковать Дзен в 2006 году. То, что мне пришло в голову через довольно большое время — старые мастера Дзен уже знали сотни лет назад, как сегодняшние программисты должны работать. Хотя я не люблю посты «как быть лучшим программистом», я хочу рассказать о некоторых моих мыслях с того времени. Этот пост будет служить мне напоминанием, но если у вас есть идеи, не стесняйтесь оставлять комментарии.
Читать дальше →
Total votes 139: ↑118 and ↓21+97
Comments122

Что же не так с QR-кодами?

Reading time18 min
Views253K

Прекрасная картинка неизвестного автора

Я долго не писал эту статью. На протяжении полугода я регулярно практиковал попытки пройти в поликлинике к докторам без очереди и хамское вождение с московскими номерами в глубинке, чтобы стать толстокожим и невосприимчивым к ненависти (даже НЕНАВИСТИ!!!1), которая прольётся на меня после этой статьи. Это неизбежно, так как Хабр — гик-ориентированный ресурс, а QR-коды — гик-технология. Они уже получили широкое распространение и теплую поддержку от гиков Хабра, так что будущее у меня в мрачных оттенках. Не удивлюсь бритвенным лезвиям в почтовом ящике и молчаливому дыханию в телефонную трубку от полуночных незнакомцев.

Видимо, для апологетов QR-кодов эта технология — возможностью приблизить будущее, шагнуть в прекрасный мир завтрашнего дня с дополненной реальностью из всех этих многочисленных видеороликов и фильмов про будущее с прозрачными дисплеями, что-то разобрать на которых можно только при отсутствии просвечивающегося пёстрого бабушкина ковра на стене. Гики радуются любому новому примеру использованию QR-кода, даже если это помогающая рассказывать сказки детская пижама с QR-кодами, надгробия, коровы. И с мечтательным видом прогнозируют, что в будущем QR-коды будут повсеместно. По моему мнению, такой вариант событий можно описывать в антиутопиях, что-нибудь вроде «Мы» Замятина.

Для создания видимости аргументов в защиту своего мнения я мог бы устроить тут филиал wtfqrcodes.com и со злыми комментариями публиковать самые неудачные и даже опасные случаи использования QR-кодов, завершив всё это ссылкой на понятную инструкцию. Но эта демагогия не поможет прийти к цели — понять суть проблемы QR-кодов, так что passive-aggressive mod off, и давайте разберемся.

Так что же с ними не так?
Total votes 440: ↑369 and ↓71+298
Comments283

Дерек Сиверс: Почему мои программы и идеи публичны

Reading time4 min
Views18K
Как-то, во время ужина, моя подруга Валери заявила: «А мне все равно, если кто-нибудь обнаружит мои секреты. Потому что секрет – это всего лишь очередной факт, правильно? Так что если кто и залезет в мои личные вещи, например, и расстроится от того, что он там найдет – ну… это его проблемы».
Мне понравилась такая позиция...
Total votes 60: ↑53 and ↓7+46
Comments34

Спагетти-статья о спагетти-коде

Reading time15 min
Views48K
image

Перевод статьи Майкла О. Черча — What is spaghetti code?

Самый простой способ для эпитета утратить свое первоначальное значение — это стать чрезмерно широким, начать означать чуть больше, нежели просто “мне это не нравится”. Речь идет о термине “спагетти-код”, который люди часто используют как синоним к понятию “плохой код”. Проблема в том, что не всякий плохой код является спагетти-кодом. Спагетти-код — это особенно опасный и специфический вид плохого кода, и его особое зло заключается в самом способе разработки нами программного обеспечения. Почему? Потому что отдельно взятые люди редко пишут спагетти-код самостоятельно. Скорее, определенный стиль в разработке делает его все более распространенным со временем. Для того, чтобы понять это, нужно рассмотреть первоначальный контекст, в котором было определено понятие “спагетти-код” — ужасное (и в основном архаичное) использование оператора goto.
Читать дальше →
Total votes 31: ↑22 and ↓9+13
Comments10

Эмуляция OSS в Linux

Reading time2 min
Views6.7K
Последние веяния моды в IT привели к тому, что подавляющее количество устройств в современном компьютере стали «программными». Помимо дополнительной нагрузки на процессор это создает немало проблем для пользователей альтернативных систем.

В моем предыдущем компе стояла материнская плата в которую была интегрированная звуковая карта на базе VIA VT8237. VT8237 полностью аппаратное решение и проблем с проигрыванием звука в Windows/FreeBSD/Linux не было.

После апгрейда встроенная карточка поменялась на Realtek ALC883, которая не имела аппаратного микширования. Это порождало спектр различных проблем при использовании нескольких alsa приложений или одновременной работе alsa и oss эмуляции.

Способы решения этих проблем под катом
Читать дальше →
Total votes 23: ↑21 and ↓2+19
Comments3

Рекомендации по интерфейсу форм

Reading time6 min
Views32K

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

Основные рекомендации и ввод данных


  • Стремитесь к краткости.
  • Убедитесь, что в форме используется один язык (обороты, термины).
  • Если на странице находится только форма и ничего кроме нее, то при загрузке страницы стоит ставить фокус на первое поле формы, это позволит сэкономить немного времени (страница поиска, входа, регистрации).
  • Поддерживайте ясный путь заполнения формы.
  • Избегайте вторичных действий, если это возможно.
  • В противном случае четко разделяйте основное и дополнительные действия.
  • Выравнивайте основное действие так же как и поля формы, это упрощает восприятие формы.
  • Цветная подложка у главной кнопки сделает её более видимой.
  • Отключайте кнопку «Отправить» после того как пользователь на нее нажал, это позволит избежать двойной отправки данных.
  • Еще лучше — показывайте индикатор отправки.

Читать дальше →
Total votes 29: ↑22 and ↓7+15
Comments14

Программист-гуманитарий

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

Я часто читаю тут истории о том, как люди становились тру программистами. Как в 13 лет они взламывали школьные сервера и придумывали хитроумные вирусы. Я завидую этим людям и их складу ума. Моё знакомство с программированием случилось в основной школе, когда я рисовал кружочки и квадратики в QBasic. Я обожал команду GOTO и совершенно не понимал Pascal. С тех пор утекло много времени, я выучил много новых терминов и зарабатываю на жизнь веб-разработкой. Но иногда мне кажется, что это всё те же кружочки с квадратиками, просто они свистят и забавно попёрдывают. А Pascal я так и не выучил.
Читать дальше →
Total votes 220: ↑176 and ↓44+132
Comments125

Information

Rating
Does not participate
Location
Харьков, Харьковская обл., Украина
Date of birth
Registered
Activity