?

Log in

No account? Create an account

[sticky post] Верхний пост

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

Обо мнеCollapse )
Мои публикации на хабре/ГТCollapse )
Правила блога:
1. Без политики.
2. В этом блоге обращаются на "ты". Но вежливо и без фамильярности.
3. Троллей баню сразу.
4. Часть постов представляет собой краткие описания разных технических проектов и их частей. Подробные описания будут видны только френдам. К сожалению, в наше время иначе нельзя, вежливых и вообще разумных людей остаётся всё меньше и меньше.

Всегда рад новым френдам и комментариям от старых!

Живому Журналу 20 лет

Вы можете получить свою карточку со статистикой здесь!

Tags:

Поздравляю всех

Когда-то я работал на предприятии, которое разрабатывает штуки типа таких:



и типа таких:



(прошу прощения за качество, других картинок в интернете не нашлось)

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

Выглядит брутально, но такова вообще вся радиационно-стойкая электроника, не только отечественная.

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

Сейчас нашей стране ракеты не нужны, похоже. Предприятие фактически развалено, как это было в 90-е, и неизвестно, будет ли снова нормально работать. Да и я бы туда не пошёл снова, нельзя войти дважды в ту же реку. Печально всё это.

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



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

Что самое характерное, у всех этих проектов есть общая черта — они все делались в обстановке непрерывного аврала, без выходных, с ужасными переработками по 12-14 часов в день. При этом зарплаты в тех случаях, когда они были названы, не впечатляют вообще (с учётом, что речь в большинстве случаях идёт о США, и там совсем другие расходы и доходы, чем в России).

Больше всего поразила история одного инди-разработчика, который 4-5 лет жил фактически за счёт своей жены, разрабатывая игру в одиночку, а после её выпуска стал миллионером за день.

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

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

Это также подтверждается цитатой из книги: "На каждую выпущенную игру приходятся десятки брошенных концепций и прототипов, которые никогда не увидят свет."

Быдло-С++

Компилируется и работает, проверено мной лично.
Внимание, ненормативная лексика!Collapse )

Почему макросы - зло

На днях на тостере был вопрос, который я приведу здесь полностью:

Почему результат этого выражения = 3, а не 9 ?
Предположим, что в программе определён макрос sqr.


#define sqr(x) x*x



Какое значение будет иметь следующее выражение:


sqr(3+0)



Довольно очевидно, что результат будет 3 + 0 * 3 + 0 = 3, и это лишь первая ловушка, подстерегающая юных падаванов.

На самом деле,

#define sqr(x) x*x


- это образец того, как не нужно писать макросы.

Более правильно так:


#define SQR(x) ((x)*(x))



Тогда:

((3+0)*(3+0)) = 9



На этом всё, скажете вы? Заключить в круглые скобки каждый аргумент макроса и всё выражение подстановки, и дело в шляпе, всего-то? Невелика премудрость.

Однако, мои юные падаваны, тут царит темная сторона Силы...Это Зла обитель.

напишем такой пример:
#include <stdio.h>

#define SQR(x) ((x)*(x))

int main()
{
    int x = 4;
    int incX()
    {
        x++;
        return x;
    }
    printf("%d\n", SQR(incX()));

    return 0;
}


И вместо (казалось бы) ожидаемого SQR(5) = 25 получаем ВНЕЗАПНО 30.

Почему? Макрос развернул выражение как ((incX())*(incX())), и получилось 5 * 6 = 30, т.е. ф-ция incX() была вызвана два раза вместо ожидаемого одного.

Теперь верный вариант:

#include <stdio.h>

#define SQR(x) ({__auto_type _x=(x);_x*_x;})

int main()
{
    int x = 4;
    int incX()
    {
        x++;
        return x;
    }
    printf("%d\n", SQR(incX()));

    return 0;
}



И верный результат: 25.

Да пребудет с вами Сила!

О прогрессе

Года полтора назад озаботился сборкой компа для просмотра фильмов (не себе), типа HTPC, и возникла небольшая проблема.

Я где-то пропустил тот момент, когда из Internet Explorer в WinXP стало нельзя зайти на сайт google.com и скачать Chrome. Я даже не поверил своим глазам, однако это так. Пришлось заходить на ya.ru, скачивать Firefox, оттуда заходить на гугл и скачивать хром.

Фильм "Viva Amiga"

Фильм про историю компьютеров Amiga.



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

Разработчики Amiga в 1985 году смогли сделать недорогой массовый компьютер, обладающий графическими возможностями, превосходящими PC и Mac в то время, за гораздо меньшую цену. В конце 80-х и в 90-х Amiga интенсивно использовалась для монтажа видео и создания спецэффектов в телевизионных студиях, в том числе и в России. Но в качестве домашнего компьютера в России Амиги практически не было, в 90-е это было слишком дорого для населения, а в 2000-е Амига уже ушла с рынка.

Несмотря на выдающиеся технические характеристики, вся история Амиги - это история банкротств. В начале у них просто кончились деньги, ещё до того, как они сделали самый первый компьютер. Тогда они заняли полмиллиона долларов у Атари, с условием, что если они не вернут деньги в срок, они переходят в собственность Атари. Разумеется, в Атари считали, что у них нет шансов, и что продажа компании Атари неизбежна. Однако Амига нашла покупателя в лице Commodore, на гораздо лучших условиях, чем продажа Atari, и они взяли у Commodore полмиллиона и вернули их Atari.

Commodore сделал из Amiga успешный продукт, однако конкуренции с PC и Mac они не выдержали. У Mac был Стив Джобс, у Commodore не было своего Джобса. Просто не было человека, который бы всем управлял, был отдел маркетинга, который допускал ошибку за ошибкой, пока компания не обанкротилась.

Затем Амигой занялся Petro Tyschtschenko, немецкий бизнесмен (украинского происхождения), но и он через несколько лет потерпел неудачу.

Официально Amiga до сих пор существует, и периодически предпринимаются попытки её реанимации, такие как Amiga One X1000 в 2010 году и другие. Стоят эти новые реинкарнации безумных денег и их покупка довольно бессмысленна.

Было бы лучше, если бы они отдали в opensource ПО и дизайн чипов, чтобы можно было делать точные симуляторы и FPGA-клоны. Как коммерческий проект Amiga давно мертва, больше на ней не заработать ни копейки. Но в opensource она могла бы получить вторую жизнь.

У меня периодически возникают мысли купить на ebay Amiga 1200 (именно Amiga 1200 нравится мне больше всего), но, во-первых, цены пугают, особенно с платами расширения, во-вторых, просто некогда всем этим заниматься. Серьёзно, от 400 до 1000 долларов и больше за старый компьютер, это немного неразумно.

Tags:

Немного статистики

Кодовая база LLVM/Clang:





---------------------------------------------------------------------------------------
Language                             files          blank        comment           code
---------------------------------------------------------------------------------------
C++                                   8007         379690         538711        2074606
C/C++ Header                          3882         125617         213331         495317
Assembly                              3483         235726         492799         321727
C                                     3344          44162         182550         144931
Objective C                           1523          16933          73118          56482
HTML                                    44           3584            306          29878
Python                                 255           7765           9509          29401
Windows Module Definition               85           1961             51          19083
CMake                                  499           2345           1684          16243
Objective C++                          409           4772          25514          15964
YAML                                   204            341           3300          12670
OpenCL                                 197           1805           3772           5801
OCaml                                   74           1797           3031           5537
Bourne Shell                            41            455            704           3856
Go                                      21            433            605           3155
Perl                                    13            682            460           3120
CUDA                                   115           1094           3576           2298
Pascal                                  14           1092           4336           2281
Markdown                                 7            247              0           1057
Windows Resource File                  101            126             35           1041
Lisp                                     9            167            149           1003
CSS                                     10            146             59            873
XML                                     44             24              7            841
DOS Batch                                9            106             33            632
C#                                       8             88            108            562
JavaScript                               4             79            150            518
JSON                                    19             53              0            432
MSBuild script                           2              0             14            347
vim script                               8             38             46            302
Bourne Again Shell                       4             34             96            227
Protocol Buffers                         2             24             32            117
make                                     6             35             11             98
Dockerfile                               4             16             74             82
INI                                      3              5              0             25
Fortran 95                               1              3              0             18
Swift                                    2              6              0             17
MATLAB                                   4              2              0             15
SWIG                                     2              2              5             14
Rust                                     3              6             11             13
NAnt script                              1              0              0             13
Fortran 90                               1              0            258              0
---------------------------------------------------------------------------------------
SUM:                                 22464         831461        1558445        3250597
---------------------------------------------------------------------------------------

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

Tags:

Latest Month

April 2019
S M T W T F S
 123456
78910111213
14151617181920
21222324252627
282930    

Syndicate

RSS Atom
Powered by LiveJournal.com
Designed by Tiffany Chow