• Lock-free структуры данных. Concurrent maps: skip list


      В предыдущих статьях (раз, два) мы рассматривали классический hash map с хеш-таблицей и списком коллизий. Был построен lock-free ordered list, который послужил нам основой для lock-free hash map.
      К сожалению, списки характеризуются линейной сложностью поиска O(N), где N — число элементов в списке, так что наш алгоритм lock-free ordered list сам по себе представляет небольшой интерес при больших N.
      Или все же представляет?..
      Читать дальше →
      • +36
      • 21,8k
      • 8
    • Авто-регистрация тестов на С средствами языка

        Тестирование в CСравнительно недавно была статья «Полуавтоматическая регистрация юнит-тестов на чистом С», в которой автор продемонстрировал решение задачи с использованием счётчиков из Boost. Следуя этому же принципу, была предпринята (успешная) попытка повторить данный опыт уже без использования Boost из соображения нелогичности наличия в проекте на C зависимости от Boost, да ещё и в таком небольшом объёме. При этом в тестах присутствовали вспомогательные директивы препроцессора в большом количестве. И всё бы так и осталось, но практически на завершающей стадии был найден альтернативный способ регистрации, который позволяет полностью избавится от дополнительных действий. Это C89-решение для регистрации тестов и чуть более требовательное к системе сборке решение для регистрации наборов тестов.
        Каким образом
      • Загрузочный сервер — как загрузочная флешка, только сервер и по сети

          Загрузочная флешка с набором нужного софта — замечательный инструмент системного администратора. Казалось бы, что может быть лучше? А лучше может быть загрузочный сервер!

          Представьте, вы выбрали в BIOS загрузку по сети и можете установить ОС/вылечить компьютер от вирусов/реанимировать диски/протестировать ОЗУ/etc с PXE Boot сервера, ведь это куда удобнее, нежели бегать с флешкой от машины к машине.
          А в случае большого компьютерного парка, такой инструмент и вовсе незаменим.

          Вот такое меню встречает нашу команду инженеров при загрузке с PXE



          Под катом вас ждет описание всех настроек, а так же небольшой сюрприз.
          Поехали!
        • Программа курса и материалы по Scala

          • Tutorial
          Добрый день.

          Меня зовут Головач Иван, я практикующий Java Tech Lead с опытом в программировании 10+ лет (Java EE, J2ME, C, C++, M-language, Delphi), который перешел на Scala.

          Я подготовил и прочитал как обычные курсы по программированию (Java Core + Junior Java Developer), так и спецкурсы (Multicore Programming for JVM (раз и два)).

          В данный момент я стартую спецкурс по Scala и в этом топике хочу поделиться материалами, которые я нашел наиболее интересными/информативными (курс готовился более года).
          Читать дальше →
        • Оборудование помещения для прослушивания музыки

            image

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

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


              Он волосат, небрит и очень программист

              @bobuk показал человека-паука и сказал, что айтишники спасают человечество. Потому что помогают решать проблемы. И ещё в качестве примера привёл Леонардо да Винчи с его вертолётом. Дети вертолёт не запомнили, но прыжки человека-паука на экране оценили. И ещё все узнали Нотча, написавшего Майнкрафт практически в одну харю.

              Но давайте-ка я начну сначала и расскажу, что привело нас к открытию исходников игры «Такси», пришиванию пуговиц к сосискам и рассказу целой толпе детей про сложную и опасную профессию программиста.
              Читать дальше →
            • Жонглирование. Теория. Практика

                Настороженно отношусь к непрофильным топикам, но решил написать этот по следующим причинам:
                • У жонглирования есть своя теория — стройная и математически привлекательная!
                • Мы живем не только работой. Жонглирование — отличное развлечение и разминка после долгого сидения за компом.
                • В пятницу приятно немного расслабиться и почитать не очень серьезные статьи. К тому же, будет чем заняться на выходные, особенно если у вас не было определенных планов.

                Теория


                Утверждать, что жонглирование — это последовательность бросков, все равно, что сказать, что музыка — это просто последовательность нот. Нельзя назвать это неправдой, но любой, хоть немного знакомый с музыкальной теорией, возмутится последним определением — столь поверхностным и недалеким.
                Читать дальше →
              • Ускорение загрузки Windows for fun and profit

                  image Пожалуй, начну с того, что если перегружаться 15 раз в год, то любой «тюнинг» процесса загрузки отнимает больше времени, чем будет выиграно на перезагрузках за все время жизни системы. Однако, спортивный интерес берет свое, тем более, что люди интересуется процессом оптимизации быстродействия. А загрузка оказалась самым очевидным кандидатом в примеры того, как на мой взгляд должен выглядеть этот самый процесс. Сразу скажу, что грузиться будем с 5400 rpm винта, грузиться будем в «рабочую» систему: помимо недобитой вендорской крапвари там стоит еще куча всякого типа вижуал студии, антивируса, скайпа, стима, гуглапдейтера и пр…

                  Про то, почему отключение pagefile-а скорее вредно, чем полезно — как нибудь в другой раз, а пока…
                  Под катом много однообразных картинок и немножко унылого текста
                • Правильная сумка для правильного гика

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

                    Помните пост «Что хабровчане носят с собой», где народ хвастался содержимым своего рюкзака? Меня, если честно, больше интересовало не содержимое, а то, в чем народ носит свои вещи. Вот так, к слову, выглядела одна из наиболее интересных вещей — фотосумка Boomburum.



                    Сегодня мне бы хотелось зайти к той теме с другой стороны и показать десяток отличных (действительно отличных) сумок на разный вкус, цвет и кошелек.
                    Читать дальше →
                  • Оптимизация Linux для desktop и игр

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

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

                      Хоть я и пообещал, что после прочтения этой статьи, можно будет играть в Metro 2033 на калькуляторе (шутка, такого не будет), все же она начнется с рекомендации купить кое-что из железа, если у вас этого еще нет.
                      Читать дальше →