Search
Write a publication
Pull to refresh
0
0
Александр Бобров @Syra

User

Send message

Программирование, быстрое и медленное: разработчики и психология самоуверенности

Reading time10 min
Views52K
Сегодня я собираюсь рассказать о том, что происходит в головах разработчиков программ, в тот момент, когда они делают предварительные расчеты; о том, почему им так сложно зафиксировать все задумки в своей голове; а также о том, как лично я разрешил для себя эту ситуацию, узнал, как жить и писать ПО (для счастливых владельцев бизнеса), но, уверен, мои собственные оценки трудоемкости ненадежны как никогда.

Но сначала история…

Это было <вставьте период времени, который не будет делать меня нелепо старым> в то время, когда я был молодым разработчиком (1). В колледже я был лучшим на занятиях по программированию, будучи младшим разработчиком, я мог взломать код и решить любую поставленную передо мной задачу быстрее, чем кто-либо ожидал. За выходные я мог изучить новый язык и продуктивно на нем работать (или, по крайней мере, мне так тогда казалось).

Таким образом, как и должно было произойти, у меня появился свой собственный проект. Менеджер по работе с крупными клиентами объяснил мне в общих чертах, чего хочет клиент, мы это обсудили, и я сказал: «На эту работу уйдет 3 недели.» «Хорошо», — ответил он. И так я приступил к программированию.

Как вы думаете, сколько времени у меня ушло на этот проект? Четыре недели? Может быть пять?

Мм, вообще-то: три месяца.

У меня остались четкие воспоминания о том времени – мое представление о себе было тесно связано с ощущением, что я — «хороший программист», в чем я сильно разочаровался. Я потерял сон, у меня случались небольшие приступы паники. И этому Не Было Конца. Я помню, что у меня сосало под ложечкой при разговоре с тем менеджером, я снова и снова объяснял, что у меня до сих пор нет ничего, что можно ему показать.

В один из таких черных периодов я решил, что Больше Никогда Не Буду Совершать Подобных Ошибок.

К сожалению, в ходе своей карьеры, я уяснил нечто очень тяжелое: я постоянно совершаю подобные ошибки.
Читать дальше →

Разбор заданий конкурса по анализу защищенности сетевой инфраструктуры NetHack

Reading time4 min
Views12K
Во время проведения форума Positive Hack Days III состоялся конкурс для экспертов в области сетевой безопасности NetHack. В ходе соревнования участники должны были за 50 минут получить доступ к пяти сетевым устройствам и добыть хранящиеся в них флаги. В игровую сеть, созданную специально для этого конкурса, были заложены типичные уязвимости и ошибки сетевой инфраструктуры, встречавшиеся специалистам Positive Technologies во время выполнения аудитов безопасности и тестирований на проникновение. Сегодня мы представляем вашему вниманию разбор конкурсных заданий.
Читать дальше →

Система изучения языка в Дании

Reading time8 min
Views139K
В продолжение статьи "Дания: страна здравого смысла" хочу поделиться, как здесь организовано изучение датского языка для иностранцев.

Целью статьи является освещение вопроса организации учебного процесса. Большую часть обучения можно пройти онлайн. Сюда входят аудио-записи слов, главное видео урока (со сквозной сюжетной линией), возможность отправить преподавателю устное и письменное сочинения и получить от него обратную связь в виде скринкаста.

Вначале — небольшая вводная, затем затронем техническую часть.

Зачем учить датский язык


Приезжим даётся 3 года, чтобы начать изучать язык за счёт государства, т.е. безвозмездно. Несмотря на это, я размышлял, стоит ли тратить на это несколько часов в неделю — ведь на нём говорит всего-то 5.7 млн человек.

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

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

Архив интересного кода

Reading time1 min
Views54K
Преподаватель из Стэнфордского университета Кит Шварц (Keith Schwarz) уже несколько лет пополняет свой архив интересного кода — образцы самых лучших алгоритмов и структур данных, когда-либо изобретённых человечеством (Шварц весьма амбициозно оценивает свою коллекцию).

Примеры на сайте преимущественно закодированы в C++, поскольку STL предоставляет прекрасную базу для выражения алгоритмов, работающих с различными типами данных. Структуры данных реализованы на Java.

Кит Шварц дает разрешение использовать свой код всем желающим без всяких ограничений.
Читать дальше →

Секретный ингредиент хорошего архитектора

Reading time6 min
Views33K
Что посеешь, то и пожнешь
Из желудя вырастет дуб,
Из семени репейника — только репейник
Профессиональное образование —
это семена, которые мы сеем...


Поиск высококлассных специалистов — один из самых сложных вопросов в бизнесе, связанном с разработкой ПО. Несмотря на все сложности мировой и отечественной экономики, квалифицированных кадров не хватает катастрофически. Количество проектов, требующих высокой квалификации, растет значительно быстрее, чем “зреют” специалисты (разработчик — 2-3 года, ведущий разработчик — плюс 2 года, архитектор решения — плюс 3–5 лет ...).

В результате на рынке труда сложно найти разработчиков, и почти невозможно найти квалифицированных архитекторов. Проблема усугубляется тем, что обучение хорошего разработчика не простая задача, в лучшем случае только половина студентов IT-специальностей, обучающихся по стандартной программе и не имеющих опыта работы, действительно в состоянии выполнять реальные задачи после окончания вуза. При этом, эти студенты, как правило, начинают работать по специальности со 2-3 курса, и сложно понять: они знают и умеют «благодаря» или «вопреки». Возможность обучить архитектора в вузе в принципе вызывает сомнения, если не истерический смех.
Читать дальше →

Оптимальная параллелизация юнит-тестов или 17000 тестов за 4 минуты

Reading time10 min
Views27K
Сегодня мы поговорим про разработанную нами утилиту, которая оптимизирует тестирование PHP-кода с помощью PHPUnit и TeamCity. При этом нужно понимать, что наш проект — это не только веб-сайт, но и мобильные приложения, wap-сайт, Facebook-приложение и много чего ещё, а разработка ведется не только на PHP, но и на C, C++, HTML5 и т.д.

Методы, которые мы описываем, прекрасно адаптируются под любой язык, любую систему тестирования и любое окружение. Поэтому наш опыт может оказаться полезным не только разработчикам веб-сайтов на PHP, но и представителям других областей разработки. Кроме того, в ближайшем будущем мы планируем перевести нашу систему в Open Source ― без обязательной привязки к TeamCity и PHPUnit ― наверняка она кому-нибудь пригодится.
Читать далее

Антон Кекс: Как нам спасти Java?

Reading time2 min
Views36K
Здравствуй, %USERNAME%!

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

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

Компьютерный алгоритм пытается соединить 320 000 фрагментов рукописей

Reading time3 min
Views21K


В 1896 году в генизе каирской синагоги обнаружили остатки рукописей: 320 тысяч измельченных фрагментов бумаги и пергамента. За прошедшие 117 лет удалось вручную соединить 4 тыс. из найденных фрагментов. На основе полученной информации написаны тысячи научных работ, но сейчас за дело взялись прикладные программисты.

16 мая 2013 года стартовал проект компьютерной обработки фрагментов. Специалисты из Тель-Авивского университета используют технологии распознавания образов, которые известны со времён конкурса DARPA по восстановлению документов после шредера. Все фрагменты сканируются, очищаются от фона и выравниваются, затем выделяются границы, программа ищет соответствие по форме кусочков, линиям на бумаге, точкам соприкосновения чернильного следа и т.д. Операторы проверяют корректность соединения фрагментов, а окончательная сборка осуществляется в графическом редакторе.
Читать дальше →

История плохого старта на Google Play

Reading time5 min
Views124K

Хотел бы с Вами поделиться опытом создания своей первой мобильной игры. Весной 2012 года глядя на аркадные «мотоциклы» своего знакомого, которые занимали верхние места в рейтинге Google Play, загорелся тоже сделать нечто подобное. Выбор пал на зомбодавилку, таких игр целая масса, но я думал выделиться полноценной 3d графикой, гаражом с возможностью прокачки техники. Опыт создания игр на движке Unity3d уже был, но под мобильные устройства делал впервые. Разумеется, делал не сам, а с художником, в свободное время.
Читать дальше →

DOOM 3 BFG — обзор исходного кода: введение (часть 1 из 4)

Reading time6 min
Views74K
Часть 1: Введение.
Часть 2: Многопоточность
Часть 3: Рендеринг (Прим. пер. — в процессе перевода)
Часть 4: Doom classic — интеграция (Прим. пер. — в процессе перевода)

26 ноября 2012 ID Software выпустила исходный код Doom 3 BFG edition (всего через месяц после появления игры на прилавках магазинов). Движок idTech4, которому уже почти 10 лет, был обновлен решениями, используемыми в idTech 5 (Rage — первая игра на этом движке), и с его исходным кодом ознакомиться было очень интересно.

Я бы назвал движок «idTech4 улучшенный», т.к. по сути это idTech4, но с использованием элементов idTech5:
  • Систему управления потоками (Threading system)
  • Звуковую систему (Sound system)
  • Систему управления ресурсами (Resources system)

Подробности

Немного о процессе производства электронных приборов

Reading time6 min
Views19K
Добрый день, уважаемые хабрачитатели.

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

Под катом очень много фоток. Осторожно! трафик.
Читать дальше →

Помочь GNU/Linux — это просто!

Reading time3 min
Views46K
Эта статья рассказывает о том, как я, внезапно для себя, перешел с уровня простого пользователя GNU/Linux на уровень контрибьютора в мир open source. Надеюсь что она сможет послужить еще кому-то примером для собственного роста.

Начало

Все началось с того, что я, как всегда, перешел на новый релиз Ubuntu, на этот раз на 13.04. У меня оказалась не самая удачная материнка для линуксоида, так как в дистрибутивах из коробки редко есть дрова для ее сетевой карты (RLT8168E). Но ведь это не большая беда, верно? Раздобыв сопутствующие для компилирования пакеты, скачал с офф сайта последние дрова на Linux. Я уже делал так с Ubuntu 12.10 и ничто не предвещало подвоха.

Подвох

Внезапно эти «дрова» не компилируются. Немного повтыкая в текст ошибок, я пошел просить совета на linux@conference.jabber.ru. Там мне рассказали, что брать дрова с сайта — не всегда хорошая идея и что для моей сетевой карты в репозитории есть пакет. Приятный сюрприз. И действительно, стоило начать с поиска пакета с дровами в репозитории. Но, как оказалось, в нем код того же модуля и при компиляции он точно так же падает.
Читать дальше →

Основы профессиональной верстки электронных писем

Reading time7 min
Views105K
Верстка электронных писем
Ни для кого не секрет, что e-mail маркетинг только начинает набирать обороты во всем мире. А для России – это ещё и вовсе молодая ниша на рынке. И профессиональная верстка электронных писем здесь один из составляющих факторов успеха. Под профессиональной версткой понимается не только визуально красиво и надежно сверстанный макет, но и то, как выглядит usability открытки с маркетинговой точки зрения, как оптимизирована графика вместе с типографией для спам-фильтров и многое другое. Верстка электронных писем довольно обширная тема, в одной статье все не уместить, поэтому в данном посте постараюсь описать только базовые элементы и приемы, надежно проверенные за годы практики и работающие в top самых используемых почтовых клиентах мира: iPhone 4S/5; Outlook 07/10/13; iPad; Apple Mail; Android 2.3/4.0; Yahoo; Gmail. Если рассматривать только российский рынок, то нельзя не упомянуть о Mail.ru и Яндекс.Почта.

Что нужно знать в начале?


Сразу хочу выделить несколько из основных и важных моментов:

  1. В нашем арсенале имеется очень урезанный набор css-свойств, которые поддерживаются всеми почтовиками. При этом, стили нужно прописывать inline, а в head выносить только вендорные свойства и те блоки объявлений, которые не несут нагрузки на основную стилизацию письма. Ну и использовать link in head — крайне нежелательно.
  2. Не используйте background-image в основных визуальных элементах дизайна и не помещайте в изображения важную текстовую информацию. Вообще нужно всегда учитывать такой вариант, что письмо будет просматриваться получателем без единого изображения.


Каркас


Пожалуй каждый, кто хоть раз верстал письмо под рассылку, знает, что каркас лучше строить с помощью таблиц. На самом деле простая блочная модель div поддерживается на данный момент во всех перечисленных выше почтовиках, за исключением MS Outlook начиная с 2007 версии. Это связано с тем, что в качестве движка последние версии Outlook используют Microsoft Word, который в свою очередь много не знает о блочных css-свойствах. Игнорировать при верстке данный почтовый клиент я не рекомендую, поэтому в качестве фундамента все же используйте table. Да и добившись хорошего результата для Outlook, можно быть уверенным, что в большинстве почтовиках, письмо будет смотреться тоже хорошо, а скорее и лучше.

В качестве примера рассмотрим наиболее важные элементы из следующего, не сложного шаблона:
Шаблон письма для рассылки
Читать дальше →

Программисты не пишут программы день напролет

Reading time3 min
Views48K

Недавнее исследование показало то, что и так не является секретом для большинства разработчиков: написание кода занимает лишь часть рабочего времени.
Например, помимо разработки, они пьют кофе :)

Недавнее исследование на тему того, как разработчики тратят свое рабочее время, показало, что программисты проводят большую часть времени НЕ занимаясь написанием кода. Компания Eric Cloud опросила 443 разработчика ПО и выяснила, что в среднем, они расходуют менее половины рабочего времени на «разработку и кодирование». Большая же часть времени расходуется на такие вещи, как: брейнcторминг, административные задачи, управление окружением и тестирование.
Читать дальше →

Лентикулярные билборды со скрытым текстом для маленьких людей

Reading time1 min
Views38K


На улицах Мадрида установили щиты, которые показывают «скрытое» послание для детей ростом ниже 1,35 м.

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

Как увеличить доход с 0 до $1'000'000 за два года

Reading time6 min
Views215K

Это перевод новой статьи с TechCrunch от Джеймса Альтушера (James Altucher) — инвестора, программиста, автора статей и немного предпринимателя. Его последние книги: Я был слеп, но теперь я вижу и 40 альтернатив колледжу.

Несколько недель назад я опубликовал пост 10 причин, по которым вы бросите свою работу в 2013 году. Там я приводил некоторые доводы. И это не была статья в стиле «Эй, вы должны стать предпринимателем». Скорее рассказ был на тему: недобрая срань творится (bad shit is happening) в корпоративном мире и рано или поздно вам захочется его покинуть.

Конечно же, много людей задавали вопрос: Что дальше? Что мне делать?
Читать дальше →

В IBM Research создали мультик, используя отдельные молекулы

Reading time2 min
Views49K


Технологии в наше время уже перешли в такую стадию, когда, используя какую-либо вещь, даже не задумываешься, насколько эта вещь может быть сложно устроена. Вряд ли тот же среднестатистический подросток со смартфоном последней модели понимает, сколько научных достижений, технологический прорывов было совершено, прежде, чем создание такого устройства стало возможным. Но даже сложность смартфона не идет ни в какое сравнение со сложностью управления отдельными атомами/молекулами. А ведь в IBM сняли целый мультик, двигая молекулы (монооксид углерода) в нужные места. Результат — отснятое видео, получившее название «Мальчик и его атом» (A Boy and His Atom).

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

Хакерские соревнования на Positive Hack Days III

Reading time4 min
Views21K


Хотите побывать в шкуре одного из друзей Оушена, испытав себя в обходе самых современных систем охраны, или перевоплотиться в настоящего Доктора Зло и пустить под откос поезд? В обычной жизни такие приключения практически наверняка не закончились бы ничем хорошим, но, к счастью, есть форум Positive Hack Days и его конкурсная программа.

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

Маркетинг для айтишника — козе баян?

Reading time6 min
Views24K


Год назад я начала читать магистрам СПбГЭТУ «ЛЭТИ» маркетинг в рамках курса «Управление ИТ-продуктом», затем расширила аудиторию до слушателей коммерческих и открытых курсов по маркетингу в ИТ.

Не раз мои знакомые (в основном разработчики) спрашивали: «Зачем айтишникам читать курс по маркетингу? Ведь они будут кодить, тестить или поддерживать ИТ-инфраструктуру, в менеджеры проектов и продаж пойдут единицы. Зачем разработчикам знать, что такое маркетинг и PR?».

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

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

Одним из объектов исследования, проводимых на моих семинарских занятиях, является сам учащийся. Вот лишь небольшой список параллелей, которые я провожу для объяснения взаимосвязи между ИТ и маркетингом:
Читать дальше →

Разрезание на две равные части, часть первая

Reading time4 min
Views56K
Задачи на разрезание — это та область математики, где, как говорится, мамонт не валялся. Множество отдельных проблем, но по сути нет общей теории. Помимо всем известной теоремы Бойяи-Гервина, других фундаментальных результатов в этой области практически нет. Неопределённость — вечный спутник задач на разрезание. Мы можем, например, разрезать правильный пятиугольник на шесть частей, из которых можно сложить квадрат; однако мы не можем доказать, что пяти частей для этого было бы недостаточно.

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



Скандалы, интриги, расследования

Information

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