LINUX.ORG.RU

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

fcloseall не работает

Форум — Development

Update: я перепутал дескрипторы (int fd) с потоками (FILE *).

Почему fcloseall ничего не закрывает? Я даже пробовал открывать файл через fopen...

#define _GNU_SOURCE
#include <stdio.h>
#include <stdint.h>
#include <unistd.h>

int main(int argc, char *argv[], char *envp[]) {
  printf("HABA!\n");
  int fd = open("/etc/resolv.conf", 0);
  if (fd < 0) {
    printf("oblom\n");
  }
  int r = fcloseall();
  printf("SURPRISE! %d\n", r);
  return 0;
}

 

true_admin
()

Тулкиты и все-все-все

Форум — Development

Вот в новостях пишут, что gtk и qt виджеты поддерживают wayland, т.е. могут рисовать на стороне клиента. Как это, черт возьми, реализовано? Как вообще устроены тулкиты? Вяленый или иксы дают тулкитам фреймбуфер - рисуйте, ребята, или как? Что есть фреймбуфер? Как оно всё работает?

 , , , ,

zubapem
()

Системный Администратор. 24 года. Свободная релокация.

Форум — Job

Здравствуйте, мне 24 года и я имею опыт администрирования Linux систем с 2004 года.

В данный момент являюсь разработчиком одного из дистрибутивов Linux.

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

Готов рассмотреть предложенные вами варианты работы Системным Администратором.

  • Хорошо разбираюсь в устройстве операционных систем на базе Linux. Таких как Debian, Gentoo, RHEL, Ubuntu, CentOS.
  • Понимание работы сети и TCP/IP протокола в особенности.
  • Пишу скрипты/оптимизирую рабочие процессы используя sh/bash/python.
  • Построение и поддержка серверов виртуализации на базе kvm/libvirt/xen и vmware esxi.
  • Построение отказоустойчивых хранилищ данных используя linux/mdadm/lvm/zfs
  • Внедрение и поддержка таких сервисов как ftp, samba, nfs, dhcp, bind, nginx, tengine, distcc, dovecot, openldap, apache, mysql, postgresql и многих других.
  • Внедрение и поддержка сервера терминалов на базе Windows Terminal Server либо Linux Terminal Project Server.
  • Предоставление доступа к сети интернет пользователям используя mikrotik/dlink/ideco или кастомные шлюзы с использованием linux/iptables/squid/tc/etc.
  • Работаю с Grsecurity/PAX/RBAC и готов интегрировать в уже существующие рабочие окружения.
  • Работа с системой управления конфигурациями ansible. Написание своих конфигураций. Сопровождение уже существующих.
  • Автономный мониторинг сервисов используя munin/nagios/icinga.
  • Автоматизация бекапов и проверка их на корректность.
  • Объединение различных рабочих площадок в одну сеть и предоставление удаленным пользователям доступ к ресурсам сети используя vpn/pptp/openvpn/l2tp/sstp и eoip/ipip+ipsec.
  • Построение беспроводных сетей на базе wifi 2.4/5ghz Mikrotik/Ubiquiti оборудования либо linux/hostapd.
  • Диагностика ошибок работы программного обеспечения используя gdb/strace/анализирование логов с возможностью исправления багов самостоятельно, либо скооперируясь с апстрим разработчиками в случае если это опенсорс.
  • Диагностика ошибок работы аппаратного обеспечения и предоставление решений для исправления.
  • Имеется опыт работы с системами непрерывной интеграции.
  • Предоставление технической поддержки пользователям операционных систем Apple OSX/Microsoft Windows/Linux.

hh.ru RU

hh.ru EN

Linkedin

Для связи используйте пожалуйста почту damex.pp at gmail.com

 ,

damex
()

Увлекательного JS'a тред

Форум — Development

Было на странице четыре select'a и звали их «Address». Приспичило деду подгружать в них значения при загрузке страницы. Сел дед, начал писать:

selects = $('select[name="Address"]');

for(var i = 1; i < selects.length; i++) {
	var select = selects[i];
	var value  = selects[i].value;

	if (value != 0) {
		$(select).attr('disabled', false);

		$.post('/client/ajax_getCurrentLevels/', {code: value}, function(result) {
			for (var j = 0; j < result.length; j++) {
				console.log(result[j]['CODE'] + ' ' + result[j]['NAME']);
				$(select).append('<option ' + (value == result[j]['CODE'] ? "selected" : "") + ' value="' + result[j]['CODE'] + '">' + result[j]['NAME'] + '</option>');
			}
		}, 'JSON');

	}

}
Плевое дело, подумал дед. Но не тут то было! Option's добавляются всегда в последний select.

Дед в недоумении - то ли стар стал, то ли бабка виновата, то ли колобок.

Карочи, почему опции добавляются не туда, куда надо? При этом attr отрабатывает нормально для всех полей.

 ,

Deleted
()

Посоветуйте книги/учебники по OpenGL

Форум — Development

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

 ,

CatsCantFly
()

минимальный образ доскера

Форум — Admin

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

собственно задача - собрать в доскере статически слинкованный lighthttpd, вопрос - как ? подскажите линками или советом

или всёже игра свеч не стоит?

 , ,

novoxudonoser
()

На чем и как вы бы делали систему?

Форум — Development

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

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

Как сделано сейчас: Написано все на яве. Данные от приборов собираются одним процессом и пихаются в apache kafka. Основной процесс данные оттуда собирает, сохраняет в субд (mongodb) и если надо - распихивает по клиентам через вебсокеты. Так же основной процесс держит кучу rest сервисов, через которые работает веб-клиент и возможно что в дальнейшем - приложения под андроид/иос/винду. Все вычисленное состояние по процессам хранится в zookeeper-e, что в теории дает отказоустойчивость и возможность параллельного запуска нескольких сервисов на разных машинах.

Что напрягает и хочется переделать:

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

2 - Кафка. Довольно капризное поделие с неплохой идеей, но вот реализация имхо хромает. Ловил ситуации конфликтов в zk на ровном и не очень месте, проблемы с переподключением consumer-a после разрыва связи и много чего еще. Плюс она требует наличия еще и отдельного zk, т.е. система получается довольно монструозной, минимум 4 отдельных процесса (получатель данных, кафка, zookeeper, основной сервер) + субд. А это сложности с развертыванием, поддержкой итд.

3 - В голове бродят мысли про то, что в такой событийно ориентированной системе вполне возможно что было бы неплохо использовать готовую реализацию акторов (akka?), а не писать свои велосипеды.

Собственно вопрос - как бы вы сами писали такую систему?

 

Nagwal
()

Анти-чит для проекта

Форум — Web-development

Создаю онлайн-игру, суть которой - набор текста на скорость с последующим построением списка самых быстрых пользователей. В связи с этим появилась потребность не позволять игрокам присылать «липовые» результаты набора.

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

Все бы хорошо, но данные (скорость и процент ошибок), присланные с клиента, могут быть не настоящими. Как быть?

Была идея рассчитывать эти данные на сервере, отправляя каждый введенный символ (или слово). Но как учитывать время ответа сервера? Спасибо.

 

Razip
()

В гном вернули трей, хотя лучше бы не возвращали.

Форум — Talks

В продолжение

Новый гном - tray icons теперь действительно все.

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

http://i.imgur.com/SD9Iuzv.png

Сначала подумал, что артефакты, но случайно мышкой туда навел, а там

http://i.imgur.com/1kR8dCR.png

Вобщем, если так оставят, то ждем 100500 тем с вопросом «Где мой трей???».

 ,

Vovka-Korovka
()

Как сделать модуль с не python файлами внутри?

Форум — Development

Структура файлов:

root/:
  pkg/:
    __init__.py
    data.txt
    core.py

  test.py

Содержимое файлов:


#__init__.py
#Пустой

#data.txt:
Hello!

#core.py:
def hello():
    datafile = 'data.txt'
    print open(datafile, 'r').read()

#test.py:
from pkg.core import hello
hello()
 

При выполнении test.py будет ошибка:

IOError: [Errno 2] No such file or directory: 'data.txt'
Как правильно указать путь к файлу 'data.txt' в модуле, чтобы при импорте hello из pkg путь к data.txt был всегда правильный?

 

pyro
()

tinysystemd

Форум — Talks

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

https://github.com/Like-all/tinysystemd

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

https://github.com/Like-all/tinysystemd#paqpreventively-answered-questions

Отдельно хочу поблагодарить intelfx за детальные консультации. Если заинтересовало - присоединяйтесь!

P.S.: известные проблемы - много ругани от lintian; пока ещё не дописал oneshot-сервис, который удаляет /run/nologin при запуске.

 ,

like-all
()

i3wm

Галерея — Скриншоты
  • Sublime Text 3
    • Тема: Piatto Light
    • Цвета: Dayle Rees Color Schemes / Azure
  • Шрифты: Inconsolata / Roboto \w Infinality
  • GTK-тема и иконки: Paper

 , ,

vertinsky
()

Сети социальные, но туалет общественный, однако жильё социальное как и блага.

Форум — Talks

...

A language is very like a society; we may live long enough in a great city before we discover who really rules in it and on whom the behavior of which of the citizens depends.

...

Язык очень похож на общество; мы можем прожить достаточно долго в огромном городе прежде чем обнаружим кто действительно(alt-по чеснаку) правит(alt-держит поляну) в нём и на кого поведение каких граждан(alt-гр-начальников) влияет.

----------------

Слоённый торт кое-где не новость да и новояз и прочий Вавилон-17

вот и линукс например например.

 

qulinxao
()

Поругайте код

Форум — Web-development

Написал небольшое приложение(первое на Ангуляре)

И если честно, немного не уверен в коде, в частности в нескольких местах делал вещи с помощью jQuery хотя уверен должны быть локальные(ангулярские) методы для этого.

Исходники тут: https://github.com/Neoromantique/simple_angularjs_app
Live:
http://neoromantique.co.uk/shopping/

 ,

shuck
()

Общий раздел ex4 для всех пользвателей

Форум — Admin

Долгое время для хранения аудио\видео\фото пользовался ntfs-разделом, доставшимся в наследство со времен использования оффтопика.

Решил вот переехать на ext4. Встала проблема с правами - файлы создаются на фс владельцем и группой текущего пользователя со всеми вытекающими. Но т.к. пользователей у системы как минимум 2-е - я и жена, то полезут проблемы. Погуглив сварганил такой вариант:

1. сначало как обычно монтирую ext4 с defaults

2. bindfs -o perms=0777,create-as-mounter /media/data/ /media/data/

последнее еще надо прописать в fstab

может есть более простые способы? или это оптимален?

Turbid
()

Red Flat Awesome

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

Примерно год назад решил попробовать awesome. Хотелось чего-то максимально кастомизируемого, но более монолитного и системонезависимого. Данный wm показался интересным в этом плане, так что вооружившись напильником попытался сделать на его основе годное, согласно своим представлениям, окружение.

Еще скриншоты: традиционный с окнами[1] и все остальные[2][3][4][5][6][7].

На панели можно увидеть

  • Модифицированный taglist на самописных виджетах.
  • Набор индикаторов: иконка меню и оповещалка об обновлениях в одном, раскладка клавиатуры, регулятор громкости, почта, кастомный layoutbox. На громкости висит простенький виджет для моего любимого exaile[2], layoutbox умеет меню выбора режима тайлинга[2].
  • Сильно перепиленный tasklist[4][5]. Приложения обозначаются трехбуквенными алиасами, окна одного класса группируются в один значок. При наведении подсказка с полным именем или списком группы, по правой кнопке менюшка управления окном.
  • Специальный виджет для минитрея, точками обозначено количество приложений в трее. По клику/хоткею является собственно сам минитрей.
  • Индикаторы ресурсов - выдрал код из vicious и прикрутил свои визуалы. Была задумка сделать нескучные всплывающие виджеты с системной инфой, как раньше было у меня в доке, но энтузиазм закончился уже на первом, показывающем топ процессов[3]. Даже его не допилил до конца, память отображает криво.
  • Часы.

Виджеты на рабочем столе - перенес свои луа скрипты от коньков на базу awesome. Тут нет готовых датчиков, но на помощь снова приходит vicious. В целом средствами осома такие штуки пилить даже удобнее, ибо тру модульность и интерактивность. Зависимые от сети вещи подключены через модификацию asyncshell. Может быть имело смысл все через него пускать, но поздновато осознал насколько это нужная и полезная штука, лень переделывать.

Для пущего уюта установил uselessgap тайлинг от Lain. Сделал активные грани экрана. Немного переписал awful.menu, добавив автоскрытие, возможность вставлять неиндексируемые элементы(заголовки, разделители), автоматическую расстановку хоткеев и еще по мелочи[2][4]. На базе menubar запилил запускалку приложений[3] в стиле synapse, очень нравится такой визуал. Сильно скучал по классическому альттабу, даже накостылял кое-что, но потом некто Joren Heit выкатил няшный Familiar Alt Tab. Скрестив его и свои наработки получил такую переключалку[5][6]. Адским костылем с помощью asyncshell и rsvg-convert прикрутил адекватное масштабирование векторных иконок, заодно добавив смену цвета на лету. Сделал подсказку по хоткеям[7], как сами знаете где, с интерактивной подсветкой (пока без модификаторов).

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

Awesome 3.5.6, compton, тема gtk - Boje, иконки ACYL, шрифты play и prototype.

 ,

Worron
()

Поддержка spdy и http2 nginx

Форум — Admin

HTTP/2 заапрувили значит ли это, что после того как поддержка HTTP/2 добавится в nginx (не нашел). То мне можно будет выкинуть поддержку SPDY для клиентов или мне теперь еще полгода-год, поддерживать сразу HTTP/1.1 HTTP/2 и SPDY?
Да к слову как писал яндекс на оптимизированных и нагруженных сайтах от SPDY толку, не много, а вот нагрузка на сервер может неплохо возрасти.
Уже поздно, ведь SPDY стал частью HTTP/2. Да из Chrome поддержку SPDY должны выкинуть. Да вообще некоторые высказывали критику про SPDY в HTTP/2 (увы линк на статью, я потерял, а искать лень), да и влияние Google на IETF многими воспринимается критически, и дескать не годно IETF прогибаться под Google. Хотя SPDY хорош, что говорить. Так вот мой вопрос, по поддержки, сколько теперь примерно поддерживать SPDY до 2016, или можно будет выкинуть уже раньше?
Да к слову, многие путают SPDY3.1 и HTTP/2, и думают что SPDY3.1 и есть HTTP/2.

 ,

anonymous_sama
()

Работы над стандартом HTTP/2 завершены

Новости — Интернет
Группа Интернет

Организация IESG подтвердила финальные версии черновиков протокола HTTP/2 и формата компрессии HPACK. Спецификации отправлены в редактор RFC для присвоения номера и финальной корректировки.

Среди ключевых особенностей бинарного протокола HTTP/2, который пришёл на смену текстовому HTTP/1.1:

  • Повышение эффективности использования сетевых ресурсов за счёт мультиплексирования запросов, расстановки приоритетов для запросов и сжатия заголовков HTTP.
  • Загрузка нескольких элементов параллельно, посредством одного TCP соединения.
  • Поддержка проактивных push уведомлений со стороны сервера.
  • Исправлена конвейерная обработка и проблема блокировки начала очереди.

Глава рабочей группы IETF HTTP Working Group Марк Ноттингем (Mark Nottingham) в своем блоге поблагодарил всех, кто внёс свой вклад в разработку новых спецификаций.

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

 , , ,

bitfroster
()

Права на home директорию по-умолчанию...

Форум — Admin

Ребята, я думал, что я обкурился, упоролся... Но похоже таки нет... И убунта, не линукс! Ибо я не знаю как ещё обозвать это мудачество, у меня есть такая привычка наидурнейшая, запускать сервисы под своими/отдельными пользователями... Но я сегодня увидел ТАКОЕ...

kadafi@home ~ $ ll /home/
итого 12
drwxr-xr-x  3 root   root   4096 нояб. 12 19:02 .
drwxr-xr-x 27 root   root   4096 янв.  11 10:20 ..
drwxr-xr-x 36 kadafi kadafi 4096 февр. 16 21:56 kadafi

То, есть мы тут всякие sudo пользуем, мы тут пароли придумываем, а они 755 на весь каталог пользователя... Это я считаю СИЛЬНО..! Очень сильно... Полез гуглить... Думал, может быть обкурился. И таки... Нет, не обкурился: читаем: http://superuser.com/questions/303910/ubuntu-default-access-mode-permissions-...

А в твоём дистрибутиве тоже так по-умолчанию?

C какого собственно бодуна, они по-дефолту такое творят..?

 

DALDON
()

Как в C красиво заменить NULL-pointer

Форум — Development

Я написал вот такой код:

printf("My string is %s", get_my_string() || "unknown");
подразумевая что get_my_string возвращает строку или NULL. Компилятор такое не съел. Можно ли как-то красиво получить нужную мне функциональность?

 

morse
()