• Чемпионаты по программированию: развлечение для студентов или способ устроиться на работу мечты?

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


      Действительно, бывают чемпионаты чисто спортивные, куда люди приходят себя показать. А бывают другие — коммерческие, где на кону действительно крупные суммы денег, офферы в известные IT-компании и возможность релокейта в другую страну.


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



      Читать дальше →
    • Книги с необычными вымышленными эпидемиями

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

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

        Читать далее
      • Ахтунг: «бесплатный» антивирус от RU-CENTER (NIC.RU)

          Астрологи объявили очередной сезон развода на деньги клиентов RU-CENTER (nic.ru). Схема развода примитивна, неоднократно описана (в том числе здесь же на Хабре!), но может сработать при вашей невнимательности:

          Читать дальше →
        • Сетевая подсистема в ОС

            В данной статье будет проведено исследование сетевой подсистемы ОС Windows и Linux, а также предложен план изучения подсистем операционной системы. Основная задача исследования - понять, из чего состоит сетевая подсистема; какие поддерживает протоколы из коробки; какие дополнительные механизмы использует в своей работе.

            Disclamer: Статья описывает данные, которые с точки зрения автора помогут понять, как работают операционные системы с моделью TCP/IP, и не претендует на полноту.

            Читать далее
          • Интеграция пользователей сайта и форума на phpbb 3

            Совсем недавно возникла необходимость быстрой интеграции сайта и форума phpbb3. Погуглив, нормального примера не нашел. Пришлось писать самому. Возможно, кому-то пригодится.

            Итак, пусть есть сайт, с собственной системой авторизации. Необходимо добавить форум phpbb с быстрым (и возможно даже правильным) решением проблем с интеграцией существующей пользовательской базы. Авторизация и регистрация новых пользователей по-прежнему будет происходить на сайте, в форум будут попадать уже зарегистрированные пользователи. Регистрация и авторизация на форуме будет закрыта.

            Для начала отключим возможность регистрации новых пользователей:
            Для этого в администраторском аккаунте перейдите на вкладку “Общие”, и в левом меню выберите “Регистрация пользователей”. Далее отключаем регистрацию:
            Читать дальше →
            • +5
            • 12.9k
            • 1
          • Программистское везение

              Более двух десятков лет назад мы разрабатывали устройство, передающее и принимающее данные, используя телевизионный сигнал. Это сейчас все избалованы гигагерцами и гигабайтами, а тогда, имея компьютер типа IBM/PC-AT, на таких скоростях можно было работать только с помощью встроенного контроллера прямого доступа к памяти (ПДП), реализованного в виде микросхем 8237А-5. Это устройство позволяло писать или читать данные, не привлекая центральный процессор.

              Отработка ПО заняла несколько недель, и когда все, наконец, заработало, я решил привести исходные тексты на ассемблере в окончательный и красивый вид. С одной стороны, в этот момент, поскольку все уже работает, существенных исправлений в тексте не предвидится, с другой стороны – в памяти еще удерживается множество деталей, которые лучше увековечить понятными комментариями, так как очень скоро все эти детали забудутся. Заодно, можно глобально заменить все неудачные названия переменных на более внятные, исправить орфографические ошибки, красиво подвинуть строки и т.п.

              И вот, при заключительном просмотре текста, я вдруг увидел глупую описку в программировании ПДП. Адрес в 16-разрядной 8237А-5 приходилось задавать по частям и при задании номера «станицы» (т.е. номера куска памяти в 128 Кбайт) вместо команды

              Читать далее
            • Прадедушка ноутбука



                Если семидесятые годы считаются эпохой сексуальной революции, то восьмидесятые ознаменовались революцией технологической. Компьютеры перешли из категории диковинных игрушек для ученых в разряд привычной домашней техники. На рынке появились персоналки Atari, Commodore 64, первые ПК от Apple. Тогда же разработчики озаботились не только увеличением производительности ПК, но и уменьшением их габаритных размеров, чтобы компьютер мог взять с собой в самолет любой банковский клерк. Одного из пионеров в области портативного компьютеростроения звали Адам Осборн.
                Читать дальше →
              • Тестирование это просто. Или история одного велосипеда

                • Tutorial
                Однажды мне нужно было протестировать ответ сервера и я решил что использовать для этого тяжеловесные швейцарские ножи вроде PhpUnit — обременительно. Осложнялось все тем — что инфраструктура была разбита на множество веб-микросервисов, которые в свою очередь работали на разных бэкендах(PHP, NodeJS, Python, GO). Посему я решил набросать простой класс, который на удивление оказался очень удобным инструментом для приемочного тестирования системы.
                — Нам нужно быть уверенными что при каждом пуше у нас не сломается вся инфраструктура, сможешь сделать? -Легко!
                Читать дальше →
                • +10
                • 3.2k
                • 4
              • Законы программирования

                • Translation

                Законы, теории, принципы и закономерности, полезные для разработчиков


                Введение


                Перевод репозитория github.com/dwmkerr/hacker-laws

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

                Здесь содержатся объяснения некоторых законов, принципов и закономерностей, но нет никакой агитации в их пользу. Применять их или нет – это всегда вопрос спорный, и всё зависит от того, над чем вы работаете.

                Законы


                Закон Амдала


                Закон Амдала — это формула, демонстрирующая потенциал ускорения вычислительной задачи, которого можно достичь при увеличении количества ресурсов системы. Обычно он используется в параллельных вычислениях, и может предсказать наличие реальных преимуществ от увеличения количества процессоров с учётом ограничений параллелизуемости программы.
                Читать дальше →
              • В самом популярном фрагменте кода за всю историю StackOverflow ошибка! 

                • Translation
                Недавнее исследование «Использование и атрибуция сниппетов кода Stack Overflow в проектах GitHub» внезапно обнаружило, что чаще всего в опенсорсных проектах встречается мой ответ, написанный почти десять лет назад. По иронии судьбы, там баг.

                Давным-давно…


                Еще в 2010 году я сидел в своём офисе и занимался ерундой: развлекался код-гольфингом и накручивал рейтинг на Stack Overflow.

                Моё внимание привлёк следующий вопрос: как вывести количество байт в удобочитаемом формате? То есть как преобразовать что-то вроде 123456789 байт в «123,5 МБ».


                Старый добрый интерфейс 2010 года, спасибо The Wayback Machine
                Читать дальше →
              • «Люди думают, что бесплатное — значит бесполезное. Мне казалось, я смогу их переубедить» — Юрий Ярцев о школе Russol

                  image

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

                  О своем опыте создания онлайн-школы мне рассказал Юрий Ярцев. Он создал школу стартапов Russol. Она особенная, потому что бесплатная. И конечно, это приводит к недоверию всех видов: и «бесплатное равно бесполезное», и «бесплатный сыр только в мышеловке».
                  Читать дальше →
                  • +29
                  • 7.9k
                  • 3
                • Подборка полезных слайдов от Джулии Эванс

                  • Translation
                  Перевели новую порцию слайдов. Права доступа в Unix, файловые дескрипторы, потоки, магия proc. И на закуску пара советов о том, как общаться, когда ты не согласен. А вдруг пригодятся =)



                  Читать дальше →
                • Moral Machine: беспощадный или бессмысленный?

                    Данную статью я решил написать по следам вот этого поста.




                    Напомню краткую суть: в журнале Nature были опубликованы результаты исследования, проводившегося при помощи вот этого теста.

                    О чем же хочу написать я?


                    Во-первых, почему это исследование – абсолютно бесполезное именно для решения заявленной задачи, и именно в той форме, в которой было проведено.


                    Во-вторых, как стоило бы расставить приоритеты в подобном исследовании.


                    И в-третьих, попробовать провести симуляцию различных вариантов ДТП в рамках заданных тестом условий.

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