LINUX.ORG.RU

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

nginx и регистр доменного имени

Форум — Admin

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

<?php
echo $_SERVER['HTTP_HOST'];
?>

n@MacBookProX:~$ curl 'http://domain.ru/1.php'
domain.ru
n@MacBookProX:~$ curl 'http://dOmAiN.rU/1.php'
dOmAiN.rU

nginx -v
nginx version: nginx/1.10.0 (Ubuntu)

Однако https://tools.ietf.org/html/rfc4343 говорит 'Domain Name System (DNS) names are «case insensitive».'

И что это за треш?

 ,

xtraeft
()

Кто нибуть вкурсе откудова на современных ядрах getppid() вытягивает ppid?

Форум — Development

Я попробовал task->real_parent->pid vs task->real_parent->tgid. В обеих случаях имеел левые данные.

Если кто уже доковырял до истины - буду рад узнать.

 getppid, ppid

cvv
()

Gnome 3.22 на Debian 9

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

Прошло некоторое время с моего первого скриншота Debian 9.

С тех пор немного изменилось. Я снес Numix Circle и поставил La Capitaine.

Еще наткнулся на интересную тему для Firefox ESR, которая отлично смотрится с HTitle.

Скриншоты:

>>> Просмотр (1440x900, 197 Kb)

 , ,

Deleted
()

Fedora 25. Оно работает.

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

Честно говоря опасался свежего релиза ибо от перехода на wayland можно было ожидать кучи косяков, но тяга к приключениям оказалась сильнее... К счастью разрабы предусмотрели и запасной вариант. Свежий блоб nvidia 375.20 встал как родной, а сессия при этом автоматом переключилась на x11 ибо nvidia c wayland пока нифига не дружат. Этот факт совсем не расстраивает ибо всё и так отлично работает. Темы оформления, как оказалось, нынче кастомизируются по-модному через препроцессор sass, что логично и удобно, вобщем я сгенерировал gtk+gnome-shell в нужных тонах на базе темы Zukitre. Gnome-shell 3.22 и без того прекрасный стал ещё прекраснее ибо расширения теперь не зависят от версии щели. Репы rfremix(спасибо причастным) и rpmfusion со всеми их полезными ништяками готовы к использованию. Короче говоря релиз Fedora 25 - approved!

Окна приложений

Щель overview

>>> Просмотр (2560x1440, 2310 Kb)

 , ,

enso
()

Fedora 25 Gnome 3.22

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

Скриншоты:

Система:

  • Distr: Fedora 25
  • DE: Gnome 3.22
  • WM: Gnome Shell 3.22
  • GTK Theme: Flat Plat Blue
  • Gnome Shell Theme: Ciliora Secunda
  • Icons: Paper(Folders) + La Capitaine(Apps)
  • Fonts: Cantarell 11
  • Video: Gnome MPV
  • Audio: Cmus
  • IB: Firefox

>>> Просмотр (1920x1080, 254 Kb)

 , ,

ilipnitsky
()

fullscreen wm

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

На скриншоте CRUX c самописным wm на основе wmutils, который умеет только показывать окна на полный экран. Сверху dmenu для переключения между окнами. Обычно другие окна это страницы vimb. В качестве терминала st+tmux, запущены vifm, vim, fzf. Панели нет, вместо нее статусбар tmux'а. Шрифты: iosevka, M+.

>>> Просмотр (1920x1080, 281 Kb)

 , ,

kazufukurou
()

Ищу проекты на C/C++ с определённым форматированием

Форум — Development

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

if (shortcondition) {
    some_code(1);
    some_code(2);
}

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

if (longcondition + 1 + 2 + 3 +
    continuation + 4 + 5 + 6) {
    some_code(1);
    some_code(2);
}

Одно из решений, которое мне понравилось — переносить открывающую скобку на новую строку:

if (longcondition + 1 + 2 + 3 +
    continuation + 4 + 5 + 6)
{
    some_code(1);
    some_code(2);
}

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

Теперь собственно, проблема. Мне нужно найти достаточного размера открытые проекты (несколько десятков разработчиков), в которых используется такой стиль. У проекта должен быть документ с описанием стиля кодирования.

(Найти такой проект — одно из условий, которое желательно выполнить, чтобы включить новую опцию в clang-format.)

 , , ,

i-rinat
()

Получить значение поля структуры

Форум — Development

Задача такая - есть описание поля структуры в формате - стартовый бит (может быть не кратным 8), длинна в битах (1..64), знаковость, LSB или MSB. Надо получить значение. Предполагается, что структура упакованная и может содержать битовые поля. Ну и чтобы было интереснее все это должно работать очень быстро и на процессорах как LSB так и MSB. Arm. Может есть какой-то правильный способ?

 ,

vromanov
()

Многомерные массивы и указатели в ANSI C

Форум — Development

Вот с тем как использовать указатель на одномерный массив в функции понятно, но проблема возникает, если работа идет с, например, двумерными массивами. Если у функции формальные параметры описать как массивы, то все вполне работает, а,вот, описать, используя синтаксис именно как указателей не получается. Пример:

#include<stdio.h>
#define COLS 4 
void print_array(int arr[][COLS], int column, int row);
int main()
{
	int arr[4][4] = { {0,1,2,3},{0,1,2,8} };
	print_array(arr, 2, 4);
	print_array2(arr, 2, 4);
	return 0;

}
void print_array(int   arr [][COLS], int column, int row)
{
	for (int i = 0; i < column; i++)
	{
		printf("\n");
		for (int j = 0; j < row; j++)
		{
			printf("%d",arr[i][j]);
		}

		
	}
}
Как написать функцию print_array, но с параметрами-указателями в явном виде?

 

pylin
()

Тулчайн CMake

Форум — Development

Хочу попробовать использовать CMake для сборки прошивок для микроконтроллеров. Разумеется, для этого требуется другой тулчайн (arm-none-eabi) вместо системного. Как я понимаю, есть два варианта:

1) Тупой. Сделать SET(CMAKE_C_COMPILER «arm-none-eabi») внутри CMakeLists.txt проекта.

2) Умный. Сделать специальный файлик тулчайна, где прописать все необходимые опции. А затем подсунуть его в переменную CMAKE_TOOLCHAIN_FILE.

Проблема в том, что второй вариант рекомендуют делать с помощью опций запуска CMake. Типа cmake -DCMAKE_TOOLCHAIN_FILE=...

Однако в случае с прошивкой для микроконтроллера возможность лёгкого выбора целевой платформы не имеет смысла, так как весь код всё равно заточен под конкретный МК. Более того, попытка компиляции с нативным тулчайном гарантированно обломается. Соответственно, хотелось бы как-нибудь прописать тулчайн прямо внутри CMakeLists.txt, а не указывать его явно. Однако SET(CMAKE_TOOLCHAIN_FILE ...) не срабатывает. Вероятно, чтение этой переменной происходит раньше, чем исполнение команд из файла проекта.

Что делать? Как правильно сменить тулчайн и при этом по возможности как-то жёстко это зафиксировать, а не указывать в опциях командной строки при запуске CMake?

 , ,

KivApple
()

А что, на 64-х битной архитектуре int остался 32-х битным?

Форум — Development

http://alexanius-blog.blogspot.co.ke/2015/12/c.html#more

Говорят что для языка Си int остался 32-х битным в gcc.

Это правда?

 

Xintrea
()

Считаю, что правильное распределение пространства на экране ноутбука - это у меня

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

Моя необновленная Федора на ноутбуке TP 450s. Самое лучшее время использования - первые несколько месяцев после прекращения поддержки дистрибутива. Снимаю сливки :) Никаких обновлений, никаких тревог.

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

Основная концепция, в порядке важности для меня, и просто тезисы:

  • Не люблю дрочить на кастомизацию, но мейнстримовые тенденции вынуждают
  • Вертикальная панель, привычно, справа. Пространство по вертикали очень ценно
  • Убираем заголовки окон. Зачем они нужны, для меня загадка. В Xfce - это штатная фича в настройках. Пространство по вертикали очень ценно
  • Всегда максимизирую окна Alt+F10, не понимаю, для чего нужны выглядывающие сзади окна или, упаси Патрик, обои, если они не нужны :) Если нужно два окна рядом для чего-то - в Xfce работает Ctrl+Shift+{Left,Right,Up,Down} для такого простого тайлинга
  • Скажем «нет» меню, куче ярлыков запуска. Использую Synapse для запуска приложений и открытия частоиспользуемых документов. Super+Space - появляется это синенькое окно для ввода букв.

    По какой-то причине, Synapse иногда не стартует или падает в процессе, поэтому юзаю пару основных ярлыков. Только сейчас, задумался, почему кнопки Синапса среди них нет :) Ну, application finder хватает в этом случае, хоть он и доступен по Alt+F2, но в моменты ночного кретинизма «Ааа, с какого черта Super+Space не работает!» проще тыкнуть в кнопку с лупой или терминал.

  • Цвет панели темный, сливается с рамкой экрана, не отвлекает
  • Цвет основного интерфейса должен быть светлый, в отличие от панели. Сейчас - серый, потому что трудно было подобрать другой, по какой-то причине. Обычно стараюсь немного зеленоты.
  • Затюненный IceCat и почти дефолтный firefox для отображения в нем того, что не хочет работать в icecat.
  • Очень редко пользуюсь несколькими рабочими столами
  • Иногда вижу сам рабочий стол. Ужасаюсь обоям и каким-то бессмысленным значкам на нем. Но т.к. это обычно продолжается 5 секунд, руки сменить обои и удалить значки не доходят
  • Использовал бы Гном3, если бы в нем можно было сделать вертикальную панель, и нормальный трей, стабильно отображающий значки (а больше от него ничего и не надо).
  • Шрифты, на мой взгляд, с минимальным Г. Сильно не заморачивался, куча выбранных рецептов висит в TODO, но пока и так сойдет. Названия не помню. Для кода и терминала - PragmataPro. Один раз приструнил совесть, и больше нет проблем с моноширинным шрифтом у меня.

Нахожусь в перманентном поиске и в пассивной настройке темы для GUI, с контролами, похожими на win2k. Что бы было единообразно, контрастно, с явным отображением фокуса на контроле. Но настраивать это очень скучно для меня, а готового пока нет. Mist почему-то не завелся нормально, были косяки с «белым» шрифтом на «белом» фоне.

Это скриншот не с рабочего времени. Тогда, во-первых, времени на скриншоты обычно нет. Во-вторых, пока у меня отпуск, совсем не хочется о работе :)

Другой скриншот: http://i.imgur.com/ukBgus6.png (убедитесь в 100% масштабировании, а то я сам ужаснулся сначала. Ну, кого-то это не убедит :)

>>> Просмотр (1920x1080, 191 Kb)

 ,

Deleted
()

[Psycho] ЛОР опасен для здоровья

Форум — Talks

Мужики, я наконец-то свободен! По-настоящему! Давно не было такого хорошего чувства! Итак, обо всем по порядку, и если вы хотите душевного спокойствия и равновесия - следуйте за мной.

Как я писал пару недель назад, я планировал сходить на прием к психологу. Собственно, я туда и сходил. Прием проходил достаточно интересно: сперва я рассказал о том, что меня беспокоит, потом мне задавали уточняющие вопросы о моем поведение в различных ситуациях, образе жизни и тому подобное. После того, я рассказал, что почти каждый день посещаю ЛОР, он спросил меня, что это за фигня. Я показал, он зашел сюда на ноуте и пробежался по первой же новости на главное. Потом он почитал мои последние посты, спрашивал когда я пишу это, типа мои ощущения, мысли, зачем я вообще сюда захожу и все в таком духе.

Потом спрашивал дурацкие вопросы вроде того, кем бы из животных я хотел бы родиться, просил нарисовать разные картинки и так далее. Потом опять спросил, сколько времени я провожу на ЛОРе. Я сказал, что по-разному - могу на пару минут зайти, могу дольше - и показал ему тот тред на 40 с лишним страниц. Видно, этот тред его в конец удивил. Потом мы опять беседовали о моем состоянии и моих действиях по жизни в последнее время вообще.

Все заняло почти 2 часа. В конце он сказал мне, что день ему нужно немного обдумать, получше посмотреть на мои местные высказывания, и он еще потом побеседует со мной и посоветует, что мне следует изменить, чтобы стало легче. На следующий день мы опять встретились. Он сказал, что у меня наблюдается повышенная агрессивность, есть некоторые проблемы с личностной самооценкой и самоконтролем, периодическая зацикленность на определенных вещах, примерно в таком духе, ну и сказал как это по-медицински называется (не шизофрения это, но если забросить все и не начать работать над собой - то есть вероятность, что проявится что-то подобное). И(!), что самое главное, ЛОР способен это дело усугублять своей пагубной атмосферой, манерой общения и, собственно, собравшимся здесь контингентом.

В общем, он предложил мне понаблюдаться (заодно и немного привести себя в норму) стационарно. Типа если я за это время пойму, в какую сторону мне надо двигаться - то дальше все будет нормально. Договорились, что я две недели буду на стационаре. Я подумал - а почему бы и нет? Как раз с прошлого года не догулял в отпуске две недели - почему бы и не отдохнуть?

Итак, две недели я провел в психиатрической больнице №6. Была одиночная небольшая палата, ящика нету, инета нету (попросил специально взять туда простой телефон, чтобы максимально исключить на две недели влияние внешнего мира). Чем там заниматься? Да много чем! Читать книги и журналы, есть качалка нормальная, много играл в настольный теннис, в шахматы с соседями можно поиграть, выспаться хорошо, отдохнуть от работы и городской суеты вообще. Еще мы делали там всякую мелкую работу типа фасовки всяких деталей, упаковки - по 2 часа в день. Никто не достает вообще. Полный отдых! Кормят нормально, наесться можно без проблем. Комнатуха как комнатуха, шмоток сказали брать минимум.

Вот так примерно и прошло две недели. После чего я оттуда вышел. По результатам беседы уже после моего выхода оттуда он сказал мне, что, в принципе, со здоровьем у меня нормально, но если я буду больше уделять себе времени, то у меня будет полный контроль над своим душевным состоянием, причем получше, чем у многих других людей, которые считают себя здоровыми. Сказал, что я правильно сделал, пойдя на такой трудный шаг. Всякую химию мне не пичкали - только обычное успокаивающее на ночь (потому что привык по ночам не спать до 2-3 часов ночи, в том числе и сидя на ЛОРе, что он тоже отметил), иначе организм по привычке не переключится на нормальный режим.

А теперь - что мне посоветовали для дальнейшего улучшения своего состояния. Во-первых, стараться меньше проявлять агрессии в повседневной жизни - ни к чему хорошему это не ведет, надо стараться контролировать свои эмоции. Ну там пару успокаивающих методик рассказал. Во-вторых, сказал меньше времени проводить на ЛОРе, но уж если я сюда захожу, то стараться не ввязываться в споры и лучше просто читать то, что пишут другие, осознать свое психологическое преимущество над спорящими - типа это поможет укрепить свое состояние внутреннее. В-третьих, раньше ложиться спать - хотя бы до 00, но в идеале - до 23. Также стараться больше общаться с людьми на позитивные темы, стараться больше получать позитивные эмоции и меньше зацикливаться на теме линакса вообще. Порекомендовал при первой возможности в поход какой-нибудь с друзьями сходить, меньше времени на работе проводить. Примерно в таком духе.

Итак, какие можно сделать выводы? В наше непростое время нужно следить за своим психологическим состоянием, даже если вы считаете себя полностью здоровым. ЛОР представляет собой реальную опасность для душевного равновесия, если проводить на нем слишком много времени, может привести к зацикливанию на определенных вещах и мешает развитию личности в определенных ситуациях. И нет ничего такого в том, чтобы сходить к психологу. Так что меньше времени проводите на ЛОРе и нервы будут крепче. Вот такой вот интересный опыт.

Сейчас я чувствую себя просто обалденно - на душе спокойно, вижу новые цели в жизни, хочется больше к чему-то стремиться, достигать новых высот. Чувствую внутреннюю свободу, чувствую, что готов теперь на многое. И с новой недели я буду стремиться к достижению новых целей, я расставил новые приоритеты. Я чувствую, что готов измениться в некоторых вещах, и это сделает меня лучше. Я способен на большее, и я готов это доказать, прежде всего себе.

MuZHiK-2
()

pointer on the stack

Форум — Development

Всем привет. Есть такой кусок Сишного кода:

#include <stdio.h>

void reset(int *x)
{
    x=0;
}

int main()
{
    int x=1;
    reset(&x);
    printf("x is now 0.\n");
    return 0;
}

на первом фрейме получаю такое:

   0x0000000000400539 <+0>:	push   %rbp
   0x000000000040053a <+1>:	mov    %rsp,%rbp
   0x000000000040053d <+4>:	sub    $0x10,%rsp
=> 0x0000000000400541 <+8>:	movl   $0x1,-0x4(%rbp)
   0x0000000000400548 <+15>:	lea    -0x4(%rbp),%rax
   0x000000000040054c <+19>:	mov    %rax,%rdi
   0x000000000040054f <+22>:	callq  0x400526 <reset>

присваиваем x 1 (очевидно):

x/d $rbp-4
0x7fffffffdabc:	1
в %rdi находится адрес x
p/x $rdi
$3 = 0x7fffffffdabc
далее... на втором фрейме (вызванном reset):
   0x0000000000400526 <+0>:	push   %rbp
   0x0000000000400527 <+1>:	mov    %rsp,%rbp
   0x000000000040052a <+4>:	mov    %rdi,-0x8(%rbp)
=> 0x000000000040052e <+8>:	movq   $0x0,-0x8(%rbp)
   0x0000000000400536 <+16>:	nop
   0x0000000000400537 <+17>:	pop    %rbp
   0x0000000000400538 <+18>:	retq
у нас сформировался новый стек фрейм и все манипуляции проходят внутри этого фрейма, а потом он уничтожается и «выравнивается» %rbp.

Я не понимаю почему именно так? Я думал, что если x = 0 внутри reset(), то по сути он и должен указывать на 0x0 после выхода из reset().

 ,

ubik
()

Джун/Интерн программист ищу работу.

Форум — Job

Ищу работу в Санкт-Петербурге. На момент лета пятидневка от зари до зари, после августа предпочтительней гибкий график (от 20+ часов в неделю) так как студент.

Скилы : C++,Java(SE),ООП,Структуры данных,Алгоритмы,Базовые паттерны,UML. Английский язык в состоянии читать спеки и техническую литературу.

Рассматриваю так же и C#.

Писать на почту : peter.lavreniuk@gmail.com - скину подробное резюме и ссылку на github.

 , , ,

C0LD
()

Рабочее место разработчика Fedora, DNF

Галерея — Рабочие места

На этотм самом рабочем месте пилится DNF и Fedora. Ничего особо интересного, кроме:

  • Firefox - падает раз 15 за день
  • Wayland - работает как часы (на Xorg при открытии настроек всё замирало секунд на 5)
  • pidgin - к сожалению, гномоделы так и не запилили нормальный GNOME Chat, а Polari имеет много противных багов
  • Fedora Rawhide (25)

>>> Просмотр (4000x2992, 3005 Kb)

 , ,

i_gnatenko_brain
()

Fedora 24

Новости — Red Hat
Группа Red Hat

После нескольких переносов даты релиза, уже ставших закономерностью, состоялся выпуск Fedora 24. Как обычно, обновились версии основных системных компонентов и прикладного ПО.

( Подробнее )

Также стоит отметить готовность репозиториев Russian Fedora для Fedora 24 и в ближайшем будущем образов RFRemix 24. RPMFusion традиционно запаздывает.

>>> Загрузить

>>> Обновление с предыдущих выпусков

>>> Известные ошибки

>>> Подробности

 

carasin
()

Python shared memory

Форум — Development

Добрый день.

У меня есть сервер для websocket, написанный на Tornado. В нем я определяю глобальный словарь в котором хранятся подключаемые юзеры.

...
# Создаю глобальный словарь
client_dict = {}

class MessagesHandler(tornado.websocket.WebSocketHandler):
        ...
    def open(self, v):
        ...
        # Запихиваю в словарь user_id: self, чтоб потом можно было его юзать для отдачи ответа 
        client_dict.update({self.user_id : self})
		...

    @tornado.gen.coroutine
    def on_message(self, mess):
        ...
        # Посылаю сообщение нужному юзеру, которого беру из словаря
        for k, recipient_wsconnection in client_dict[recipient_id].items():
            recipient_wsconnection.write_message('Ko ko ko')
    ...
...			

Все отлично работало пока не настало время это дело в продакшен нести.

При помощи supervisord я создаю несколько процессов этого сервера на разных портах. И при помощи nginx проксирую их во внешний мир.

И как можно догадаться адресное пространство разное и поэтому мой глобальный словарь работает только в том процессе в котором он был создан. (для меня было сложно, так как раньше я с этим дело не имел) То есть если один пользователь создан в одном процессе а другой в другом, то передавать сообщение между ними нельзя.

Вопрос: Как мне создать один глобальный массив для всех процессов?

 , ,

Closius
()

Как вы обрабатываете ошибки с требующейся очисткой в Си?

Форум — Development

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

Как живой пример:
Было: http://pastebin.com/BuUqYSRZ
Стало: http://pastebin.com/yHzMpv6C

Может вы используете какой-то другой метод?

 ,

someoneelsenotme
()

Flask+WebSocket?Session

Форум — Web-development

Человеки, подскажите, как лучше связывать сессии (Flask юзеров) с вебсокетами от этих юзеров

GeventWebSocket и Flask юзеры в одном процессе, но контексты разные

может как то через куки получить доступ к current_user flask:app

хочется, чтобы можно было просто по юзеру определить его сокет либо по сокету его хозяина

 ,

fMad
()