Skip to content

Instantly share code, notes, and snippets.

@0x384c0
Last active March 26, 2018 18:32
Show Gist options
  • Save 0x384c0/a5479d9d263b2ddd44e9f7e8b7676950 to your computer and use it in GitHub Desktop.
Save 0x384c0/a5479d9d263b2ddd44e9f7e8b7676950 to your computer and use it in GitHub Desktop.
---------------------------------------
ЕДЕШЬ СО СВОИМИ ХОУМИС ПО РАЙОНУ
@
ВДРУГ НА СВЕТОФОРЕ ТЕБЕ ДАЮТ ПО ЕБАЛУ, ВЫТАСКИВАЮТ ИЗ МАШИНЫ
@
ДАЮТ ПИСТОЛЕТ И ГОВОРЯТ, ЧТО СЕЙЧАС ПОЙДЁШЬ ЗАЧИЩАТЬ ТЕРРИТОРИЮ ВРАЖДЕБНОЙ БАНДЫ
@
КОТОРЫХ БУДЕТ ЧЕЛОВЕК 30, ВСЕ МИНИМУМ С ПП
@
НЕ МОЖЕШЬ ОТКАЗАТЬ, Т.К ТЕБЯ ПРОСИТ СИДОДЖИ, УВАЖАЕМЫЙ ЧЕЛОВЕК
@
НАЧАЛИ ПЕРЕСТРЕЛКУ
@
КОГО-ТО ХОУМИ СБИЛА МАШИНА С ОБЕЗУМЕВШИМ ГРАЖДАНСКИМ ЗА РУЛЁМ
@
ВТОРОЙ ОТХВАТИЛ В УПОР С ТРЁХ ПП
@
ЕЩЁ КОГО-ТО УБИЛА НЕАККУРАТНО БРОШЕННАЯ ГРАНАТА
@
ПОНИМАЕШЬ, ЧТО ТЫ СЛЕДУЮЩИЙ, ВЕДЬ ТЕБЕ ПРИКАЗАЛИ ДЕРЖАТЬ ПОЗИЦИЮ ПЕРЕД ОЧЕРЕДНОЙ ВОЛНОЙ, ПОКА СИДОДЖИ СНИМАЕТ ВСЕХ СО СНАЙПЕРСКОЙ ВИНТОВКИ
@
НЕ НУЖНО НАБИРАТЬ CPKTNWT
@
ВЕДЬ ТВОИМ ПЕРДАКОМ МОЖНО ВЗОРВАТЬ ДАЖЕ ТАНК И ГИДРУ
---------------------------------------
Поздравляю тебя! С покупкой малинки ты сделал шаг в сторону дешевой колбасы, химической пищи, bigdata в отношении дешевой жратвы вообще, изощеренных способов мастурбации, дилдаков, поясов верности постоянного ношения, кроссдрессинга, рисования говном на стенах, сранья в тарелочку и многих других замечательных девиаций. Список можно пополнить. Почему так? Как ты сам сказал, что уже 16 часов, а ты даже не смог собрать сраный хелловорлд. Но ты выбрал свой путь. Какой он будет? Вот его краткое описание: сначала ты будешь долго разбираться как работать с этим блядским люнипсом и армом вообще. Будешь долго выяснять, почему не компиляется очередная опердень и быть может научишься портировать приложения одним взглядом. Или посылать все нахуй при невозможности портирования. Затем, когда ты уже будешь уверенным пользователем, ты наконец сможешь приступить к использованию системы.
Как пользователь-погромизд, ты захочешь скомпелять свой первый хелловорлд, но... Тебе сначала надо будет изучить, как именно происходит компиляция приложений. Из чего они состоят, внутреннее устройство APK, его отличия от JAR или ZIP. Краткая информация есть на википедии, глубокой информации НЕТ вообще, а если она тебе нужна, то можно читать исходники. Тебя это не смущает и ты начинаешь изучать как собрать свой первый хелловорлд. Но внезапно, нигде об этом не написано. Все используют Андроид Студию и жмут зеленую кнопку. И только 1.5 блога каких-то ебантяев рассказывают про процесс компиляции. Ты бережно копипастишь строчку за строчкой, но нипизды не работает. Ты пытаешься гуглить ошибки, но эти ошибки встречаются при использовании Студии и Идеи и исправляются обновлением новых. Тебе же нечего обновлять.
Где-то через месяц, когда ты всеже сможешь скомпилять свой хелловорлд, ты будешь знать какие в гугле работают пидорасы, захочешь создать свои компиляторы байткода и ресурсов. И это хорошее занятие, но... О внутренностях повествуют записи на сайтах антивирусных компаний, туториалы по кряку/реверсу, а официальной документации не найти. Ты находишь бложек на вордпрессе от чувака, у которого горела жопа и он все это отреверсил в одно рыло. Ты читаешь это как некий грааль великих знаний, но все равно нипизды не понимаешь. Но ты понимаешь, что если будешь продолжать в таком духе, то написание компиляторов и всей остальной среды явно затянется
В это же самое время Ванька Ерохин, выпускник залупинского ПТУ по автоматизации уборки мусора на улицах, неоднократный победитель разборок во дворе, решает стать девелопером приложений под Ведроид. Он идет в гугль и следует описанию, скачивает студию и получает готовый энвайромент. Берет фоточки говна, записывает звук пердежа, копипастит код со стековерфлоу (с 20-го раза он находит куда же его всеже надо вставить), после чего жмет ЗЕЛЕНУЮ КНОПОЧКУ. Что эта кнопка делает - он понятия не имеет. Что есть там какая-то JRE, JDK, какой-то байткод... Он не знает. Он не знает и о том, что сначала жаба компилится в байткод JVM, а потом этот байткод компилируется еще раз в формат DEX. Но наш герой всего это не знает. Об этом нигде особо не пишут и ему это знать не надо. Зато он отлично знает вкус портвешка, который потягивает в это время.
Закинув бабос на телефон и оплатив таким образом пропуск в гуглоплей, он сможет выставить свое приложение всему миру. А если он посмотрит лекцию "как делал бабос на прилагах", то сможет зарегаться в Airpush и сделать пользователей своего приложения членами одного из крупнейшего мобильного ботнета. Но формально это - не вирус, а Ванька - молодой предприниматель. Бабос капает, телочки видят стату и текут, сами вешаются на него. И жизнь у него прекрасна. И ему совсем не нужно знать, что делает zipalign и нужен ли он вообще.
В это время ты понимаешь, что компилять ресурсы - это сложно и надо бы написать какой-то рантайм-лоадер, динамический гуй с рантайм-редактированием и интеграцией переключения языков и размеров экрана. Разговора о каких-то сроках не идет. Да и уже ты точно не помнишь, что хотел написать. Сидишь целыми днями за комплюктером. Зато ты элита и знаешь байткод, внутреннее устройство и презираешь балбесов, которые считают, что Андроид - это не линукс. Ты кричишь на форумах "это линукс", но тебя не понимают. Тебе что-то кричат про анальное рабство, но ты не понимаешь, ведь это все - юзерспейс, а говна и для обычного линукса написать можно. А! Все равно они все мудаки! Пойду полежу. Мамка денег дает все меньше, калорий меньше, вот и сонливость постоянная.
Может быть местами я преукрасил, где-то утрировал, но я описал некоторые моменты своей жизни. Реальные моменты
---------------------------------------
В школе как-то влюбился в одну одноклассницу. Она была очень застенчивая и красивая, часто краснела и плакала, а ещё носила очки. Мы с ней были образцовыми учениками по английскому, поэтому всегда сидели вместе на последней парте и рассказывали друг другу всякие топики и диалоги, либо проверяли друг у друга домашнее чтение. И даже иногда случайно касались локтями. Некоторые топики нас заставляли придумывать самих, и тогда она старалась написать что-нибудь интересное, а потом, когда рассказывала, волновалась и краснела. И я тоже очень старался, чтобы ей было интересно. А в 9 классе на выпускном все веселились, а она сидела в уголке и грустила. Так что мы сели вместе на окно и стали разговаривать. Она была в красном платье, и я тайком пытался заглянуть в вырез же. :3 И сам при этом краснел. И потом мы вместе шли домой! А у её дома ещё долго не хотели расставаться, и тогда она сказала, что не хочет идти домой, и мы отправились гулять куда глаза глядят. И потом долго-долго не мог уснуть, снова и снова всё это переживал и улыбался, как кот. И мечтал, как мы после школы поженимся, и будем жить вместе, и нам никогда не будет скучно, и всё у нас будет хорошо... А на следующее утро мать такая говорит: "Слушай, нам на работу закупили компьютеры, а программист в отпуске. Я сказала, что ты сможешь их подключить." Я аж задрожал от волнения! У меня дома даже денди не было, приходилось задрачивать тетрис до мозолей и рисовать платформеры в тетрадке. А там их десять! пентиумов! новых, пахнущих упаковкой! Я в мать буквально вцепился же и сказал, что готов приступить немедленно. Поехал с ней на работу, и там меня ждало всё это богатство! И вот я их все собрал и подключил, а потом в её кабинете до позднего вечера сидел и просто играл в Windows! Там даже мышек почему-то не было, но я по книжке Фигурнова знал, как работать одной клавиатурой! Блджад, там столько всего! Впервые в жизни я дефрагментирвовал диск! И проверил его на ошибки раз десять. Мать спрашивала: "Ну всё? Ты закончил?" А я как в лихорадке ей отвечал: "Сейчас, сейчас..." И скорее открывал новые и новые окошки, панель управления, смена обоев, смена цветов, размер шрифта... А потом увидел там папку "Distrib". Там было столько всего! Даже Microsoft Office 95! Даже установочные файлы самой Windows!!! Мать меня еле-еле за руку увела. На следующий день я опять напросился "поработать" и впервые в жизни стал переустанавливат Windows! Потому что эту процеруду я уже знал по книжкам наизусть. И всё у меня получалось! А на четвёртый день наконец-то нашёл коробку с мышками, и это был новый праздник! А потом упросил знакомого переписать мне Warcraft II на 11 дискет и ооооооох блджад!!!!! И пофиг, что не было звука, кого волнуют такие мелочи. Хозяева кабинета уже отчаялись меня выгнать, дали мне белый халат и отодвинули монитором к окну, чтоб не смущал больных. Всё лето продолжались эти чудные деньки, и даже осенью потом иногда приезжал туда после занятий и играл до последнего сторожа, ни есть, ни пить не хотелось. А та девушка? Какая девушка, лол, ни разу про неё и не вспомнил.
---------------------------------------
Подошел, значит, Сисадмин к своему серверу. Открыл стойку. Достал из сумки патчкорды. Примерил. Ай, какие патчкорды! С синей оплёткой, с витухой, да с помехоустойчивой изоляцией, да с золотыми rj45 на концах. Смотрит Сисадмин, не нарадуется на свои патчкорды, как вдруг краем глаза замечает, что из сумки вываливаются гурьбой маленькие роутеры с ардуинками. Обступают Сисадмина со всех сторон, играют на ардуинках, подмигивают индикаторами и поют.
Раз патчкорд у Сисадмина, два патчкорда Сисадмину,
Три патчкорда Сисадмина, тай-да-дай-да-да...
Нда, думает Сисадмин, однако. Меш-сеточки. И откуда же они такие взялись в моём сервере? А пойду-ка я, пожалуй, к терминалу – чаю попить.
И вот заходит Сисадмин в кабинет, присаживается на табуретку, наливает себе чаю, тянется, как и положено, к печеньице, но тут с удивлением подмечает, что из упаковки вываливаются гурьбой на заваленный стол - ну да, те самые маленькие роутеры с ардуинками. Обступают Сисадмина со всех сторон, играют свитчами, подмигивают индикаторами и поют:
Раз патчкорд у Сисадмина, два патчкорда Сисадмину,
Три патчкорда Сисадмина, тай-да-дай-да-да...
Тут уж, конечно, не до шуток. Свет, что ли, клином сошелся на этих треклятых патчкордах? Да и спать к тому же пора.
Ну, что было ночью, я даже рассказывать не буду. А только с утра Сисадмин с распухшей от маршрутизаторных писков головой первым делом отправился на рынок, да и продал за бесценок свои красивые патчкорды какому-то неулыбчивому сетевику.
А вечером, развалившись перед монитором с чашкой чаю, хотел было Сисадмин айти-новости посмотреть - как вдруг краем глаза заметил, что из коммутационного шкафа вываливаются гурьбой - ну да, всё те же маленькие роутеры с ардуинками. Более того, на одном из свитчей Сисадмин с негодованием опознал напяленные кое-как, да ещё и не той стороной, его, Сисадмина, патчкорды с изоляцией и золотыми rj45! А роутеры знай себе тренькают на ардуинках, подмигивают индикаторами и поют ехидными голосами:
Раз патчкорд у Сисадмина, два патчкорда Сисадмину,
Три патчкорда Сисадмина, тай-да-дай-да-да...
И стало Сисадмину вдруг как-то очень даже весело. Ну думает, глупость какая – кабеля, ардуинки, сеть какая-то дикая. А может и не издеваются над ним роутеры, может, наоборот, пытаются привлечь к себе внимание? Ну да, и динамики у них вроде бы есть, и спикерами могут петь, и на три бита, и без сжатия, и в модуляцию попадают. А патчкорды... да бог с ними, с патчкордами, ну поедет Сисадмин куда-нибудь в Циско, напросится в гости к сетевому гуру, а гуру от чистого сердца преподнесёт Сисадмину в подарок новые красивые патчкорды, длинные, цветные, а ежели хорошо попросить, то может быть и вовсе – волшебные!
И вот с такими приятными мыслями Сисадмин спокойно заснул и целую ночь ему снились маленькие сетки с ардуинками, и во сне Сисадмин курил вместе с ними мануалы, подмигивал и пел:
Раз патчкорд у Сисадмина, два патчкорда Сисадмину,
Три патчкорда Сисадмина, тай-да-дай-да-да...
---------------------------------------
Я ненавижу Ретину
Да, я ненавижу все эти ваши новомодные супер-экраны в айфонах-айпадах и прочем говне. Они сломали мне интернеты. Теперь эта дрянь в каждом втором андроиде и производители гонятся за все большим и большим количеством Dots Per Inch. Всех этих людей я бы хотел связать от отывать им по кусочку пальца, а когда все пальцы будут надорваны, продолжить процедуру с самого начала, а потом засунуть в машину для разрезания стали на тонкие полоски.
Начнем с того, что так уж получилось, что мы используем в нашем мире пиксельные устройства, потому все рано или поздно станет пикселем. Тем самым квадратиком, который многие не хотят видеть. Фактически, эти люди не хотят видеть строительных кирпичиков своей реальности, предпочитая замыленные очки маркетинга. Да, тут будет много абзацев с моей жопной болью, поскольку тема для меня очень болезненная и уже второй абзац я сваливаюсь в свои страдания, вместо технических деталей. Нет, я постараюсь со следующего абзаца все исправить.
Так случилось, что из множества вариантов технологий для отображения изображений победила... матрица из маленьких квадратиков, называемых пикселями. В далекие-далекие времена, когда пикселей было мало, то существовало особое исскуство рисования - Пиксель Арт, это когда на малом разрешении экрана рисовались страшные монстры и былинные герои, графика была четкой и яркой, а весила по современным меркам вообще копейки. Время шло и постепенно количество пикселей стало увеличиваться, и если по началу разрешение 640х480х256 рассматривалось как SUPER TRUE HD ULTRA GRAPHICS, которое требовало специальных драйверов и не запускалось абы где, то нынче в таком разрешении даже сайт не посмотреть и новости нормально не почитать. Но почему? А ведь ничто не мешало делать "журналы на дискетах", которые читали на еще более меньших экранах в меньших разрешениях, не говоря уже про забытый текстовый режим. Вроде бы мы идем вперед, пикселей больше, а возможностей меньше? И я не могу сдерживать свою боль и снова сваливаюсь в ностальгию, когда каждый порядочный сайт требовали оптимизировать хотя бы под 800х600 как минимум, а лучше под 640х480, иначе его просто не принимали. Современные веб-обезьяны наверняка посмеются над этими словами, гыгыкая и тыкая в монитор жирным пальцем, но это их особенность, не будем об этом.
И если у нас монитор (устройство отбражения) состоит из логических квадратиков, то и отображаемый контент (картинки) скорее всего тоже следует делать из этих же квадратиков! В принципе, векторная графика тоже существовала очень давно, но процесс растеризации был (и остается) очень небыстрым, поверхность кривой может рендериться часами (да, в 3D это обычное дело, а ведь это тоже векторная графика), при этом границы этой кривой как были драными, так и остаются. По антиалиасингу написано много книг и создана куча алгоритмов, но толку от этого почти никакого, идеал где-то очень далеко. Конечно, можно использовать рейтрейсинг фотонами и за несколько часов на топовом железе будет что-то почти без драных краев.
В общем, пришли мы к тому, что у нас картинки из квадратиков и устройства для просмотра картинок тоже из квадратиков. Квадратики эвривеа, от них не убежать. А если у нас контент не из квадратиков, то он станет квадратиками (другое в монитор просто не пролезет), но ценой невероятных вычислительных мощностей. Тут конечно надо еще раз свалиться в мою боль, что вычислительных мощностей сейчас СТОЛЬКО, что с типичного домашнего компьютера можно было бы завоевывать целые галактики, но мы не можем этого себе позволить, так как ресурсы брошены на антиалиасинг и прочее говно, в результате даже веб-странички с рецептами по варке макарон нормально без тормозов не почитать. Раньше рецепты читать было проще. И ничего не тормозило. Может быть в будущем нас ждет новый текстовый режим и аппаратный рендеринг? Впрочем, к этому мы еще вернемся.
А что будет, если мы добавим немного пикселей? У нас будет место, где мы сможем написать больше текста, посмотреть больше картинок, разместить больше программ, в общем более продуктивно использовать свой компьютер! Правда тут есть один нюанс, со сменой разрешения, размер монитора не изменится (в эту боль я пойду позже), а значит пиксели станут чуточку меньше. Кнопочки на экране станут чуток меньше, а значит по ним будет сложнее попадать. Но все равно, зачастую это удобнее, кнопочек влезает больше, а зрение быстро привыкает к мелкому тексту. Или нет?
Как выяснилось, не привыкает. Ну, смену 640х480 на 1024х768 еще можно вытерпеть, а дальше? Дальше у людей начинаются сложности и им хочется "шрифт сделать побольше, я плохо вижу". Я лично не очень понимаю, зачем людям сначала ставить большое разрешение, чтобы потом мучаться и делать шрифт "побольше". Тут можно пуститься в множественные предположения, что возможно человек не хочет видеть тех самых квадратиков, а возможно он просто мудак и выставил настройки по максималочке. Мы этого не знаем и скатываться в философию тут не будем.
Проблема тут в том, что "сделать шрифт побольше" - это достаточно сложная задача. Это надо отрендерить все шрифты в разрешении "побольше". Для хранения таких битмапов надо памяти "побольше". Для копирования таких шрифтов на экран, надо процессорного времени "побольше". Да, на каждую выводимую букву, а их много! Да и похуй, ведь у нас и процессорных ресурсов с каждым годом БОЛЬШЕ, МЫ МОЖЕМ СЕБЕ ЭТО ПОЗВОЛИТЬ!!! Впрочем, это только одна из школ растеризации текста. Мелкая лавочка, которая и сломала мои интернеты, считает эту методику неприемлемой и борется на суб-пиксельные смещения, полностью игнорируя пиксельную сетку, только типографика, только хардкор.
И вот так вышло, что наращивать размер шрифтов и разрешения теперь оказывается можно практически бесконечно. А еще можно выпускать не только мониторы, но и всякие планшеты и даже телефоны. Даже часы. А разрешение какое? Конечно же 1080p, чтобы смотреть кинчик без конвертации и без потери аспектов. Ну как еще тупому быдлу впарить девайс с функциональностью 10-ти летней давности? Правильно - раздуть пикселей. И рассказать, что теперь шрифты будут НУ ВАЩЕ ГЛАДКИЕ. И вот тут уже, чтобы прочитать текст, надо уже делать его не просто "побольше", а реально неебических размеров текст. Причем не просто "покрутить шрифт в браузере", а где-то на уровне системы, чтобы шрифт везде был большой.
Внимательный слушатель наверное уже заметил, что мы как-то обошли стороной картинки. Куда они подевались? Да никуда. Немного цифр: мы нарисовали красивую картинку размером 300х300 пикселей. При разрешении 640х480 она будет занимать половину экрана. При разрешении 1024х768 уже треть горизонтали! При разрешении 1920х1080? Примерно 1/6 по горизонтали. Если же у нас это 1920х1080 находится на мобильном телефоне, с размером экрана 5х3 см, это будет чуть менее 1см. Сможешь ли ты разглядеть, что было нарисовано на моей замечательной картинке, если размер ее менее 1см?
И вот тут на сцену нашей драмы выходит такая штука как DPI - Dots Per Inch. Количество пикселей (точек) на дюйм. Теперь у маркетологов есть новая циферка, которую они могут раздувать и доказывать, что именно их девайс нужен всем. А еще эта цифра говорит системе, какого размера должны быть шрифты, картинки, кнопки и прочие элементы.
Теперь пользователь знает, что он купил не лоховскую звонилку, а TRUE HD, а система знает, что картинку надо увеличить, а иначе пользователь ничего не увидит. Увеличение картинок в нашем мире делают через ресемплинг - достаточно дорогую операцию, которая требует дополнительного выделения памяти и на выходе выдает интерполированный (размыленный) вариант. Благо, у нас есть пара гигабайт на телефоне, чтобы это разместить в памяти и 4 ядра, чтобы это отблитить на экран. И двойная батарейка, чтобы запитать эти 4 ядра, чтобы быстро-быстро блитить и списочки не тормозили. И вообще, есть OpenGL ES, который позволяет сделать мыльцо аппаратно, правда это сложно и в обычных приложениях такие фишки железа почти никогда не используются. А что делать? Выбор не велик: или картинка в 1см, или мыльцо. Зато настоящий пацанский телефон, а не какая-то лоховская звонилка.
Надо отдельно сказать про другую мелкую лавочку из села Редмонт, где делают популярную операционную систему "Окна". Понятие DPI в этой операционной системе было давно, да вот только настолько кривое, что со значениями отличными от 72 (75), постоянно происходят какие-то странные вещи. То менюшка какая отвалится, то кнопка уедет, то курсор на скринкасте будет с зазубринками, то еще произойдет что-то интересное и забавное. Поэтому маркетинг тут просто не работает. Но маркетинг должен работать! Именно поэтому я купил 24" монитор, хотя вертеть головой перед ним крайне неудобно и такой большой размер мне в общем-то не нужен. Причем тут маркетинг? Да при том, что практически все ширпотребные мониторы имеют разрешение 1920х1080, не зависимо, нужно такое разрешение пользователю или нет. Все остальное имеет уже другой ценовой диапазон и шильдик "премиум", даже если это мое любимое 1024х768. Я не готов переплачивать в 5 раз, чтобы купить именно то, что я хочу. И чтобы хоть немного видеть пиксели, от которых избавляются маркетологи, мне пришлось сначала купить огромный монитор, а теперь раздвигать окошки на 1/3 экрана, чтобы не вертеть головой и держать набираемый текст в области зрения. Да, зрение у меня не самое лучшее, потому я не могу поставить монитор в метре от себя. А если бы и мог, то зачем тогда такое раз решение, если бы видел я все равно меньше? Это уже из серии, когда человек покупает плазму, но вешает ее под потолком. Разрешающая способность древней нокии, которая будет в руках, легко побьет эту плазму на потолке.
Нетерпеливый читатель спросит: причем тут сломанные интернеты? Сейчас, сейчас!
Другая лавочка, которая находится в селе Купертино и тоже делает операционные системы, смеется над неудачами сельчан из села Редмонт и делает свои системы под свои же экраны с просто охренительными разрешениями. И даже точек на дюйм у них столько, что любая баба будет течь от упоминания таких цифр. Бабы таким дают. И мужики тоже. За те деньги, что стоят эти девайсы, особенно в этой сране, я бы сам дал кому угодно. Таким, кто имеет устройства с таким разрешением. К сожалению, именно эти люди зачастую становятся дизайнерами. И именно они делают интернеты.
Дальше пойдут технические аспекты говняния интернетов и люди, не имеющие опыта разработки мало что поймут, но могут почувствовать мою эмоциональность и боль, передаваемую сквозь текст.
Как выше было замечено, картинки на этих ваших ретинах и ваннаби-ретинах являются мыльным говном. А зачем тогда эти ваши супер-разрешения, только для текста? Впрочем, вот картинка в тему:
http://static.fjcdn.com/large/pictures/23/76/2376e4_5374109.jpg
Я бы сказал что это хорошая шутка, но шутить ведь нельзя! И вот авторы этой картинки тоже дошутились, что в моду вошли шрифты с иконками. Зато ретина.
На самом деле, если уж девайс выдает настоящие пиксели, то можно отобразить и картинку в высоком качестве. Для этого нам нужна картинка в высоком качестве. Благо, в процессе дизайнерства, картинки порой очень большие, это не проблема. Осталось донести ее до пользователя. Как выяснилось, есть несколько способов это сделать. Давайте посмотрим на них:
1. Иногда можно указывать разрешения, в девайс сам подтянет нужное:
<link href="touch-icon-iphone.png" rel="apple-touch-icon-precomposed" />
<link href="touch-icon-ipad.png" rel="apple-touch-icon-precomposed" sizes="72x72" />
<link href="touch-icon-iphone4.png" rel="apple-touch-icon-precomposed" sizes="114x114" />
<link href="touch-icon-ipad3.png" rel="apple-touch-icon-precomposed" sizes="144x144" />
Что-то такое было на древних нокиях, во времена, когда выпускали приложения под конкретное разрешения экрана или даже под конкретную модель.
2. Можно использовать продвинутые CSS-селекторы:
.repeatingPattern {
background: url(../images/bgPattern.png) repeat;
background-size: 100px 100px;
}
@media only screen and (-webkit-min-device-pixel-ratio: 2) {
.repeatingPattern {
background: url(../images/bgPattern@2x.png) repeat;
}
}
В общем-то типичный путь проприетарного расширения: сделать какое-то нечитаемое остальными свойство и использовать его.
3. Можно использовать JS для "улучшения" картинок:
if (window.devicePixelRatio == 2) {
var images = $("img.hires");
for(var i = 0; i < images.length; i++) {
var imageType = images[i].src.substr(-4);
var imageName = images[i].src.substr(0, images[i].src.length - 4);
imageName += "@2x" + imageType;
images[i].src = imageName;
}
Тут мы сначала грузим обычные картинки, запускается скрипт и просто заменяет ссылки, добавляя к ним волшебное @2x в конец имен. Интернеты нынче быстрые, трафик дешевый.
4. А еще можно не использовать растровую графику и использовать SVG для иконок. Когда-то давно на одном известном сайте всю графику сделали на флеше, вызывая инстанс флеша для каждой иконки. Тормозило? Конечно! Но это тормозило 15 лет назад, а нынче такая техника вполне допустима, у нас же быстрые компьютеры! И наплевать, что рендереры SVG жуткие тормоза по сравнению с флешем. Впрочем, о растеризации векторной графики уже написано выше.
5. Наконец, есть самый простой, элементарный и наиболее очевидный способ: взять реально БОЛЬШУЮ картинку и задать ей в ручном режим нужный размер. К примеру, взять картинку 200х200 пикселей и написать:
<img src="PIC_200x200.png" width="100" height="100">
Это работает примерно следующим образом: сначала начинает загружаться страничка и определяется ее viewport (ну скажем, 320х480 пикселей), зависит это от размера экрана, настроек или от того, как сильно пользователь "щипнул" экран в порыве масштабирования, затем относительно этого вьюпорта расчитывается, сколько же реальных пикселей должен занимать квадратик в 100х100 пикселей, затем грузится картинка в 200х200 реальных пикселей и скейлится уже под подсчитанный размер. Таким образом и верстка не едет, и мыла в 2 раза меньше (конечно, пикселей в 4 раза больше, но интернеты нынче быстрые, память дешевая).
Внимательный читатель должен спросить, а что будет, если пользователь имеет НУ ОЧЕНЬ много пикселей на экране? Или, отзумил страничку, что вьюпорт стал меньше? Скажем, вьюпорт 200х пикселей на телефоне с 1920х? Правильно, наша картинка все равно станет мылом, ведь ее надо будет отскейлить до 960х960 пикселей. Разве что мыла будет чуть меньше, чем если бы мы ресайзили честные 100х100. Какой выход? А давайте вообще не ресайзить графику, просто будем задавать width/height у картинок, а устройство пользователя само разберется! Ведь взять картинку 1500х1500 пикселей и поставить себе на аватарку - милое дело, даже если аватарка представляет из себя 16х16 пикселей.
Эта проблема общая вообще для всех устройств, даже не затрагивая веба, к примеру в андроиде нужны иконки приложений с размером 512х512 пикселей.
Думаю, способов намного больше, люди выпускают даже целые книги о подготовки графики для ретина-дисплеев.
Теперь, если отключить CSS на популярных быдлоресурсах вроде швабры, можно видеть лесенки аватарок абсолютно любых цветов и размеров, равно как и иконки интерфейса шириной в 2000 пикселей. Спасибо всем этим людям за то, что я качаю в тысячи раз больше говна и мой компьютер дичайше тормозит при открытии страниц, хотя на компьютере 10-летней давности странички просто летали.
Казалось бы, чего волноваться? Ну засрали интернет, ну и что? Он и так засраный был. Просто надо ходить на хорошие сайты, где не срали! Но индустрия уже сдвинулась в сторону этой ретины и в будущем нас ждет:
<picture>
<source media="(min-width: 64em)" src="high-res.jpg">
<source media="(min-width: 37.5em)" src="med-res.jpg">
<source src="low-res.jpg">
<img src="fallback.jpg" alt="Непонятно когда это грузить">
<p>Если нету картинок, то вот вам текст
</picture>
В принципе неплохое решение, только вот я почему-то уверен, что обычной картинки не будет, а если и будет, то реально там будет high-res.jpg и все вернется на круги своя. Почему? Потому что редакторы (люди которые) не будут заморачиваться разными разрешениями и просто всунут картинку "как есть", а разбираться с разными разрешениями в лучшем случае поручат системе управления контентом.
Впрочем, это только веб, а есть еще и десктоп, есть и мобильные девайсы. С ростом DPI растут и кнопки, и отступы между элементами, а по факту как 30 лет назад текста на экране было мало, так его и осталось. И как все тормозило в те годы, так и тормозит по сей день, а то и сильнее.
Тут должны были быть еще рассуждения о алгоритмах скейлинга кнопок, о такой Gnome и пятках, о пиксельных шрифтах из WinXP и многом другом, но меня обвинили во вниманиеблядства, потому может быть в другой раз, если я когда-нибудь соберусь. Этот же пост я планировал написать около 3х лет.
------------------------------------------
Способ №1: кричать "выпрямись" или "спина прямая", когда ты ходишь сгорбившись. Воспитание - это конечно хорошо, но не когда тебе уже за 30 лет. Отличный способ проебать семейные отношения.
Способ №2: дождаться открытия холодильника и кричать "ну чего ты витрину открыл, что ты там хочешь увидеть?", причем делать это сразу, как только дверца была открыта.
Способ №3: крики вида "НЕ ШАРКАЙ! НОГИ ПОДНИМАЙ ПОЛЫ СОТРЕШЬ", замаскированные под заботу о походке, сдобренные рассказами о том, что новые туфли или тапочки стоят денег, а их ой как непросто зарабатывать, даже если стоят они копейки. Воспитывайте страсть к нищете с малых лет!
Способ №4: рулить жизнью ребенка и его знакомыми. К примеру, выбирать будущую подружку, когда сыну всего 6 лет. Новость о том, что в школе сделали пересадку и теперь все сидят за партами с новыми однокласниками, трактовать как жалобу и пойти в школу наводить порядок, при этом мнения ребенка никто спрашивать не собирался. Быть может, ребенок был счастлив, что более не сидит с жирной коровой?
Способ №5: А у бабы Вали внуки отличники, а ты весь в папку то, в неудачника. ТАКАЯ ВОТ ПОРОДА ГНИЛАЯ. И я чот действительно весь на папку вырос похожий, такой же забитый
Способ №6: Дарите ребенку на день рождения то, что ему совершенно не нужно, или то, что и так является обычной его потребностью. Отличные подарки для дня рождения: арбуз, большая дыня (даже если ребенок ее не любит), новая рубашка, штаны, новый портфель для школы. Можно дарить один подарок несколько лет подряд, к примеру часы, которые ребенок постоянно проебывает и которые, по сути, ему совершенно не нужны. Зато это хороший подарок.
>новый портфель для школы
- Мааам, я закончил школу 10 лет назад!
- ДАРЕНОМУ КОНЮ В ЗУБЫ НЕ СМОТРЯТ
Способ №7: Решайте за ребенка, как лучше ему тратить свои деньги, так он никогда не сможет понять их ценность. Помню, как мне на днюху подарили 20 рублей, а бабушка их забрала и сказал, что это мне на кроссовки. А вот мне подарили в 2001м году 500(!) рублей, и тут же отобрали ТЕБЕ ОНИ ВСЕ РАВНО НИ НУЖНЫ
Способ №8: После выпускного, когда ребенок вернулся домой в 10 вечера, покажите ему форум, где обсирают вузик, куда он собрался поступать. На следующий день удивитесь тому, почему он свез документы в местный говновузик и порадуйтесь этому факту.
Способ №9: Спрашивайте ребёнка о чём-то. Перебивайте в середине первого предложения. Закончив, не переспрашивайте. Пусть знает, как вам важны его охуительные истории. Если будет возмущаться - говорите, что он агрессивный, и с ним невозможно разговаривать.
Способ №10: У вашего ребенка не должно быть никакой частной жизни, он не должен иметь возможности закрыться в своей комнате, у него не должно быть никакого личного пространства, он не должен иметь даже ящика для своих личных вещей, ведь до 18 лет он не личность, а всего лишь бесплатное приложение к своим родителям. Почаще кричите на него, чтобы он убирал все свои вещи на место, при этом никогда не объясняйте, где это самое место находится, а на любые вопросы отвечайте криком и явной агрессией. Чаще перестилайте ему постель, чтобы даже под матрасом он не мог хранить свои вещи, дайте ему понять, что скрыться от вас просто невозможно.
Способ №11: Знайте, что лучше для вашего ребенка, разбирайтесь лучше в мельчайших нюансах тех вещей, которыми занимается ваш ребенок. Ребенок просит новую игру? Купите ему сборник 9999-в-одном и на все новые запросы говорите "Ну, там эта игра наверняка есть", это поможет не только экономить деньги, но и сделает лучше вашему ребенку, ведь у него будет отличный выбор с самого раннего детства! Когда ваш ребенок вырастет, он не будет покупать дорогие вещи, а будет экономить на всем, предпочитая покупать эпичнейшее говно, к которому будет приучен с детства.
Способ №12: Если у вашего ребенка сломался комьютер, телефон или какой-то другой гаджет, то не спешите его утешать, лучше злорадствовать с наставлениями: "очень хорошо, может быть уроки делать начнешь" или "ну вот, теперь ты точно на дачу поедешь". Всячески показывайте ребенку, что вы совершенно не разделяете его увлечений.
Способ №13: Для повышения мотивации вашего ребенка, устраните различные помехи, которые препятствуют выполнению важных задач, от которых ребенок отлынивает. Прячье его личные вещи, вынимайте из телевизора предохранители, берите с собой зарядку телефона или игровой консоли на работу, чтобы ребенок ее точно не мог найти. Таким образом вы добьетесь, что ребенок точно ничем заниматься не будет в условиях отсутствия поощерения, забив на школу и все остальное. Всячески показывайте, что от комьютера/телевизора/телефона люди ДУРЕЮТ и надо ходить гулять с дворовыми гопниками.
Если повезет, то ваш ребенок станет экспертом по поиску спрятанных вещей, научиться выбираться из запертых дверей и это станет его хобби на всю оставшуюся жизнь. Развлечение, которое всегда с тобой! Можно лазить во все плохозакрытые места как в своем доме, так и за его пределами. Можно научиться работать на комьютере без мышки или даже клавиатуры.
Помните, что книги, пульты от телевизора и даже подарки - это то, что сначала нужно ЗАСЛУЖИТЬ. Если подарок был сделан на день рождения, то это не делает его собственностью ребенка (о собственности см.выше про личное пространство).
Способ №14: Говорите ребенку, что он растет не таким как все, что он дефектный, сравнивайте его с детьми соседей, говорите о их успехах, ставте их в равные исходные условия, даже если это изначально понятно. Говорите ребенку, что если он еще раз что-то сделает не так, или просто не будет слушаться, то вы его сдадите в дурку или интернат, где из него сделают человека. Таким образом вы окончательно разорвете доверительные отношения и терять в дальнейшем воспитании будет уже нечего. Вы сможете попробовать абсолютно любые способы воспитания!
В качестве примера для подражания выбирайте самого активного одноклассника или дворового мальчишку, у которого наверняка уже имеются приводы в милицию или который матерится не переставая. Говорите прямым текстом: "я бы очень хотела, чтобы ты с ним подружился, это очень хороший мальчик". При этом закрывайте глаза на то, как этот хороший мальчик лазиет по чердакам и пьет пиво на виду у всех, но своему ребенку это категорически запрещайте. Пусть любит футбол и другие традиционные радости, пусть будет как все.
Этой же фразой можно хвалить ребенка, пример: "ну ты же не такой как они! поэтому ты согласен со мной!". Но и не забывайте о обвинениях вида: "все люди как люди, а ты - бракованный, жаль гарантию потерял (потеряла), давно бы обменяли"
Способ №15: Дозируйте развлечения. Если ребенок увлекательно смотрит фильм или телешоу, то смело обрывайте просмотр на самом интересном месте. Ведь это интересы ребенка, а что может интересовать ребенка, если не всякие глупости, которые надо выбить из его головы? Если Вам срочно нужно уйти из квартиры или пойти спать, то смело выключайте телевизор и занимайтесь своими делами. Если ребенок протестует, то обвините его в том, что он плохо себя вел, к примеру, смеялся от юмористического шоу.
Способ №16: Берите ребенка на рынки, в магазины, в церкви и прочие места, где ему будет крайне скучно и неинтересно. Мотивируйте это тем, что ему нужно побольше бывать на свежем воздухе. Если же ребенок пытается гулять сам, то пресекайте такие попытки, ведь его будет крайне сложно контролировать и он может попасть в плохую компанию. Пусть дома сидит и не думает ни о чем.
Способ №17: Смело распоряжайтесь собственностью ребенка, ведь ему еще нет 18 лет, а значит и права на собственность он пока еще не заработал. Если ему что-то подарили, то это можно забрать с объяснением "мне нужнее", разобрать из-за "мне были нужны детали" или просто растоптать ногами, так как "эта штука слишком громкая, а ты слов не понимаешь".
НА ДЕНЬ РОЖДЕНИЯ ДЯДЯ ПЕКА ДАРИТ ТЕБЕ ГРОМАДНЕЙШУЮ КУЧУ БАБЛА (100-1000 РУБЛЕЙ)
@
УЖЕ МЕЧТАЕШЬ, КАК КУПИШЬ СЕБЕ ДЕНДИ/СЕГУ/ЛЮБУЮ ДРУГУЮ ЕБАНИНУ МЕЧТЫ
@
МАМКА ОТНИМАЕТ ДЕНЬГИ СО СЛОВАМИ: "ЕЩЕ НА ЕРУНДУ КАКУЮ ПОТРАТИШЬ, МЫ ТЕБЕ ШТАНИШКИ\БОТИНОЧКИ\ГОВНО_НА_ПАЛОЧКЕ К ШКОЛЕ КУПИМ!
Можно смело выкидывать вещи, которые плохо лежат (см. про личное пространство и личный ящик), это мотивирует ребенка УБИРАТЬ ВЕЩИ вовремя (опять, главное не говорить куда убирать), а потом, на все вопросы, стройте недоумевающий взгляд или перестрашивайте "ааа, а оно разве тебе еще надо? Ты же вырос из этого!".
Это же касается и одежды. Вот есть у ребенка, например, любимый свитер (один). С оленями, с хуями вязаными - неважно. Носит его ребенок, носит, радуется, тепло, заебись, а потом он пропадает. На вопрос "ГДЕ" можно ответить "отнесли в церковь, пусть дети радуются!"
Будет смешно, если ребенок узнает, что в местной церкве больше не принимают одежду из-за переполнения склада.
Способ №18: Расскажите своему ребенку о неотвратимости наказания. Если он провинился, то смело выкидывайте его на лестничную клетку, пусть ночует там за свои провинности. В крайнем случае, его можно сильно отпороть и поставить в угол на горох, чтобы рыдал целыми днями. В этом случае, совершив какое-то нарушение, ваш ребенок сначала будет думать о том, как скрыть следы преступления, а то и воздействовать на вам превентивно, к примеру, просто не приходя домой. Пройдут годы и он легко вольется в наше замечательное общество лжи.
Способ №19: Никогда не рассказывайте детям о банных халатах, ведь это очень дорого, да и вообще, они не нужны
Способ №20: Говорите ребенку "жизнь заставит", подавляйте его волю с ранних лет, воспитывайте в нем обреченность и смирение. Формулировка о полезном опыте или обучении совершенно не нужна, нужно именно подавлять и сталкивать ребенка с безысходностью.
Способ №21: Не давайте смотреть мультфильмы, которые хочет посмотреть ваш ребенок. Ведь в них неправославная американщина ломает психику рибйоночка. Документалки о динозавраз тоже не нужны, мало ли что он из них почерпнет. Вынуть предохранители из телевизора - это самый простой путь контроля сознания и залог правильного воспитания. Как вариант, можно забирать шнур от монитора, аккумулятор от телефона или жесткий диск из компьютера.
Анончик, шнур - херня. Я его выменивал в школе, но родители это просекли и стали закрывать комнату с компом на замок! Но я научился вскрывать замок и пробирался к компу, пока мои родители не пришли раньше времени и не спалили этого, и вот тогда случился пиздец. Они стали опечатывать комнату и если печать нарушена, меня ебошили хлополкой для ковров.
Вынул я предохранитель
Чтобы сына был здоров
Сына сунул болтик вместо
Больше нету сына у меня
Способ №22: Если беренок что-то активно просит, то задайте ему риторический вопрос, например: "А ты кто такой, говно?". Это поставит ребенка на место и покажет ему его место в жизни. Старайтесь использовать одну фразу как можно чаще, в том числе при других людях, пусть ребенок и все окружающие знают, какой у него настоящий социальный статус.
"Зачем я тебя вообще рожала"
"Лучше бы ты при рождение сдох"
"Тебя в роддоме подменили" <-- реальный страх на годы
"Ты мне не сын"
---------------------------------------
У нас таких небыло в родне
Туду на переписать:
про кормление по расписанию и нужными полезными продуктами написал? Да, ещё не размораживать холодильник и не портить технику, а так же не жечь кинесккоп у телевизора
У ребенка появились друзья в 11 классе? Они зовут поехать в другой город на машине? Ни в коем случае не отпускайте его, мотивируя тем, что у водителя совсем нет опыта, и они обязательно разобьются. Если ребенок пойдет против вашей воли - не отвечайте на его звонки, когда он захочет сказать, что все нормально.
Частный-то случай, он частный, конечно, но с тех пор я, как можно догадаться, не имею друзей, как и прочих социальных связей. Просто вспомнилось почему-то.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment