Пробелы иногда быстрее, чем табуляции
Новый виток холивара пробелы vs табуляции открывает джаваскриптовый движок firefox. Нашел тут бажок https://bugzilla.mozilla.org/show_bug.cgi?id=1154339
Новый виток холивара пробелы vs табуляции открывает джаваскриптовый движок firefox. Нашел тут бажок https://bugzilla.mozilla.org/show_bug.cgi?id=1154339
Red Hat разработала версию операционной системы Linux, которая может быть использована для тестирования чипов и связанного с ними аппаратного обеспечения на базе 64-битной архитектуры ARMv8-A. Эксперты отмечают, что к концу года на рынке появятся компактные серверы, работающие на базе чипов ARM и предназначенные для хостинга.
Закрыт знаменитый баг возрастом 14 лет. Теперь можно использовать position : relative; display : table-cell
на блоке и position : absolute
на любом из его потомоков.
Фикс должен быть доступен в следующем релизе.
>>> Подробности
https://bugzilla.mozilla.org/show_bug.cgi?id=63895
Мозилла пофиксила свой уникальный баг с position relative для table-cell, который висел 14 лет. Даже как-то грустно прощаться с дедовскими костылями. =(
В британской сети розничной торговли Cloudsto появился настольный мини-ПК Cloudsto Evo, в котором в качестве операционной системы используется дистрибутив Linux Ubuntu 12.10 LTS.
RK3188, Mali 400, 1 Гб ОЗУ, 8 Гб флеш ПЗУ.
Цена 5500 руб
На просторах интернетов нашел информацию, что pthread_mutex_t нельзя перемещать в памяти, когда он используется. Но у меня не получается это воспроизвести
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main ()
{
pthread_mutex_t * mutex_1 = malloc ( sizeof ( pthread_mutex_t ) );
pthread_mutex_t * mutex_2 = malloc ( sizeof ( pthread_mutex_t ) );
pthread_mutex_t * mutex_3 = malloc ( sizeof ( pthread_mutex_t ) );
if ( mutex_1 == NULL || mutex_2 == NULL || mutex_3 == NULL || pthread_mutex_init ( mutex_1, NULL ) != 0 ) {
free ( mutex_1 ); free ( mutex_2 ); free ( mutex_3 );
return 1;
}
memmove ( mutex_2, mutex_1, sizeof ( pthread_mutex_t ) );
if ( pthread_mutex_lock ( mutex_2 ) != 0 ) {
free ( mutex_1 ); free ( mutex_2 ); free ( mutex_3 );
return 2;
}
memmove ( mutex_3, mutex_2, sizeof ( pthread_mutex_t ) );
if ( pthread_mutex_unlock ( mutex_3 ) != 0 || pthread_mutex_destroy ( mutex_3 ) != 0 ) {
free ( mutex_1 ); free ( mutex_2 ); free ( mutex_3 );
return 3;
}
free ( mutex_1 ); free ( mutex_2 ); free ( mutex_3 );
return 0;
}
gcc -O0 -g -std=gnu99 main.c -o main && ./main ; echo $?
>> 0
clang -O0 -g -std=c99 -fsanitize=thread -fno-omit-frame-pointer main.c -o main && ./main ; echo $?
>>
ThreadSanitizer WARNING: unlock of unlocked mutex 0x7d0c0000ef70
#0 pthread_mutex_unlock <null>:0 (main+0x00000006321c)
#1 main /home/puchuu/temp/main.c:24 (main+0x0000000a04f5)
0
Где найти конкретную информацию почему нельзя перемещать мьютекс? А можно ли перемещать спинлоки и семафоры?
ЗЫ точное воспроизведение неспособности мьютекса быть перемещенным - очень важно. Программа проверки может отдать сборочной системе флаг типа MUTEX_NOT_MOVABLE и программист может принять решение о костыле.
нашел COPYING.LESSER с интересным дополнением
STATIC LINK EXCEPTION
As a special exception, the Authors give you permission to link this library with
independent modules to produce an executable, regardless of the license terms
of these independent modules, and to copy and distribute the resulting
executable under terms of your choice, provided that you also meet, for each
linked independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from or based on
this library. If you modify this library, you must extend this exception to your
version of the library.
Note: this exception relieves you of any obligations under sections 4 and 5
of this license, and section 6 of the GNU General Public License.
Не делает ли это лицензию ничтожной? Есть ли у кого практика использования такой лицензии?
app-emulation/emul-linux-x86-soundlibs посоветовал мне юзать пульсу. ну думаю - пора ставить.
открываю документ. Называется «страничка для аудиофила», рекламируются xonar-ы и при этом рассказывается про ресемплинг. охлол
Вопрос #1 : почему до сих пор не появилась функция отключения ресемплинга? чтобы аудио плеер смог монополизировать доступ к звуковому девайсу - нужно сначала убить пульсу. это жэсточайшэ неудобно. почему в pavucontrol возле приложения не предусмотрена такая кнопка «bit-perfect», которая перенаправит звук с этого приложения прямо на звуковуху, заглушив все остальные?
=Enhancements= PulseAudio could be enhanced to make some of this a bit easier. It could open a channel for each sample rate to provide bit-perfect playback of any sample of audio media.
Вопрос #2 : что это такое и как это сделать?
Перемещено mono из talks
Практически каждая СУБД умеет выполнять репликацию данных между удаленными копиями БД. Для этой функциональности они имеют свои велосипеды. Погуглив я не нашел ни одной попытки запилить общую библиотеку для реализации хотябы частного случая репликации. Плохо гуглил?
Рассмотрим пример. eix qemu-user:
Installed versions : (QEMU_USER_TARGETS="arm -alpha -armeb -cris -i386 -m68k -microblaze -microblazeel -mips -mips64 -mipsel -ppc -ppc64 -ppc64abi32 -s390x -sh4 -sh4eb -sparc -sparc32plus -sparc64 -unicore32 -x86_64")
меняем qemu-user-9999.ebuild. дописываем кусочек кода
src_unpack() {
for target in ${IUSE_USER_TARGETS}; do
use "qemu_user_targets_${target}" && echo "! ${target}"
done
}
sudo ebuild qemu-user-9999.ebuild manifest
QEMU_USER_TARGETS="arm mips" sudo -E ebuild qemu-user-9999.ebuild unpack
sudo ebuild qemu-user-9999.ebuild clean
USE="qemu_user_targets_arm qemu_user_targets_mips" sudo -E ebuild qemu-user-9999.ebuild unpack
в обоих случаях получаем
! arm
! mips
создаем program-1.ebuild
# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI="5"
DESCRIPTION=""
HOMEPAGE=""
LICENSE=""
SLOT="0"
KEYWORDS=""
RDEPEND=""
DEPEND=""
IUSE="use1 use2"
IUSE_FEATURES="feature1 feature2"
for feature in ${IUSE_FEATURES};
do
IUSE="${IUSE} program_features_${feature}"
done
src_unpack() {
for feature in ${IUSE_FEATURES};
do
use "program_features_${feature}" && echo "! ${feature}"
done
}
и делаем тоже самое
sudo ebuild program-1.ebuild manifest
USE="program_features_feature1" sudo -E ebuild program-1.ebuild unpack
sudo ebuild program-1.ebuild clean
PROGRAM_FEATURES="feature1" sudo -E ebuild program-1.ebuild unpack
! feature1
работает только c USE=«program_features_feature1». не понятно.
Перемещено Pinkbyte из development
Искал патенты, которые получило яблоко конкретно относительно LLVM (Low Level Virtual Machine), а не (Low level Virtual Memory) и нашел 2 весьма интересных экземпляра.
Любой фронтенд javascript -> llvm попадает на 1-ый и 2-ой патенты. Любой фронтенд интерпретируемого языка -> llvm попадает на 2-ой патент.
Правильно ли я все понял? Если да, то чего люди так радуются llvm? Их же изо всех сил пытаются нагнуть.
Пытался поставить nano. Не смогло установится. пакеты terminfo, libncurces начали ставится и не хватило места. Теперь я хочу удалить эти пакеты, но их нет в списке установленных. «opkg remove libncurces --autoremove» не хочет работать. Потроха этих пакетов успешно загадили свободное место. Никакого «opkg cleanup» нету и что теперь делать?
Пытаюсь сделать минимальный рабочий chroot для роутера. Для начала сделал для арма. В 2 словах:
crossdev -t armv7a-hardfloat-linux-gnueabi --b 2.23.2 --k 3.10 --l 2.17 --g 4.8.1-r1
sudo armv7a-hardfloat-linux-gnueabi -av bash sys-kernel/linux-headers sys-libs/uclibc sys-devel/gcc
sudo cp /usr/bin/qemu-static-arm /usr/armv7a-hardfloat-linux-gnueabi
chroot /usr/armv7a-hardfloat-linux-gnueabi
Но вот с роутером что-то не чисто. На нем стоит openwrt 12.09 (и подцеплен веник по usb). Ни один готовый stage3 для mips не работает. Симптом следующий : chroot повисает и bash ест 100% проца.
Делаю тулчеин:
USE="-nptl -nls" sudo -E crossdev -t mips-linux-uclibc --b 2.23.2 --g 4.8.1-r1 --k 3.3 --l 0.9.33.2-r6
CFLAGS="-O2 -pipe -mips32r2 -mdsp"
Опять собираю «gcc», «uclibc», «linux-headers», «uclibc». Копирую это хозяйство на роутер. И так же chroot виснет! вот strace
Я пробовал bash, tcsh, ash, менял CFLAGS, переделывать все полностью с softfloat, hardfloat. Никакого толку. Может проблема в ядре openwrt?
С какой стороны вообще такую проблему укусить?
обновил я grub2, сделал
grub2-mkconfig -o /boot/grub2/grub.conf
set root='hd3,msdos1'
set root='hd0,msdos1'
ЗЫ в системе загрузочный диск sdd
ноут amd e-350 & ati hd 6470 mobile. дай думаю установить стим. добавил оверлей steam
games-util/steam-games-meta USE="-s3tc -steamgames_defenders_quest -steamgames_dwarfs -steamgames_journey_down -steamgames_shatter -steamgames_tf2 -steamgames_trine2 -steamgames_unwritten_tales -testdeps" VIDEO_CARDS="fglrx radeon -intel -nouveau -nvidia"
app-emulation/steam-runtime-bin
games-util/steam-launcher USE="-steamruntime"
games-util/steam-client-meta USE="flash -trayicon" VIDEO_CARDS="-intel"
games-util/steam-meta USE="-steamruntime"
CFLAGS="-O2 -pipe -march=native"
ABI_X86="64 32"
запускаю - он скачал 160 метров и распаковал в .local/share/Steam/. затем выдал следующий лог
Running Steam on gentoo 64-bit
STEAM_RUNTIME is disabled by the user
Installing breakpad exception handler for appid(steam)/version(1377723241_client)
Installing breakpad exception handler for appid(steam)/version(1377723241_client)
Installing breakpad exception handler for appid(steam)/version(1377723241_client)
unlinked 1 orphaned pipes
removing stale semaphore last operated on by process 12075 with name 0eBlobRegistryMutex_8BC1CDCB2B32F1B67AC1011B2ED94BEE
removing stale semaphore last operated on by process 12075 with name 0eBlobRegistrySignal_8BC1CDCB2B32F1B67AC1011B2ED94BEE
removing stale semaphore last operated on by process 12075 with name 0emSteamEngineInstance
removing stale semaphore last operated on by process 12075 with name 0eSteamEngineLock
Installing breakpad exception handler for appid(steam)/version(1377723241_client)
Fontconfig warning: "/etc/fonts/conf.d/50-user.conf", line 14: reading configurations from ~/.fonts.conf is deprecated.
[0909/170503:ERROR:object_proxy.cc(239)] Failed to call method: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.NetworkManager was not provided by any .service files
[0909/170503:WARNING:proxy_service.cc(958)] PAC support disabled because there is no system implementation
Installing breakpad exception handler for appid(steam)/version(1377723241_client)
Installing breakpad exception handler for appid(steam)/version(1377723241_client)
Installing breakpad exception handler for appid(steam)/version(1377723241_client)
** (steam:13521): WARNING **: Could not initialize NMClient /org/freedesktop/NetworkManager: The name org.freedesktop.NetworkManager was not provided by any .service files
** (steam:13521): WARNING **: _nm_remote_settings_ensure_inited: (NMRemoteSettings) error initializing: The name org.freedesktop.NetworkManager was not provided by any .service files
я почитал про каждый варнинг. по идее в них нет ничего страшного. по крайней мере у других людей после этих варнингов стим показывает свое окно.
через 2-3 минуты он упал
/home/buildbot/buildslave_steam/steam_rel_client_ubuntu12_linux/build/src/clientdll/../common/pipes.cpp (723) : Assertion Failed: Stalled cross-thread pipe
/home/buildbot/buildslave_steam/steam_rel_client_ubuntu12_linux/build/src/clientdll/../common/pipes.cpp (723) : Fatal assert failed: /home/buildbot/buildslave_steam/steam_rel_client_ubuntu12_linux/build/src/clientdll/../common/pipes.cpp, line 723. Application exiting.
Assert( Assertion Failed: Stalled cross-thread pipe ):/home/buildbot/buildslave_steam/steam_rel_client_ubuntu12_linux/build/src/clientdll/../common/pipes.cpp:723
Installing breakpad exception handler for appid(steam)/version(1377723241_client)
Uploading dump (out-of-process) [proxy '']
/tmp/dumps/crash_20130909171230_9.dmp
_ExitOnFatalAssert
как это чудо вообще можно подебажить? как добавить вербозности?
ЗЫ пробовал добавлять steamruntime и ставил STEAM_RUNTIME=1 или 0. все тоже самое. от этого не зависит
Почему в linux-headers нету /usr/include/linux/radix-tree.h? Файл есть только в версиях
2.6.17-r2 2.6.17-r1 2.6.17-r0 2.6.11-r3 2.6.11-r2 2.6.8.1-r4 2.6.8.1-r2
Перемещено mono из talks
Померла флешка sd hc в фотике
dd if=/dev/zero of=/dev/sdc
> dd: writing to ‘/dev/sdc’: Input/output error
sd 11:0:0:0: [sdc] Media Changed
sd 11:0:0:0: [sdc]
Result: hostbyte=DID_ABORT driverbyte=DRIVER_SENSE
sd 11:0:0:0: [sdc]
Sense Key : Unit Attention [current]
Info fld=0x0
sd 11:0:0:0: [sdc]
Add. Sense: Not ready to ready change, medium may have changed
sd 11:0:0:0: [sdc] CDB:
Write(10): 2a 00 00 00 93 30 00 00 40 00
end_request: I/O error, dev sdc, sector 37680
quiet_error: 50 callbacks suppressed
Buffer I/O error on device sdc, logical block 4710
lost page write due to I/O error on sdc
Buffer I/O error on device sdc, logical block 4711
lost page write due to I/O error on sdc
Купить новую не могу т.к. в нахожусь в отпуске в пансионате. Никак нельзя флешку попробовать починить?
char buffer[100];
iov.iov_base = buffer;
iov.iov_len = sizeof ( buffer );
ssize_t length;
bool done = false;
while ( true ) {
length = recvmsg ( socket_fd, &messages, 0 );
if ( length == -1 ) {
return false;
} else if ( length == 0 ) {
break;
}
struct nlmsghdr * message;
for ( message = ( struct nlmsghdr * ) buffer; NLMSG_OK ( message, length ); message = NLMSG_NEXT ( message, length ) ) {
switch ( message->nlmsg_type ) {
case NLMSG_DONE:
printf ( "%s\n", "done" );
done = true;
break;
default:
printf ( "code %d\n", message->nlmsg_type );
break;
}
}
if ( done ) {
break;
}
}
используя метод научного тыка находим:
вот это прикол. зачем он отбрасывает нужные сообщения. почему оно не кидает ошибку EMSGSIZE. идем в ман:
Если сообщение слишком длинное и не поместилось в предоставленный буфер, лишние байты могут быть отброшены, в зависимости от типа сокета, на котором принимаются сообщения.
для netlink доступно 2 варианта создания сокетов:
socket ( AF_NETLINK, SOCK_RAW, NETLINK_ROUTE )
socket ( AF_NETLINK, SOCK_DGRAM, NETLINK_ROUTE )
я же не ванга. откуда я узнаю сколько сообщений мне придет?
Огромные фиксированные буферы - не хочу. Читать обычным read-ом?
Хочется получать данные с сервера через конкретный сетевой интерфейс. Именно чтобы клиент использовал свои сетевые интерфейсы.
->
->
клиент -> облачко <- server
->
->
Насколько я понимаю единственный вариант - SO_BINDTODEVICE. Можно ли создать группу пользователей, которые могут использовать SO_BINDTODEVICE?
ЗЫ «тупа nexthop или ему подобных» не предлагать. предложение может иметь любую свою логику получения/отправки данных
следующие → |