Q: Как быстрее в Си++ обнулится переменная:
A = 0; или A ^= A; ?
A: while ( (A=rand()) != 0 );
// http://otvety.google.ru/otvety/thread?t
Такова верхняя граница длины римского числа величиной n.
Например:
n=1 -> I -> l=1 n=2 -> II -> l=2 n=19 -> XIX -> l=3Детали в Википедии.
gcc заменяет printf с простой строкой на puts.
С -O2 выкидывает куски кода внутри 100%-ложных условий (if (0) {...}).
Круто, чо :-)
test.c:
#include <stdlib.h>
#include <stdio.h>
const int DEBUG = 0;
int main ( int argc, char *argv[] )
{
if (DEBUG) {
printf("Debug!\n");
}
return EXIT_SUCCESS;
}.file "test.c" .globl DEBUG .section .rodata .align 4 .type DEBUG, @object .size DEBUG, 4 DEBUG: .zero 4 .LC0: .string "Debug!" .text .globl main .type main, @function main: leal 4(%esp), %ecx andl $-16, %esp pushl -4(%ecx) pushl %ebp movl %esp, %ebp pushl %ecx subl $4, %esp movl DEBUG, %eax testl %eax, %eax je .L2 subl $12, %esp pushl $.LC0 call puts addl $16, %esp .L2: movl $0, %eax movl -4(%ebp), %ecx leave leal -4(%ecx), %esp ret .size main, .-main .ident "GCC: (GNU) 4.4.4" .section .note.GNU-stack,"",@progbits
.file "test.c" .text .p2align 4,,15 .globl main .type main, @function main: pushl %ebp movl %esp, %ebp xorl %eax, %eax popl %ebp ret .size main, .-main .globl DEBUG .section .rodata .align 4 .type DEBUG, @object .size DEBUG, 4 DEBUG: .zero 4 .ident "GCC: (GNU) 4.4.4" .section .note.GNU-stack,"",@progbits
http://habrahabr.ru/blogs/sport_programm
Компиляция:
gcc -ansi -pedantic -Wall -Wextra -O2 -save-temps code.c -o code
# echo '123 abc 987 abaacb' | ./code 123 -> 132 abc -> acb 987 -> abaacb -> ababac
http://www.lrde.epita.fr/~adl/dl/autoto
Заодно — пример грамотной презентации.
Чтоб не забыть: минимальная программа на ассемблере,
выводящая "Hello!" (без glibc)
.data
msg:
.string "Hello!\n"
.set length, . - msg - 1
.text
.globl _start
_start:
movl $4, %eax
movl $1, %ebx
movl $msg, %ecx
movl $length, %edx
int $0x80
movl $1, %eax
xorl %ebx, %ebx
int $0x80
https://github.com/ip1981/brainfuck/blo
специально для:
http://otvety.google.ru/otvety/thread?t
http://www.pomorsu.ru/Departments/tphys
Дано:
Доступ к файлам DokuWiki по FTP.
Задачи:
1. Делать резервные копии (скачивать по FTP).
2. Обновлять DokuWiki (закачивать по FTP).
3. Тренироваться на localhost.
Примеры:
make backup — сделать резервную копию conf и data.
make upgrade — закачать изменённые локальные файлы (кроме conf и data).
make devel — обновить локальную копию.
( Makefile )
Работа с Прологом сильно отличается от работы с другими языками.
http://www.mail-archive.com/users-prolo
Исходники (альфа):
http://github.com/ip1981/dokuwiki-plugiЭта ссылка временная:
http://www.pomorsu.ru/Departments/tphys
http://www.pomorsu.ru/Departments/tphys
Подробности потом.
На разных языках.
http://sourcefrog.net/projects/natsort/
http://citforum.ru/gazeta/165/
«Я уверен, что парадигма ООП методологически неверна. Она начинает с построения классов. Это как если бы математики начинали бы с аксиом. Но реально никто не начинает с аксиом, все начинают с доказательств. Только когда найден набор подходящих доказательств, только тогда на этой основе выводится аксиома. Т. е. в математике вы заканчиваете аксиомой. Тоже самое и с программированием: сначала вы должны начинать развивать алгоритмы, и только в конце этой работы вы приходите к тому, что оказываетесь в состоянии сформулировать четкие и непротиворечивые интерфейсы. Именно из-за этой неразберихи в ООП так популярен рефакторинг — из-за ущербности парадигмы вы просто обречены на переписывание программы, уже в тот самый момент, когда только задумали её спроектировать в ООП-стиле». Ричард Столлман (Richard Stallman) также известен своим критическим отношением к ООП, особенно он любит шутить насчет того мифа объектников, что ООП «ускоряет разработку программ»: «Как только ты сказал слово „объект“, можешь сразу забыть о модульности».
P. S. Правда, наезд на теорию относительности (далее) не к месту.
P. P. S. А её некоторые студенты пытают запрограммировать забор как набор
линий, образующих его периметр (объекты же!). Большого труда стоит
убедить их, что забор состоит из досок.
Наковнокодил скрипт для переименования
файлов сериала «Стар Трек»,
на основе данных Википедии.
«Стар Трек» скачан известно откуда.
( Read more... )<font color
Заметил, что ВНЕЗАПНО меняются права на домашний каталог —
он становится доступным всем на запись + SUID: drwsrwsrwx
Это случалось очень редко, и причины были совсем не ясны.
Это было на двух различных компьютерах с различным набором программ,
на одном из компьютеров системы была недавно установлена начисто.
Это происходило только у залогиненного пользователя.
Отбросив паранойю, стал искать причину.
Из Википедии взял программу для работы с inotify
(кстати, отладил её и поместил обратно).
Запустил и стал ждать: ./watch /home
Ничего не происходило.
Методом тыка (за два дня) было выснено, что права меняются
при просмотре рекордов у игры Rocks-n-Diamonds (sic!),
которую я недавно собрал и установил на обе машины.
С помощью grep нашёлся виновник — файл libgame/setup.c,
функция void createDirectory(char *dir, char *text, int permission_class).
Нехитрым патчем удалил код, меняющий права каталога,
ибо программы не должны менять права сами, а только сообщать,
если им не хватает прав.
В самой же игре есть «common data directory», которая по умолчанию — текущий каталог,
при запуске программы из менюшки текущим каталогом является домашний каталог.
Вот и вся интрига.
Я подумал, что вылетевшие из головы термины и понятия
не могут служить для интеллектуальной дискриминации
или быть основанием для завала теста.
И добавил возможность подсказки.http://github.com/ip1981/autodocs/t
http://github.com/ip1981/edutester/t
![]() |
| Альбом: Screenshots |
Методы прямоугольников, трапеций, Симпсона.
Цель — освоиться с Хаскелем.
( where h = (b - a) / n )
P. S. GHC 6.12.1 прекрасно собирается из исходников и устанавливается как надо и куда скажешь :-)
Может делать имена большими буквам, маленькими буквами, большими первыми буквами каждого слова.
Требует GNU sed, работает с Юникодом.
( #!/bin/bash )
Navigate: (Previous 20 Entries | Next 20 Entries)