LINUX.ORG.RU

Сообщения xTERM

 

Нужен performance analyzer

Не подскажите, какими средствами можно произвести отладку сишной проги, так, чтобы выдавалась статистика по полному времени на каждую строчку? Вроде в Monodevelop такое было (но это все-таки Mono...). Еще, по-моему, нужный инструмент есть в Sun Studio, но кто-нибудь им пользовался?

xTERM
()

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

Маленький опрос: какие книги вы считаете классикой и необходимым источником информации нормального программиста? Я назову две:

1) Керниган и Ритчи: "Язык сами знаете какой"

2) Дональд Кнут: "Искусство программирования"

xTERM
()

Умеет ли это Си

Может ли Си оперировать метками, как переменными? Т.е. могу я сохранить значение метки в указателе, а потом сделать goto pointer? С ассемблером-то можно, наверное, выкрутиться, а вот с помощью самого языка?..

P.S. Не предлагайте альтернативных вариантов (указатели на ф-ии и пр.)

P.S.S. А какие языки это умеют?

xTERM
()

Не могу собрать XFCE

# make
make all-recursive
Making all in doc
Making all in C
Making all in images
Making all in fr
Making all in images
Making all in it
Making all in images
Making all in po
Error expanding embedded variable.
*** Error code 1

Stop in /root/pkg/xfce-mcs-manager-4.4.1.
*** Error code 1

Stop in /root/pkg/xfce-mcs-manager-4.4.1.

Что делать? Я вообще не понимаю, что это за ошибка. Если с другими зависимыми пакетами была проблема, которая легко решилась путем sh configure CFLAGS=-I/usr/local/include, то здесь не понятно, что и где править.

xTERM
()

Шварц пригласил Линуса на ужин.

xTERM
()

GUI для Mplayer

Какую посоветуете оболочку для Mplayer (желательно GTK+)?

xTERM
()

Приготовь коктейль из iPhone

На YouTube есть целая рубрика, посвященная рекламе нового миксера. Здесь они готовят iPhone: http://www.youtube.com/watch?v=qg1ckCkm8YI

Здесь издеваются над милой игрушкой: http://www.youtube.com/watch?v=XaFB_sUo6VU&mode=related&search=

Смесь SUSE+Windows+Mac+End_user: http://www.youtube.com/watch?v=8NeR2LyILWQ&mode=related&search=

хокей - http://www.youtube.com/watch?v=zxa_64EOmFI&mode=related&search=

коко-цыпленок - http://www.youtube.com/watch?v=K0m4x0y3QNw&mode=related&search=

И дофига остального.

xTERM
()

su во FreeBSD

Не могу выполнить su root от обычного пользователя. Что делать?

xTERM
()

Поздравляю

Всех, у кого нет пересдач, поздравляю с окончанием сессии!! 8)

xTERM
()

Соображения по поводу Mono и .Net

Последнее время заметил наличие на LOR любителей Mono. Вспомнил про письмо, которое когда-то отправил одному знакомому вендузятнику и решил запостить здесь. Обычно поклонники Mono говорят что-то вроде "оставьте нас, мы никому не мешаем". Так вот, это - не так.

Chapter one: Почему на Венде .Net - приемлемо (даже, может, нормально)

Windows изначально создавали и потом совершенствовали тяп-ляп: лишь бы быстрей выпустить новую версию и начать пиар. На пиар уходило максимум средств. Программистам платили мало (сейчас вроде более-менее). + Сама архитектура и идея в корне были расчитаны именно на десктопное применение. На начальных ступенях своего развития идея NT еще могла держаться, но потом ей заперла путь огромная куча дерьма из ужасно неудобных (точнее трижды 193ых) и по самой своей сути небезопасных API и архитектуры. Чтобы на ней что-то строить дальше нужно было что-то предпринять. И они это сделали. Они посмотрели, как соседи стоили свой.... гамак и решили, что те изобрели нечто гениальное, но долго не могли понять, почему же те дураки не живут в гамаке и не поставили туда даже мебели. MS соорудила мощные шесты, воткнула их в говно, растянула великую ткань, поставила туда кровать ;) и еще шкаф, телевизор, тумбочку и пр. пр. пр.. Да... Стало гораздо удобнее. Не спорю. Но только чтобы зайти туда, нужно сначало пройти по колено в дерьме, а при выходе в дерьмо же попадаешь. Я уж не говорю про то, что для дома гамак, мягко говоря, не есть лучший выбор ;) (тем более весь в грязных следах и запахах). Но и не спорю: так стало гораздо лучше, даже чем-то очень неплохо.

Chapter two: Почему Common Language Runtime - угроза человечеству

Все бы ничего, если бы .Net жила себе и никого не трогала. Но нет же. Во первых нас насильно переводят на эту технологию. Под Венду уже проблематично найти компилятор, создающий машинный код (gcc разве что). Вся Студия ориентирована на .Net (нативные проекты есть только в Enterprise, но они являются не более чем от JITиным кодом, который все-равно запускается под VM). Да даже не в этом дело. Сама тенденция не оставляет выбора. Более того, MS уже давно готовит .NET OS (Singularity), в которой в принципе нельзя будет программировать ни ни чем, кроме Фреймворка. Это значит, что те языки, на которые программисты молились десятилетиями (Си, assembler, классический Си++, ....) будут ликвидированы. Такого в практике еще не было никогда. Языки теряли популярность (далеко не все), но использовать ты мог всегда все, что угодно. Функциональное и линейное программирование отомрут как класс (не class, а класс, хотя я был бы рад увидеть смерть class'а). Объектная ориетированность будут насаждаться сверху. Без объектов ты уже ничего не сделаешь. Нельзя будет, как в UNIX, восхищаться простотой архитектуры, ибо ОС превратится в спагетти из объектов. Даже их консоль уже объектно-ориентированная! Низкоуровневое программирование, Кнут - все будет забыто. Воцарится мир кодеров, им будут мало платить, а настоящих программистов выкинут на помойку. Недостаток .Net еще и в том, что он стремится все решить в самом общем случае, в то время как каждая задача требует конкретного подхода, своих типов данных, своих алгоритмов. Например Фреймворк заточен на статическую типизацию, с Perl и Python он справится хуже. Real-Time требует экономии каждого такта процессора, а один сборщик мусора жрет ресурсы как.... эээмм... ну чудо-юдище например. Его нельзя и не нужно использовать для всех переменных. Они хотят отнять свободу, а для нас это самое ценное. +Производительность это не "не главное", а в наше время, когда процессоры приближаются к своему пределу, очень важно. А в будущем еще важней - когда-нибудь прогресс остановится вообще. К тому же не понимаю, зачем нужна виртуальная машина .Net? Для Явы она служила средством кроссплатформенности. Здесь, если даже говорить про безопасность (которую должна обеспечивать в первую очередь ОС), .Net нужна лишь для тех программ, которые подключаются к портам (веб-сервер, фтп-сервер,...). Через Word компьютер не взломаешь. К тому же многоязыковость эта мнимая. Все языки .Net имеют общий каркас библиотек, который приводит к потере индивидуальности и отличию языков только синтаксисом. В итоге выходит как-бы один язык с массой вариаций. Это, в свою очередь, приведет к тому, что кроме C# никто ничем пользоваться не будет, ибо он использует возможности Фреймворма по максимому и позиционируется как лучший. Нечто похожее уже было в истории - Borland стремилась сделать Pascal и C++ совместимыми, а получила 2 практически идентичные среды разработки.

Chapter tree: Почему Mono - позор и наркотик Linux'а

Linux - идеальная среда разработчика. Помимо удобнейшего API, тебе даже не обязательно им пользоваться: очень многие задачи можно решить через файловую систему, переменные среды и команды консоли (вызов через функцию system(char*) ). например нужно тебе найти какой-то файл (программу, библиотеку, ...) ты пишешь /usr/lib/abc.so или /bin/abc или ~/myhome. Тебе не нужны ф-ии GetSystemDirectory, Get<че-то там еще, не помню>. Эти диски еще проклятые: C:, D:,... Надо записать образ на флопик - пожалуйста! Открываешь файл /dev/fd0 и пишешь туда (если надо, то в нужную позицию). Пишешь драйвер? Открой /dev/<устройство> и говори с ним (пиши/читай). Плюс все программы взаимосвязаны и легко управляемы. Ты можешь расчитывать (или потребовать в зависимостях), что у пользователя стоит программа записи CD, менеджер закачек или еще какая-то лабуда и не писать сто раз одно и тоже, а использовать прогу. Я например никогда на качаю по http/ftp из инета функциями Си. Юзаю wget. Список можно продолжать. И это при том, что и само API замечательное. И безопасное по своей сути. Ах, забыл сказать, что в UNIX входит куча интерпретаторов (awk, Perl, Python, TCL/Tk, Ruby, Java, shell, Lua, ......). На Венде ты не попишешь на таких языках, ибо ни у кого их нет. Еще есть библиотека GTK. Она на Венду плохо портируется. А Mono на LOR ненавидят. Она призвана создавать проблемы. Проклятая и продажная Novell!! Mono разрушает баланс, созданный тысячилетиями. Притом в ней нет смысла: Java есть, а по простоте кодинга Mono/.Net примерно равны Си++ на *nix.

xTERM
()

Будет ли Ruby быстрым?

Было здесь как-то сказано, что Ruby на что-то портируют (StrongTalk что-ли). Насколько продвинулась работа и когда следует ожидать финальную версию? P.S. Я Ruby не использую, но уважаю, ибо у него крутой синтаксис, а не такой, как в питоне (у змейки_2 мало синтаксиса - куча функций => исходник хуже читается).

xTERM
()

OpenSolaris

Кто-нибудь запускал OpenSolaris как LiveCD? А то Belenix у меня в свое время не запустился. А Nexenta работает как LiveCD? На жесткий диск ставить, конечно же, не собираюсь, но поглядеть на него хочется.

xTERM
()

Помогите с установкой BSD.

Не могу поставить DesktopBSD 1.6 на жесткий диск. Как LiveCD работает ИДЕАЛЬНО, но при установке выдает сообщение BARF 170 <105> перед запуском редактора разделов жесткого диска. Google сказал, что неправильная разбивка. А что мне делать? Не стирать же таблицу разделов и все hda*! Я ему вроде приготовил первичный раздел... Так как быть?

P.S. Не стал создавать этот пост в разделе "Linux-install" ;)

xTERM
()

Запуск самосгенерированного кода на Си в Linux

Пытаюсь запустить функцию, помещенную в динамическую память, но всегда получаю Segmentation fault.

Первый вариант: загружаю код из bin-файла:

int main(int argc, char *argv[])
{
FILE *bytecode;
if((bytecode = fopen("jit_me.bin", "r")) == NULL)
{ fprintf(stderr,"Error opening file\n"); exit(1); }
char *p;
void (*f)() = p = malloc(50);
int c,i=0;
while((c = getc(bytecode)) != EOF) {*(p+i)=(char) c; i++;}
fclose(bytecode);
printf("Here we go...\n");
(*(f))();
}

Второй вариант: копирую готовую функцию в память и запускаю:

void temp()
{
printf("Hello");
}

int main(int argc, char *argv[])
{
char *p,*old;
old = (void (*)()) temp;
void (*f)() = p = malloc(20);
int i=0;
for(i=0;i<10;i++) {*(p+i)=(char) *(old+i); i++;}
printf("Here we go...\n");
(*(f))();
}

Всегда печатает фразу "Here we go..." (прямо перед запуском функции) и вылетает. Что делать, чтобы он заработал?

xTERM
()

Помогите с экологией

Дай бог, если среди LOR'овцев есть экологи (хотябы любители). Я буду бескрайне благодарен тому, кто решил бы следующую задачу (к зачету): Определите и сравните количество людей, которые могут прокормиться с 1 га с/х угодий, питаясь исключительно вегетарианской или животной пищей. P.S. И еще, что значит "воздушная фракция" в фразе "насколько увеличится за это время концентрация CO2 в атмосфере в ед/млн, если принять воздушную фракцию за 50%"?

xTERM
()

Приручение хакеров

Я на днях пришел к выводу, что вирусов на Linux нет отнюдь не потому, что он безопасный. Closesource сам способствовал развитию рынка вирусов на Винде, ибо хакерам просто нечем было заняться: проекты все закрытые, не поучавствуешь, а своя программа, написанная в одиночку, обречена на провал. Вот и сидят, занимаются вирусописательством. А в GNU их рвению нашлось применение. Я не прав?

xTERM
()

Братцы! А я Java то оказывается тормоз! :0

Решил проверить производительность популярных виртуальных машин. Тестировал Microsoft .Net, Mono и Java. Дал им банальнейшую задачу, в которой написал как можно более низкоуровневый код, дабы измерить чистую убыль производительности. Программа сто миллионов раз резервирует память для матрицы 3x3, заполняет ее случайными числами и считает определитель. Вот код на Java (на C# почти тоже самое):

import java.util.Random;

class test
{
public static void main(String [] args)
{
int a[][];
int k,m,j,det;
Random random = new Random();
for(j = 0; j<100000000; j++)
{
a = new int[3][3];
for(k=0; k<3; k++) for(m=0; m<3; m++) {a[k][m] = random.nextInt();}
det = a[0][0]*a[1][1]*a[2][2]+a[0][1]*a[1][2]*a[2][0]+a[0][2]*a[1][0]*a[2][1]*-
a[0][2]*a[1][1]*a[2][0]-a[0][1]*a[1][0]*a[2][2]-a[0][0]*a[1][2]*a[2][1];
}
}
}

Аналогичный код на СИ (выполнялся минуту):

#include <stdlib.h>

int main()
{
int* a;
int k,m,j,det;
for(j = 0; j<100000000; j++)
{
a = (int*) malloc(9*sizeof(int));
for(k=0; k<3; k++) for(m=0; m<3; m++) {*(a+3*k+m) = rand();}
det = (*(a+3*0+0))*(*(a+3*1+1))*(*(a+3*2+2))+(*(a+3*0+1))*(*(a+3*1+2))*(*(a+3*2+0))+(* (a+3*0+2))*(*(a+3*1+0))*(*(a+3*2+1))*-
(*(a+3*0+2))*(*(a+3*1+1))*(*(a+3*2+0))-(*(a+0+3*1))*(*(a+3*1+0))*(*(a+3*2+2))-(* (a+3*0+0))*(*(a+3*1+2))*(*(a+3*2+1));
free(a);
}
return 0;
}

(просьба не бить меня за то, как я работаю с двумерными массивами на Си ;) )

Результаты печальны: первое место.... Microsoft! Всего в полтора раза медленне Си (одна минута, тридцать секунд). Далее жаба - две минуты. И инвалид Mono - 2 мин 45 с. Запуск Явы в с ключем -server не помог. Не хорошо как-то. Может это просто MS жульничает? Все-таки тесная интеграция с ОС... Незнаю... :( Попробуйте кто-нибудь у себя, мож другие цифры будут.

xTERM
()

Konquror не постригут

Если я не ошибаюсь, ЛОРовцев очень испугали слухи о том, что Konqueror в KDE4 будет всего-лишь браузер. Я зарегился на форуме КДЕ http://www.kde-forum.org/ и высказал им свое недовольство (я не часто пользуюсь кедами, но признаю уникальность Конка). Тревога оказалась ложной:

RE: Konqueror vs Dolphin

[quote: Originally posted by xTermOS Dolphin is a good idea, but it's very bad that Konqueror now cannot work as file manager.]

Well, spank the guy that gave you that idea ;)

konqueror is not going to change in something different, you can still use it like you do in kde 3.5

[quote: I talked about this with many people at Russian forums and all sayed the same. I afraid that you can loose lots of users. Is it too hard not to cut Konqurer?]

nobody is cutting konqueror, only change is that dolphin is the default filemanager. If you want another default filemanager (like konqueror) you can tell your kde-desktop to do so.

[quote: Just don't do anything and everything will be fine. Linux/UNIX is a place where you must have a freedom of choice!]

Wrong assumption :)

But anyway: konqueror will stay as it is: a filemanager, webbrowser, documentviewer.

xTERM
()

Питон съел Linux

Господа! Не кажется ли Вам, что OpenSource-сообщество слишком далеко ушло... назад? Когда я в первый раз поставил Linux, я был поражен в первую очередь тем, что все там было написано на C/C++, и не было этого виндового рагу из паскалей, бейсиков и пр. Но теперь с каждым днем я все больше прихожу в уныние: Linux попсеет. Разве Python, Ruby, Mono - это не Pascal, Basic, Windows? На мой взгляд если линуксойд себя уважает, то он должен писать программы на Си, в крайнем случае на Perl. Кстати, совершенно не понятно, за что забили этот несчастный Perl с его мощным синтаксисом и миллиардом модулей CPAN. Все пиар, лень и безответственность. Разве мы не должны думать о будущем? Сможем ли мы и наши потомки жить на ОС, написанной на Питоне?

Смотрю книгу "Учимся программировать вместе с Питоном", цитата:

>"Имейте ввиду, что офисные пакеты (MS Office, OpenOffice.org, StarOffice и им подобные) в программировании вам не помогут. Программы набираются в простых текстовых редакторах типа MS Notepad (он же Блокнот)."

Это разве не деградация?

xTERM
()

Да здравствует Билл Гейтс и Live search!

Зашел из любопытства на www.live.com и решил проверить насколько честно ищутся там страницы и нет ли цензуры. Результат превзошел все мои ожидания: на запрос "f**k gates" (простите за звездочки - боюся бана) он второй же ссылкой выдал мне вот такой интересный сайт: http://toastytech.com/evil/billsucks.html

Советую ознакомиться со всеми его разделами, в том числе http://toastytech.com/evil/index.html

P.S. Обидно, что музыка в midi

xTERM
()

RSS подписка на новые темы