LINUX.ORG.RU

Сообщения Gregon

 

Вспомнить фильм

В девяностых давно когда-то видел по ТВ трешак. Почти ничего не помню, только что там был робот, который называл главную героиню «кожаная задница». Еще там кажется была сцена «круши-ломай», где героиня разбивает стеклянную крышку и съедает кусок мозгов робота (хз другого или нет), похожих на обычный фарш.

 

Gregon ()

RollerCoaster Tycoon, слишком мелко все

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

В VirtualBox под виндой как ни крути, в фулскрине, в seamles mode, все равно показывает максимум только 1024*768.

Как увеличить/сделать норм фулскрин, чтобы можно было играть на большом дисплее?

 

Gregon ()

Использование Forth

Тут периодически интересуются, где сейчас язык Форт используют. Так вот, в посадочном модуле Филы почти вся прошивка на нем написана.

https://www.reddit.com/r/IAmA/comments/2mw5ko/we_are_working_on_flight_contro...

 

Gregon ()

Ищу книгу про Росатого

Пролюбил файл. Книга была про фирмы, инфраструктуру и их историю, все что связано с атомом в России. Название к сожалению не помню, почему-то кажется что как-то похоже на «Архипелаг», только не гулаг. «Архипелаг РосАтом» не нагуглился.

 

Gregon ()

Пара вопросов

По разным яп есть много шпаргалок, чтобы быстро ознакомиться. Ищу нечто вроде шпаргалки/гайда по интерактивным веб-интерфейсам. Потому что нуб в этой области и вообще в растерянности.

tl, dr: как правильно готовить эти ваши аяксы?

Есть html, я с ним уверенно знаком и могу наборосать страницу. Но например ввод timedate не работает практически ни в одном браузере. ОК, ищу заглушку на js. Нахожу либо вырвиглазные поделия, либо jquery-ui. Но в последнем только дата, без времени. Backend у меня Django. В результате я хз как правильно подружить ужа с ежом. Самый простой вариант - textinput вида dd.mm.yyyy и парсить. Противно, потому что я не первый, кому нужно решить эту задачу.

Далее, just for fun хочу написать свой single user tt-rss на bottle.py, в очень упрощенном виде. Хочется интерактива, чтобы по клику в списке заголовков раскрывался текст новости, шорткаты, автоподгрузка списка, скрытие прочитанного. Что прочитать, чтобы знать как начать решать задачу, какими инструментами и что гуглить?

Edit: js почти не знаю и не особо есть желание его знать, но видимо придется.

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

Edit-3: ок, судя по исходникам tt-rss, километры js все же нужны, чтобы оно фурычило.

 

Gregon ()

GUI: сложный виджет

http://global.libreoffice.org/assets/Uploads/EN-Project_images/4.0NewFeatures...

Планирую написать софтину, нужны будут вот такие вот inline comments. На Qt такое проще всего реализовать или есть варианты? Хз с какой стороны подступиться. Рисовать поверх QTextEdit, делать свой виджет? Qt еще не шупал, пока что игрался только с GTK и tkinter.

 ,

Gregon ()

Клавиатура без раскраски

Присматриваю себе механическую das keyboard. Ревестирую мнения, какой вариант брать, с буквами или blank? Привык к немецкой раскладке, но печать скобочек на ней не очень удобная. Слышал, что английская для программистов рулит, но не пробовал. Рускую раскладку знаю наизусть, печатаю без наклеек, но только глядя на клаву, не вслепую. У кого есть опыт работы с blank клавой, долго привыкать?

Какой энтер лучше, двустрочный или однострочный? US в одну строку.

 

Gregon ()

И снова про static linking

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

Статически слинкованые дистры вообще существуют? Никто не пробовал так LFS собрать? Где бы скачать life CD с таким чудом, пощупать.

Из того, что нашел сам. stali — концепт. Bifrost — требуется немного магии и чистая флешка, иксов нет, только консоль, только минимализм. Sabotage — конструктор, нужно компилять.

Перемещено mono из talks

 

Gregon ()

Python, Jinja2, nested for

Что-то туплю. Есть 3 списка, в каждом 2 элемента. Нужно построить таблицу, 2 строки, 3 колонки. Циклы итерируются не 2 раза, а 6.

{% for date in date_list %}
    {% for name in name_list %}
        {% for theme in theme_list %}
            <tr><td>{{ date }}</td><td>{{ name }}</td><td>{{ theme }}</td></tr>
        {% endfor %}
    {% endfor %}
{% endfor %}

 

Gregon ()

Flask, настройки

Не совсем веб, скорее python. Есть проект на Flask, файл настроек config.py со всякими там DEBUG = True. Это штатный способ хранения настроек.

А как лучше всего их изменять? При первом запуске сайта его нужно настроить и сохранить изменения (инициализировать DB итд). Самый простой способ - смотреть, лежит ли в корне пустой файл firstrun и после настройки стирать его. Но это не по фен-шую, диском шуршать. Еще есть configparser, но он для конфигов совсем другого формата, придется кое-что переписать. Поэтому вопрос, чем быстро и просто менять настройки в py-файлах? Парсить регулярками лень, вдруг есть какая-то библиотека на этот случай.

 , ,

Gregon ()

Latex и одна фигурная скобка справа

Глядя на старые записи (ручкой по бумаге) я заметил, что регулярно требуется следующая конструкция: несколько строк текста или формул, справа одна } (aka brace) и за ней пояснение.

Какой самый правильный способ сделать такую конструкцию? Нужно чтобы это работало с формулами и текстом (включая кириллицу) и скобка автоматически меняла размер в зависимости от количества строк.

 

Gregon ()

Cairo, нельзя выбрать текст в ps

Программа рендерит ps и pdf. В pdf текст выбрать и скопировать можно, в ps почему-то нет. Внутри видно, что текст растеризуется и ниже растра еще раз пишется. Просматриваю файлы в Evince. Как заставить cairo не растеризовать текст?

// gcc -Wall -o cairo_print cairo_print.c `pkg-config --cflags --libs cairo`

#include <stdio.h>
#include <cairo.h>
#include <cairo-ps.h>
#include <cairo-pdf.h>

// A4 width, height in points, from GhostView manual:
// http://www.gnu.org/software/gv/manual/html_node/Paper-Keywords-and-paper-size-in-points.html
#define WIDTH  595  
#define HEIGHT 842  

void draw(cairo_t *context, char** argv) {
    cairo_select_font_face(context, "Liberation Serif", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL);
    cairo_set_font_size(context, 30);
    cairo_move_to(context, WIDTH/2, HEIGHT/2);
    cairo_show_text(context, argv[1]);
}

void end(cairo_surface_t* surface, cairo_t *context) {
    cairo_show_page(context);
    cairo_destroy(context);
    cairo_surface_flush(surface);
    cairo_surface_destroy(surface);
}

int main(int argc, char** argv) {
    if (argc!= 2){
        fprintf (stderr, "usage: %s word\n", argv[0]);
        return 1;
    }

    cairo_surface_t* surface;
    cairo_t *context;

    surface = cairo_ps_surface_create("out.ps", WIDTH, HEIGHT);
    context = cairo_create(surface);
    draw(context, argv);
    end(surface, context);

    surface = cairo_pdf_surface_create("out.pdf", WIDTH, HEIGHT);
    context = cairo_create(surface);
    draw(context, argv);
    end(surface, context);

    return 0;
}

 ,

Gregon ()

Как делается рендеринг текста?

Как именно браузеры, pdf-читалки и прочее рендерят и отображают сложный текст с картинками и формулами? Они ведь не попиксельно все рисуют.

 ,

Gregon ()

Странно

duckduckgo.com, ищем «функция первого класса», первый результат похож на Википедию, но попадаем на http://pp.scr.kz/index.php/http://ru.wikipedia.org/wiki/Функции_первого_класса. http://pp.scr.kz/ хостится на Digital Ocean, владелец домена некий http://hh.ua/vacancy/10909420 Горбунов. Правда в whois другая улица указана.

WTF, зачем он так делает и как он попал на первое место выдачи?

 

Gregon ()

Действительно портабельный графический тулкит

Есть Qt, в котором есть все, в том числе базы данных. Есть GTK+ с многоэтажной архитектурой. К этим двум тулкитам есть биндинги для разных ЯП разной степени глючности и документированности. Есть и другие тулкиты, некоторые из них даже с биндингами.

А есть ли такой тулкит, к которому бы не требовался биндинг? Не веб-интерфейс. Просто чтобы программа на любом ЯП могла рисовать GUI через IPC, например сокеты. Не протокол иксов, а высокоуровневее. Есть такое?

 

Gregon ()

Переход на Jabber?

Меня достали глюки скайпа, когда сообщение пол дня не приходит с мобильника на мобильник.

Кто что посоветует? Нужно следующее:

1. Открытый клиент под андроид, линь и винду
2. Поддержка под всеми 3 платформами передачи файлов, аудио и видео звонков. На крайняк можно без видео.
3. Удобное шифрование end-to-end под все платформы (включая передачу файлов). В идеале чтобы достаточно было по секурному каналу передать пасфразу.

 , ,

Gregon ()

Dialog core dump

Падает где-то в недрах libncursesw. Ось бубунта 12.10. Пример взят из докуметации dialog. Вариант с пустым msgbox вставил в процессе экспериментов. Программа не падает, если запускать с tty1. Но благополучно падает, если в диалоге вместо enter нажать стрелку курсора.

#include <math.h>
#include <dialog.h>

int main(void) {
    int status;
    init_dialog(stdin, stdout);
    /*status = dialog_yesno("Hello, in dialog-format", "Hello World!", 0, 0);*/
    status = dialog_msgbox("", "", 0, 0, 1);
    end_dialog();
    return status;
}
CC       = gcc
CFLAGS   = -W -Wall -Wextra -pedantic -g -fomit-frame-pointer
LDLIBS   = -ldialog -lncurses -lncursesw -lm
RM       = rm -f

build : linstall.o
	$(CC) $(CFLAGS) -o linstall linstall.o $(LDLIBS)

linstall.o : linstall.c
	$(CC) $(CFLAGS) -c linstall.c

clean :
	$(RM) *.o

dist-clean: clean
	$(RM) linstall

P.S.: я догадался поставить debugging symbols. Вот что пишет:

Program received signal SIGSEGV, Segmentation fault.
cannot_delete (win=...) at /build/buildd/ncurses-5.9/ncurses/base/lib_delwin.c:59
59    /build/buildd/ncurses-5.9/ncurses/base/lib_delwin.c: No such file or directory.

 ,

Gregon ()

Awesome, не запускаются приложения

Впервые осваиваю тайловый wm. И вот какая штука. Поставил ubuntu 14.04 beta2 server, минимальная установка. Вручную поставил xinit и awesome. Скопировал из etc конфиг, как сказано в туториале. Запускаю startx, awesome работает. Но любая попытка запустить в нем программу не срабатывает. Например mod4+enter приводит к тому, что в первый раз курсор мыши превращается в часы, потом вообще никакой реакции. В логах смотрел, там пусто.

Как чинить?

 

Gregon ()

Bottle + Apache = Deploy?

Как задеплоить на Debian?

Поставил libapache2-mod-wsgi-py3. Написал собственно сайт + wsgi-скрипт и положил в www. Написал конфиг апача. Сколько не бился, показывает просто список файлов, в логах ошибок нет. Следовал вот этому http://bottlepy.org/docs/dev/deployment.html и похожим гайдам.

Структура следующая.

blog.py - пачка @route + пара функций, run убран.

blog.wsgi:

import sys, os, bottle

sys.path = ['/var/www/blog/'] + sys.path
os.chdir(os.path.dirname(__file__))

import blog # This loads your application

application = bottle.default_app()

Всё это добро лежит в /var/www/blog.

Конфиг апача. Емнип ничего в нем не трогал, только в sites-avaliable добавил с симлинком в sites-enabled файл blog:

<VirtualHost *>
        ServerName myveryownserver.com/blog

        WSGIDaemonProcess blog user=www-data group=www-data processes=1 threads=5
        WSGIScriptAlias / /var/www/blog/blog.wsgi

        <Directory /var/www/blog>
                WSGIProcessGroup blog
                WSGIApplicationGroup %{GLOBAL}
                Order deny,allow
                Allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel debug

        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

error.log апача:

[Fri Mar 07 16:02:58 2014] [warn] mod_wsgi: Compiled for Python/3.2.2rc1.
[Fri Mar 07 16:02:58 2014] [warn] mod_wsgi: Runtime using Python/3.2.3.
[Fri Mar 07 16:02:58 2014] [notice] Apache/2.2.22 (Debian) mod_wsgi/3.3 Python/3.2.3 configured -- resuming normal operations
[Fri Mar 07 16:02:58 2014] [info] mod_wsgi (pid=12474): Attach interpreter ''.

 ,

Gregon ()

Portal 2 beta

Появился в списке линукс-игр. Качаю пока что.

Это значит что скоро появится еще пара годных вещей, например Stanley Parable.

 

Gregon ()

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