All streams
Search
Write a publication
Pull to refresh
193
0.8

Программист

Send message
А сама станция откуда топливо брать будет? Если так же все топливо доставлять с Земли, то в чем тут экономия?

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

Кстати, а какой размер города можно считать оптимальным с Вашей точки зрения? По-идее, размер должен быть достаточным, чтобы в городе хотя бы в единственном экземпляре были кинотеатры, торговые центры и т.п., а так же рабочие места. Но при этом в излишне большом городе начинают расти транспортные издержки — нужно всё больше дорог и общественного транспорта, люди тратят всё больше времени на перемещение по городу. 10 миллионов населения — как-то очень много, в России таких городов не больше 15 будет.
Мне кажется, оптимальным можно считать город с населением 200-500 тыс. человек.

Один человек использует 500/3. А 3 человека используют 500. При этом платят одинаково.

Это как раз цивилизованный подход — когда Вам что-то не нужно — и Вы за это не платите.|

В вашем примере тот один человек платит, хотя реально не использует эти 500 мб целиком. Тарифные планы типа 500 мб цивилизованным подходом не являются. Либо человек расходует меньше (переплачивает), либо больше (сталкивается с ограничениями). Опять же, никого не волнует, что человек в один месяц хочет скачать только 200, а в другой сразу 800.
Имхо, самым честным подходом былы бы плата пропорционально трафику. И становится не важно, на сколько устройств пользователь раздаёт интернет.

Столько текста ни о чём. Язык — не цель, а средство.
Начинать лучше с Си, потому что он простой и оказал влияние на целую кучу мейнстримовых языков — синтаксис и многие концепции похожи. После Си можно учить чего душа пожелает.

а тут приходит любитель торрентов и загружает его за 400р в месяц, кому оно надо?) это не заметно на большом объеме абонентов, но если рассматривать всех детально, то качки нафиг никому не нужны.

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

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

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

А вот от сотовой связи — некоторые люди будут отказываться

Полностью поддерживаю.
Использовал смартфон без симки — вполне нормально, дома/в общаге/в институте есть wifi, в транспорте можно слушать заранее скачанную музыку и читать книги. Оффлайновые карты тоже есть.


С обычным интернетом (если он сильно подорожает) будет такой же эффект — люди перейдут на более медленные тарифы, начнут ужиматься, смотреть видео в 480р вместо 1080, скачивать фильмы и музыку один раз для оффлайн воспроизведения, перестанут использовать облака, смотреть стримы и пользоваться прочими удобными штуками. В итоге количество денег в отрасли точно не вырастет: условный пользователь как был готов платить 500р в месяц за интернет, так и будет дальше, но уже с неудобствами.
Мы откатимся лет на 10 в прошлое, в то время как остальной мир будет развиваться дальше.

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

На приведённой картинке точно не амплитуда, так как амплитуда не может быть отрицательной.

uniform mat4 model;
uniform mat4 view;
uniform mat4 projection;

void main()
{
    gl_Position = projection * view * model * vec4(position, 1.0f);
}

Мне кажется странным, что через юниформы передаются три матрицы, которые при вычислении позиции каждой вершины перемножаются заново (и так почему-то во многих примерах в интернете).
Насколько вероятно то, что в данном варианте при компиляции шейдеров драйвер заметит фишку и перемножит матрицы только один раз, а потом для всех вершин будет умножать вектор только на одну матрицу? типа (pvmmatrix) * vec4 ?

Причём mint вежливо просит, а не требует.

Рендерить достаточно с 8-ми сторон — остальные 8 это переворачивание UV.

Мне кажется, экономия в 2 раза — не очень много, а вот превращать левшей в правшей как-то неправильно. Раз уж я делаю 3д модельку, нет никаких сложностей отрендерить её со всех сторон. В любом случае, добавить эту фишку никогда не поздно.


GLES2.0 + QT + C++

Это долгая история :) 3 года назад я осваивал openGL, вызывал его из кода на java (в андроиде так можно), и потихоньку пилил свой движок и игру. оно даже есть на гитхабе, хотя большой практической ценности в проекте нет. Писал свои велосипеды для матриц, кватернионов, обёртку над шейдерами...


Потом мне надоело писать велосипеды, и я решил использовать libgdx — библиотека даёт удобные обёртки над openGL, вводом-выводом и прочим. Один и тот же код без проблем собирается и под PC и под android. Это очень ускоряет написание кода и отладку (да и на PC почему бы не поиграть). Скриншоты выше из версии с libgdx.


Если я возьмусь за это сейчас, буду использовать libgdx + scala. С++ знаю не очень хорошо, а scala позволяет быстро писать лаконичный и гибкий код. Ещё как вариант рассматривал kotlin, но scala больше нравится.

Держу бота на стареньком нетбуке с intel atom и 1 gb памяти. Довольно весело получается, в процессе написания кучу нового узнал. Бот ничем не управляет, написан just 4 fun.
Настроил доступ по ssh, на нетбуке выключил gui (потребление памяти снизилось до 30мб и нетбук перестал тормозить). С помощью screen запускаю бота и он более-менее работает. Для удобства ботов два — один всё время работает на нетбуке, второго использую для экспериментов и отладки нового кода.

«Warcraft 2000» — родился через выдирание арта из оригинального «Warcraft».

Не, от Казаков я только деревья брал)


Для хранения анимаций человечков в Казаках используется какой-то хитро сжатый формат и ограниченная палитра на 256 цветов — я не стал с этим связываться.


Вдобавок, я вместе с человечком сделал карту нормалей. Человечек плоский и рисуется как два треугольника, но благодаря нормалям со стороны света он поярче, а с другой — в тени. (не путать с направленными тенями от человечков на земле — те рисуются честно). Я ещё хотел с деревьями так же сделать, но руки не дошли (как и до анимации человечка и вообще всего остального). По моим прикидкам, если делать спрайты 32*32 или 32*64 пикселей размером, в текстуру 2к*2к поместится 4 или 2 тысячи спрайтов. Если рендерить каждую модель с 16 сторон, останется 512 или 256 кадров. Этого хватит на то, чтобы сделать несколько типов человечков, но не хватит, чтобы сделать всё разнообразие юнитов, как в оригинальной игре. (Юнитов разных цветов можно получить изменением цветов в пиксельном шейдере.)


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


P.S. К сожалению, история вряд ли повторится, больно уж много усилий придётся затратить. Единственное что радует — современные технологии и более мощное железо позволяют экономить время и делать некоторые вещи путь и не очень оптимально, но зато более простым способом.

Например хотя бы потому, что Windows 10 работает быстрее и включается 8 секунд вместо 25 на Windows 7.

Включите в Win 7 гибернацию и она тоже будет включаться быстро. Win 10 по-умолчанию вместо перезагрузки делает гибернацию для ядра системы, а программы закрывает.


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


P.S. При желании в десятке можно сделать как и в win 7 — чтобы после включения был весь открытый софт.

Никто не пытался воссоздать казаков на современных технологиях? (Новые казаки не в счёт, они как-то очень криво сделаны)


Я пару лет назад ради интереса написал примитивный прототип графики на libgdx. Самой игры не было, просто рисование расставленных человечков, деревьев и рельефа с помощью OpenGL ES 2.0 — телефон нормально справлялся, а на компьютере так вообще летало.


Если упростить управление — сделать поведение солдат и крестьян более разумными, чтобы игрок не страдал от необходимости микроконтроля на маленьком сенсорном экране и сконцентрировался на управлении отрядами, то может получиться довольно интересно. Но в одиночку было сложно, и я отложил проект до лучших времён, которые, похоже, так и не наступят.


Скриншоты с телефона в 1920*1080

На человечка потратил несколько дней — моделировал в блендере, разукрашивал, потом рендерил с 16 сторон в маленькие картиночки вместе с картой нормалей… Деревья и траву взял готовые.



Если пиксели строго прозрачные или строго непрозрачные (как в примере с плюсом), можно особо не заморачиваться: достаточно сделать всё прозрачное "прозрачным чёрным" и выбрать подходящую glBlendFunc. (В некоторых графических редакторах "прозрачный чёрный" сам по себе появляется безо всяких усилий со стороны редактирующего).
В случае с полупрозрачными пикселями на краях так не прокатит, придётся делать как в статье.

Я не автор статьи и собираю плагином на gradle, apk приложения уровня "Hello world" без ужимания прогуардом весит около 3.3 мб.

сделают модуль, который по хэшам будет сносить файлы

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

Information

Rating
1,824-th
Location
Белград, Сербия
Registered
Activity

Specialization

Software Developer, ML Engineer
Kotlin
Scala
Java
Python
Neural networks
Algorithms and data structures
Android development
OpenGL