LINUX.ORG.RU

Сообщения dmitry_malikov

 

configure: error: C compiler cannot create executables

Недавно осознал тот факт, что не установлен mpc.

>> eix -e mpc -c
[I] dev-libs/mpc (1.0.1): A library for multiprecision complex arithmetic with exact rounding.
[N] media-sound/mpc ((~)0.23): A commandline client for Music Player Daemon (media-sound/mpd)
Found 2 matches.

Здесь догадливый читатель, вероятно, уже понял, что произошло дальше. dev-libs/mpc бы ошибочно реемержнут, после чего была предпринята попытка емёржнуть media-sound/mpc.

Но, не тут-то было. https://gist.github.com/dmalikov/04a3db2c6c91793cce15

...
configure: error: C compiler cannot create executables
...
x86_64-pc-linux-gnu-gcc: error: unrecognized option '-V'
...

Теперь минутка отчаяния:

>> equery d mpc
 * These packages depend on mpc:
sys-devel/gcc-4.6.3 (>=dev-libs/mpc-0.8.1)

И триумфальный фэйл `emerge gcc`: http://pastebin.com/raw.php?i=ic80JcWq

Вопрос - что дальше?

 

dmitry_malikov
()

Отображение текущей директории в status-bar тмукса

Парни, как настроить тмукс таким образом, чтобы в статус-баре отображалась текущая директория шелла. Хотелось бы вынести её из PS1.

set -g status-left "#(pwd)"
set -g status-interval 1

Этот вариант не меняет строчку после смены директории, оставляя её значение таким, каким оно определилось при старте сессии тмукса.

Как починить?

 ,

dmitry_malikov
()

Маразм крепчал

С пациентом уже давно всё ясно, но последнее время мужика совсем понесло.

Кто бы что ни говорил, а рома душкин - наше всё!

 

dmitry_malikov
()

terminus в IJ IDEA

М

Как добавить terminus в идею?

В списке доступных шрифтов его почему-то нет, хотя вот же он:

$> fc-list | grep terminus
/usr/share/fonts/terminus/ter-118n.pcf.gz: Terminus:style=Regular
/usr/share/fonts/terminus/ter-128n.pcf.gz: Terminus:style=Regular
/usr/share/fonts/terminus/ter-120n.pcf.gz: Terminus:style=Regular
/usr/share/fonts/terminus/ter-112n.pcf.gz: Terminus:style=Regular
/usr/share/fonts/terminus/ter-x18n.pcf.gz: Terminus:style=Regular
/usr/share/fonts/terminus/ter-132n.pcf.gz: Terminus:style=Regular
/usr/share/fonts/terminus/ter-x28n.pcf.gz: Terminus:style=Regular
/usr/share/fonts/terminus/ter-x12b.pcf.gz: Terminus:style=Bold
/usr/share/fonts/terminus/ter-122n.pcf.gz: Terminus:style=Regular
/usr/share/fonts/terminus/ter-x20n.pcf.gz: Terminus:style=Regular
/usr/share/fonts/terminus/ter-x12n.pcf.gz: Terminus:style=Regular
/usr/share/fonts/terminus/ter-x32b.pcf.gz: Terminus:style=Bold
/usr/share/fonts/terminus/ter-x22b.pcf.gz: Terminus:style=Bold
/usr/share/fonts/terminus/ter-x32n.pcf.gz: Terminus:style=Regular
/usr/share/fonts/terminus/ter-x22n.pcf.gz: Terminus:style=Regular
/usr/share/fonts/terminus/ter-x18b.pcf.gz: Terminus:style=Bold
/usr/share/fonts/terminus/ter-112b.pcf.gz: Terminus:style=Bold
/usr/share/fonts/terminus/ter-x28b.pcf.gz: Terminus:style=Bold
/usr/share/fonts/terminus/ter-x20b.pcf.gz: Terminus:style=Bold
/usr/share/fonts/terminus/ter-x16b.pcf.gz: Terminus:style=Bold
/usr/share/fonts/terminus/ter-132b.pcf.gz: Terminus:style=Bold
/usr/share/fonts/terminus/ter-122b.pcf.gz: Terminus:style=Bold
/usr/share/fonts/terminus/ter-118b.pcf.gz: Terminus:style=Bold
/usr/share/fonts/terminus/ter-x14b.pcf.gz: Terminus:style=Bold
/usr/share/fonts/terminus/ter-128b.pcf.gz: Terminus:style=Bold
/usr/share/fonts/terminus/ter-120b.pcf.gz: Terminus:style=Bold
/usr/share/fonts/terminus/ter-116b.pcf.gz: Terminus:style=Bold
/usr/share/fonts/terminus/ter-x24b.pcf.gz: Terminus:style=Bold
/usr/share/fonts/terminus/ter-114b.pcf.gz: Terminus:style=Bold
/usr/share/fonts/terminus/ter-124b.pcf.gz: Terminus:style=Bold
/usr/share/fonts/terminus/ter-114n.pcf.gz: Terminus:style=Regular
/usr/share/fonts/terminus/ter-124n.pcf.gz: Terminus:style=Regular
/usr/share/fonts/terminus/ter-116n.pcf.gz: Terminus:style=Regular
/usr/share/fonts/terminus/ter-x14n.pcf.gz: Terminus:style=Regular
/usr/share/fonts/terminus/ter-x24n.pcf.gz: Terminus:style=Regular
/usr/share/fonts/terminus/ter-x16n.pcf.gz: Terminus:style=Regular

 

dmitry_malikov
()

Игнорирование отсутствующей документации при ghc-pkg check | как собрать кабальные хаддоки емергой?

Как сказать `ghc-pkg check' не проверять целостность документации всех установленных пакетов?

Хотелось бы не видеть этих ворнингов.

#> ghc-pkg check
Warning: haddock-interfaces: /usr/share/doc/ghc-paths-0.1.0.9/html/ghc-paths.haddock doesn't exist or isn't a file
Warning: haddock-html: /usr/share/doc/ghc-paths-0.1.0.9/html doesn't exist or isn't a directory
Warning: haddock-interfaces: /usr/share/doc/cabal-1.16.0.3/html/Cabal.haddock doesn't exist or isn't a file
Warning: haddock-html: /usr/share/doc/cabal-1.16.0.3/html doesn't exist or isn't a directory
Warning: haddock-interfaces: /usr/share/doc/xhtml-3000.2.1/html/xhtml.haddock doesn't exist or isn't a file
Warning: haddock-html: /usr/share/doc/xhtml-3000.2.1/html doesn't exist or isn't a directory

С другой стороны, хотелось бы также и заиметь хаддоки по всем этим пакетам, потому как мало ли чего. Но вот беда, `doc' юзфлагов для перечисленных пакетов не наблюдается.

Как быть

?

cast qnikst sf nCdy

 , ,

dmitry_malikov
()

Удаление настроек шрифтов

Есть ли возможность сбросить настройки шрифтов в firefox?

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

 

dmitry_malikov
()

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

Привет!

А подкажите внешнюю звуковуху, да такую, чтобы альсой сразу распозналась.

Взял почти наугад по совету, как оказалось, вендолюба, Infrasonic Amon. Альса молчит, в aplay -l ничего нового не появляется.

Первый блин комом :[

 

dmitry_malikov
()

cudaMalloc, unspecified launch failure

#include <cuda.h>
#include <cutil.h>
#include <stdio.h>

#define BLOCKS 32
#define IND(x,y,w) (y * w + x)

typedef unsigned char uchar;

const int conv_r = 2;
float conv_m[5][5] = {
  { 0.01, 0.01, 0.01, 0.01, 0.01 },
  { 0.01, 0.1, 0.1, 0.1, 0.01 },
  { 0.01, 0.1, 0, 0.1, 0.01 },
  { 0.01, 0.1, 0.1, 0.1, 0.01 },
  { 0.01, 0.01, 0.01, 0.01, 0.01 }
};

__global__ void imageConvoluter ( uchar* in, uchar* out, int w, int h, float conv_m[5][5] ) {
  int idx = blockIdx.x*blockDim.x + threadIdx.x;
  int idy = blockIdx.y*blockDim.y + threadIdx.y;
  int index = idx * w + idy;
  out[index] = 0;
  for ( int idx_ = -conv_r; idx_ <= conv_r; idx_++ ) {
    for ( int idy_ = -conv_r; idy_ <= conv_r; idy_ ++ ) {
      int local_index_x = idx + idx_;
      int local_index_y = idy + idy_;
      if ( (local_index_x > 0) && (local_index_x < w) && (local_index_y > 0) && (local_index_y < h) )
        out[index] += in[IND(local_index_x, local_index_y, w)] * conv_m[idy_+conv_r][idx_+conv_r];
    }
  }
}

int main () {
  unsigned int image_w, image_h;
  uchar *data_original = NULL,
        *data_original_dev = NULL,
        *data_convoluted_dev = NULL;

  CUT_SAFE_CALL( cutLoadPGMub( "pic.pgm", &data_original, &image_w, &image_h ) );
  printf( "W=%d, H=%d\n", image_w, image_h );
  int image_size = image_w * image_h * sizeof(uchar);
  uchar *data_convoluted = new uchar[image_w * image_h],
        *data_convoluted_cpu = new uchar[image_w * image_h];

  cudaMalloc( &data_original_dev, image_size );
  cudaMalloc( &data_convoluted_dev, image_size );
  CUDA_SAFE_CALL( cudaMemcpy( data_original_dev, data_original, image_size, cudaMemcpyHostToDevice ) );

  dim3 blocks = dim3( BLOCKS, BLOCKS );
  dim3 threads = dim3( image_w / BLOCKS, image_h / BLOCKS );

  imageConvoluter <<< blocks, threads >>> ( data_original_dev, data_convoluted_dev, image_w, image_h, conv_m );

  for ( int idx = conv_r; idx < image_h-conv_r; idx++ ) {
    for ( int idy = conv_r; idy < image_w-conv_r; idy++ ) {
      int index = IND( idx, idy, image_w );
      data_convoluted_cpu[index] = 0;
      for ( int idx_ = -conv_r; idx_ <= conv_r; idx_++ ) {
        for ( int idy_ = -conv_r; idy_ <= conv_r; idy_ ++ ) {
          int index_around = IND((idx + idx_), (idy + idy_), image_w);
          data_convoluted_cpu[index] += data_original[index_around] * conv_m[idy_+conv_r][idx_+conv_r];
        }
      }
    }
  }

  CUDA_SAFE_CALL( cudaMemcpy( data_convoluted, data_convoluted_dev, image_size, cudaMemcpyDeviceToHost ) );

  // CUT_SAFE_CALL( cutCompareub( data_convoluted, data_convoluted_cpu, image_w * image_h ) );

  CUT_SAFE_CALL( cutSavePGMub( "pic_convoluted.pgm", data_convoluted, image_w, image_h ) );
  CUT_SAFE_CALL( cutSavePGMub( "pic_convoluted_cpu.pgm", data_convoluted_cpu, image_w, image_h ) );

  cutFree( data_original );
  cudaFree( data_original_dev );
  delete data_convoluted;
  delete data_convoluted_cpu;
}

Изображение считывается в массив, производится свёртка изображения в соседний массив. На этапе копирования памяти с девайса обратно на хост случается некоторый конфуз (выловлено в дебаггере):

Cuda error in file 'task00.cu' in line 68 : unspecified launch failure.

При выполнении программы без дебаггера на этом вызове процесс встаёт, и далее ничего не происходит.

Если я правильно понимаю, `unspecified launch failure' возникает из-за неправильного обращения к памяти и скорее всего является простым сегфолтом.

Проблема в том, что после выполнения этого кода кудовский девайс помирает полностью и заново не поднимается:

all CUDA-capable devices are busy or unavailable.

Хотелось бы понять, что я делаю не так, и что вообще происходит.

 

dmitry_malikov
()

Создание новых паст в gist не работает

Никто не знает, случайно, как теперь создавать новые пасты на gist.github.com?

На прошлой неделе эти друзья выкатили рефакторнутую логику и новую морду. Всё чудесно, но некоторые кнопки невозможно перевести в нажимабельное активное состояние.

http://zfh.so/idb0f0b

pentadactyl, firefox, gentoo

Куда нажать, чтобы заработало
?

 , , gist,

dmitry_malikov
()

слайды в мардауне

Как вы оформляете презентации в markdown'е?

Пандок не умеет конвертировать тех с кириллицей в пфд.

$> pandoc -t beamer test.md -o test.pdf
pandoc: Error producing PDF from TeX source.
! Package inputenc Error: Unicode char \u8:Т not set up for use with LaTeX.

See the inputenc package documentation for explanation.
Type  H <return>  for immediate help.
 ...                                              
                                                  
l.32 \section{Тест}

Или всё-таки умеет?

 , ,

dmitry_malikov
()

Coursera: songwriting course by Berklee College of Music

https://www.coursera.org/course/songwriting

Learn an efficient, effective process for writing songs that express your ideas and emotions, including a range of tools that revolve around the concept of prosody—the matching of lyrics and music to support your underlying message.

Наконец-то на курсере появились интересные курсы
!

 

dmitry_malikov
()

в ведущих домах Венеции все давно разгуливают в десятых байтострингах

Осень, сентябрь. В автобусах, в закусочных то и дело слышны разговоры про непочиненность glib и vty-ui. Всё верно, планета медленно переползает на 7.6.1 с 7.4.2.

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

Типичный пример:

$> cabal-dev install
Resolving dependencies...
In order, the following would be installed:
bytestring-0.9.2.1 (new version)
containers-0.4.2.1 (new version)
binary-0.6.1.0 (new version)
cereal-0.3.5.2 (reinstall) changes: bytestring-0.10.0.0 -> 0.9.2.1,
containers-0.5.0.0 -> 0.4.2.1
curl-1.3.7 +new-base (reinstall) changes: bytestring-0.10.0.0 -> 0.9.2.1,
containers-0.5.0.0 -> 0.4.2.1
entropy-0.2.1 (reinstall) changes: bytestring-0.10.0.0 -> 0.9.2.1
crypto-api-0.10.2 (reinstall) changes: bytestring-0.10.0.0 -> 0.9.2.1
pureMD5-2.1.2.1 (reinstall) changes: binary-0.5.1.1 -> 0.6.1.0,
bytestring-0.10.0.0 -> 0.9.2.1
template-haskell-2.8.0.0 (reinstall) changes: containers-0.5.0.0 -> 0.4.2.1
text-0.11.2.3 (reinstall) changes: bytestring-0.10.0.0 -> 0.9.2.1
attoparsec-0.10.2.0 (reinstall) changes: bytestring-0.10.0.0 -> 0.9.2.1,
containers-0.5.0.0 -> 0.4.2.1
blaze-builder-0.3.1.0 (reinstall) changes: bytestring-0.10.0.0 -> 0.9.2.1
hashable-1.1.2.5 (reinstall) changes: bytestring-0.10.0.0 -> 0.9.2.1
parsec-3.1.3 (reinstall) changes: bytestring-0.10.0.0 -> 0.9.2.1
unix-2.6.0.0 (reinstall) changes: bytestring-0.10.0.0 -> 0.9.2.1
directory-1.2.0.0 (reinstall)
network-2.3.1.0 (reinstall) changes: bytestring-0.10.0.0 -> 0.9.2.1
process-1.1.0.2 (reinstall)
hslogger-1.2.1 (new version)
unordered-containers-0.2.2.1 (reinstall)
aeson-0.6.0.2 (reinstall) changes: bytestring-0.10.0.0 -> 0.9.2.1,
containers-0.5.0.0 -> 0.4.2.1
urlencoded-0.3.0.1 (reinstall)
utf8-string-0.3.7 -bytestring-in-base (reinstall) changes: bytestring-0.10.0.0
-> 0.9.2.1
libmpd-0.8.0 (new package)
xml-1.3.12 (reinstall) changes: bytestring-0.10.0.0 -> 0.9.2.1
liblastfm-0.0.3.6 (reinstall) changes: bytestring-0.10.0.0 -> 0.9.2.1
loh-0.0.0 (new package)
cabal: The following packages are likely to be broken by the reinstalls:
io-choice-0.0.2
ghc-7.6.1
haddock-2.12.0
ghc-syb-utils-0.2.1.1
concrete-typerep-0.1.0.1
derive-2.5.11
cmdargs-0.10
hoogle-4.2.13
QuickCheck-2.5
show-0.4.1.2
Stream-0.4.6
arrows-0.4.4.1
IOSpec-0.2.5
xml-types-0.3.3
xml-conduit-1.0.3.1
texmath-0.6.0.6
pandoc-1.9.4.2
Graphalyze-0.13.0.1
citeproc-hs-0.3.4
wl-pprint-text-1.1.0.0
graphviz-2999.14.1.0
wai-1.3.0
warp-1.3.1
tagsoup-0.12.8
system-filepath-0.4.7
polyparse-1.8
vty-4.7.0.14
regex-tdfa-1.1.8
simple-sendfile-0.2.7
oeis-0.3.1
network-conduit-0.5.0.1
hslogger-1.2.0
cgi-3001.1.8.3
HTTP-4000.2.4
json-0.5
highlighting-kate-0.5.2
csv-0.1.2
http-types-0.7.3.0.1
vault-0.2.0.1
uniplate-1.6.7
hlint-1.8.31
case-insensitive-0.4.0.3
enumerator-0.4.19
blaze-builder-enumerator-0.2.0.5
conduit-0.5.2.4
blaze-builder-conduit-0.5.0.1
attoparsec-conduit-0.5.0.1
blaze-markup-0.5.1.1
blaze-html-0.5.1.0
zip-archive-0.1.1.8
xmonad-contrib-0.10
xmonad-0.10
unlambda-0.1
unix-compat-0.3.0.2
shellish-0.1.4
temporary-1.1.2.3
readline-1.0.1.0
language-c-0.4.2
haskell98-2.0.0.2
dyre-0.8.8
Cabal-1.16.0
bin-package-db-0.0.0.0
hscurses-1.4.1.2
executable-path-0.0.3
xdg-basedir-0.2.1
tar-0.4.0.0
silently-1.2.0.2
hpc-0.6.0.0
hashed-storage-0.5.9
cpphs-1.14
haskell-src-exts-1.13.5
brainfuck-0.1
X11-xft-0.3.1
Use --force-reinstalls if you want to install anyway.

Чудесный кристально ясный выхлоп кабан-девы позволяет моментально понять причину блокировки и предпосылку к ФОРСИРОВАННОМУ ДАУНГРЕЙДУ ЕДРЁНОЙ ТОННЫ ПАКЕТОВ.

Да, либмпд всё сломал своей зависимостью от старых девятых байтострингов, в то время как в ведущих домах Венеции все разгуливают в десятых байтострингах.

Не знаю как для остальных людей, но лично для меня до сих пор остаётся загадкой, по какой причине детективное расследование по выуживанию виновника торжества из всей этой феерической кавалькады стрелочек и наименований пакетов остаётся рутинной операцией, возлагаемой на худенькие плечики обладателя худеньких ручек, в сотый раз набирающих cabal-dev install.

У меня такой ощущение, что я что-то пропускаю. Что в какой-то параллельной вселенной все нормальные люди нажимают кабан-инсталл и моментально видят строки «дружище, да у тебя же байтостринги десятые, а либмпд хочет девятые».

upd: Да, cabal - не пакетный менеджер, но тем не менее обладает информацией, из-за какого именно пакета происходит конфликт, но не обладает возможностью предоставить её вменяемым образом, как, например, это делает тот же emerge.

 ,

dmitry_malikov
()

avoidStruts не авойдит trayer

xprop trayer говорит примерно следующее:

XdndAware(ATOM) = BITMAP
_MOTIF_DRAG_RECEIVER_INFO(_MOTIF_DRAG_RECEIVER_INFO) = 0x6c, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0
WM_STATE(WM_STATE):
		window state: Normal
		icon window: 0x0
_NET_WM_STATE(ATOM) = _NET_WM_STATE_SKIP_PAGER, _NET_WM_STATE_SKIP_TASKBAR, _NET_WM_STATE_STICKY
_WIN_HINTS(CARDINAL) = 1
WM_HINTS(WM_HINTS):
		Client accepts input or input focus: True
		Initial state is Normal State.
		window id # of group leader: 0x1a00001
_MOTIF_WM_HINTS(_MOTIF_WM_HINTS) = 0x2, 0x0, 0x0, 0x0, 0x0
_NET_WM_SYNC_REQUEST_COUNTER(CARDINAL) = 27262981
_NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_DOCK
_NET_WM_USER_TIME_WINDOW(WINDOW): window id # 0x1a00004
WM_CLIENT_LEADER(WINDOW): window id # 0x1a00001
_NET_WM_PID(CARDINAL) = 19581
WM_LOCALE_NAME(STRING) = "en_US.utf8"
WM_CLIENT_MACHINE(STRING) = "LenovoT510"
WM_NORMAL_HINTS(WM_SIZE_HINTS):
		program specified location: 0, 0
		program specified minimum size: 100 by 20
		program specified maximum size: 100 by 20
		window gravity: NorthWest
WM_PROTOCOLS(ATOM): protocols  WM_DELETE_WINDOW, WM_TAKE_FOCUS, _NET_WM_PING, _NET_WM_SYNC_REQUEST
WM_CLASS(STRING) = "panel", "trayer"
WM_ICON_NAME(STRING) = "panel"
_NET_WM_ICON_NAME(UTF8_STRING) = "panel"
WM_NAME(STRING) = "panel"
_NET_WM_NAME(UTF8_STRING) = "panel"

Не совсем понятно отстутствие полей вида _NET_WM_STRUT.

Были бы _NET_WM_STRUT или _NET_WM_STRUT_PARTIAL, тогда avoidStruts понимал бы, что trayer нужно игнорировать.

Сперва грешил на xmonad-contrib-9999, но дело, видимо, не в нём. А в чём?

Для интересующихся, версия `trayer --version` == `trayer 1.0`.

 ,

dmitry_malikov
()

Раскуроченные зависимости кабало-пакетов

Требую показательный брифинг на тему кабала, кабал-дева и юзания ебилдов из haskell-overlay.

Вот, допустим, стандартная ситуация для среднего юзера вышеупомянутого оверлея.

$> cabal-dev install
Resolving dependencies...
cabal: Could not resolve dependencies:
trying: loh-0.0.0 (user goal)
trying: hslogger-1.2.0/installed-677... (dependency of loh-0.0.0)
trying: unordered-containers-0.2.2.0/installed-ae8... (dependency of
loh-0.0.0)
next goal: time (dependency of loh-0.0.0)
rejecting: time-1.4.0.1/installed-c2f... (conflict: unordered-containers =>
deepseq==1.3.0.1/installed-4c6..., time => deepseq==1.3.0.0/installed-c26...)
rejecting: time-1.4/installed-d61..., 1.4.0.1, 1.4, 1.3, 1.2.0.5, 1.2.0.4,
1.2.0.3, 1.2.0.2, 1.2.0.1, 1.2, 1.1.4, 1.1.3, 1.1.2.4, 1.1.2.3, 1.1.2.2,
1.1.2.1, 1.1.2.0, 1.0 (conflict: hslogger => time==1.4.0.1/installed-c2f...)

Почему-то deepseq вдруг стал 1.3.0.1, а зачем? Ах, точно же, это обычный дипсек, только подкостыленный для ghc-7.6.

Вопрос 1: почему пакетики для гхц-7.6 уже в оверлее, если самого гхц-7.6 ещё нет?

Ну ок, допустим я догадался, что дело в дипсеке, даунгрейднул его до 1.3.0.0, пересобрал 59 пакетов от него зависящих и вроде всё заработало.

Вопрос 2: а чего вдруг кабал-дев смотрит на глобальные пакеты, их версии и зависимости? Если я правильно понимаю суть кабал-дева, он должен быть наставить недостающих пакетиков в локальный энвайронмент и юзать их оттуда.

Уважаемые знатоки ( qnikst), расскажите, в чём вообще разница между кабалом и кабал-девом в случае использования пакетиков из оверлея?

Я бы ещё спросил, как сделать рабочее окружение вокруг, например, ghc-7.0.4 при политике удаления старых ебилдиков в оверлее, но это уже, наверное, перебор.

 ,

dmitry_malikov
()

gentoo screenshot contest 2012

http://sc.gentooligans.com/winners

Обидно, конечно, что в жюри оказались обыватели.

 

dmitry_malikov
()

Maybe значения в toJSON

Допустим, есть тип данных с опциональным полем:

data Test = Test Int (Maybe String)
  deriving (Eq, Read, Show)
Инстанс FromJSON'а вроде как очевиден:
instance FromJSON Test where
  parseJSON (Object o) = do
    n ← o .:  "int"
    s ← o .:? "str"
    return $ Test n s
  parseJSON  _         = empty
С инстансом ToJSON очевидности меньше, так как опционального аналога `.=` нет.
instance ToJSON Test where
  toJSON (Test n s) = object
    [ "int" .= n
    , "str" .= s
    ]
Жсонируем тестовое значение:
> encode $ Test 1 Nothing
Chunk "{\"str\":null,\"int\":1}" Empty
it :: BSC.ByteString
Куда нажать, чтобы получить:
> encode $ Test 1 Nothing
Chunk "{\"int\":1}" Empty
it :: BSC.ByteString
?

Ну и да, ответы вида

instance ToJSON Test where
  toJSON (Test n (Just s)) = object
    [ "int" .= n
    , "str" .= s
    ]
  toJSON (Test n Nothing) = object
    [ "int" .= n
    ]
сразу мимо.

 

dmitry_malikov
()

Добавление локального юзерского nix-пакета в общий список пакетов

Есть файл /etc/nixos/configuration.nix. В нём содержится список пакетов из channel'ов, которые будут поставлены при `nixos-rebuild switch'.

Как добавить свой пакет ~/packages/some.nix в этот список
?

 ,

dmitry_malikov
()

Добавление nixos в уже существующий grub.conf

Что делает nixos-install с уже существующим grub.conf'ом?

Имеется /boot/ раздел с grub'ом. Возможно ли каким-то указать в /etc/nixos/configuration.nix , чтобы nixos'овские записи не перезатёрли существующие там в настоящий момент?

Соответствуюших опций как-то совсем немного http://hydra.nixos.org/build/2800299/download/1/nixos/manual.html#ch-options . И поведение - создание нового grub.conf'а и/или работа со старым - совершенно не описано.

 ,

dmitry_malikov
()

wpa_supplicant не подключается к точке доступа

Есть точка доступа ACCESS_POINT_NAME, шифрование WPA-PSK.

название точки и пароль заменены умышленно.

Соответствующая секция /etc/wpa_supplicant/wpa_supplicant.conf:

network={
    auth_alg=OPEN
    priority=1
    mode=1
    ssid="ACCESS_POINT_NAME"
    key_mgmt=WPA-PSK
    psk="ACCESS_POINT_PWD"
}

При старте суппликанта:

#> wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf &
ioctl[SIOCSIWPMKSA]: Invalid argument
wlan0: Trying to associate with c8:6c:87:3f:7b:21 (SSID='ACCESS_POINT_NAME' freq=2462 MHz)
ioctl[SIOCSIWGENIE]: Operation not supported
wlan0: Association request to the driver failed
wlan0: Associated with c8:6c:87:3f:7b:21
wlan0: CTRL-EVENT-CONNECTED - Connection to c8:6c:87:3f:7b:21 completed (auth) [id=8 id_str=]

Подключение не происходит. Получение айпишника по `dhclient wlan0' не происходит тоже.

В то же время, работоспособность точки успешно проверена мобильным устройством.

Что означают эти ошибки и как чинить?

 

dmitry_malikov
()

pathogen не загружает плагины из ~/.vim/bundles

В ~/.vim/autoload/ лежит pathogen.vim версии 2.0.

2 скрипта спуленны через git submodule в ~/.vim/bundle:

$> ls ~/.vim/bundle/
ghcmod-vim  Gist.vim

В ~/.vimrc вызов pathogen'а:

filetype off
call pathogen#infect()
call pathogen#runtime_append_all_bundles()
filetype plugin indent on

В выводе :scriptnames есть ~/.vim/autoload/pathogen.vim. , но ни одного упоминания модулей из ~/.vim/bundle.

Вопрос: как узнать по какой причине pathogen не грузит скрипты

?

 ,

dmitry_malikov
()

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