• Из закрытой касты в Servant Leadership: эволюция тимлида в Booking.com

      На пути от традиционной иерархии developer – teamlead – CTO до загадочного Servant Leadership в booking.com проходили и автономию. Отличная идея, дать людям свободу, возможность развиваться, расти, самим достигать цели, должна была замотивировать сотрудников.

      Георгий Могелашвили (glamcoder) на TeamLead Conf рассказал обо всех этапах, и в том числе о том, что нельзя просто так объявить автономию, а тимлидов отправить на мороз. Компания тестировала организационные изменения, проводила тренинги, и автономные команды таки сработали. Но только вовлеченность людей не выросла, а местами даже упала. Тогда процесс реорганизации начался с новой силой и тимлид вернулся, но уже с другой ролью.

      Под катом подробности и современное устройство менеджмента в компании с 1500 сотрудников в IT.


      О спикере: Георгий Могелашвили больше 10 лет в IT, последние четыре года работает в Booking.com в Амстердаме, 2 из них — тимлид.

      Затронем три основные темы:

      • Процесс эволюции (через что мы прошли за то время, пока я был в компании).
      • Автономность — хорошо это или плохо, и почему у нас это было.
      • Концепция Servant Leadership.
      Читать дальше →
    • Как я сделал свой «Яндекс.Транспорт» с расписанием и автобусами



        Автор: Михаил Аксенов, .NET Developer, DataArt


        С чего все началось


        Осенью 2014 года появилась радостная новость о том, что в Воронеже заработал Яндекс.Транспорт, который показывает движение автобусов и троллейбусов. Было очень круто прямо на остановке открыть расписание и узнать, что ваш автобус подойдет через 5 минут.

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

        Новый сервис водители использовали, чтобы следить друг за другом по карте, обгоняя и подрезая конкурентов на дороге. У некоторых начала падать выручка, они стали жаловаться владельцам маршрутов, а те пошли к людям, продающим оборудование с ГЛОНАСС и GPS и отправляющим данные о перемещениях машин в Яндекс. По просьбам хозяев автопарков они информацию отправлять перестали, и автобусы сразу начали исчезать с карты. Сейчас их стало чуть побольше, но это все равно гораздо меньше, чем на самом деле.
        Читать дальше →
      • Полвека «универсальным машинным языкам» (1966—2016): прошлое, настоящее, будущее

          КДПВ

          Прошлое


          Повествование можно начать с 1962 г., когда в Кембриджском университете началась работа над CPL («Cambridge Programming Language») — «усовершенствованным вариантом» ALGOL-60. К работе над языком подключился аспирант Мартин Ричардс; главной сложностью в реализации нового ЯП ему показалась необходимость ручного портирования компилятора для разных компьютерных платформ. В частности, когда кембриджский EDSAC-2 заменили на Atlas-2, разработчики CPL потратили много времени на портирование своего компилятора для новой платформы.

          Диссертация Мартина была посвящена «само-компилирующемуся» CPL: разработанный Мартином компилятор был написан на сильно упрощённом варианте CPL, компилятор которого несложно было написать на тогдашнем макроассемблере. Перенос CPL на новую платформу теперь можно было выполнить в два шага:
          1. Вручную пишем компилятор «упрощённого CPL»;
          2. Компилируем им компилятор «полного CPL».

          На этом Мартин не остановился, и разработал BCPL — систему для разработки переносимых компиляторов. Компилятор BCPL генерировал псевдокод, названный Мартином «OCODE».
          OCODE выглядел примерно так:
          OCODE «расшифровка» («procode»)
          94 5 L1 83 73 69 86 69
          95 4
          42 0
          42 0 40 2 14
          83
          42 0 42 1 40 2 14 83
          42 2
          40 3 42 1 15
          92
          85 L5
          90 L6
          42 1 40 4 40 2 14 83
          40 4 42 1 14 80 4 
          90 5 40 4 40 5 88 L6
          91 4
          42 2 40 3 42 1 15 92
          85 L7
          90 L8 40 4 40 2 14
          8 87 L9
          40 4 42 2 11 92
          85 L11
          90 L10
          42 0 40 6 40 2 14 83
          40 4 40 6 14 80 6
          90 L11
          40 6 40 3 22 86 L10
          91 6 90 L9
          40 4 42 1 14 80 4
          90 L7 40 4 40 5 88 L8
          91 4 97 103 0
          
          ENTRY 5 L1  'S' 'I' 'E' 'V' 'E'
          SAVE 4
          LN 0
          LN 0 LP 2 PLUS
          STIND
          LN 0 LN 1 LP 2 PLUS STIND
          LN 2
          LP 3 LN 1 MINUS
          STORE
          JUMP L5
          LAB L6
          LN 1 LP 4 LP 2 PLUS STIND
          LP 4 LN 1 PLUS SP 4
          LAB L5 LP 4 LP 5 ENDFOR L6
          STACK 4
          LN 2 LP 3 LN 1 MINUS STORE
          JUMP L7
          LAB L8 LP 4 LP 2 PLUS
          RV JF L9
          LP 4 LN 2 MULT STORE
          JUMP L11
          LAB L10
          LN 0 LP 6 LP 2 PLUS STIND
          LP 4 LP 6 PLUS SP 6
          LAB L11
          LP 6 LP 3 LS JT L10
          STACK 6 LAB L9
          LP 4 LN 1 PLUS SP 4
          LAB L7 LP 4 LP 5 ENDFOR L8
          STACK 4 RTRN ENDPROC 0
          
          ; заголовок процедуры
          ; стековый кадр (два параметра и две локальные переменные)
          ; поместить на стек число 0
          ; поместить ещё один 0, прибавить к нему 2-ой элемент стека
          ; записать в массив на вершине стека значение под ним
          ; всё то же самое для 1-ого элемента массива
          ; поместить на стек число 2
          ; вычесть единицу из значения 3-его элемента стека
          ; записать результат в локальную переменную
          ; перейти к метке L5
          ; объявление метки L6
          ; взять 4-ый элемент стека, записать в массив по этому индексу 1
          ; прибавить к 4-ому элементу стека 1, записать результат обратно
          ; L5: перейти к метке L6, если 4-ый элемент стека <= 5-ому
          ; объявление, что на стеке сейчас четыре элемента
          ; вычесть единицу из значения 3-его элемента стека
          ; перейти к метке L7
          ; L8: сложить 4-ый и 2-ой элементы стека
          ; прочитать значение по этому адресу; если это 0, перейти к L9
          ; умножить 4-ый элемент на два
          ; перейти к метке L11
          ; объявление метки L10
          ; взять 6-ой элемент стека, записать в массив по этому индексу 0
          ; прибавить к 6-ому элементу стека 4-ый, записать рез-т обратно
          ; объявление метки L11
          ; перейти к метке L10, если 7-ой элемент стека меньше 4-ого
          ; на стеке сейчас шесть элементов; объявление метки L9
          ; прибавить к 4-ому элементу стека 1, записать результат обратно
          ; L10: перейти к L8, если 4-ый элемент стека <= 5-ому
          ; на стеке четыре элемента; окончание процедуры
          (Для экономии места, последовательности команд записаны в одну строчку. Мартин в своём руководстве по BCPL поступает точно так же.)

          Исходный код на BCPL:
          LET sieve(workvec, vecsize) BE
          {
            workvec!0 := 0
            workvec!1 := 0
            FOR i = 2 TO vecsize-1 DO workvec!i := 1
            FOR i = 2 TO vecsize-1 DO
              IF workvec!i DO
              { LET j = 2 * i
                WHILE j < vecsize DO
                { workvec!j := 0
                  j := j + i
                }
              }
          }
          
          В более новых версиях OCODE добавилась поддержка чисел с плавающей точкой (соответственно, набор поддерживаемых опкодов почти удвоился), а также удалили опкод ENDFOR — вместо него генерируется пара LE JT.

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

          Компилятор BCPL(1) поставлялся в виде OCODE, и чтобы перенести его на новую платформу, нужно было:
          1. Вручную написать интерпретатор псевдокода(2) (на любом языке, хоть на Бейсике);
          2. Адаптировать кодогенератор,(3) написанный на BCPL, для своей платформы;
          3. Запустить под интерпретатором (2) компилятор BCPL (1), скормить ему кодогенератор (3), и получить на выходе исполнимый файл кодогенератора(4);
            • Интерпретатор (2) нам с этого момента больше не нужен.
          4. Прогнать через кодогенератор (4) псевдокод компилятора (1), и получить на выходе исполнимый файл компилятора.


          Такой подход означал, что для переноса компилятора на новую платформу требуется лишь самый минимум низкоуровневого программирования; и действительно, реализация BCPL была завершена к 1967 г. — раньше, чем была завершена реализация CPL, начатая на несколько лет раньше!

          Достоинства BCPL применительно к системному программированию вдохновили Кена Томпсона на создание языка Би, а тот — коллегу Кена, Денниса Ритчи, на создание Си. Именно из BCPL пошла традиция обозначать {фигурными скобками} блоки программы, и именно на BCPL была написана первая программа «Hello, World!».
          GET "libhdr"
          
          LET start() = VALOF
          { writef("Hello*n")
            RESULTIS 0
          }
          
          Более важная нам причина, по которой BCPL вошёл в историю: OCODE — первая универсальная «архитектура набора команд» (ISA), т.е. «виртуальная машина», не привязанная ни к какой конкретной аппаратной платформе с её особенностями. BCPL, таким образом — первый язык программирования, соответствующий парадигме «Write once, run anywhere» (WORA): программу на BCPL можно распространять в скомпилированном виде, и её можно будет запустить на любой платформе, для которой существует OCODE-кодогенератор.
          Читать дальше →
        • 40 ключевых концепций информационных технологий доступно и понятно

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

          Важные замечания:
          • Пункты с неуказанным источником написаны мной самостоятельно. Поправьте меня, если вы заметите какие-то неточности. Предложите лучшую аналогию, если это возможно.
          • Заголовки ссылаются на соответствующие им статьи в Wikipedia. Пожалуйста, читайте эти статьи для более серьезных и детальных объяснений.
          • Аналогии — отличный способ объяснить материал, но они не идеальны. Если вы хотите по-настоящему понять перечисленные концепции, вам следует начать с фундаментальных азов и рассуждать, исходя из них.

          Также зацените эту инфографику (вариант на русском), если вы просто начинающий программист.
          Читать дальше →
        • Как работает реляционная БД

          • Перевод
          • Tutorial
          Реляционные базы данных (РБД) используются повсюду. Они бывают самых разных видов, от маленьких и полезных SQLite до мощных Teradata. Но в то же время существует очень немного статей, объясняющих принцип действия и устройство реляционных баз данных. Да и те, что есть — довольно поверхностные, без особых подробностей. Зато по более «модным» направлениям (большие данные, NoSQL или JS) написано гораздо больше статей, причём куда более глубоких. Вероятно, такая ситуация сложилась из-за того, что реляционные БД — вещь «старая» и слишком скучная, чтобы разбирать её вне университетских программ, исследовательских работ и книг.

          На самом деле, мало кто действительно понимает, как работают реляционные БД. А многие разработчики очень не любят, когда они чего-то не понимают. Если реляционные БД используют порядка 40 лет, значит тому есть причина. РБД — штука очень интересная, поскольку в ее основе лежат полезные и широко используемые понятия. Если вы хотели бы разобраться в том, как работают РБД, то эта статья для вас.
          Читать дальше →
        • Многорукие бандиты: введение и алгоритм UCB1

          • Tutorial
          Это первый пост из блога Surfingbird, который я выношу в общие хабы алгоритмов и искусственного интеллекта; честно говоря, раньше просто не догадался. Если интересно, заходите к нам, чтобы прочесть предыдущие тексты, – я не знаю, что произойдёт, если просто добавить новые хабы к постам несколькомесячной давности.

          Краткое содержание предыдущих серий о рекомендательных системах:

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


          Читать дальше →
        • Используем console на полную

          • Перевод
          Метод console.log() — отличный способ вывести отладочную информацию, не мешая пользователю. Но знаете ли Вы, что объект console имеет еще уйму других не менее полезных методов? Очень редко разработчики используют этот функционал, ограничиваясь неблокирующим alert'ом. Что-ж, давайте исправим это положение.

          Вкусности console
        • Удачная модель ветвления для Git

          • Перевод
          Перевод статьи Vincent Driessen: A successful Git branching model

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



          В качестве инструмента управления версиями всего исходного кода она использует Git.

          Читать дальше →
        • Дети не умеют пользоваться компьютерами… И вот почему это должно вас беспокоить

            Оригинал: http://www.coding2learn.org/blog/2013/07/29/kids-cant-use-computers/

            Многобукв? Что ж, почему бы вам не посмотреть пятисекундное видео с котенком, засунувшим голову в рулон туалетной бумаги, или не прочитать 140-символьное описание блюда, которым ваш друг набил себе рот. «Ням-ням». Этот пост не для вас.

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

            Я улыбнулся и представился, присаживаясь рядом с ней. Она молча вручила мне MacBook, и выражение ее лица сказало всё: «Почини мой компьютер, гик, и побыстрее». Меня путали с техником достаточное количество раз для уверенного распознавания этой гримасы.

            — Придется поторопиться. Через 5 минут у меня урок, — сказал я.
            — Вы преподаете?
            — Это моя работа, просто так получилось, что также приходится управлять командой специалистов по сетям.

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

            Я посмотрел на MacBook. На тот момент у меня не было опыта с OS X. Но Джобс не был идиотом, и то, что отображалось в верхнем правом углу экрана, было общеизвестным символом WiFi. Чтобы подключить устройство к сети, мне понадобилось несколько секунд.

            Вручил MacBook обратно, и женщина открыла Safari. «Интернет не работает», заявила она с презрением.

            Я столько раз слышал эту фразу от учеников и персонала, что у меня уже заготовлена стандартная реакция. Обычно я достаю сотовый телефон, делаю вид, что набираю номер. И подняв трубку к уху, говорю: «Да, соедините меня с офисом Президента Соединенных Штатов… НЕТ, Я НЕ МОГУ ПОДОЖДАТЬ, это чрезвычайное происшествие… Алло, Мистер Президент, боюсь у меня плохие новости. Меня только что проинформировали, что Интернет не работает».

            Но я решил, что молодая женщина, наверное, не оценит сарказм, и забрал MacBook обратно, чтобы добавить настройки прокси-сервера. Без каких-либо идей, как это сделать в OS X. Прокси у нас используется, чтобы убедиться, что персонал и ученики не могут получить из школьной сети доступ к порно. Также он фильтрует насилие, экстремизм, ругательства, социальные сети, алкоголь, курение, хакерство, игры и потоковое видео. Забавно, что когда вы ищете в Google «proxy settings OSX», результаты выдачи будут заблокированы, поскольку содержат слово «proxy», а оно фильтруется.

            «Вы не знаете, где здесь настройки прокси?» — спросил я с надеждой.

            Ответа я не получил. С тем же успехом можно было спросить у нее «Не подскажете, как мне ретикулировать сплайны с использованием гексагональной системы декодирования, чтобы я мог создать GUI на VisualBasic и отследить IP-адрес?»

            корни шутки

            спасибо acherneha — прим. переводчика.


            Настройки прокси я нашел и заполнил за десять секунд. Вернул ей MacBook, и она, буквально, закрыла Safari и открыла его заново, вместо того, чтобы обновить страницу. «Пасиб…». Благодарность была ошеломляющей.

            Я уже уходил, когда она меня остановила. «PowerPoint не работает».

            Не устали? Под катом реально много букв
          • То, чего еще никто не писал про Нокиа, Элопа и горящую платформу

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

              Традиционно, для тех кто не любит много буков, краткие (более-менее) тезисы:

              • Будучи долгое время лидером на рынке, Нокиа сильно расслабилась и загадила свою внутреннюю инфраструктуру бюрократией, чрезмерным аутсорсингом и огромным количеством бесполезной «менеджерской прослойки».
              • Будучи долгое время лидером, Нокиа просрала потратила много денег на ненужные операционные расходы, поглощения никому не нужных фирм и на невменяемую модель аутсорсинга.
              • Полностью оторвавшись от реальности с уходом Йормы Оллилла, Нокиа, под управлением гениального юриста CEO Олли-Пекки Каласвуо, потратила кучу денег и усилий на создание бесполезной и неконкурентоспособной сервисной инфраструктуры Ovi. В результате этого, помимо денег, Нокиа потеряла уйму полезного времени, которое можно и нужно было потратить на развитие основного бизнеса — телефонов, софта и т.д.
              • Бюрократия и непотопляемая менеджерская прослойка в Нокиа, последовательно мигрировала из одного передового проекта в другой, в составе одних и тех же групп лиц, самореплицируясь в виде кучи формальных дебилопроцессов комитетов и управленческих групп, немного перетасовываемых с учетом специфики. В итоге именно эта бюрократия убила и Symbian, и Ovi, и MeeGo и остальные попытки догнать уходящий поезд своими силами.
              • Борьба с бюрократией и прослойкой в Нокиа зашла в полный тупик.
              • У великого CEO Элопа просто не было другого выхода кроме как прибить всю старую, неповоротливую и прогнившую организацию, путем создания альянса с Майкрософтом и переходом на Windows Phone. Тем самым все старые процессы, компетенции, технологии и самое главное — люди резко стали, что называется, «не в тему». И следовательно тем самым можно было под благовидным предлогом прибить этот табун менеджеров, бесконечно рисующих фэнтезийные роадмапы с единорогами и перекладывающих бумаги с левого края стола на правый.
              • Новая Нокиа, после 2011 года и старая Нокиа до 2011 года – это две РАЗНЫЕ организации. Их объединяет только общее название и операционка S40 для телефонов Asha.
              • Горящая платформа, это не Symbian и не MeeGo. Горящая платформа, это то состояние в которое Нокиа загнали годы расслабленного лидерства и тупоголовые амбиции предыдущего CEO – Олли-Пекки Каласвуо с кликой подкаркивающих вице-президентов.
              • С бюрократией и бизнес процессами, имеющимися на 2010 год, Нокиа не спас бы ни Андроид, ни половина населения Бангалора, пишущих на Qt под MeeGo. Даже если бы Apple бесплатно передал Нокиа iOS и все сервисы, то они бы выродились руками всяких Requirement Managerов в типичные Нокийские дизайн-химеры и в итоге загнулись через какое-то время.
              • То, что сделал великий CEO Элоп – было единственно возможным разумным решением, дающим хоть какие-то шансы на выживание. Вопрос «каким образом он это сделал?», остается открытым, равно как и вопрос «поможет ли это Нокиа?» в итоге. Не следует забывать, что нынешняя Нокиа — это совершенно новая организация, поэтому глупо предполагать, что она разом вернет себе лидерство. Как и всем новым организациям ей придется за это лидерство долго бороться.
              • Без ошибок и побед Нокиа никогда не было бы ни Андроида, ни Айфона. И Google и Apple тщательно проанализировали достоинства и недостатки более старших конкурентов перед тем как шагнуть вперед.

              Все это в деталях — под катом. Предупреждаю что клевых картинок там нет. Сплошное графоманство и ёрничанье.
              Читать дальше →
            • Мифы нашего времени: генетически модифицированные организмы. Так ли страшен черт?

                Человеку давно свойственно интересоваться окружающим миром и находить объяснения тому окружающим вещам и событиям. Собственно, без этого человек не стал бы человеком. На базе верований, мифов развивалась сначала религия, а потом — и современная наука, которая уже весьма успешно объясняет окружающий мир от очень малых до впечатляющих масштабов. Но всегда оставались люди, которые противились прогрессу и распространяли устоявшиеся мифы, уверяя, что они отвечают на все вопросы и незачем двигаться дальше. Гром гремит — это Перун-громовержец злится; кто-то заболел — это Бог его наказывает, вот тебе объяснения, отстань, не задавай вопросов, а лучше помолись.
                Современные мифы более глубоки и обычно связаны с наукой. Причины понятна — наука развилась (особенно в последнее время) до такой степени, что часто нужен колоссальный объем знаний, чтобы просто понять, о чем вообще идет речь. У многих людей этого объема нет или безвозвратно потерян, что и снижает их сопротивляемость к разного рода мифам нашего времени. Миф про вредность пищевых добавок Exxx; миф про полезность натурального и вредность «химии»; миф про врачей-убийц, травящих людей прививками; миф про настолько страшное ГМО, что наклейки с надписью «без ГМО» надо клеить даже на салфетки и на пачки с солью.
                Картинка для привлечения внимания
                Что такое ГМО? Зачем они нужны? Как велика опасность и польза от их использования? Есть ли доказательства безопасности этих организмов?
                Рассуждения дилетанта на тему - под катом
              • Космонавты, которые намного круче чем любой герой боевика

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

                Читать дальше →
              • Звезда Смерти не нужна когда есть Curiosity

                  На сайте Белого дома США несколько месяцев назад открыт сервис подачи петиций. За каждую петицию открыто голосование и если оно наберет более 25 тыс. голосов, то на него должен последовать официальный ответ Администрации президента. 14 ноября 2012 года там была опубликована петиция за начало финансирования и строительства «Звезды Смерти».
                  Сегодня петиция получила достойный официальный ответ.
                  image
                  Читать дальше →
                • Перестаньте называть себя программистом и другие карьерные советы

                  • Перевод
                  Есть один курс, который я бы добавил в программу обучения по всякой инженерной специальности, и он не о компиляторах или сложности алгоритмов. Это “Введение в реальность индустрии”, ибо об этом не говорят и это приводит к никому не нужным обломам. Эта статья претендует стать README.txt для молодого инженера в деле построения карьеры. Ее цель — сделать вас счастливее, заполнив пробелы в образовании относительно того, как работает реальный мир. Я не призываю следовать написанному как подробному руководству, но я надеюсь, что эта информация окажется для вас более ценной, чем то ничто, что вам рассказали об этом в университете.
                  Читать дальше →
                • Как найти работу в Германии


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

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

                      Если мы посмотрим внимательно на жанровое разнообразие в игровой индустрии (сразу оговорюсь, я имею в виду сюжетные single-player игры, не касаясь mmorpg и казуальщины), то мы обнаружим, что оно существенно деградировало по сравнению с 90-ми годами. Жанр квеста исчез совсем, TBS находится на грани вымирания. Существенно сократилось поголовье классических RPG типа Baldur Gate, Planescape Torment (т.е. таких RPG, где надо думать головой при билде персонажа). Стало значительно меньше игр с оригинальной игровой механикой (типа Settlers I-II). Собственно, за меня здесь уже всё сказали, см. картинку слева.

                      Большая часть современных игр — это какая-то помесь RPG от первого лица, шутера и аркады. При этом, что характерно, на разработку этих игр тратится очень много денег, так что проблема явно не в желании издателя сэкономить. Ровно то же самое произошло и с музыкой: всё многообразие жанров (опера, симфония, соната, фуга, etc.) в классическом искусстве деградировало ровно до одного — песни. И, если я не ошибаюсь в своих предположениях, то очень скоро с геймдевом произойдёт то же самое.

                      Собственно, если некоторые студии перестанут регулярно выкапывать труп стюардессы (см. Might & Magic Heroes VI, Civilization V, Diablo 3, etc), то это может произойти прямо завтра. Почему же? Что общего у геймдева 90-х и классической музыки?

                      А вот что
                    • Краткий обзор популярных нейронных сетей

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

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

                        Начну с классики.

                        Читать дальше →
                      • Tesla Model S — первый тестдрайв

                          Казалось бы совсем недавно было объявлено о разработке компанией Tesla motors новой, второй модели электромобиля марки Tesla,
                          особенность и знаковость которой в том, что это четырехдверный седан.
                          image
                          На данный момент готов прототип авомобиля, проведены пресс показы и тестдрайв.
                          Видео под катом.
                          Читать дальше →
                        • Опасный Кружечный Кекс

                            Почему опасный? Да потому что этот кекс уже в 5 минутах от Вас!

                            image

                            Что нужно:


                            • 1 кружка (безопасная для микроволновой печи)
                            • 4 Столовые ложки муки
                            • 4 С.л. сахара
                            • 2 С.л. какао
                            • 1 яйцо
                            • 3 С.л. молока
                            • 3 С.л. растительного масла
                            • Щепотка ванили
                            • 3 С.л. шоколадной крошки, желательно

                            Как готовить
                          • Психиатрическая клиника для мягких игрушек, подвергавшихся жестокому обращению.

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