LINUX.ORG.RU

Избранные сообщения funeral1988

Raspberry в качестве моста для wlan и ethernet

Форум — General

Имеется сеть 192.168.1.0 роутер 192.168.1.1 с dhcp Есть распберри с debian Есть сетевой принтер к которому нет возможности провести кабель от роутера

Задача с помошью raspberry протащить принтер и сделать возможность печати из подсети 192.168.1.0

Поставил bridge-utils настройки пробовал разные но не могу заставить работать

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.2.9
#network 192.168.2.0
netmask 255.255.255.0
broadcast 192.168.2.255
gateway 192.168.1.1

#allow-hotplug wlan0
auto wlan0
iface wlan0 inet manual
#address 192.168.1.118
#netmask 255.255.255.0
#gateway 192.168.1.1

auto br0
iface br0 inet dhcp
#iface br0 inet static

bridge_ports wlan0 eth0
#address 192.168.1.119
#netmask 255.255.255.0
#gateway 192.168.1.1

bridge_stp off
#bridge_fd 0
bridge_waitport 5


wpa-iface wlan0
wpa-bridge br0

wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

br0       Link encap:Ethernet  HWaddr b8:27:eb:fa:2a:71  
          inet addr:169.254.217.179  Bcast:169.254.255.255  Mask:255.255.0.0
          inet6 addr: fe80::a873:f735:b8d8:7c8e/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:580 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:202393 (197.6 KiB)

eth0      Link encap:Ethernet  HWaddr b8:27:eb:fa:2a:71  
          inet addr:192.168.2.9  Bcast:192.168.2.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:873 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:277289 (270.7 KiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:147 errors:0 dropped:0 overruns:0 frame:0
          TX packets:147 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1 
          RX bytes:12608 (12.3 KiB)  TX bytes:12608 (12.3 KiB)

wlan0     Link encap:Ethernet  HWaddr a0:f3:c1:0f:07:6a  
          inet addr:192.168.1.118  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:19522 errors:0 dropped:33 overruns:0 frame:0
          TX packets:598 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:4134143 (3.9 MiB)  TX bytes:243916 (238.1 KiB)




настройки принтера
ip 192.168.2.100
255.255.255.0

Как решить задачу, может обойтись iptables без bridge utils?

 , ,

Timuridze
()

А что вы думаете по этому поводу?

Форум — Development

https://github.com/nikitosios/Storage/tree/master/OOP/src

Тут есть реализация ООП на языке си. Да, немного костыльно. Мое мнение: я не использую ООП везде, где надо и не надо, поэтому такого ассортимента возможностей мне хватает. Да и большинству программ должно хватать (имхо, не бейте). Поэиому С++ - перегруженный бесполезный язык, ибо если у вас нормальная программа, то чистого Си будет достаточно, и работает на 5% быстрее, и компилируется быстрее. А если надо ООП, лямбды и прочие модные шняги, то С#, Java, Python к вашим услугам. Что вы думаете по поводу С++ и ООП в Си?

 , , ,

nikitosios20031
()

Учебник по геометрии под свободной лицензией

Новости — Open Source
Группа Open Source

Пользователем jemmybutton выложена оригинальная вёрстка учебника геометрии Оливера Бирна (на английском языке).

Оформление книги сделано в (La)TeX и доступно для повторного использования в производных работах. Все иллюстрации книги параметризованы и генерируются автоматически.

>>> Основная ссылка на журнал автора

 , , ,

psv1967
()

Написание свободной(Free as in Freedom) книги-самоучителя по программированию: планы, цели, задачи

Форум — Development

Итак, я решил написать(или как вариант, собрать из кусочков) книгу-самоучилель по программированию, в которой бы не было глупых и нелепых ограничений на распространение. Однако копилефт я все же считаю приемлемым в данном случае. Общественным достоянием это не будет т.к. вполне могут найтись желающие использовать результат в своих проприетарных книгах, а проприетарные книги — плохо. Лицензия самого текста книги-учебника будет или Creative Commons Attribution-ShareAlike (что позволит без каких-либо проблем переиспользовать текст из википедии) или что-то вроде GNU Free Documentation License (без неизменяемых разделов естественно).

Лицензии всяких примитивных программок, написанных мной лично, будут вообще выложены под общественным достоянием, WTFPL или аналогичной лицензией т.к. являются тривиальными. Примерно вот так. Если я буду использовать чужие исходные тексты, они будут как включения, лицензируемые отдельно от всего остального. Проблем тут быть не должно.

Теперь к теме того, на кого книга ориентирована, какие начальные знания предполагаются, чему книга будет учить, какой первый ЯП взять и каков будет авторский самысел: С этим моментом я пока что не определился окончательно, и тут есть что обсудить. В частности, я не вижу особого смысла объяснять какие-то базовые понятия комбинаторики, об этом можно доступным языком прочитать из школьных учебников. Системы счисления(СС), перевод из одной СС в другую - вот это еще можно. One's и two's complement представления знаковых чисел — про это тоже можно написать. Если же человек не понимает комбинаторику, он ее быстро поймет на примере кода, который будет достаточно наглядно это показывать, и который всенепременно будет.
Пока что в качестве первого языка я склоняюсь к Си, и тому есть причины. Все прочие распространенные языки (кроме ассемблера, хотя его трудно назвать распространенным) не настолько близки к аппаратному уровню. Про нужность понимания на низком уровне написано тут http://russian.joelonsoftware.com/Articles/BacktoBasics.html https://habrahabr.ru/company/piter/blog/271347/ , не вижу смысла повторяться. Приведу лишь цитату:

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

Притом еще один важный момент: Си будет изучаться параллельно с ассемблером. Если речь идет об изучении ассемблера, необходимо четко зафиксировать то, на какой архитектуре это все происходит и в какой ОС. Так вот, ОС будет GNU/Linux а архитектура x86-64. Будут постоянно проводиться параллели между тем, что из себя представляет код на Си в текстовом виде, и тем, в какой текст на ассемблере его превращает компилятор. В связи с этим, первым делом будет рассказано о goto и конструкции if(условие) goto метка;. Про конструкции вида

if(условие)
{
  что-то_делаем;
}
else
{
  что-то_другое_делаем;
}
Будет рассказано немного позже, притом это будет рассказано и словами, и через написание эквивалентного кода через if(условие) goto метка;. Циклы, for(){} while{}, do{}while(), конструкция switch-case и break continue внутри них будут так же объясняться через все тот же if(условие) goto метка; притом будет делаться явный акцент на том, что намного лучше использовать нормальные циклы, чем лепить всюду этот условный goto. Кроме того, будет так же рассказано про Labels as Values. Почему так важна эта странная штука, if(условие) goto метка;? Потому что она имеет наипрямейшее отношение к тому, как работают ЭВМ, а всякие циклы СКРЫВАЮТ это. Рекурсия в Си будет объясняться только после того, как будет объяснено, что такое стекфрейм и соглашения вызова, будет сказано про оптимизацию хвостовой рекурсии, и о проблеме забивания стека, если такая оптимизация не происходит, притом это будет наглядно показано в ассемблере. Учиться отлаживать код надо будет тоже «с пеленок», притом отлаживать и ассемблер, и всякие там Си. Будет и про асм-вставки в Си, clobber list. В качестве ассемблера будет рассматриваться GAS, а никакой не NASM т.к. GCC умеет выплевывать ассемблер именно в GAS синтаксисе. Насчет выбора Intel или AT&T синтаксиса - тут я склонюсь пожалуй к тому, что надо ЗНАТЬ И УМЕТЬ ПОНИМАТЬ ОБА. Кроме того, GAS давно уже умеет в оба синтаксиса, так что проблем с этим не будет. Единственная проблема с GAS в том, что это однопроходной ассемблер, так что можно освоить и какой-нибудь NASM, YASM.

Первые хеллоуворды будут написаны вообще в особом стиле, без использования printf() и вообще без библиотеки Си; Будут использованы куски на ассемблере, которые делают системный вызов write и read, и с ними можно(нужно) будет линковаться, чтоб что-то вывести на экран. Будет рассказано и про printf естественно, но только когда будет совершенно четко ясно, что такое вообще va_list. Будет куча отсылок к драфту стандарта Си (недрафт почему-то платный). Будет так же рассказано про устройство ОС. В конце скорее всего будет дано задание сделать свою игрушечную ОС так что предполагается что человек к тому моменту должен уже отлично понимать всякие там связные списки, графы, очереди, спинлоки-аллокаторы свои уметь делать на асме при желании. Алгоритмы сортировки, обхода графов, хеш-таблицы, все это будет объяснено на языке Си, и плюсов вообще касаться я не буду.

Насчет графики: работу с протоколом иксов тоже можно будет рассказать, обработку нажатий клавиши. Правда там надо дофига писать про кучу всего, например что есть сокеты, есть AF_LOCAL... Тогда это можно еще и сетевому программированию учить на каких-нибудь беркли-сокетах.

Кроме того, после моей книги предполагается, что человек должен уметь заниматься такими ненужными (в GNU/Linux) на первый взгляд вещами, как крякинг, реверсинг, исправление ошибок в бинарниках, не обладая исходным текстом. Восстановление логики работы программы по дизасму. Ну и программирование в машинных кодах (без ассемблера, одним HEX редактором).

Как-то уж слишком дофига, не находите? Может быть не надо так глубоко во все это нырять? Жду предложений и критики по поводу того, что нужно, а чего не нужно писать. Возможно что я слишком много хочу.

cast ASM be_nt_all mister_VA

UPD: Программирование и отладка на C/ASM - Первые программы. Знакомство с C и ассемблером. Компиляция, линковка, код возврата. Вывод текста.

 , , ,

SZT
()

Порекомендуйте МФУ до 200$+-N$

Форум — Linux-hardware

Нужен МФУ с поддержкой LAN или Wi-Fi, чтоб можно его было задействовать как сетевое устройство. Лазерное, т.к. будет работать редко, как думаю.
----------
Сабж куплен. Куплен сабж, указанный ниже, по причине скидки в Metro-CC, но то, что он работает в Линуксах, я знал и до этого.
Samsung Xpress M2070 без LAN/Wi-Fi. Подключен по USB, по сети печатает. Драйвер поставил проприетарный - Samsung-unified-driver-1.00.37

~ $ eix samsung
[I] net-print/samsung-unified-driver [1]
     Available versions:  (~)1.00.37^ms {cups network scanner}
     Installed versions:  1.00.37^ms(03:53:54 PM 10/24/2016)(cups network -scanner)
     Homepage:            http://www.samsung.com
     Description:         Samsung Unified Linux Driver for printers and MFDs

 , ,

Deleted
()

Утрамбованный Firefox

Галерея — Скриншоты

Недавно решил перейти с Chrome на Firefox. Поскольку экран ноутбука маленький, решил ужать его по вертикали, благо в отличие от хромого ничего гвоздями не прибито. И ужал: вместе с парой расширений заставил все нужные элементы отображаться на всего одной аккуратной панельке толщиной в ~40px. И при этом Kwin все равно рисует красивую рамочку, тени и подсветку.

Kubuntu 16.10, KDE 5.8.4, Plasma+qt+gtk: Breeze, kwin - Oxygen-qt5.

Ждем kde 5.9 с обещанным возвращением appmenu. А пока довольствуемся тем, что плазма уже не падает.

 , ,

Kor03d
()

True Python way

Форум — Development

Привет! Синтаксис и основы языка я знаю, вопрос вот в чем: как и что есть в мире питона для комфортной работы? Какие приняты стандарты? Например, использование pyvenv, pip и т.д

Что надо знать и какие приятные мелочи есть еще?

 

aarexer
()

Посоветуйте хороший плагин, для языка Си?

Форум — General

Здравствуйте! Я самостоятельно взялся овладеть языком Си, но каждый раз, собственноручно набирать весь код виме не очень так скать хорошо, можете посоветовать хороший плагин, похожие как снипеты. Есть конечно штатные Ctrl+{p,n}, но они малоэффективны.

 ,

xazihivale
()

LXQT + Kwin - нет Dark Breeze

Форум — Desktop

Накатил lxqt, впечатлившись новостью. Решил и openbox сменить на kwin. В lxqt appearance -> widget style по умолчанию 2 темы. Поставил дополнительно пакет systemsettings для настройки kwin и пакет breeze. В настройках появилась обычная тема бриз, а дарк - нет(( Заголовки окон так же как в светлой теме бриз. В настройках System Settings -> Window decorations, так же как в плазме, только тема Бриз общая. там за выбор тёмной темы отвечает Desktop Theme (kcm_desktoptheme), другой раздел. При выборе тёмной там, и декорации становятся тёмными. Как в lxqt норм поставить тёмный бриз?

А, и ещё - при уменьшении размера шрифта, толщина заголовка не уменьшается. Можно где-то поменять?

 ,

fehhner
()

Archlinux + bspwm v.2

Галерея — Скриншоты

Всем Привет!
Еще скрины тут. https://scrot.moe/album/Owv
А еще лучше посмотрите небольшой видосик. https://u.teknik.io/kQStE.mp4
И ещё один https://gfycat.com/BriefOilyCrustacean

 , , ,

stupid
()

С чего начать C++ разработчику под Android в нашем 2016 году?

Форум — Development

Пару лет назад накодил одно приложение на Java под андроид, с тех пор всё забыл. Возился с эклипсом и какой-то тулзой, уже не помню. Теперь хочу немного вернуться к этому, но уже на C++. Надо гуглить «NDK» вроде.

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

По поводу самой разработки: хочется, чтобы приложение запустилось с минимумом Java и потом ушло в плюсы, а там отрисовать интерфейс (OpenGL или какие-то примитивы) и жить до смерти приложения, работая с сетью и графикой.

 ,

hlamotron
()

Увеличить шрифт в grub2

Форум — General

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

 

KOT040188
()

Vscode only run program

Форум — Development

Имеется Microsoft Visual Studio Code + плагин для Go, как сделать запуск программы без дебага? Перепробовал уже всё, один фиг дебаг запускаться.

 , ,

AUX
()

Лаги при прокрутке страниц и не только

Форум — General

Приветствую.

При скроле страниц в браузерах такие дела появляются

https://drive.google.com/file/d/0B8SVNi-9Wh5RemVKcUhxYmFET3M/view?usp=sharing

Похоже на отсутствие вертикальной синхронизации, как в играх. Можно наблюдать примерно в одной части монитора и браузеров(вверху). Если окно виртуального терминала поместить в верхнюю часть монитора, то мигающий прямоугольник тоже имеет такую полоску разделения, как на скриншоте. В видеоплеере vlc была такая проблема на видео. Решилось переключением вывода видео на OpenGL GLX.

Видео nvidia 760 nouveau. После установки системы дрова не менял. Пытался ставить проприетарный драйвер из этой статьи. После выполнения yum install akmod-nvidia kernel-devel у меня не загружалась система и появлялось серое окно с надписью, типа: «не удалось загрузить дисплей и тд».

fedora 23

Спасибо.

 , ,

fnl-3356
()

json-c: JSON parsing

Форум — Development

Здравствуйте.

Есть JSON выхлоп с yahoo weather такого вида:

{
   "query": {
     "count": 1,
     "created": "2016-06-27T13:12:50Z",
     "lang": "en-US",
     "results": {
       "channel": {
         "units": {
           ...
         },
         ...
         "location": {
           "city": "City",
           "country": "Country",
           "region": "Region"
         },
         "wind": {
           ...
         },
         ...
         "item": {
           ...
           "condition": {
             "code": "28",
             "date": "Mon, 27 Jun 2016 03:00 PM EEST",
             "temp": "30",
             "text": "Mostly Cloudy"
           },
...

Мне нужны значения query->results->channel->location->city query->results->channel->item->condition->{temp, text}. Как это сделать более красиво, используя json-c библиотеку, нежели в этом говнокоде:

static void get_json_items(struct json_object *jobj, const char *key)
{
    struct json_object *tmp;
    struct json_object *location;
    struct json_object *condition;
    struct json_object *temp;
    struct json_object *text;
    
    int exists;

    /* enum json_type type; */

    exists = json_object_object_get_ex(jobj, key, &tmp);
    if (!exists) {
        printf("%s is not found in JSON\n", key);
        return;
    }
    exists = json_object_object_get_ex(tmp, "results", &tmp);
    if (!exists) {
        printf("\"results\" is not found\n");
        return;
    }
    exists = json_object_object_get_ex(tmp, "channel", &tmp);
    if (!exists) {
        printf("\"channel\" is not found\n");
        return;
    }
    exists = json_object_object_get_ex(tmp, "location", &location);
    if (!exists) {
        printf("\"location\" is not found\n");
        return;
    }

    exists = json_object_object_get_ex(location, "city", &location);
    if (!exists) {
        printf("\"city\" is not found\n");
        return;
    }
    
    exists = json_object_object_get_ex(tmp, "item", &tmp);
    if (!exists) {
        printf("\"item\" is not found\n");
        return;
    }

    exists = json_object_object_get_ex(tmp, "condition", &condition);
    if (!exists) {
        printf("\"condition\" is not found\n");
        return;
    }

    exists = json_object_object_get_ex(condition, "temp", &temp);
    if (!exists) {
        printf("\"temp\" is not found\n");
        return;
    }

    exists = json_object_object_get_ex(condition, "text", &text);
    if (!exists) {
        printf("\"text\" is not found\n");
        return;
    }

    
    printf("DBG >>>\n");
    /* printf("---\nlocation: %s\n---\n", json_object_to_json_string(location)); */
    /* printf("---\nitem: %s\n---\n", json_object_to_json_string(tmp)); */

    printf("city: %s\n",
           json_object_get_string(location)
           );

    printf("temp: %s\n",
           json_object_get_string(temp)
           );

    printf("text: %s\n",
           json_object_get_string(text)
           );
    
    printf("DBG <<<\n");

    
}

Вот сам выхлоп бинарника:

gcc -Wall -Wextra -Wpedantic -std=c99 -I/usr/include/json-c/ -g3 -lcurl -ljson-c foo.c -o foo && ./foo
foo.c: In function 'main':
foo.c:218:25: warning: unused variable 'tmp' [-Wunused-variable]
     struct json_object *tmp;
                         ^~~
DBG >>>
city: City
temp: 23
text: Cloudy
DBG <<<

 ,

ubik
()

Где брать образ fedora rawhide?

Форум — Linux-install

Раньше все последние образы можно было скачать с главной fedora release engineering dashboard, а сейчас его дизайн изменили и я вообще не могу ничего найти. Нашел только это, но там только информация и это netinst, а не полный.

 , ,

MLP_Fan
()

Годных js-библиотек тред

Форум — Web-development

Осваиваю разработку веб-морд, открыл для себя jQuery, underscore.js и date.js. Что ещё посмотреть полезное/универсальное? Must have, одним словом.

 ,

ollowtf
()

Светлый Arch

Галерея — Скриншоты

Arch на моем Asus K53TA.
Уже довольно давно сижу в таком оформлении - в целом все устраивает: вечером глаза не выжигает, работать комфортно, да и темное оформление не люблю.
Консольным браузером не пользуюсь, просто запустил чтобы показать ШГ.

 ,

man_of_motley
()

Dell XPS 2015

Галерея — Скриншоты

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

Признаться честно, не знал, что заскриншотить. Остановился на штатном инструметарии повседневного использования - саблайм с терминалом. Как видно, никаких проблем с HiDPI не наблюдается. С хромом ровно также - все хорошо. Вообще, весь GTK3 софт никаких затруднений с масштабом не испытавает, что не сказать про GTK2. Gimp и Inkscape - тулбарные иконки мизерные. Хотя, если принаровиться, то пользоваться можно. Это, что касается адаптации к хайдипиаю современного софта.

Общее впечатление о железяке... Абассаца как я жил раньше без оной :). Серьезно. Невероятно крутой экран. «Я потекла с первого взгляда». Батарею реально держит 6 часов при моем девелоперском режиме эксплуатации с серфингом через usb свисток, который в сапсане постоянно теряет связи и пытается ее восстановить. Клавиатура не прогибается. Корпус не гнется и весьма монолитный по ощущениям.

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

Мой ThinkPad x201i уходит на покой после 5 лет службы мне верой и правдой.

Если еще какие вопросы имеются, задавайте. Может кому чего еще заскриншотить :).

PS: в качестве бонуса к посту. на фоне этого приобретения накачал пачку хайрезовых фоточек и засандалил себе динамические обои https://www.dropbox.com/sh/sl2ywpd6q8a00mz/AABjdfBjhutzf_9DBC46iwNaa?dl=0. теперь каждые 10 минут созерцаю красоту. причем не только как фон рабочего стола, но и скринлока. пользуйте наздоровье :)

 , , ,

Deleted
()

Ёкарный Бабай

Галерея — Скриншоты

GTK2/3: Iris (Recolored)
Иконки: Numix Circle feat. Flattr (Recolored)
Обоина
Compiz, Docky
Screenfetch врёт и всё такое.

Прошу, сообщите, если с таким заголовком нас не пропустят.

 

zezic
()