Как стать автором
Обновить
27
0.1
Тензин Константин @tenzink

Пользователь

Отправить сообщение

10 лучших игр о хакинге, кодинге и вычислениях

Время на прочтение11 мин
Количество просмотров98K

Как все знают из новостных лент, мы живём в постоянно эволюционирующей киберпанковской антиутопии. Люди подключают туалеты к Интернету! Если этот гибсоновский мир кажется вам слишком РЕАЛЬНЫМ, то вы можете поиграть в десять лучших видеоигр о взломе, программировании и вычислениях, чтобы сбежать в мета-антиутопию. Которая, я уверен, является намного лучшим местом.


10. TIS-100


[официальный сайт]

Да-а-а, приготовьтесь к тому, что ваш мозг начнёт болеть. TIS-100 — это игра студии Zachtronics, разработчика игр-головоломок, выпустившей Infinifactory и SpaceChem. В маркетинге она позиционируется как «игра о программировании на языке ассемблера, о которой вы не просили», и хотя я обычно игнорирую маркетинговые слоганы, здесь не могу не согласиться.

Игрок получает в своё распоряжение таинственный компьютер из 70-х, найденный в вещах покойного дядюшки. Когда-то он игрался с ним, пытаясь разобраться. Теперь это ваша задача. Если вкратце, то вам нужно получить числа, чтобы провести машину из точки A в точку B, выполнив на каждом уровне «цели» (например, сначала вывести положительное число, а затем отрицательное). Для этого у вас есть список команд, изложенных в смутном руководстве пользователя. Игра советует вам распечатать это руководство в бумажном виде. В нём есть сделанные дядей примечания и пометки маркером, дающие подсказки о сущности этой машины.
Читать дальше →
Всего голосов 39: ↑39 и ↓0+39
Комментарии41

Языки России в Интернете

Время на прочтение15 мин
Количество просмотров34K

Я начал писать этот текст уже давно, так что он не планировался как политически актуальный. Но так вышло, что именно в эти дни у СМИ появился инфоповод, связанный с малыми (миноритарными) языками России. Возможно, что исследование, о котором я пишу ниже, что-то кому-то в этом смысле прояснит.


Сколько в России языков?


Это не так просто осознать, но в России говорят на внушительном числе языков. Более того, в России говорят на таких языках, которые больше нигде не распространены. Скажем, в России обитают миллионы украинцев и узбеков, вместе с тем существуют и суверенные государства Украина и Узбекистан, где соответствующие языки являются государственными. А вот в России говорят на башкирском, тувинском, удмуртском и многих (действительно многих) других языках, у которых своего государственного статуса больше нигде нет.


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


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

Читать дальше →
Всего голосов 81: ↑79 и ↓2+77
Комментарии1069

Может ли существовать тороидальная планета?

Время на прочтение18 мин
Количество просмотров64K
image

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

Может ли существовать тороидальная планета?


Стабильность тороидальной планеты неочевидна. С практической точки зрения планеты можно рассматривать как жидкие шарики без поверхностного натяжения – прочность камня не сравнить с весом планеты. Они обладают эквипотенциальными гравитационными поверхностями с учётом центробежного потенциала. Если бы это было не так, то на них встречались бы места, которые могли бы уменьшить свою энергию перетеканием в сторону понижения потенциала. Ещё один очевидный факт – существование верхней границы скорости вращения, после которой планета развалится: центробежная сила на экваторе превышает гравитацию и материал улетает в космос.
Читать дальше →
Всего голосов 105: ↑103 и ↓2+101
Комментарии222

Деловая переписка на английском языке: фразы и советы

Время на прочтение18 мин
Количество просмотров617K
Елена Соловьева, менеджер проектов в компании Лаборатория Касперского, специально для блога Нетологии поделилась советами о том, как вести деловую переписку с иностранными коллегами и партнерами на английском языке. Статья участвует в конкурсе.

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

Задача становится сложнее, если вы общаетесь на неродном английском языке с представителями других культур. В статье я поделюсь, на что в этом случае обратить внимание, как избежать ошибок и достичь взаимопонимания с иностранными коллегами и партнерами.
Читать дальше →
Всего голосов 104: ↑100 и ↓4+96
Комментарии80

Эх, кувалдушка, ухнем: как в «Салюте-7» сделали ненаучную фантастику вместо исторического кино

Время на прочтение13 мин
Количество просмотров77K
В резко-критическом отзыве на весенний трейлер фильма «Салют-7» я совершенно искренне написал, что хотел бы ошибиться в своих ожиданиях и чтобы кино в итоге получилось хорошим. Увы, досмотреть фильм я смог только потому, что уже в первой его половине переключил восприятие с режима «историческое кино» на «ненаучная фантастика». Вкусы — дело личное, кому-то картина возможно и понравится. В любом случае, разнообразные ошибки и неточности — отличный повод поговорить о том, что на самом деле происходило в истории, и как работала показанная на экране техника. И под занавес хочется рассказать, каким бы на мой взгляд был идеальный фильм по этим событиям.


Кадр из фильма
Читать дальше →
Всего голосов 165: ↑162 и ↓3+159
Комментарии302

Построить, накопить, напасть, повторить: история стратегий в реальном времени

Время на прочтение33 мин
Количество просмотров64K
Пока мы ждём выхода этой осенью новой Age of Empires, давайте вспомним взлёты и падения жанра RTS.



Расцвет и упадок стратегий в реальном времени был очень странным. Они возникали постепенно, из экспериментов, в которых разработчики пытались объединить скорость и интересность экшн-игр с обдуманностью и глубиной стратегий. Внезапно жанр получил взрывную популярность во второй половине 90-х, а потом так же быстро её потерял (за исключением StarCraft) в середине 2000-х, на фоне стагнации и изменения игрового рынка. Однако одной из наиболее популярных соревновательных игр в мире является RTS, а три из четырёх оставшихся стали ответвлением от жанра стратегий в реальном времени.

В 25-летнем возрасте стратегии в реальном времени остаются преданными своим базовым идеям и наследству. Сегодня, в момент глубокого затишья жанра, самое время исторически исследовать его, как мы в своё время сделали с графическими адвенчурами, Sim-играми, шутерами от первого лица, гонками на картах, играми с открытым миром (перевод на ГТ) и градостроительными симуляторами.
Читать дальше →
Всего голосов 52: ↑52 и ↓0+52
Комментарии200

Австралия: небольшая реколонизация Земли

Время на прочтение11 мин
Количество просмотров167K
Побывать в «ничейных землях» пустынь Австралии — это почти как попасть в научно-фантастический роман про колонизацию экзопланеты. Только взаправду. Белые люди системно пришли всего около 200 лет, и за это время успела сложиться молодая, эффективная и очень интересная инфраструктура. Так что ощущения просто космические.

В Австралии опасно. Не так, чтобы всё живое хотело вас убить, но близко. Смертей десятки в год, что близко не лежало в сравнении с ДТП, но зато они очень, скажем так, изобретательные. Например, к воде вообще нельзя подходить — там, в зависимости от водоёма, крокодилы, ядовитые кубомедузы, акулы и змеи. Благодаря одному немецкому туристу, последние слова которого были «Да нет тут никаких крокодилов», знаки об их наличии по шоссе Стюарта теперь на двух языках. А благодаря одной женщине, решившей искупаться во время менструации, мы теперь знаем, что акулы умеют подниматься вверх по течению ручья на 2 километра. Хворост около трассы для биваков туристов собирают строго гиды — отлучаться с асфальта опасно для жизни, потому что в топ-20 самых ядовитых змей мира всего 2 строки принадлежат неместным. К огромному неудовольствию австралийцев.


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

А ещё Австралия постоянно либо затоплена, либо горит, либо находится в короткой передышке между этими состояниями. Но давайте начну с самого начала. Сначала мы оказались в Nowhere Land Северной территории.
Читать дальше →
Всего голосов 276: ↑275 и ↓1+274
Комментарии351

Четыре типажа программистов

Время на прочтение17 мин
Количество просмотров215K

Привет.


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

Читать дальше →
Всего голосов 258: ↑237 и ↓21+216
Комментарии548

Сравнение библиотек логирования

Время на прочтение26 мин
Количество просмотров73K


В сети огромное количество площадок формата Q&A где задаются вопросы из разряда:

  • Предложите С++ логер? (C++ logging framework suggestions)
  • Какой наиболее эффективный потоко-безопасный С++ логер? (What is the most efficient thread-safe C++ logger)
  • Библиотека логирования для игр (Logging library for c games)
  • Асинхронный потоко-безопасный С++ логер? (Asynchronous thread-safe logging in C++)

Люди делятся своим опытом и знаниями, но формат таких площадок позволяет лишь показать личные предпочтения отвечающего. К примеру, одним из самых производительных логеров чаще всего называют Pantheios, который даже по тестам производителя тратит больше 100 секунд на запись 1M строк лога, на современном железе это около 30 секунд, быстро ли это?

В этой статье я сравню наиболее известные и заслуженные логеры последних лет и несколько относительно молодых логеров по более чем 25 критериям.
Читать дальше →
Всего голосов 59: ↑59 и ↓0+59
Комментарии42

Заблуждения большинства программистов относительно «времени»

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

Тогда я написал пост «Заблуждения программистов относительно „времени“», в котором указал 34 ошибочных представления и заблуждения, относящихся как к календарному, так и к системному времени. С большинством из них я столкнулся сам, занимаясь дебаггингом программ (как рабочих, так и тестовых).

Читать дальше →
Всего голосов 62: ↑55 и ↓7+48
Комментарии100

Примеры кода на 39 эзотерических языках программирования

Время на прочтение8 мин
Количество просмотров91K
Кто-то ради шутки, кто-то чтобы доказать существование или опровергнуть гипотезу, кто-то для разминки мозгов (путешествуя по поверхности бутылки Клейна или в четырехмерном пространстве), но сотни людей создали «эзотерические» языки программирования. Я пролистал около 150 таких языков и больше никогда не смогу быть прежним.



«Argh!», «Oof!», «2-ill», «Nhohnhehr», «Noit o' mnain gelb», «DZZZZ», «Ypsilax», «YABALL», fuckfuck — это заклинания, поэзия только названия… под катом — примеры кода на самых вырвиглазных языках программирования.

Кроличья нора глубока.
Всего голосов 55: ↑49 и ↓6+43
Комментарии57

30 толковых книг по бизнесу, саморазвитию и творчеству, которые изменили мою жизнь

Время на прочтение5 мин
Количество просмотров190K


Полтора года назад я принял вызов прочитать 100 книг за год. Авантюра полностью себя не оправдала, так как некоторые книги я перечитывал, но однозначно оказалась полезной. По итогам последних двух лет я составил список книг, которые каким-то образом повлияли на мою жизнь. Составлял я его для себя, но позже решил, что он пригодиться и вам.
Читать дальше →
Всего голосов 44: ↑33 и ↓11+22
Комментарии49

Миф о RAM и O(1)

Время на прочтение7 мин
Количество просмотров55K


Городская библиотека Стокгольма. Фото minotauria.


В этой статье я хочу рассказать о том, что оценивать время обращения к памяти как O(1) — это очень плохая идея, и вместо этого мы должны использовать O(√N). Вначале мы рассмотрим практическую сторону вопроса, потом математическую, на основе теоретической физики, а потом рассмотрим последствия и выводы.


Введение


Если вы изучали информатику и анализ алгоритмической сложности, то знаете, что проход по связному списку это O(N), двоичный поиск это O(log(N)), а поиск элемента в хеш-таблице это O(1). Что, если я скажу вам, что все это неправда? Что, если проход по связному списку на самом деле O(N√N), а поиск в хеш-таблице это O(√N)?


Не верите? Я вас сейчас буду убеждать. Я покажу, что доступ к памяти это не O(1), а O(√N). Этот результат справедлив и в теории, и на практике. Давайте начнем с практики.


Измеряем


Давайте сначала определимся с определениями. Нотация “О” большое применима ко многим вещам, от использования памяти до запущенных инструкций. В рамках этой статьи мы O(f(N)) будет означать, что f(N) — это верхняя граница (худший случай) по времени, которое необходимо для получения доступа к N байтов памяти (или, соответственно, N одинаковых по размеру элементов). Я использую Big O для анализа времени, но не операций, и это важно. Мы увидим, что центральный процессор подолгу ждет медленную память. Лично меня не волнует, что делает процессор пока ждет. Меня волнует лишь время, как долго выполняется та или иная задача, поэтому я ограничиваюсь определением выше.

Читать дальше →
Всего голосов 128: ↑107 и ↓21+86
Комментарии96

Пример использования policy-based design в С++ вместо копипасты и создания ООП-шых иерархий

Время на прочтение9 мин
Количество просмотров16K
Язык C++ очень часто обвиняют в неоправданной сложности. Конечно же, язык C++ сложен. И с каждым новым стандартом становится все сложнее. Парадокс, однако, состоит в том, что постоянно усложняясь, C++ последовательно и поступательно упрощает жизнь разработчикам. В том числе и обычным программистам, которые пишут код попроще, чем разработчики Boost-а или Folly. Чтобы не быть голословным, попробую показать это на небольшом примере «из недавнего»: как в результате адаптации к различным условиям тривиальный класс превратился в легкий хардкор с использованием policy-based design.
Много примеров кода
Всего голосов 18: ↑17 и ↓1+16
Комментарии6

Концепты для отчаявшихся

Время на прочтение5 мин
Количество просмотров22K

Всё началось с того, что мне понадобилось написать функцию, принимающую на себя владение произвольным объектом. Казалось бы, что может быть проще:


template <typename T>
void f (T t)
{
    // Завладели экземпляром `t` типа `T`.
    ...

    // Хочешь — переноси.
    g(std::move(t));

    // Не хочешь — не переноси.
    ...
}

Но есть один нюанс: требуется, чтобы принимаемый объект был строго rvalue. Следовательно, нужно:


  1. Сообщать об ошибке компиляции при попытке передать lvalue.
  2. Избежать лишнего вызова конструктора при создании объекта на стеке.

А вот это уже сложнее сделать.


Поясню.

Читать дальше →
Всего голосов 39: ↑37 и ↓2+35
Комментарии53

Мифы о высадке на Луне (видео)

Время на прочтение1 мин
Количество просмотров49K


Пригласили на GeekPicnic рассказать о космических мифах. Разумеется я взял самый ходовой и популярный: миф о лунном заговоре. За час подробно разобрали наиболее часто встречающиеся заблуждения и самые распространенные вопросы: почему не видно звезд, почему развевается флаг, где скрывается лунный грунт, как смогли потерять пленки с записью первой высадки, почему не делают ракетные двигатели F1 и другие вопросы.

После завершения лекции о Луне поговорили еще о космонавтике в целом, о будущих пилотируемых миссиях, о SpaceX, и прочем космическом. В сумме вышло два часа.
Читать дальше →
Всего голосов 54: ↑47 и ↓7+40
Комментарии320

10 полезных сайтов с 2D ресурсами для игр

Время на прочтение3 мин
Количество просмотров465K


С развитием HTML5 и мобильных платформ 2D-игры возвращаются в моду. Заниматься такими проектами, будь то браузерные игры, игры на телефон или для ПК, стало легче благодаря таким инструментам, как Unity, и онлайн-ресурсам с игровыми ассетами. Ниже представлен список из 10 лучших сайтов с 2D-ресурсами для игр – как платными, так и бесплатными.

Читать дальше →
Всего голосов 43: ↑41 и ↓2+39
Комментарии2

Фиеричная система счисления, или почему 1 + 10 = 100

Время на прочтение9 мин
Количество просмотров63K
«10.01 х 10.01 = 1000.1001»
Джордж Оруэлл. «1010001001001000.1001001000100001»


image


Существует ли позиционная система счисления с иррациональным основанием, в которой все натуральные числа записываются конечным числом цифр? В которой число больше единицы, не имеющее цифр после запятой, наверняка не целое и даже не рациональное? В которой 1 + 10 = 100, а 1 + 1 = 10.01?
Я заинтригован и хочу узнать ответ
Всего голосов 92: ↑89 и ↓3+86
Комментарии54

C++ без new и delete

Время на прочтение15 мин
Количество просмотров89K
Привет, хабравчане!

Меня зовут Михаил Матросов, я технический менеджер в компании Align Technology. Сегодня я поработаю капитаном и немного расскажу об основах современного С++.

Работая над большим проектом, мне часто приходится смотреть чужой код и порой я вижу странное. А именно, многие даже вполне матёрые программисты на С++ могут не знать некоторых фундаментальных для языка вещей. Ну, это даже не слишком удивительно — язык такой.

Мне бы хотелось поговорить об этих основах и начну я со своей любимой темы. Будем говорить об операторах new и delete. А точнее, об их отсутствии. Я расскажу, как писать надёжный и современный код на С++ без использования операторов new и delete.

Казалось бы, тема стара как мир, Саттер и Майерс в своё время всё разложили по полочкам. Именно поэтому я не буду вдаваться в ненужные подробности, отправляя читателей к первоисточникам. Моя цель собрать информацию по вопросу в одном месте, дать соответствующие ссылки и сформулировать ёмкие рекомендации.

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


Изображение взято с сайта behappy.me
Читать дальше →
Всего голосов 59: ↑59 и ↓0+59
Комментарии134

Давайте знакомиться: компания Align Technology

Время на прочтение12 мин
Количество просмотров39K
Представьте себе компанию, будничный рабочий процесс которой включает лазерные резаки, трехмерные принтеры и трехмерные сканеры, рентгеновские томографы, CAD, композитные материалы, автоматические станки с ЧПУ, оптическую и биохимическую лабораторию и даже собственную сборку специализированных железячных девайсов. Здесь широко реализуется поточная обработка данных в реальном масштабе времени, используется 3D печать, занимаются биоинжинерией и программируют FPGA, есть сети хранящие терабайты данных, датамайнинг и даже немножко искусственного интеллекта. Представили? А теперь попробуйте угадать чем эта компания может заниматься. Сразу скажу, что это не космос, не авиация и даже не автомобилестроение.


Заинтересовались?..
Всего голосов 32: ↑29 и ↓3+26
Комментарии21

Информация

В рейтинге
2 983-й
Откуда
Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность