Home
Mára aurë
Calo anor na ven

Advertisement

tiaquenes
Date: 2009-09-12 16:08
Subject: Как отличить быдлониксоида от труэ-мастера кун-(фу)судо?
Security: Public

1) Проверить его мастерство игры в Xmoto.
2) Узнать через что он случает музыку. Верный ответ - mpd. Если дан верный ответ, спросить как он слушает. Если через 10 минут не будут услышены слова "фронтэнд" и "бэкэнд", то перед вами убунтоблядь.
3) Проверить мастерство владения links.
4) Спросить как "расшифровывается" аббревиатура GTK

Пост буду наполнять. Предлагайте свои варианты.

Post A Comment | Add to Memories | Tell a Friend | Link



tiaquenes
Date: 2009-09-12 15:33
Subject: Ой, что-то с памятью моей стало...
Security: Public

В общем то, моя CLS работает очень хорошо, только вот при емерже не реально что-либо делать. И я, ради интереса, глянул на оперативку:
 
total used free shared buffers cached
Mem: 2061252 2044328 16924 0 35336 1417372
 
16 мб. Из 2х гб. КАКОГО Х-Я?!

А у меня были запущены: FF3.5, VLC, Transmission, OpenBox, 2xTilda, tint2, eric(+python), pidgin. Всё! А в top'е небыло ни одного приложения, которое занимало больше 7% оперативки. Было около 10 процессов 1-5%, остальные меньше 0,1.
Вырубил ФФ3,5, влц, эрика.

Mem: 2061252 1753372 307880 0 74896 1373764
 
300... уже лучше. Но! ЧТО, БЛДЖАД, ЗАНИМАЕТ 1,7ГБ ОПЕРАТИВКИ?!
Вот скрин htop'а:
Piccy.info - Free Image Hosting



Я в панике.
Вырубил трансмишшн. Теперь думаю нужно искать альтернативу для него:

Mem: 2061252 1643156 418096 0 77504 1198672

Решил ребутнуться.
Ребутнулся.
При запуске. Иксы ещё не включены:
Mem:       2061252     109552    1951700          0      16188      43024

Теперь иксы:
Mem:       2061252     204580    1856672          0      21816      88840

И Pidgin:
Mem:       2061252     260716    1800536          0      25556     107012

А теперь фуррифокс:
Mem:       2061252     371164    1690088          0      28448     145944

Немного сёрфа в ФФ:
Mem:       2061252     401828    1659424          0      29292     151096

Врубил трансмишшн:
Mem:       2061252     420692    1640560          0      31504     155936

Вот что было дальше (while true; do free|grep Mem&&sleep 60; done)

Mem:       2061252     615976    1445276          0      34936     289600
Mem:       2061252     625724    1435528          0      35092     299056
Mem:       2061252     633076    1428176          0      35208     306368
Mem:       2061252     638124    1423128          0      35332     311260
Mem:       2061252     643308    1417944          0      35480     315476
Mem:       2061252     648132    1413120          0      35724     320704
Mem:       2061252     653952    1407300          0      35916     326460
Mem:       2061252     659484    1401768          0      36000     331884
Mem:       2061252     665696    1395556          0      36076     337396
Mem:       2061252     672600    1388652          0      36368     343144
Mem:       2061252     676308    1384944          0      36400     346896
Mem:       2061252     686800    1374452          0      36568     351804
Mem:       2061252     697880    1363372          0      36688     356488
Mem:       2061252     696712    1364540          0      36796     362004
Mem:       2061252     708816    1352436          0      36884     366684
Mem:       2061252     715608    1345644          0      37192     371308
Mem:       2061252     715800    1345452          0      37288     375416
Mem:       2061252     718176    1343076          0      37380     379024
Mem:       2061252     724892    1336360          0      37432     384240

Грубо говоря, 10мбпм. С 450 до 730. Меньше чем за час. При игре в Xmoto почти без сёрфинга. Пиздец...

ПыСы: Тёма, блджад, ТЫ КУДА СМОТРИШЬ?! ЧИНИ РАЗМЕТКУ! Редактор LJ Заставляет плакать, чес слово.
ПыПыСы: Ищу хостенг для своей дняффки. Ну приютите хоть ктонить ;_;


Post A Comment | Add to Memories | Tell a Friend | Link



tiaquenes
Date: 2009-09-10 00:58
Subject: (12:54:29 AM) mafbot: Игра окончена! Ничья! А ведь могло быть и лучше!...
Security: Public

Piccy.info - Free Image Hosting

Пикрандом.

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

+/-

+ хотел начать писать нг-бота для джаббера(фу-тян)
- так и не начал писать
+ горло меньше болит
- нет голоса
- течёт нос
- пиздец пиздец пиздец
- час ночи а я ещё не сплю
+ настроил тимидити с тукс-гитар. это оказалось проще чем я рассчитывал.
+/- посмотрел 4 серии ванписа. я на 102ой
+ вспомнил что у кути теперь всё хорошо с лицензией
- но не у pyqt
+ поговорил с хуцем на счёт идеи текстовой эрпогэ. идея вин. это будет интересная игра не только для красноглазиков. хуй взялся за идею и проедоставит мини-диздок, после которого будет делать нормальный. А я тем временем начну реализовывать.
+ сделал мини-статью по установке TG+TM.
+/- взял кредит абонентки по интернетам на 3 дня
+ выбрал 2 песни, которые будем играть в Ко: половинка танцев- и тему лауры самизнаетеоткуда.
- так и не выбрал для них табы
+/- пофапал

Немного полезных ссылок:
GTK+ + CPP = http://www.gtkmm.org/
Проект текстовой эрпогэ - http://corovaneer.ru/rm/projects/show/jg
мб откроем на паблик

Post A Comment | Add to Memories | Tell a Friend | Link



tiaquenes
Date: 2009-09-09 23:09
Subject: Установка TuxGuitar via Timidity в CLS(Gentoo-based)
Security: Public
Music:going to sleep

Увы, в репах генты и в слое calculate не оказалось ебилдов для TG, но не проблема!
Всё что вам нужно иметь: настроеный layman(в CLS уже всё необходимое естьи настроено как нужно), пакеты gentoolkit(для eix) и, чисто для эстетического удовольствия, sudo.

Read more... )

Post A Comment | Add to Memories | Tell a Friend | Link



tiaquenes
Date: 2009-09-08 23:37
Subject: (10:45:24 PM) nihT_Troll: всем похуй на новей
Security: Public
Mood:sleepy sleepy
Music:going to sleep

Странный заголовок, но похуй.
Сегодня утром проснулся от сна, в котором у меня сильно болело горло. Удивительно, но оно болело не только в "атсрале". Весь день проходил мучаясь. Молча.
~

Контроль (Control) (Антон Корбайн) [2007 г., Драма, Музыка, Биография, DVDRip]

(08:58:52 PM) zoomcool13: про группу joy division
(08:58:57 PM) zoomcool13: довольно интересно
(08:59:05 PM) zoomcool13: сам недавно узнал о ней)
(08:59:59 PM) zoomcool13: вот и я так думал, скачал, у меня месяц фильм пролежал, а щас посмотрел, блин, впечатляюще


Надо будет посмотреть...
~

Сейчас хотел залить новых игрушек на мобайл. Залил. В генте. В сонерик к750. Кто бы мог подумать, но в никсах уже есть драйвера для мобильников с доступом к интерфейсу файловой системы. Охуенно. А венда сосёт, там нужно ставить драйвера.
А говорят что в никсах с драйверами проблемы. Тьфу вам в лицо.
Хал + PCMANFM и всё няшно.
~

А между делом эволюция эльфов на сонериках даёт о себе знать. Я уже фапаю на этот список.
Но нужно будет залить новую либу с новыми патчами да с новой прошивкой... Эх... вот это хз как делать под никсами. Всё ПО для прошивки пиратское и написано под венду. В общем, потерплю, да и не так нужны мне те фишки.

Засим, ухожу спать. Болеть фигово. Надеюсь горло пройдёт. Тьфу тьфу тьфу.

Post A Comment | Add to Memories | Tell a Friend | Link



tiaquenes
Date: 2009-09-07 18:49
Subject: good charlotte - cemetery(acoustic)
Security: Public
Music:good charlotte - cemetery(acoustic)

I live in a cemetary
I need a change
Not To immitate, irritate...


Read more... )

Post A Comment | Add to Memories | Tell a Friend | Link



tiaquenes
Date: 2009-09-07 18:11
Subject: Лол...
Security: Public
Mood:pissed off pissed off

Сейчас прочитал сообщение о том что меня касается, но написать здесь не могу, да и сказать некому, но оно вызвало смех сквозь слёзы, лол... Но, увы, оно меня уже не касается. Но, блин, вопрос и ответ на 5+. Хех.
Ну да ладно, зато услышал ответ на вопрос и могу отпустить.
А теперь я могу достать тетрадь с набросками кода для фреймворка Jabber-бота и, наконец, допилить его.

Post A Comment | Add to Memories | Tell a Friend | Link



tiaquenes
Date: 2009-09-07 16:20
Subject: Pics of the Day [...06.09]
Security: Public
Music:good charlotte - cemetery(acoustic)

Начну, наверно, ежедневный выпуск PotD. Данный выпуск включает просто некоторый "улов" за эту часть дня и немного старого:

Read more... )

Post A Comment | Add to Memories | Tell a Friend | Link



tiaquenes
Date: 2009-09-06 23:26
Subject: Семантика "стандартных" языков программирования или понятия "функция/метод" и "переменная"
Security: Public

По мотивам статьи о декораторах.

Read more... )

Конечно, нет.

А от чего появляется такая мысль у человека, который не мало кодит на плюсах и пайтоне? От отсутствия знаний о некоторых основах. Т.е. "пробелах". Для таких пробелов я делаю некоторые "оффтопы" и "врезки" в свои статьи.
А сейчас хотелось бы поговорить о понятиях функция(метод) и переменная.
Поскольку мы используем ООП и понятие объект нам очень родно, давайте рассуждать именно от него.

В памяти можно поместить любой объект данных. Этот объект может хранить код, информацию о пользователе, мета-информацию etc.
Функиция, метод, класс, переменная - это всё объекты памяти. Чем они отличаются друг от друга? Здесь будет много споров, но для более простого примера уточним язык программирования - пайтон.
Read more... )

a, b, c, d, e - это всё обычные ячейки памяти. Вы можете их менять местами, присваивать другим переменным, удалять.

Однако, у ячейки a и b есть особенность. Грубо говоря, эти ячейки содержат код с перегруженным методом __call__. А содержимое метода __call__ это и есть содержимое функции(кода в ячейке).
Метод __call__ вызывается с помощью ().

Read more... )

Метод __call__ обязан вернуть что-то: будь то None, NoneType, итератор или даже новый метод/функция.

Обратимся же к примеру с декораторами.

Read more... )


decor(foo) означает то что мы передаём нашу функцию в декоратор, чтобы решить что с ней делать. Если декоратор сочтёт что можно вызывать нашу функцию, то он вернёт foo, а (10) вызовет метод __call__ у того, что вернул декоратор, т.е. foo.

Read more... )

Так-же, хочется обратить внимание на то, что в данном случае выхов функции происходит именно в строчке a(10), однако, если декоратор вернёт свою "временную" функцию, то сам вызов функции будет происходить в декораторе. Это полезно запомнить на "всякий".

Если что-то не понятно или не очевидно, стучите в iorlas@jabber.ru.

Post A Comment | Add to Memories | Tell a Friend | Link



tiaquenes
Date: 2009-09-06 22:23
Subject: Про декораторы в питоне словами смертных и не очень
Security: Public

декораторы - это такой воркароунд для криворуких верстальщиков(с) >:3

зойпесал

Post A Comment | Add to Memories | Tell a Friend | Link



tiaquenes
Date: 2009-09-06 22:12
Subject: Активность гентомейнтейнеров или паника из-за изменения статусаnet-libs/xulrunner 1.9.1.2-r2 на ~arc
Security: Public

Несколько дней назад в репозеториях генту произошла настоящая ХУИТА. ВНЕЗАПНО был признан нестабильным xulrunner 1.9.1.2-r2, т.е. стал замаскирован по архитектуре

Read more... )

Что же произошло после этого? ВСЕ, кто сделал апдейт ворлда не пересмотрев весь список обновления, ВНЕЗАПНО даунгрейднулись до 1.9.0.13.
Всего-то - скажете вы. А вот ФФ3,5 пошлёт на 3 буквы. Ему подавай именно 1.9.1.2. Таким образом мейнтейнеры сделали страшное. А именно сделали невозможным использование ФФ3,5 на чисто-стабильной системе. А это повело к тому что бинарная сборка стала обновляться. Обновляется она редко, но, как мне кажется, сейчас обновили её не просто "так".

Read more... )

Post A Comment | Add to Memories | Tell a Friend | Link



tiaquenes
Date: 2009-09-06 21:03
Subject: Немного о декораторах в пайтоне при использовании ООП
Security: Public

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

Для начала хотелось бы немного поговорить о том как в пайтоне реализовано ООП и.. много чего другого.
В пайтоне всё делается возможностями языка и как можно более примитивно(не знаю какое ещё слово можно здесь употребить). В т.ч. и многие особенности ООП реализованы через метаклассы, а не build-in модулями/кодом.
Все мы знаем что класс в пайтоне будет выглядеть ~ так:

 

class MyClass(object):
   def foo(self, a, b):
      self.c = a + b


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

Вернёмся к нашим оленям. "Стандартный" декоратор имеет подобный вид:

 
def decor(f):
    return f

 
А применяется он вот так:
 
@decor
def foo(с)
    print "lol", c

foo(10)

Всё просто. Вызывается декоратор, который возвращает декорируемую функцию, а она вызывается с параметрами. Это можно представить как:

decor(foo)(10)

Однако, как видно в последнем куске кода, в декоратор не передаютс яаргументы функции. А ведь много кто объясняет полезность декораторов как средство для проверки возможности действия функции по её параметрам: проверить, существует ли файл/пользователь, можно ли сделать %actionname%.
А без параметров.. это не реально. Однако, выкрутились пайтенофаги. Немного через заднее отверстие, но выкрутились.

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

def decor(f):
   def tmp(*args, **kwargs):
       print args, kwargs
       return f
    return tmp
 
Здесь можно видеть что мы возвращаем из декоратора не декорируемую функцию, а нашу "под-функцию".

decor(foo)(10)
tmp(10)

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

Однако, для новечка, использование декораторов в классах является тёмным вопросом.
Вот как может написать человек, который ни разу не использовал декораторов в классах:

class MyClass(object):
   def decor(self, f):
       return f

   @decor
   def foo(self, a, b):
       self.c = a + b

Что здесь плохого? Почему не компилится? Я же указал "как надо" self и всё везде правильно описал.
А вот и нет.
Давайте разберём данный код. Вспомните, декоратор получает декорируемую функцию. Не более. Декоратор не меняется из-за метакласса или ещё как-то. Поэтому... да.
...
def decor(f):
    return f
...

 
Этот код будет работать!
Но вот задача... Тогда мы теряем все плюсы декораторов. Мы должны проверить параметры с помощью информации в классе, но как это сделать если мы не имеем доступа к self? Или имеем? Имеем! Но не всё так просто.

def decor(f):
   def tmp(*args, **kwargs):
       print args, kwargs
       return f
    return tmp

Да, это всё тотже старый пример. Попробовав запустить его как декоратор для функции и для метода класса, мы получим два разных вывода.
Если для функции он нам напишет только параметры, то для метода... мы увидим адрес нашего экземпляра класса MyClass и параметры! Правильно, класс передал себя как параметр, как для любой его под-функции. Следовательно, self == args[0].

И вот небольшой пример декоратора для метода класса:
 
def hasSession(f):
    def check(*args, **kwargs):
        if kwargs["name"] not in args[0].sm.sessions:
            args[0].sm.create_session(kwargs["name"])
        return f(*args, **kwargs)
    return check

Post A Comment | Add to Memories | Tell a Friend | Link



tiaquenes
Date: 2008-11-22 11:07
Subject: Шейдеры
Security: Public
Music:Joseph Arthur - In The Sun | Powered by Last.fm

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

Как оказалось, это первая действительно интересная работа для меня. Что же такое шейдер?
Шейдер - мини-программа, написанная на языке шейдеров, которая компилируется и выполняется на уровне процессора самой видеокарты. Да, теперь у нас используются воможности видеокарт.
Одно но - Шейдеры имеют свой API, и у каждого изготовителя видеокарт он разный. Даже у серий видеокарт он разный. Но есть общие расширения oGL, позволяющие использовать возможности почти всех видеокарт.
Опять же нас спасает The OpenGL Architecture Review Board (ARB).

ARB_vertex_program  & ARB_fragment_program

Данные расширения позволяют компилировать шейдеры на многих видеокартах.
Давным-давно, когда под кризисом имели ввиду только экономический кризис а слово "дум" вызывало только ностальгию, шейдеры писали на низкоуровневом, asm-подобном, языке.
Сейчас же всё стало гораздо лучше и легче. Как и все программируемые объекты, шейдеры обзавелись высокоуровневыми языками.

CG (C for Graphics) by NVidia
RenderMonkey by ATI
HLSL (High Level Shading Language)
GLSL (GL Shading Language)

Для своих целей я выбрал CG. Не только потому что это "попса", но и потому что это одно из самых стабильных средств для написания шейдеров (мнение интернета, не более).

Первые действия - скачать и установить.
http://developer.nvidia.com/object/cg_toolkit.html

Далее мануалы.
Всё что мне пока нужно было :
http://http.developer.nvidia.com/CgTutorial/cg_tutorial_chapter10.html
http://www.gamedev.ru/articles/?id=20103

Пожалуй сначала нужно прочитать вторую статью ибо там рассказано на примере как задействовать CG.

To be continued...

Post A Comment | Add to Memories | Tell a Friend | Link



tiaquenes
Date: 2008-11-09 19:23
Subject: CubeMapping
Security: Public
Music: Amatory - Слишком Поздно...

Он занял у меня 3 недели.... Хотя по плану был 1 день. Точнее 1,5 часа. ПЗДЦ... А сегодня я узнал что я делал рабочий кубмэппинг, только модели, которые у нас грузились из файла геометрии, неправильно отражают...... пздц........ чуть позже расспишу как делать ПРАВИЛЬНЫЙ кубмэппинг.

Post A Comment | Add to Memories | Tell a Friend | Link



tiaquenes
Date: 2008-10-27 05:23
Subject: [Code Optimization] Получение расширения файла
Security: Public
Mood:confused confused
Music:Finger Eleven - So-So Suicide

Вот что нашёл в коде:

char ExtractExtention( char *fileName )[4]
{
/* Extension */
char Ext[4];

/* Help var */
byte i;

/* Checking filename */
if (!fileName)
return 0;

/* Extracting extension */
for (i = (byte)strlen(fileName) - 3; i < (byte)strlen(fileName); i++)
Ext[i - (byte)strlen(fileName) + 3] = fileName[i];

Ext[i - (byte)strlen(fileName) + 3] = '\0';

/* Processing extension */
return Ext;
} /* End of 'ExtractExtention' function */


Мой вариант:

if (strrchr(fd.cFileName,'.'))
strcpy(buf, (strrchr(fd.cFileName,'.') + 1));

Не правда ли легко?

1 Comment | Post A Comment | Add to Memories | Tell a Friend | Link



tiaquenes
Date: 2008-10-09 08:04
Subject: Редактор текстур
Security: Public
Mood:sleepy sleepy
Music:Neversmile - Миллиарды Минут

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

Post A Comment | Add to Memories | Tell a Friend | Link



tiaquenes
Date: 2008-10-09 04:29
Subject: Первые перлы в дневнике
Security: Public
Mood:sleepy sleepy
Music:Neversmile - Последняя Запись В Её Дневнике

Сегодня начал работу над редактором текстур. Необходимо было его отладить и довести до ума. Оказывается Довести до ума приходилось очень интересный код, который писал коллега по работе.

Порадовала в первую очередь структура.

/*           FILE: veteops.h
*           DATE: X July XXXX г.
*         AUTHOR: XXXXXXXX XXXX
*        PROJECT: VeTexture
*    LAST UPDATE: Updated on XX.XX.XX
*           NOTE: write here
*
* CONTACT PERSON: XXX

*/

Не логичное название файла, не описанное даже в заголовке файла.

Заголовки файлов  - то что позволяет программисту НАЧАТЬ понимать другого программиста. Remember.

Оказалось что этот хёдер является основным файлом хёдеров, который инкладит все необходимые хёдеры движка и системы.

Однако по названию файл отличается от файла, содержащего WinMain().

Не понятна логика…

Далее я решил глянуть ресурсный файл.

Меня порадовала строка:

MENUITEM “Open”,                        ID_FILE_OPEN40009

Интересный, должно быть, дефайн ID_FILE_OPEN40009.

Как оказалось, программист оказался ещё более предсказуемой личностью:

#define ID_FILE_OPEN40009               40009

Без комментариев.

Также понравилось что этот дефайн лежит в файле, которого нет в солюшне, но есть физически.

Пысы: Привет Давиду =)

Post A Comment | Add to Memories | Tell a Friend | Link



tiaquenes
Date: 2008-10-09 04:27
Subject: Поехали по-тихоньку
Security: Public
Mood:depressed depressed
Music:Neversmile - Последняя Запись В Её Дневнике

Новый блог - новый образ.

Post A Comment | Add to Memories | Tell a Friend | Link



Advertisement

my journal
September 2009