Pull to refresh
192
0
Алексей Гришин @GRaAL

Разработчик широкого профиля

Send message

Только не говорите, что вы таким не были или мой взгляд на обучение

Reading time5 min
Views31K

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


Помните свой первый код на PHP?


Нет, не этот:


<?
    echo "Hello world"; // и в браузере у нас скачивается index.php :)
?>

А вот этот:


<?
    include "db.php";
    if ($_GET['id'] > 0){
        mysql_query("SELECT * FROM `posts` WHERE id = {$_GET['id']}");
    }else{
        mysql_query("SELECT * FROM `posts` ORDER BY `id` DESC");
    }
?>
Читать дальше →

Вычисление целочисленного квадратного корня

Reading time2 min
Views14K
Возникла нужда проверить, является ли целое число квадратом, и если да, то вычислить корень. Причем хочется сделать это в целочисленной арифметике. Понятно, что можно реализовать метод Ньютона в целых числах, но он требует деления на каждом шаге. А нельзя ли по другому? Найти квадратный корень по модулю степени двойки, и проверить, а не будет ли он обычным квадратным корнем.
Читать дальше →

Как работает альфа-композитинг

Reading time23 min
Views25K
image

Возможно, прозрачность не кажется какой-то интересной темой. Формат GIF, позволявший некоторым пикселям просвечивать сквозь фон, опубликован более 30 лет назад. Почти в каждом приложении для графического дизайна, выпущенном за последние два десятка лет, поддерживается создание полупрозрачного контента. Эти понятия давно перестали быть чем-то новым.

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

Android для радиоинженера (и не только)

Reading time6 min
Views41K
С того самого момента, когда я приобрел свой первый смартфон, работающий под ОС Android, я искал приложения под эту ОС, которые бы помогли мне делать несложные рабочие расчеты «на ладошке». Об одном из таких приложений и пойдет речь.

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

Как я не стал программистом в 35 лет

Reading time15 min
Views155K

С самого начала сентября широким потоком хлынули на Хабр публикации об успешном успехе на тему «Детство программиста», «Как стать программистом после N лет», «Как я ушёл в IT из другой профессии», «Путь в программирование» и так далее. Подобные статьи пишут постоянно, но вот сейчас они пошли как-то особенно кучно. Каждый день пишут то психологи, то студенты, то ещё кто-нибудь.

И в каждой статье звучит знакомая песня: главное, что советуют авторы — «стараться», «не сдаваться», «не бояться» и «идти к своей мечте»; а в комментариях очень часто можно встретить мнение, что ежели ты с самого детства любил компьютеры, то работа с ними в итоге неудивительна. Я хотел бы на примере своей биографии подвести читателей к мысли о том, что начальные условия могут быть важнее, чем приложенные усилия. Вера в справедливый мир способствует психологическому комфорту, но не очень-то корректно отражает реальность.
Читать дальше →

Как заглянуть в глаза Кассандре и не потерять при этом данные, стабильность и веру в NoSQL

Reading time8 min
Views9.3K
image

Говорят, в жизни все стоит попробовать хотя бы раз. И если вы привыкли работать с реляционными СУБД, то познакомиться на практике с NoSQL стоит в первую очередь хотя бы для общего развития. Сейчас в силу бурного развития этой технологии очень много противоречивых мнений и горячих споров на эту тему, что особенно подогревает интерес.
Если вникнуть в суть всех этих споров, то можно увидеть, что они возникают из-за неправильного подхода. Те, кто использует NoSQL базы именно там, где они нужны, довольны и получают от данного решения все его плюсы. А экспериментаторы, уповающие на данную технологию как панацею там, где она не применима вовсе, испытывают разочарование, потеряв сильные стороны реляционных баз без приобретения весомых выгод.


Я расскажу про наш опыт внедрения решения, основанного на СУБД Cassandra: с чем пришлось столкнуться, как выкручивались из трудных ситуаций, удалось ли нам получить выигрыш от использования NoSQL и где пришлось вложить дополнительные усилия/средства.
Исходная задача — это построение системы, записывающей звонки в некое хранилище.


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


image

Почему выбрали Кассандру вполне понятно — она пишет как пулемет, легко масштабируема, отказоустойчива.


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

Люди на Луне. Источники

Reading time3 min
Views38K


50 лет назад впервые человек шагнул в лунный реголит. Это стало результатом фантастического прогресса науки и техники, космической гонки, политического противостояния двух стран: США и СССР. Полет человека на Луну стал настолько невероятным событием, что сегодня немало людей отрицает сам факт такого полета. К счастью, благодаря интернету мы имеем доступ к огромному объему материалов и научных данных, которые открывают возможность самостоятельно выяснить подробности этой сложнейшей программы.
Читать дальше →

«Сгоревшие» сотрудники: есть ли выход?

Reading time18 min
Views165K
Ты работаешь в хорошей компании. Вокруг тебя крутые профессионалы, получаешь достойную зарплату, каждый день делаешь важные и нужные вещи. Илон Маск запускает спутники, Сергей Семёнович улучшает и без того лучший город Земли. Погода отличная, солнце светит, деревья цветут — живи да радуйся!

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

Что же делать? Как работать с Игнатом? Добро пожаловать под кат!


Как id Software создавала Wolfenstein 3D на основе технологий из Commander Keen

Reading time7 min
Views30K
image

Данная статья является фрагментом книги Game Engine Black Book: Wolfenstein 3D — подробного исследования, посвящённого истории, коду и разработке оказавшего огромное влияние на игровую отрасль шутера от первого лица про уничтожение нацистов.

В этой главе раскрываются истоки игры и рассказывается о том, как она была построена на фундаменте успеха и технологий игры Commander Keen, которая сама была построена из останков неудачной попытки продать Nintendo порт Mario 3 для PC.

Полную книгу, написанную автором и программистом Фабьеном Сангларом, можно приобрести в бумажном или цифровом виде.

В 1990 году небольшая компания Softdisk из Шривпорта (штат Луизиана) успешно вела дела на рынке shareware.

Предоставляя услуги распространения видеоигр по подписке, Softdisk создавала и каждый месяц рассылала по почте своим подписчикам новые игры. Бизнес шёл хорошо, но некоторые из сотрудников фирмы были более амбициозными.

Они думали, что им хватает умений увеличить масштаб и они хотели это доказать. Они создали новый способ программирования сайд-скроллинга и назвали эту технологию адаптивным обновлением тайлов (adaptive tile refresh). Она позволяла выполнять аппаратный скроллинг (прокрутку экрана) на PC, благодаря чему компьютер мог соперничать с NES. В начале 1990 годов они безостановочно работали по выходным над воссозданием Super Mario 3 на PC, чтобы продемонстрировать свои навыки Nintendo.
Читать дальше →

Workflow 3D-художника. Как не утонуть в тонне информации. Часть 1

Reading time8 min
Views36K
Всем привет, Хабр сообщество! Хочу сегодня рассказать Вам о workflow 3D-художников, как в это вникнуть и остаться со стабильной нервной системой. Статья нацелена на новичков в данной области, опытные акулы могут предаться ностальгии, вспомнить, как все начиналось.
Читать дальше →

Сериал «Чернобыль»: смотреть и думать

Reading time9 min
Views200K
Горький опыт сериалов, которые хорошо начинаются и разочаровывающе заканчиваются, удерживал меня от написания восторженного обзора на сериал «Чернобыль» до этой недели. И сейчас, когда вышла последняя, пятая серия, к сожалению, я вынужден сказать, что это отличный сериал, это прекрасный повод узнать больше о чернобыльской катастрофе, его обязательно стоит посмотреть, если вы еще не, но, если первые три серии, на мой взгляд, поднимаются до уровня моего самого любимого фильма «Аполлон-13», то две последние, опять же, по моему мнению, оказываются заметно похуже.


Кадр из сериала

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

Разбираем бизнес-модель викингов

Reading time11 min
Views24K


Привет! Мы тут сейчас делаем игру про викингов, и пока я узнавал про них, вскрылась пара неочевидных деталей. Но пока важное:

  • Они дошли до Африки с набегами и поздними поселениями.
  • Есть норманская теория основания Руси — мол, это наши предки. Она спорная, куда больше свидетельств о постоянном сотрудничестве народов (читай: почти все варяги = викинги, а Тор и Перун на самом деле почти тот же мужик).
  • Эти парни делали самые крутые корабли и самую крутую навигацию седьмого-десятого веков, и уже знали явление поляризации света (вернее, не знали, но использовали).
  • Они же ввели прямую демократию, которая потом стала альтингом (и до сих пор работает в Исландии).
  • Очень много вещей в быту совпадает или похоже на то, что делали наши славянские предки.

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

Отправной точкой поисков было другое: парень из Новой Зеландии, упоровшийся по викингам, сделал крутую игру. Так вот, правильно ли он смог передать сеттинг?
Читать дальше →

Советские мечты о будущем

Reading time9 min
Views94K


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

Знакомство с Python для камрадов, переросших «язык A vs. язык B» и другие предрассудки

Reading time17 min
Views43K

Для всех хабравчан, у которых возникло ощущение дежавю: Написать этот пост меня побудили статья "Введение в Python" и комментарии к ней. К сожалению, качество этого "введения" кхм… не будем о грустном. Но ещё грустнее было наблюдать склоки в комментариях, из разряда "C++ быстрее Python", "Rust ещё быстрее C++", "Python не нужен" и т.д. Удивительно, что не вспомнили Ruby!


Как сказал Бьярн Страуструп,


«Есть всего два типа языков программирования: те, на которые люди всё время ругаются, и те, которые никто не использует».

Добро пожаловать под кат всем, кто хотел бы познакомиться с Python, не опускаясь при этом до грязных ругательств!

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

Возможности Python 3, достойные того, чтобы ими пользовались

Reading time5 min
Views45K
Многие программисты начали переходить со второй версии Python на третью из-за того, что уже довольно скоро поддержка Python 2 будет прекращена. Автор статьи, перевод которой мы публикуем, отмечает, что основной объём Python 3-кода, который ему доводилось видеть, выглядит как код со скобками, написанный на Python 2. По его словам, он и сам грешит чем-то подобным. Здесь он приводит примеры некоторых замечательных возможностей, доступных лишь тем, кто пользуется Python 3. Он надеется, что эти возможности облегчат жизнь тем, кто о них узнает.



Все примеры, приведённые в этом материале, написаны с использованием Python 3.7. В описании каждой возможности имеются сведения о минимальной версии Python, необходимой для её применения.
Читать дальше →

Делаем простой Circuit Breaker на базе кеша в Spring

Reading time8 min
Views15K
Эта статья для тех, кто использует в своем приложении эффективный кеш и хочет простым добавлением 1 класса в проект добавить стабильности не только приложению, но и всему окружению.

Если вы узнали себя, читайте дальше.

Что такое Circuit Breaker


Кадр из фильма Back to the Future
Читать дальше →

В этой статье слишком много воды

Reading time9 min
Views41K
«Мы начинаем разработку новой игры, и нам нужна классная вода. Такую сможешь?»


, — cпросили меня. «Да не вопрос! Конечно, смогу», — ответил я, но голос предательски задрожал. «А, еще и на Unity?», — и мне стало понятно, что впереди очень много работы.
Читать дальше →

Как реализован рендеринг «Ведьмака 3»: молнии, ведьмачье чутьё и другие эффекты

Reading time44 min
Views30K
image

Часть 1. Молнии


В этой части мы рассмотрим процесс рендеринга молний в Witcher 3: Wild Hunt.

Рендеринг молний выполняется немного позже эффекта занавес дождя, но всё равно происходит в проходе прямого рендеринга. Молнии можно увидеть на этом видео:


Они очень быстро исчезают, поэтому лучше просматривать видео на скорости 0.25.

Можно увидеть, что это не статичные изображения; со временем их яркость слегка меняется.

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

Иллюзия разумного замысла

Reading time7 min
Views16K
image

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

Я не характерный хабровец. Я беженец с Флибусты. Я не программист и вообще литератор — другого поля ягода.

И сейчас я бы хотел рассмотреть, каким выглядит средний читатель хабра с другой стороны баррикады. Какие когнитивные искажения присущи программистам — чуть больше, возможно, чем нам, литераторам. Мысль об этом возникла у меня после чтения комментариев к моим статьям – в которых читатели Хабра реагировали на текст не так, как другие мои читатели.

Конечно, я не собираюсь быть серьёзным — в конце концов, у нас пятница на носу. Но и пустой шуткой я это не считаю.

Начну с анекдота:
Читать дальше →

Создание миникарты на Unity

Reading time3 min
Views38K
Всем привет. Представляю вашему вниманию перевод статьи из блога, посвященному разработке на Unity — The Knights of Unity. В ней пойдет речь о создании миникарты. Я также реализовал описанное в статье и выложил это на Битбакете.


Что требуется для создания миникарты в игре на Unity? Наверно вы будете удивлены, но это проще, чем вы думаете и даже не требует навыков программирования! Далее я постараюсь шаг за шагом объяснить, как это сделать.
Читать дальше →

Information

Rating
Does not participate
Location
Алматы (Алма-Ата), Алма-Атинская обл., Казахстан
Registered
Activity

Specialization

Backend Developer, Software Architect
Lead
From 5,000 $