Pull to refresh
151
0
Валентин Владимирович @valyard

User

Send message

Грандиозная битва в EVE Online, кто потерял 300000$ и что же всё-таки там произошло

Reading time 15 min
Views 387K
Несколько дней назад в интернете появилась новость о самой масштабной битве в игре EVE Online, в которой было уничтожено кораблей на 300000 долларов. Многим оказалось интересно, как в какой-то битве в онлайн игре можно потерять столько денег. Но, большинство текстов про эту эпических масштабов битву написано языком, в котором не играющему в EVE Online человеку понятны лишь предлоги и матерные слова. Пару дней назад я наткнулся на очень интересную статью, где всё произошедшее описано очень простым и понятным языком.

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


Читать дальше
Total votes 328: ↑305 and ↓23 +282
Comments 312

Пессимальные Алгоритмы и Анализ Вычислительной Усложнённости

Reading time 10 min
Views 16K
«Усложнённость (Simplexity) — процесс, которым природа достигает простых результатов сложными путями.» — Bruce Schiff



1. Введение


Представьте себе следующую задачу: у нас есть таблица из n целочисленных ключей A1, A2, …, An, и целочисленное значение X. Нам нужно найти индекс числа X в этой таблице, но при этом мы особо никуда не торопимся. На самом деле, мы бы хотели делать это как можно дольше.

Для этой задачи мы могли бы остановиться на самом тривиальном алгоритме, а именно, перебирать все An по порядку и сравнивать их с X. Но, может так случиться, что X = A1, и алгоритм остановится на самом первом шаге. Таким образом, мы видим, что наивный алгоритм в наилучшем случае имеет временную сложность O(1). Возникает вопрос — можем ли мы улучшить (то есть, ухудшить) этот результат?

Разумеется, мы можем сильно замедлить этот алгоритм, добавив в него пустых циклов перед первой проверкой равенства X и A1. Но, к сожалению, этот способ нам не годится, потому что любой дурак заметит, что алгоритм просто-напросто впустую тратит время. Таким образом, нам нужно найти такой алгоритм, который бы всё-таки продвигался к цели, не смотря на отсутствие энтузиазма, или вовсе желания до неё в конечном итоге дойти.
Заинтригованы? Добро пожаловать под кат.
Total votes 51: ↑49 and ↓2 +47
Comments 15

Что можно узнать о кандидате по тестовому заданию

Reading time 9 min
Views 87K
Какое-то время назад по Хабру прокатилась волна статей о поиске работы и прохождению собеседований. Многократно высказались и работодатели и соискатели. Но, к сожалению, не была в достаточной степени затронута тема тестовых заданий.

Ведь, тестовое задание не ограничивается категориями «выполнил» и «не выполнил». Внимательно наблюдая за процессом и изучая финальный результат, можно в итоге многое сказать о человеке ни дня с ним вместе не поработав. А порой, и научиться чему-то новому.

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

На экране есть сетка M на N из цветных квадратиков. Нужно реализовать на этой сетке следующий эффект — по клику слева направо со скоростью V пробегает волна, меняя цвет квадратиков на другой (единый для всей волны). Эффект должен работать при любых значениях M, N, V. Волна начинается всегда у левой стенки. Одновременно может идти несколько волн разного цвета.
Анимационный пример: http://dl.dropbox.com/u/3601116/wave.swf (покликать по флэшке).


Я не сомневаюсь, что это задание с легкостью сделают все программисты посетители Хабра.

А у меня получилась следующая статистика:

  1. В итоге, задание взяли чуть больше 20 человек.
  2. Пара человек ничего не сделали.
  3. Половина из оставшихся (по моим критериям) с ним не справились.
  4. Кандидаты четко разделились на весьма интересные группы.

Подумайте немного, как бы вы выполнили это задание, и заходите под кат, где я расскажу обо всем подробнее.
Читать дальше →
Total votes 198: ↑135 and ↓63 +72
Comments 260

Простые стейт-машины на службе у разработчика

Reading time 8 min
Views 182K
Представьте на минутку обычного программиста. Допустим, его зовут Вася и ему нужно сделать анимированную менюшку на сайт/десктоп приложение/мобильный апп. Знаете, которые выезжают сверху вниз, как меню у окна Windows или меню с яблочком у OS X. Вот такое.

Начинает он с одного выпадающего окошка, тестирует анимацию, выставляет ease out 100% и наслаждается полученным результатом. Но вскоре он понимает, что для того, чтобы управлять менюшкой, хорошо бы знать закрыто оно сейчас или нет. Мы-то с вами тут программисты опытные, все понимаем, что нужно добавить флаг. Не вопрос, флаг есть.

var opened = false;

Вроде, работает. Но, если быстро кликать по кнопке, меню начинает моргать, открываясь и закрываясь не успев доанимироваться в конечное состояние. Вася добавляет флаг animating. Теперь код у нас такой:

var opened = false;
var animating = false;

function onClick(event) {
  if (animating) return;
  if (opened) close();
  else open();
}

Через какое-то время Васе говорят, что меню может быть полностью выключено и неактивно. Не вопрос! Мы-то с вами тут программисты опытные, все понимаем, что… нужно добавить ЕЩЕ ОДИН ФЛАГ! И, всего-то через пару дней разработки, код меню уже пестрит двустрочными IF-ами типа вот такого:

if (enabled && opened && !animating && !selected && finishedTransition && !endOfTheWorld && ...) { ... }

Вася начинает задаваться вопросами: как вообще может быть, что animating == true и enabled == false; почему у него время от времени все глючит; как тут вообще поймешь в каком состоянии находится меню. Ага! Состояния... О них дальше и пойдет речь.

Знакомьтесь, это Вася.


Читать дальше →
Total votes 114: ↑92 and ↓22 +70
Comments 96

Как вырастить программу из прототипа

Reading time 8 min
Views 23K
Каждую неделю на профильных блогах мы читаем как нужно использовать методологию X и фреймворк Y, чтобы написать хорошо спроектированный и легко поддерживаемый софт. Нам постоянно говорят, что, мол, говнокод — это плохо, рефакторинг — наше все, дают те или иные очень важные сферические советы в вакууме. В большинстве этих статей можно встретить абстрактные философские нравоучения, например, вот это я распечатаю и повешу при входе в офис:


А что, если я скажу, что не все проекты одинаковые, и некоторые из них не то что можно, а даже нужно тщательно выращивать из прототипа? Об этом я рассказывал на конференции Unite'12, а сейчас расскажу вам.
Читать дальше →
Total votes 77: ↑68 and ↓9 +59
Comments 49

RPG для разработчиков. Два года спустя

Reading time 8 min
Views 12K
Чуть более двух лет назад я опубликовал статью Другое видение скучных GTD планировщиков через призму RPG игр, в которой описал свою старую идею про совмещение работы над software проектами и элементов RPG игр.

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

Топик тогда собрал 100500 комментов (в основном «супер! хочу!»), а особо заразительные собрались в команды и стали воплощать идею в жизнь. Так что же было сделано за эти два года?


Читать дальше →
Total votes 80: ↑74 and ↓6 +68
Comments 46

Achievements в Visual Studio

Reading time 1 min
Views 2.4K
Год назад пробегал топик, мол, а что если сделать в Visual Studio ачивки как в MMO? И вот, народ сделал. Пока что ачивок маловато, но тренд интересный.

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

Приятно, что кто-то пытается воплотить эти идеи в жизнь.

Странно, но на хабре эта новость как-то прошла незамеченной и поиск ничего не дал.
Total votes 48: ↑40 and ↓8 +32
Comments 41

Coder vs. Developer vs. Engineer — а какой Job Title у тебя, %username%?

Reading time 12 min
Views 68K
Computer Scientist, Software Engineer и Coder заходят в бар.
— О, а вот и программисты! — окликает их бармен...


Я знаю людей, которые программируют уже не один десяток лет, но обижаются, когда их называют "программистами". А по запросу Coder vs Developer vs Software Engineer в гугле находится 113 000 000 ссылок: 1 2 3 4 5 6 7 8 9 … 113 000 000. Что интересно, можно найти совершенно противоположные мнения об одном и том же. С чем-то я согласен, а с чем-то в корне нет.

Последние же несколько лет так вообще постоянно подливают масло в огонь, появляются какие-то совсем странные программисты, которые называют себя Creative Technologist, Creative Coder и Interactive Developer.

Давайте же попробуем разобраться.
Читать дальше →
Total votes 148: ↑132 and ↓16 +116
Comments 129

А Вы отменили услугу Альфа-Чек с закончившихся карт в Альфа-Банке?

Reading time 1 min
Views 2.3K
Клиент Альфа-Банка уже очень давно. Все отлично, все устраивает. Но на днях все же случилась небольшая капля дегтя.

Подключена услуга Альфа-Чек на трех картах — всегда знаю что где кто снял и положил. Время от времени снимается небольшая сумма со счетов за каждую из них. Я как-то не обращал внимание, пока случайно не заметил, что списаний там больше, чем три.
Читать дальше →
Total votes 126: ↑116 and ↓10 +106
Comments 95

Как я проходил собеседование в компанию Zynga

Reading time 11 min
Views 27K
На Хабре опять стали появляться статьи о том, как проходить собеседования на должность программиста. Материал из них полезен соискателям так же, как учебники полезны студентам во время сессии. Вызубрите том по Мат. Анализу и, если попадете на тот экзамен, получите пятерку.

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

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

Ну, и картиночка на затравку.


Читать дальше →
Total votes 256: ↑249 and ↓7 +242
Comments 100

Не знаешь что посмотреть? Посмотри лучшие видео с TED

Reading time 2 min
Views 1.3K
Наткнулся на очень интересный пост, где небольшим скриптом народ составил топ самых обсуждаемых докладов с TED. А так как сериалы становятся все тупее и тупее, решил заполнить свое свободное время чем-то более полезным. Ведь на TED время от времени говорят об интересных и полезных вещах.

В итоге получился другой скрипт, который большинство этих видео скачал.
Читать дальше →
Total votes 36: ↑33 and ↓3 +30
Comments 45

Scala + Processing – интересный способ выучить новый язык

Reading time 4 min
Views 10K
Недавно мне довелось на собственном опыте убедиться: чтобы научиться применять какие-то новые технологии, недостаточно прочитать пару книг по теме, потому что без практики теория мгновенно улетучивается из головы.

Но что можно сделать такого интересного на Scala? На самом деле, выбор не слишком большой. Я как-то придумал небольшую тулзу, неспешно написал ее, и «забил». А через несколько месяцев, к своему стыду, гуглил синтаксис «for loop»…

Я решил, что дальше так дело не пойдет, и нужно найти какие-то небольшие проектики на основные возможности языка. Тут мне и пригодился Processing. Скучные учебные проекты он любому новичку (вроде меня) поможет превратить в визуальные инсталляции. А дальше можно выбрать, что покопать углубленно — например, генерацию фракталов, рендеринг частиц или визуализацию данных.

Я переписал на Scala и выложил на GitHub парочку примеров. На скрине как раз один из них — MSA Fluids. Заинтересовавшихся прошу под кат.

Читать дальше →
Total votes 56: ↑54 and ↓2 +52
Comments 16

Использование git во Flash разработке

Reading time 10 min
Views 5.8K
Я давно уже начал писать эту статью, но меня опередили (8.
Основная задумка была объяснить братьям флэшерам как работать с git. В статье я попытался описать свой личный опыт, а не просто перечислить очевидные плюсы git. Поэтому она будет полезна всем.

В первую очередь буду рад дополнениям и исправлениям. И конечно же вопросам.

Что такое git


git — это распределенная система контроля версий. Отличается от SVN отсутствием необходимости в центральном репозитории (который все же хорошо было бы держать) и легкостью работы с ветками (branch). Изначально я решил попробовать его в работе прочитав эту статью, что всем рекомендую.

У себя в компании я смог перевести клиентскую разработку на git и до сих пор не пожалел ни минуты. Время от времени я натыкаюсь на споры по поводу какая система контроля версий лучше, часто приходится объяснять чем все-таки мне нравится git.

Читать дальше →
Total votes 56: ↑46 and ↓10 +36
Comments 97

iPad как еще один дисплей для вашего компьютера

Reading time 2 min
Views 12K
В интернете уже несколько дней обсуждают программку Air Display (App Store $9.99), которая превращает ваш iPad в еще один (беспроводной) дисплей. Сегодня я ее себе поставил. И вот мои пара впечатлений и 50 центов.

Читать дальше →
Total votes 104: ↑74 and ↓30 +44
Comments 109

Второе интересное применение iPad'у — смотреть видео с настольного компьютера

Reading time 1 min
Views 14K
Я являюсь счастливым обладателем iPad WiFi уже почти неделю. Первое применение, ради которого я его и купил — читать PDFки с помощью GoodReader.

Вторым применением могло быть просмотр сериалов и нелицензионных фильмов, скачанных с торентов. Но длительная процедура перекодировки, импорта, закачки видео на устройство меня просто убивала. Пока я не нашел аппликацию AirVideo. Программулинка позволяет с помощью специального серверного приложения (доступного как на PC, так и на Mac) стримить видео по WiFi на iPad, перекодируя его на лету. Теперь для просмотра любимых сериалов лежа на диванчике, не нужно перед этим тратить время на перекодирование и заливку файлов.

На момент написания статьи, стоимость приложения в AppStore — $2.99, что для его функциональности и полезности совершенно смешные деньги. (/me жалеет, что купил какие-то гоночки за 10 баксов).
Total votes 46: ↑25 and ↓21 +4
Comments 20

Apple серьезно не хочет пускать к себе Flash

Reading time 1 min
Views 681
Из лицензии iPhone Developer Program

3.3.1 Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs. Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited).

Мне кажется, или они тут намекают и в том числе на возможность паблишинга iPhone приложений из CS5?
Читать дальше →
Total votes 60: ↑42 and ↓18 +24
Comments 72

Я обнулился. Хабракири или нет кармазадротам!

Reading time 1 min
Views 777
Я обнулился. Совершил публичное хабракири. Я безумный? Возможно.

Еще вчера в моем профиле можно было наблюдать следующую картину.

image

Сегодня утром у меня ноль кармы. Да-да. Многие обрадовались возможности обнуления, и я в том числе. Мне почему-то давно хотелось вернуться в ноль, чтобы на меня не показывали пальцем, говоря обидное слово кармадрочер. Я никогда им не был, почти все статьи написаны только потому, что я хотел поделиться чем-то с вами, рассказать что-то интересное и узнать ваше об этом мнение. Ставили плюс, значит интересно. Минус — ну ладно, буду думать дальше. Лично я всегда плюсую что мне нравится.

В то же время, с большой кармой идет и большая ответственность. Уже не думаешь, что ты пишешь. Из 250 в минус уйти куда сложнее, чем из нуля.

Возможно, последней каплей стал вопрос на Russian Flash User Group, вопрос не про флэш, мои работы или знания, нет, вопрос о том, «откуда у меня столько кармы на Хабре?». Не знаю, так получилось.

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

P.S. перенес сие безумство в iBrainless.
Total votes 127: ↑81 and ↓46 +35
Comments 68

NAS i-Stor iS607. Доработать напильником

Reading time 8 min
Views 20K
Купившись на краткий обзор i-Stor iS607 и его миленькую мордочку, на прошлой неделе я его приобрел. Чувства двоякие. С одной стороны оно работает, но какой ценой, господа. Кажется, я теперь могу идти админить Linux сервера.

* NAS, или Network Attached Storage, — это такая коробочка с винтом, которая подключается к сети и тихо выполняет функции файлсервера и торенткачалки стоя в углу. Лучше специальных серверов по следующим параметрам: конечно же цена, размер, энергопотребление.

Коротко.


Стоит ли покупать?
Нет, если вы не гуру линуксоид и/или не любите стучать головой об стену.

Минусы.
  • Стандартная прошивка iS607 умеет только… да ничего не умеет
  • Нестандартную прошивку надо еще найти и умудриться поставить правильную
  • Техподдержки для iS607 нет как класса, 95% информации в интернете устарело и тупо не работает
  • Нужно знать Linux, чтобы хоть как-то привести его в рабочее состояние
  • Судя по форумам, с половиной винтов iS607 не дружит
  • Также, с половиной маршрутизаторов
  • Довольно слаб
  • Имеет еще кучу (порой странных и непонятных) глюков

Плюсы.
  • Симпатяжка
  • Работает


image
* Нагло тырю картинку из того же топика

В этом посте я хочу собрать свой опыт настройки i-Stor iS607. Ибо в интернете информации весьма мало и мне пришлось перечитать вообще все, чтобы чего-то хоть добиться. Чтобы облегчить путь братьям Хабравчанам (хоть я и не сомневаюсь, что большинство из вас успешно завершили бы этот квест самостоятельно и вероятно быстрее меня), публикую инструкцию в одном месте.
Читать дальше →
Total votes 77: ↑70 and ↓7 +63
Comments 63

Аватар показал нам как нужно бороться с видео пиратами

Reading time 1 min
Views 831
Как там нынче борятся с видео пиратами? Большие штрафы, торенты закрывают, законы принимают — все равно я могу скачать из инета и посмотреть экранку практически чего угодно. Производители жалуются, мол каждый скачанный торент — это некупленный билет в кино. Так как же бороться с ними, с этими пиратами? Аватар наглядно показал, что…
Читать дальше →
Total votes 227: ↑170 and ↓57 +113
Comments 98

Я не хочу больше работать в маленьких студиях

Reading time 3 min
Views 2.2K
Вчера ко мне пришел К.О. и рассказал то, чего я и так вроде бы подозревал, но очень надеялся, что это все же неправда — кризис или не кризис на дворе, но в маленьких веб студиях в основном (конечно же, бывают исключения) все плохо.

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

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

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

Читать дальше →
Total votes 165: ↑118 and ↓47 +71
Comments 173
1

Information

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