Category: it

Category was added automatically. Read all entries about "it".

jr

Кстати

Когда-то давно я пытался найти способ скриптично генерировать видео, состоящее из анимации векторных элементов. Тогда, водится, сделал это (сделал это, хех-хех-хех) дуже извращенно - с помощью ортографической проекции трехмерных объектов вертикально вниз в PovRay.

А тут, наконец, нашел приличное решение - используя библиотеку OpenCV c питоном. Она, в качестве бонуса к своему основном назначению, позволяет читать-писать видеофайлы, и рисовать всякие линии/эллипсы/многоугольники. Когда ее способностей в плане последнего начинает не хватать, ее можно сопрягать с PyCairo, к которому еще в случае желания дополнительно имеется примочка CairoSVG, которая вменяемо отрисовывает SVG. Т.е., анимацию можно делать через жопу конструирование/отрисовывание SVG, если так удобнее.

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

Но был один существенный недостаток: если в Дельфи была отработанная система экспресс-сляпывания интерфейса, интегрированная с ихней же бублиотекой, то в пытоне взамен есть пятнадцать разных библиотек для интерфейсов, но все какие-то малость слишком либо устаревшие, либо сыроватые, либо низкоуровнивые. И я тут наконец этот вопрос разрешил - тоже, естественно, черезопу. Ибо как еще может это сделать уважающий себя линухер? Тырфейс я давно надумал делать с помощью HTML/javascript в браузере. Что дает заготовки его сляпать за пять минут не хуже, а может даже лучше, чем в Дельфи. Фатальный недостаток этого в том, что javascript браузера навечно заточен в высокой башне песочинце, что делает его доступ к данным с компьютера категорически ущербным.

И вот наконец я тут реализовал давно витавшую у меня идею - написал HTTP сервер на питоне, который может принимать HTTPRequest запросы из жабоскрипта, получая и передавая через них любые данные. Таким образом за 2.5 минуты ляпается интерфейс в HTML/javascipt, который взаимодействует со скриптом на питоне, написанным еще за 2.5 минуты, в результате имеем искомый за пять мину сделанный спичечно-желудевый результат, затыкающий дырку любой формы.

ЗЫ. Если когда-то будет не лень, надо бы это переделать с питоновым сервером для WebSockets, для пущего удобства и функциональности.
jr

Скайнет, нет, нет!

Пока вы спали, Гугл достиг квантового превосходства.

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

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

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

Editing error, in my favor

Тут я осознал, что упусти один чрезвычайно важный факт!

Лабая всякие скрипты на скорую руку и на разные темы я обычно делал всякие автоматизирующие вещи на питоне (ибо к нему до фига бублиотек по самым разным поводам и писать на нем просто и удобно). Но если что-то с интерфейсом, то обычно на HTML с жаваскпиптом - ибо интерфейс уже на 3/4 обеспечен браузером в отлаженной и оптимизированной форме, надо только его слегка направить. А питон склоняет к Tk по части интерфейса, который малость коряв и весьма тормозлив, а альтернативя нужно специально добавлять, и они слишком низкоуровневые, чтобы на них что-то делать быстро и лениво.

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

А тут оказалось, что один способ ускользнул от моего внимания. По недосмотру адептов всеобщей безопасности, в HTML файл можно вставлять данные из внешних файлов, пользуясь тагом <script> с аттрибутом "src", указуя ему на соседний файл, в который можно вставить банально что угодно, ибо это же скрипт. Что прежде всего меня интересует - любые данные для скрипта в этом HTMLе. Которые, немного извратившись, можно даже динамично перезагружать, не теряя состояния скрипта, после обновления их внешней программой на питоне.

А я уж думал мне придется возиьтся с бублиотекой, позволяющей гонять WebKit из питона и запускать в нем жаваскипта. Или пускать WebSocket server. И сопрягать питон с жаваскриптом таким образом.
lazy

Видево-невидево

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

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

Для основного процесса, типа кроп/трим/сплайс/лэйер/тразишн/итд, конечно, ничто не превосходит джёрман инжиниринг: Avisynth 2.6. Естественно запускаемый под Wine, ибо как иначе под линуксом. С добавкой плагинов для понимания любых видеоформатов. А чтобы производить из этого финальный продукт - либо VirtualDub, либо ffmpeg через посредство avs2yuv. Для производcтва 3D фрагментов - естественно Povray. Для вставления анимации от руки - Draw My Story на андроиде и Pencil. Для анимации из простых геометрических элементов - скрипт на python с использованием OpenCV как для отрисовки геометрии, так и для записывания результата в видеофайл. Который, если извратиться совсем сильно, можно скармливать в AVISynth через fifo, минуя стадию промежуточного файла. В более тяжелых случаях - Cairo для отрисовки. А с помощью питона с опенцв может даже более тонко извращаться, например загадочно отфильтровывая видео, вплоть до распознавания объектов.

Вот и всего-то.
lazy

Муаха-ха

Тут читаю книжку "Искусство программирования под Юниксом". Кроме того, что проясняются элементы славных вех истории, там просто перл на перле - по самым разным поводам (ибо там же истоки башорга). Особо сочна ими глава "Элементы стиля операционной системы", где в каждой секции после объяснения юниксовского подхода в заключение добавляется "как это сделать через жопу ровно наоборот, чем в Юниксе" с прозрачными намеками то на одно, то на другое.

В одной такое:

"Чтобы сделать совершенный противо-Юникс, напишите операционную систему, которая думает, что знает лучше вас, что вы делаете. А чтобы совсем было заебись, чтобы еще и неверно"

Ржу и утираю слезы.
lazy

Прогресс

Тут бродил и наткнулся на виндовскую таблетку за 80 баксов. Посмотрел, повертел - та там же внутри полновесный ПЦ, и по сути обычная винда. Но пришел домой, поискал немного инфы про 10-ю винду. Обосрался от страха, и поспешное ее стер.

И попробовал поставить Линукс. Пришлось повозиться с выяснением, как там работает бутлоадер (а работает он, предсказуемо, через жопу - только через этот ебаный новомодный EFI, и только в 32-битном режиме, хотя процессор 64-битный. И для этого надо независимо перекомпилировать Grub в 32 бита, потому что он по умолчанию EFI прилагает только в 64-битном). Но после этого Лубунта и Дебиан вполне нормально встали и заработали. Единственно, пока с драйверами дело плохо - блютуз не работает вообще, вайфай и звук надо помучать, чтобы заработали, и т.д. К тому же, говорят,есть стремный баг, от которого могут быть сбои при записи на дискозаменитель, и против него пока только грязный хак. Но явно обещающее начало. И если очень нужно, то пока можно воткнуть желаемое в USB.

И еще нактнулся на непонятное заявление от Интела - что они собираются перестать поддерживать Линукс. Чешу репу. А как это они смогут сделать-то? Всю жизнь Линукс писался под Интел, а не Интел делался, чтобы на нем работал Линукс. И что они вообще такого делали раньше, чтобы "поддерживать" Линукс?
lazy

Хех

JavaScript считает, что Infinity==Infinity, и даже Infinity===Infinity - это тру, т.е. все бесконечности эквивалентны. А ведь еще партайгеноссе Кантор нам показал, что это не так. Отстает от времени жабоскрипт. По идее должно бы было быть undefined.

ЗЫ. Еще я тут повеселился, используя 9999 как практический эквивалент бесконечности, и используя каноничную проверку на бесконечность как if (p>9000), строго по луркоморью.
jr

Последняя цистерна в наперсток терпения

Мне потихоньку начинают предварительные ласки моска на тему сделать упгрейд винды. Типа официально одобренный софт для чтения почты и прочей хуиты работает только на седьмой винде. А мне уже достаточно не нравится XP, на которую меня давненько подобным путем заставили перейти (для своих целей я был вполне доволен Windows 2000, хотя переодически всякий фуфлософт на нем отказывается работать без достаточных оснований). А седьмая винда, насильственно пришедшая на купленных лаптопах, меня меня вообще достала своими мудными свистелками и перделками, и просиранием наконец-то сделанных прямо вещей 2000-ной и XP. А тут уже новости про 8-мую блуждают, значит похер, свалившийся на Windows 2000, грядет уже и для XP.

Посему я наконец снялся с ручняка, и решил довести до конца свой переход на Линукс. Т.е. - найти нормальный специализированный софт под него. Ибо как система Линукс лихо имеет винды во все дыры в стиле Gang Bang, но в плане софта все не так радужно. Под винды у меня набор разведанного кошерного и удобного софта для разных целей есть, а под линух я знаю только стандартно прилагаемый, плюс кросс-платформенный.

И должен сказать, налицо улучшение с того времени, как я в последний раз смотрел. Сразу же нашлись мегакошерные плэйеры и перекодировщики видео, позволяющие играть чего фактически угодно, и перекодировать фактически чего угодно в чего угодно, в том числе напрямую с DVD, с размудачиванием. Вполне приемлемый видео редактор. Порт моего любимого аудиоредактора. Кроме того, Wine существенно улучшился, и под ним можно много чело пускать. Еще я оценил ранее пропущенный XFCE как замену Гнома и KDE, которые оба уже свистопердят выше допустимого.

Вот пока только не знаю, чем заменить Delphi. Чего-то прямые замены - Kylix и Lazarus - довольно ебанистичны. Склоняюсь к комбинации Питона/tk с дополнениями на C, если приспичит что-то системное/скоростекритичное. Опять же, можно просто пускать Delphi под Wine.

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

Таким образом, можно сказать что заебись. Дома уже сижу в Линуксе почти не вылезая. Мож на работе тоже целиком перейти?
jr

Ручной бэкап своего ЖЖ

Я помню давненько писанул программку для сохранения своего наследия. У меня ее даже поспрашивали. Но поскольку то программка, это вызывает разные неудобства. Посему я тут прикинул чего еще можно более в ручную, поигрался с жаваскпиптом, и кой чего придумал, хоть и корявато. Ибо жаваскрипт страдает тяжким синдромом вахтеризма (туда нельзя/сюда нельзя). Но если вдруг кому нужно?

Короче так. Берете базовую урлу своего жж, в моем случае: http://chip33.livejournal.com. Добавляете "/calendar". Т.е. "http://chip33.livejournal.com/calendar". Это кажет кастрированную карту всех записей. Из нее извлекается полезная информация: какие года содержат записи. Далее для каждого года надо пойти на урлу вида:

http://chip33.livejournal.com/2011 (потом 2010, 2009, и т.д. далее по списку до года начала)

Там полезные ссылки - те, что обозначены "View subjects". Можно их выцапывать и открывать вручную, а можно скопировать в адресную строку следующий жаваскрипт (одной строкой) и нажать Enter (клавишу в виде сапожка в правой части клавиатуры, как говорилось в одном устаревшем руководстве):

javascript: var s=""; for (i=0;i<document.links.length;i=i+1) {l=document.links[i].href; lp=l.split("/"); if (lp.length!=6) continue; s=s+"<a href="+l+">"+l+"</a><br>"} document.write(s);

Это вырежет нужные линки и выдаст их в виде списка в окне. Затем надо каждую из них открыть. Там полезные ссылки будут - собственно ссылки на посты. Опять же, можно их выцеживать вручную, а можно, опять же, скопировать следующий жаваскрипт в адресную строку:

javascript: var s=""; for (i=0;i<document.links.length;i=i+1) {l=document.links[i].href; lp=l.split("/"); if (lp.length!=4) continue; lp=lp[3].split("."); if (lp[1]=="html") {s=s+"<a href="+l+">"+l+"</a><br>"}} document.write(s);

И опять же, они выдадутся в виде списка. Остается только каждую сохранить (т.е. навести на них указатель манипулятора типа "мышь", нажать правую клавишу, и нажать "Save As..."). Ну или можно скопировать эти списки в файл, и скормить их wget. Или какому еще даунлоадеру.

Вот, как-то так.
jr

Урок Арвида

Кто помнит такое чудо? Чисто совковая выдумка, даже звучит как "Абырвалг".

Collapse )

Этим Арвид напомнил, насколько ошибки - обычное дело, и как часто мы их просто не замечаем. Они просто не доходят до нашего внимания. Посему создается ложное ощущение, что пока все работает, оно работает как часы - идеально, и ошибка - нечто из ряда вон выходящее.

Например, знаете, насколько часто возникают ошибки (повреждения нуклеотидов) в ДНК? Хотя бы приблизительно? Согласно Докинзу, 5000 раз в день в КАЖДОЙ КЛЕТКЕ. Учитывая количество клеток в теле (от 10 до 100 триллионов (миллионов миллионов) по разным оценкам), получается от 50 до 500 квадриллионов ошибок в день. Не думаю, что многие представляют себе это число, поэтому раскрою. Это значит, согласно моим подсчетам навскидку, что если бы ошибка совершалась каждую секунду, то сделать столько ошибок заняло бы от 1.5 до 15 миллиардов лет (оцениваемая длительность сущестовования вселенной - 10 миллиардов лет). Но исправляются они с несильно уступающей частотой, по принципу "быстро поднятое не считается упавшим", так что реальные повреждения от этого происходят очень редко.

А вы боитесь совершить ОДНУ ошибку? Ха!

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

Вот как-то так. ;) Кстати, напомню как можно научиться исправлять ошибки, не задумываясь. Два ключевых действия - 1) научиться замечать ее 2) научиться делать то, что ее исправит. Можно тренировать оба пункта независимо. А потом просто связать. И все. Дальше работает автоматика. ;)