LINUX.ORG.RU

Сообщения true_admin

 

как быстро создать свой ЯП?

Сабж. Есть идеи, хочу их попробовать. Если ли, скажем, какие-то тулкиты для эээ автоматизации этого? Ну, например, набор примитивов (структуры, списки, массивы ...), плюс какие-нить парсеры итд итп. Я не про yacc/bison+llvm, а про что-нить более высокоуровневое и лузер-френдли.

 ,

true_admin
()

феерический ппц нашего времени

Давным-давно в systemd поломали dhcpcd@-сервис (а может он всегда был кривой). Проявляется это в том что там захардкодено eth0 в файле сервиса. Хрен бы с этим, но ведь с недавнего времени никаких eth0 больше нет, зато есть всякие enp3s0. И естестно это больше не работает вообще никак. Баг в арчлинукс направлен 10-го августа. Арчеводы быстренько закрыли с wontfix и перекинули проблему в upstream. А апстриму пофиг, апстрим не чешется. А между тем в обоих багтрекерах давным давно лежат решения проблем. Что делать, Зин?

Раньше говорили: «а ты написал багрепорт». Потом стали говорить «а ты засабмитил патч?». Что теперь говорить? «Постучал ли ты по башке девелоперам»? «Форкнул ли ты проект»? Зла на них всех не хватает :(. Короче, кто хочешь написать письмо Его Величеству? Я не в настроении писать цензурно.

Я давно предлагаю ввести новую должность - пинатель девелоперов.

PS а линукс тут при том что он служит низкоуровневой прослойкой для systemd.

Список использованной литературы:

https://bugs.archlinux.org/task/31093

https://bugs.freedesktop.org/show_bug.cgi?id=53954

 , , , ,

true_admin
()

почему после копирования дистра на другой раздел он стал больше?

Сабж.

# mkdir /tmp/arch
# mount --bind / /tmp/arch
# rsync -aHAXtShx --progress /tmp/arch/ /mnt/
sent 605.08M bytes  received 589.46K bytes  36.71M bytes/sec
total size is 611.91M  speedup is 1.01
# tune2fs -m 1 /dev/sda3
tune2fs 1.42.6 (21-Sep-2012)
Setting reserved blocks percentage to 1% (24412 blocks)
# df -h
Filesystem      Size  Used Avail Use% Mounted on
rootfs          960M  662M  250M  73% /
/dev/sda2       960M  662M  250M  73% /
/dev/sda2       960M  662M  250M  73% /tmp/arch
/dev/sda3       9.2G  790M  8.4G   9% /mnt
/dev/sda3       9.2G  790M  8.4G   9% /tmp/arch/mnt

Файлухи ext4, копировал с поддержкой sparse files, с хардлинками итп. Что я упустил?

PS кажется, я понял, так что пусть это будет задачкой для сисадминов.

 , ,

true_admin
()

не хочет hostname выставлять по dhcp

В /etc/conf.d/dhcpcd стоит DHCPCD_ARGS="-q -e force_hostname=YES", /etc/hostname я удалил, а имя всё равно localhost. По логам dnsmasq отдаёт корректное hostname.

Опытным путём было установлено что при следующем запросе (когда lease time истекает) оно таки выставляет правильный hostname. Вопрос: как сделать так чтобы оно сразу получало по сети нормальное имя?

 , ,

true_admin
()

работает ли в autofs wildcard?

Пытаюсь придумать что-то удобное для автомонтирования флешек. Наткнулся на autofs, но, по-моему, там конфиги мегакостыльные. Простой сценарий когда прописываешь путь к устройству и папку монтирования работает, а вот со всеми этими wild cards не хочет работать, хотя делаю всё по мануалу с оффсайта и по манам.

Т.е. такая байда у меня не работает:

[root@ux32vd /]# cat /etc/autofs/auto.master 
/media /etc/autofs/auto.media

[root@ux32vd /]# cat /etc/autofs/auto.media 
*    -fstype=auto,sync     :/dev/sd&

[root@ux32vd ~]# automount -m

autofs dump map information
===========================

global options: none configured

Mount point: /media

source(s):

  instance type(s): file 
  map: /etc/autofs/auto.media

  * | -fstype=auto,sync     :/dev/sd&

Демона запускал через automount -v -d -f, всё без толку, путного ничего не выводит. ЧЯДНТ?

Если задать явно что /dev/sdb1 монтировать в /media/flashka то всё работает, но у флешки не обязательно имя sdb и не обязательно там один раздел.

 ,

true_admin
()

что есть философия unix

В порядке ликбеза.

Очень много споров на лоре на эту тему и стороны никак не могут между собой договориться. И тут, читая википедию на тему Поттеринг vs груповой шедулинг в cfs, наткнулся на, вы не поверите, http://en.wikipedia.org/wiki/Unix_philosophy . Что ж, теперь хоть понятно откуда корни у этой философии.

Для Ъ: там не только про модульность и «каждая программа должна делать только одну вещь».

 

true_admin
()

не менять разрешение консоли при загрузки

Хочу arch грузить с kvm -curses. Systemd хитрее: не смотря на nosetmode, nofb итп он всё равно меняет. Как я выяснил с systemd.confirm_spawn=true, происходит это в момент запуска udev.

Что крутить чтобы разрешение оставалось прежним?

 ,

true_admin
()

Accessing a corrupted shared library

Почему на выходе получается битая либа? gcc version 4.7.2, ld 2.23.1 . Раньше такое работало.

p1@libtest$ cat ./test.c 
#include<stdio.h>
const char interpreter[] __attribute__((section(".interp"))) = "/lib/ld-linux.so.2";

int test(void) {
    printf("test\n");
}

p1@libtest$ cat ./Makefile 
test.so: test.c
	gcc -shared -ggdb -fpic -pipe -Wl,-e,test ./test.c -o test.so -ldl


p1@libtest$ make
gcc -shared -ggdb -fpic -pipe -Wl,-e,test ./test.c -o test.so -ldl
p1@libtest$ ldd ./test.so 
/usr/bin/ldd: line 117: ./test.so: Accessing a corrupted shared library

 , ,

true_admin
()

узнать текущую частоту процессора не через proc/ACPI/whatever

Хочу узнать текущую частоту процессора в ноутбуке. Данные которые выдают powertop или /proc/cpuinfo противоречат спецификациям (что, кстати, заметил не только я, но и https://wiki.ubuntu.com/Kernel/Reference/fwts).

Вот вопрос как вычислить программными средствами. Может там какой цикл сделать и замерить скорость его выполнения?

Проц i7-3517, частоту пишет 2.8GHz для всех четырёх ядер (включая hyper-threading) стабильно. Должно быть 2.4, если верить powertop, или 2.3 если верить http://processors.findthebest.com/l/844/Intel-i7-3517U.

Ноут asus ux32vd.

true_admin
()

gmail теперь не работает с почтовиками с self-signed certificates

Сорри, если уже обсудили.

Теперь только «валидные» сертификаты принимаются если настроен забор почты с другого сервера: http://support.google.com/mail/bin/answer.py?hl=en&answer=21291&ctx=g...

Свой сертификат импортировать нельзя. Со слов гугла это делается для секурности. Поэтому или платите за сертификат, или ... снимите галочку «использовать ssl» в гэмыли. Секурно, мда..

А проблем две: 1) лично я не собираюсь 10 сертификатов покупать только чтобы угодить гуглу. Хотя, может жизнь заставит.

2) когда сервер не свой, а «корпоративный», заставить что-то сделать очень сложно. У подруги как раз этот случай, потому и плачусь.

true_admin
()

реально ли играть с bumblebee?

Купил не так давно ноут asus ux32vd с core i7-3517u и geforce GT 620M. Решил поиграть (~6.5лет не играл, а тут захотелось). Дистр арч, поставил bumblebee из aur, всё как по инструкции (исключая допиливания под ядро 3.7). Проверил, optirun на glxspheres аж на 30% быстрее hd4000 (т.е. работает). Итак, запускаю American McGee's Alice (платиновый статус в wine имеет) и...

Выставляю разрешние 1920x1080, максимальные текстуры и 32-битный цвет (игра-то аж 2000 года) и... адские тормоза. Понижение качества текстур до среднего (хотя в игре уже ничего не видно, одно мыло) довело фпс аж до 12-14.5. В отдельных редких случаях фпс мог и превысить 15 (до 16.5 где-то), но только если камера в стену, нет врагов и не стрелять. Мышка реагирует с полусекундной задержкой, клава тоже. С меньшим разрешением оно чуток лучше шевелилось, но всё равно неиграбельно и были проблемы с масштабированием картинки (похоже, из-за того что игра не знает о существовании 16:9 моников, хотя можно подшаманить в конфигах). Я пытался применить компрессию (optirun -c jpeg), это только добавило тормозов. По top ядра все загружены на полную (интересно почему, отключение ядер не сильно уменьшило fps). На hd4000 тормозов ещё больше, тут уже откровенное слайдшоу. По-моему, у меня riva tnt третьекваку лет 12 назад быстрее гоняла. Правда, в 16-и битном цвете и 640x480, но всё же.

Так вот, это у всех так с bumblebee и virtualgl или только у меня?

PS я бы подумал что это тупо ноут слабый, но на ютубе под виндаме оно сносно шевелится даже в современных играх, надо только спецэффекты поубавить в соответствии с мощностью видяхи.

 , ,

true_admin
()

увеличить чувствительнось тачпада

Хочу чтобы тачпад был более скоростным. Пробовал через xset mouse 10 1 и другие числа, не помогает. Пробовал через xinput шаманить с параметрами типа Device Accel Constant Deceleration, Device Accel Velocity Scaling и прочими, всё равно ничего не получается. Через synclient тоже не вышло. Вот уменьшить не проблема, проблема увеличить.

Я может что-то в корне не так делаю? Тачпад 'ETPS/2 Elantech Touchpad'

true_admin
()

реально ли перепаять память в ультрабуке для увеличения объёма?

Уже почти конец света, а ноуты в массе до сих пор с 4Gb памяти идут, даже якобы топовые. В большинстве случаев внутри всё намертво распаяно.

Реально ли в полукустарном окружении перенести более ёмкие микрухи на материнку ноута? Микрухи снять с планки памяти, например, или заказать отдельно. Я пока вижу основную проблема в пайке bga-корпусов.

true_admin
()

ipython vs нормальный питон: import urllib

Почему если в ipython импортировать urllib то импортируется и urllib.request? Это фича такая?

$ ipython 
Python 3.3.0 (default, Sep 29 2012, 15:50:43) 
Type "copyright", "credits" or "license" for more information.

IPython 0.13.1 -- An enhanced Interactive Python.
[skip]
In [1]: import urllib

In [2]: urllib.request.urlopen
Out[2]: <function urllib.request.urlopen>
$ python3
Python 3.3.0 (default, Sep 29 2012, 15:50:43) 
[GCC 4.7.1 20120721 (prerelease)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import urllib
>>> urllib.request.urlopen
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'request'

 

true_admin
()

не могу собрать код из real world haskell

Вот этот код не собирается потому что был написан под Control.OldException который давно выкинули. Моих знаний не хватило чтобы переделать. Можете подсказать что поменять?

module NiceFork
    (
      ThreadManager
    , newManager
    , forkManaged
    , getStatus
    , waitFor
    , waitAll
    ) where

import Control.Monad (join)
import Control.Concurrent
import Control.Exception (Exception, try)

import qualified Data.Map as M

data ThreadStatus = Running
                  | Finished         -- terminated normally
                  | Threw Exception  -- killed by uncaught exception
                    deriving (Eq, Show)

newtype ThreadManager =
    Mgr (MVar (M.Map ThreadId (MVar ThreadStatus)))
    deriving (Eq)

-- | Sleep :)
sleep :: Double -> IO ()
sleep s = threadDelay $ round $ s * 1000000

-- | Create a new thread manager.
newManager :: IO ThreadManager
newManager = Mgr `fmap` newMVar M.empty

-- | Create a new managed thread.
forkManaged :: ThreadManager -> IO () -> IO ThreadId
forkManaged (Mgr mgr) body =
    modifyMVar mgr $ \m -> do
      state <- newEmptyMVar
      tid <- forkIO $ do
        result <- try body
        putMVar state (either Threw (const Finished) result)
      return (M.insert tid state m, tid)

-- | Immediately return the status of a managed thread.
getStatus :: ThreadManager -> ThreadId -> IO (Maybe ThreadStatus)
getStatus (Mgr mgr) tid =
  modifyMVar mgr $ \m ->
    case M.lookup tid m of
      Nothing -> return (m, Nothing)
      Just st -> tryTakeMVar st >>= \mst -> case mst of
                   Nothing -> return (m, Just Running)
                   Just sth -> return (M.delete tid m, Just sth)

-- | Block until a specific managed thread terminates.
waitFor :: ThreadManager -> ThreadId -> IO (Maybe ThreadStatus)
waitFor (Mgr mgr) tid =
  join . modifyMVar mgr $ \m ->
    return $ case M.updateLookupWithKey (\_ _ -> Nothing) tid m of
      (Nothing, _) -> (m, return Nothing)
      (Just st, m') -> (m', Just `fmap` takeMVar st)


-- | Block until all managed threads terminate.
waitAll :: ThreadManager -> IO ()
waitAll (Mgr mgr) = modifyMVar mgr elems >>= mapM_ takeMVar
    where elems m = return (M.empty, M.elems m)

 

true_admin
()

отговорите: asus ux32vd

Я уже года четыре себе ноут выбираю и, кажись, нашёл свой идеал: asus 32vd. Там есть слот для оперативы, так что я могу туда запихнуть 8гб плашку и получить 10гиг в сумме (2гб на мамке распаяно). Так же там обычный венник стоит (правда, 7мм высотой) и 32гб ssd распаяно на мамке. Имхо, это превосходно: я систему поставлю на 32гига, а винтом буду пользоваться для помойки. В остальных случаях его можно будет отключить чтобы не сдох от, скажем, вибрации. Батарейка средняя, 48Wh. А так же: fullhd ISP матрица!

Из недостатков разве что nvidia optimus, но мне «дискретное» видео вообще не нужно, отключу сразу.

В общем, неужели я нашёл идеал?

UP: экран мерцает, юзеры жалуются на брак и на мягкую верхнюю крышку. Думаю откажусь от покупки

true_admin
()

временный тихий режим

Я часто забываю восстановить громкость звонка после того как поставил её в ноль, скажем, на совещании. В результате потом пропускаю звонки. Можно ли какой-нить софтиной выставить «тихий режим - 1час!» ? Вернее, кто что порекомендует для этого?

OS: android 4.1 (cm10), трубка sgs2

true_admin
()

нубвопросы по потокам и io

Я наконец-то дочитал пару ламмерский введений по хаскелю. И тут же решил посмотреть что там с гринлетами и прочими модными плюшками. В итоге, я так понял, популярны два подхода:

1) CHP http://www.cs.kent.ac.uk/projects/ofa/chp/tutorial.pdf (жалкие 22 страницы туториала)

2) Concurrent Haskell http://research.microsoft.com/en-us/um/people/simonpj/papers/marktoberdorf/ma... (всего лишь 46 страниц туториал)

Вторую доку я дочитал до конца (хотя понимание происходящего потерял гораздо раньше).

Так вот то что в C делается for (int v=0, i=1; i<=n; i++) { v = v+i ; }; return v на хаскеле выглядело вот так (это из второй доки):

count :: Int -> IO Int
count n = do { r <- newIORef 0;
               loop r 1 }
        where
            loop :: IORef Int -> Int -> IO Int
            loop r i | i>n        = readIORef r
                     | otherwise  = do { v <- readIORef r;
                                         writeIORef r (v+i);
                                         loop r (i+1) }

В первой доке код чуток менее кривой, но... В общем, все эти монады для (сетевого) io мне показались страшными костылями. Это я чего-то не понимаю или в хаскеле concurrency в зачаточном состоянии?

Второй вопрос что меня мучает это большие структуры данных. Вот мне, допустим, надо в большом дереве пару узлов поменять. Такое реально сделать в хаскеле без особых костылей? Или он просто не расчитан на такое?

Спрашиваю потому что хочу понять для себя добивать ли хаскель или уже одним глазом в сторону эрланга начинать смотреть.

 , , ,

true_admin
()

почему haskell используют совместно с erlang?

Уже не в первый раз вижу миграцию с питона на haskell + erlang. Например, в яндексе и селектел. Зачем нужно сразу два яп?

 , ,

true_admin
()

undefined symbol: cgroup_get_cgroup_name

Не могу понять почему либа не работает. Помогите плиз.

$ ./libcgroup.py
...
ImportError: ./_libcgroup.so: undefined symbol: cgroup_get_cgroup_name

$ ldd ./_libcgroup.so 
        linux-vdso.so.1 (0x00007fff9fbcb000)
        libdl.so.2 => /usr/lib/libdl.so.2 (0x00007febd5f1a000)
        libutil.so.1 => /usr/lib/libutil.so.1 (0x00007febd5d17000)
        libm.so.6 => /usr/lib/libm.so.6 (0x00007febd5a1d000)
        libpython3.3m.so.1.0 => /usr/lib/libpython3.3m.so.1.0 (0x00007febd55b4000)
        libcgroup.so.1 => /home/sources/libcg/src/.libs/libcgroup.so.1 (0x00007febd5147000)
        libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007febd4f2b000)
        libc.so.6 => /usr/lib/libc.so.6 (0x00007febd4b83000)
        /usr/lib/ld-linux-x86-64.so.2 (0x0000003edd600000)

$ objdump -t ./_libcgroup.so | grep cgroup_get_cgroup_name
000000000000fa80 l     F .text  00000000000000eb              _wrap_cgroup_get_cgroup_name
0000000000000000         *UND*  0000000000000000              cgroup_get_cgroup_name

$ ldd /home/sources/libcg/src/.libs/libcgroup.so.1
        linux-vdso.so.1 (0x00007fff92a57000)
        libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f8e61327000)
        libc.so.6 => /usr/lib/libc.so.6 (0x00007f8e60f80000)
        /usr/lib/ld-linux-x86-64.so.2 (0x0000003edd600000)

$ objdump -t /home/sources/libcg/src/.libs/libcgroup.so.1 | grep cgroup_get_cgroup_name
000000000000e2b0 l     F .text  0000000000000004              cgroup_get_cgroup_name

$ cat ./test.c 
#include <stdlib.h>
#include <libcgroup.h>

int main(void) {
    cgroup_get_cgroup_name(NULL);
    return 0;
}

$ gcc ./test.c -lcgroup
/tmp/ccH0QWWM.o: In function `main':
test.c:(.text+0xa): undefined reference to `cgroup_get_cgroup_name'
collect2: error: ld returned 1 exit status


 

true_admin
()

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