#define SPRINTF(str, format, ...)\
char str[snprintf(0, 0, format, __VA_ARGS__)];\
sprintf(str, format, __VA_ARGS__);
#define SPRINTF(str, format, ...)\
char str[snprintf(0, 0, format, __VA_ARGS__)];\
sprintf(str, format, __VA_ARGS__);
интересная статья как в джаве вызвать незаоверрайженный метод родительского класса не из наследного класса: http://javachannel.org/posts/bypassing-subclass-method-overrides/
Короч, показываю как надо(в ответ на #3A29S0):
nb-crunchbang :: ~ » cat /etc/acpi/lm_lid.sh
#! /bin/bash
# test -f /usr/sbin/laptop_mode || exit 0
# lid button pressed/released event handler
# /usr/sbin/laptop_mode auto
lid_state=`grep -o closed /proc/acpi/button/lid/LID0/state`
if [[ ! -f /run/lock/acpi.lid.lock && $lid_state != '' ]]; then
/usr/sbin/pm-suspend
fi
nb-crunchbang :: ~ » cat ~/bin/inhibit
#!/usr/bin/env bash
touch /run/lock/acpi.lid.lock
$@
rm /run/lock/acpi.lid.lock
if [[ `grep -o closed /proc/acpi/button/lid/LID0/state` != '' ]]; then
sudo /usr/sbin/pm-suspend
fi
Для сравнения:
nb-crunchbang :: ~ » wc -l dev/systemd-215/src/login/inhibit.c
285 dev/systemd-215/src/login/inhibit.c
Makes sense.
Короч, привёл в порядок скрипты bitcheese, в основном для Mac OS X. http://dump.bitcheese.net/images/akamipe/bitcheese-mac.png Для >= 10.9, помимо звукового "бздынь", должна работать нативная высиралка уведомлений в Notification Center. Ставить методом дабл-клика по Bitcheese!.workflow
.
cd /root
truncate -s 1024M portage.loop
mke2fs -b 1024 -I 128 -N 200000 -m 0 -E resize=2048000 -O "^ext_attr" -v portage.loop
tune2fs -o "^acl,^user_xattr" portage.loop
rm -rf /usr/portage
echo -e '/root/portage.loop\t/usr/portage\text2\t\tloop=/dev/loop0,defaults,noatime,nodiratime,noacl,barrier=0\t\t0 1' >/etc/fstab
mkdir /usr/portage
mount /usr/portage
echo 'PORTAGE_RSYNC_EXTRA_OPTS="--exclude=metadata/md5-cache/*"' >/etc/portage/make.conf
emerge-webrsync
emerge --sync
портэж теперь занимает вместо 900 МБ целых 400 МБ. полгига экономии на двадцатигиговой впске
по мере фрагментации файловой системы, придётся возвращать sparse-состояние файла, делать можно примерно так:
dd if=/dev/zero of=/usr/portage/zeroes bs=1M
rm /usr/portage/zeroes
cp --sparse=always portage.loop portage.loop2
umount /usr/portage
mv portage.loop2 portage.loop
mount /usr/portage
На самом деле это не даёт гарантированного оптимального результата и проще пересоздать файл
заворкэраундил это ваше окружение ссылок скобками в маркдауне: https://github.com/hirthwork/home/commit/651117dd2d5e482c033c3448292df2d7905f6d16
В продолжение #XO4BOU я слегка поправил свои похапэкостыли, чтобы одни отдавали данные поточно. Теперь картинки грузятся ну натурально как по диалапу
<?php
function headerfunc($ch, $str){
header($str);
return strlen($str);
}
function writefunc($ch, $str){
print $str;
flush();
return strlen($str);
}
$url = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
$curlSession = curl_init();
curl_setopt($curlSession, CURLOPT_URL, $url);
curl_setopt($curlSession, CURLOPT_HEADER, false);
curl_setopt($curlSession, CURLOPT_PROXY, '10.100.0.1:4444');
curl_setopt($curlSession, CURLOPT_HEADERFUNCTION, 'headerfunc');
curl_setopt($curlSession, CURLOPT_WRITEFUNCTION, 'writefunc');
curl_setopt($curlSession, CURLOPT_RETURNTRANSFER, false);
curl_setopt($curlSession, CURLOPT_TIMEOUT, 300);
curl_setopt($curlSession, CURLOPT_FOLLOWLOCATION, 1);
if($_SERVER['REQUEST_METHOD'] == 'POST'){
$postinfo = '';
foreach($_POST as $key=>$value) {
$postinfo .= $key.'='.urlencode($value).'&';
}
rtrim($postinfo,'&');
curl_setopt ($curlSession, CURLOPT_POST, 1);
curl_setopt ($curlSession, CURLOPT_POSTFIELDS, $postinfo);
}
curl_exec ($curlSession);
if (curl_error($curlSession)){
print curl_error($curlSession);
}
curl_close ($curlSession);
?>
ssh root@example.com 'while read line < fifo; do echo $line;done'|sh -
http://farm4.staticflickr.com/3780/13316717624_cdac7f5a1d.jpg Вскоре будет попытка потехи ради сделать из этой катушки автономный источник питания.