• Нет никакого потока

    • Перевод
    Важная правда об асинхронности в своей первозданной форме: нет никакого потока.

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

    Не внемлем этим крикам. Если операция по-настоящему асинхронная, то никакого потока нет.

    Скептики не убеждены. Высмеем же их.
    Читать дальше →
  • Новое в Java 8

    • Перевод
    Java еще не умерла — и люди начинают это понимать.

    Добро пожаловать в ведение по Java 8. Этот материал шаг за шагом познакомит вас со всеми новыми фичами языка. Вы научитесь использовать методы интерфейсов по умолчанию (default interface methods), лямбда-выражения (lambda expressions), ссылки на методы (method references) и повторяемые аннотации (repeatable annotations). Все это будет сопровождаться короткими и простыми примерами кода. В конце статьи вы познакомитесь с наиболее свежими изменениями в API, касающихся потоков, функциональных интерфейсов, расширений для ассоциативных массивов, а также с изменениями в API работы с датами.
    Читать дальше →
  • Почему я покинула Google

    • Перевод

    Размышления о том, как променять гордость и комфорт на настоящего себя


    «Для того, чтобы вырасти и остаться собой, нужна смелость», Э.Э. Каммингс

    Около шести месяцев назад я решила уйти с очень хорошей работы в Google для того, что бы попробовать жить другой жизнью. У меня было слабое представление о том, что я буду делать дальше, но я ушла, потому что больше не могла оставаться. Я не могу выразить это словами, но что-то внутри меня говорило, что мне не стоит дальше двигаться по этому карьерному пути. Я четко ощущала, что он не приведет меня туда, куда я хочу, и что мне нужно свернуть с этой дороги. Хоть и не очень понимала, куда я хочу попасть. С каждым месяцем пребывания в Google росла моя тревога и обидчивость. Я могла бы подождать нужного поворота, однако я понимала, что чем дальше, чем труднее будет свернуть. И что если я не знаю, где именно мне нужно свернуть? Единственное, в чем я была уверена, было то, что мне никто не подскажет верного решения: ни мой менеджер, ни коллеги, ни друзья, ни родители. Я представила себя в старости: чудесный муж, прекрасные дети, ипотека и сокрушение, что я упустила возможность заняться тем, чем хотела заниматься. Поэтому в январе 2013-го я свернула в ближайший поворот.
    Читать дальше →
  • Стартап-ловушка

    • Перевод
    • Вы присоединились к новому стартапу.
    • Вы мегаталантливое создание.
    • Вы можете работать 60, 70, 80 часов в неделю для достижения результата.
    • Вы офигенный разработчик и дизайнер.
    • Вы не попадетесь в ловушки, в которые попадались другие.
    • Вы убедитесь, что в этот раз все будет по-другому.
    • Вы настолько хороши, что правила вам ни к чему.
    • Вы в жопе.

    Читать дальше →
  • Ремесло программиста. Золотые правила

      imageДанный пост представляет собой выдержку «золотых правил» из примечательной книги Питера Гудлифа «Ремесло программиста».

      Кто-то освежит память, кто-то сверится как с чек-листом, а кто-то заинтересуется и прочтет книгу. Т.к. пост получился достаточно объемным, можно добавить его в закладки и периодически к нему возвращаться.
      Читать дальше →
    • Настройка Qt Creator для работы с Nokia N9

        Этот пост участвует в конкурсе "Умные телефоны за умные посты" и в нем я хочу рассказать о настройке средств разработки приложений для MeeGo Harmattan, операционной системы нового телефона Nokia N9. Настройку будем производить на Windows Vista (думаю, что для более популярной Windows 7 отличия будут несущественными). В документации для разработчиков под Harmattan в основном фигурирует Linux, поэтому данная статья будет хорошим дополнением для разработчиков, предпочитающих или по каким-либо другим причинам использующих операционные системы от Microsoft.

        Читать дальше →
      • Работа со структурами в C#

        • Перевод
        По следам недавнего топика «Обработка больших объемов данных в памяти на C#» представляю перевод упоминавшейся там статьи о структурах.

        Структуры являются фундаментальными типами данных в C# и большинстве других современных языках программирования. По своей сути структуры просты, но вы можете удивиться, насколько быстро работа с ними может стать сложной. Чаще всего проблемы возникают, если вы должны работать со структурами, созданными в других языках и сохраненными на диске или полученными в результате вызова функций из библиотек или COM-объектов. В этой статье я подразумеваю, что вы знакомы с понятием структуры, умеете определять их и владеете базовыми навыками работы со структурами. Предполагается, что вы имеете представление о том, как вызывать API функции с использованием p/Invoke, а также что такое маршалинг. В случае неуверенности в своих знаниях вы можете обратиться к документации.
        Множество техник, описанных в данной статье, могут быть расширены и применены к любым типам данных.
        Читать дальше →
      • В процессе поиска работы

          Приветствую, хабраюзеры.

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

          • Перевод
          Примечание переводчика: хоть статья довольно старая (опубликована 2 года назад) и носит громкое название, в ней все же дается хорошее представление о различиях реляционных БД и NoSQL БД, их преимуществах и недостатках, а также приводится краткий обзор нереляционных хранилищ.

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

          Если это правда, значит ли это, что могучие реляционные БД стали уязвимы? Значит ли это, что дни реляционных БД проходят и скоро совсем пройдут? В этой статье мы рассмотрим популярное течение нереляционных баз данных применительно к различным ситуациям и посмотрим, повлияет ли это на будущее реляционных БД.
          Читать дальше →
        • 10 способов стать хорошим программистом

          • Перевод
          Хороший программист — это тот, кто смотрит в обе стороны, переходя дорогу с односторонним движением.
          Даг Линдер

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

          Я не собираюсь писать мантры, следуя которым, вы станете хорошим специалистом. Моя цель — перечислить те вещи, которые помогли мне добиться успехов в этой профессии. Не существует четкого определения, кто такой хороший программист. Под таковым я подразумеваю человека, который разрабатывает отличные IT-решения и вносит вклад в развитие индустрии.

          Читать дальше →
        • Вакансии

            Нафига пускать на Хабр кадровые агентства? ИТ-Доминанта засрала весь раздел вакансии своими объявлениями.
          • Вы разработчик? Так почему вы до сих пор на кого-то работаете?

            • Перевод
            Как разработчик, вы сидите на золотой жиле. Вы осознаете это?

            Нет, серьезно, на @#$% золотой жиле! Никогда в истории не существовало возможностей так легко создать что-то с нуля, с маленьким или отсутствующим начальным капиталом и маркетинговой моделью, ограниченной только вашим воображением.

            Подумайте о крупнейших сайтах, которые вы постоянно посещаете: Facebook, Twitter, Flickr, Foursquare, или даже Google — все они были созданы разработчиками, у которых была лишь идея. Было ли это легко? Черт, нет. Но это могло быть сделано только в наше время. Так, черт побери, почему вы просиживаете день за днем, работая на кого-то?
            Читать дальше →
          • Хабрафутбол в Северной столице: отчет

              В прошлое воскресенье в Питере тоже собрались поиграть в футбол. Как и положено, первый блин вышел комом, тем не менее игра состоялась.

              Внимание! Под катом не будет тонн текста и фотографий.
              Читать дальше →
            • Точка сбора NoSQL

                Приветствую!

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

                Хабраюзеров, писавших на эту тему, я прошу переносить свои топики. Блог понемногу наполняется и ждет ваших новых интересных статей — MongoDB, CouchDB, Cassandra, Redis, Cache — все, что угодно.

                Добро пожаловать!
              • Хабрафутбол в Северной столице

                  image
                  Привет, хабраюзер!

                  Как известно, москвичи уже давно и успешно собираются и организуют футбольные баталии. А чем мы хуже? Предлагаю собраться и петербуржцам. Судя по комментариям, желающих должно набраться достаточно.

                  Итак, по пунктам.
                  Читать дальше →
                • Обзор алгоритмов кластеризации данных

                    Приветствую!

                    В своей дипломной работе я проводил обзор и сравнительный анализ алгоритмов кластеризации данных. Подумал, что уже собранный и проработанный материал может оказаться кому-то интересен и полезен.
                    О том, что такое кластеризация, рассказал sashaeve в статье «Кластеризация: алгоритмы k-means и c-means». Я частично повторю слова Александра, частично дополню. Также в конце этой статьи интересующиеся могут почитать материалы по ссылкам в списке литературы.

                    Так же я постарался привести сухой «дипломный» стиль изложения к более публицистическому.
                    Читать дальше →