You are viewing [info]pzz's journal

Mon, Oct. 1st, 2018, 05:09 am
Для связи

Если кому-то вдруг захочется со мной связаться, это можно сделать, оставив комментарий к этому постингу...

Wed, Dec. 28th, 2011, 03:24 pm
Дитячее

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

Родители детей, которые устраивают истерику при каждом одевании, меня поймут :-)

Sat, Dec. 3rd, 2011, 12:53 pm
Завтра выборы



Не забудьте правильно заполнить бюллетень!

Tue, Oct. 25th, 2011, 06:39 pm
мобильный интернет в Израиле

Ездил я тут погреть старые кости в Красном море на исторической родине, и возникла у меня проблема, как себя интернетом-то обеспечить в поездке.

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

Там можно купить SIM-карту Orange и подключить в виде услуги 5GB трафика (Orange - это один из местных операторов). Цена вопроса - 60 шекелей SIM-карта и 110 - траффик. Один шейкель - это примерно 8 рублей на наши деньги. На сороковник больше предлагали 20 GB, но мне столько не надо, я ж к морю ехал, а не в торрентах сидеть :-)

Радиопокрытие что в Эйлате, что в центре Иерусалима просто великолепное. Связь быстрая и устойчивая, что веб, что скайп работают, как из пушки.

А, да. Куда эту SIM-карту засунуть. У меня было вот такое вот устройство, незалоченный на оператора 3g-модем, купленный за 1.5 тыщщи рублей в связном. Рекомендую, хорошая штучка

P.S. Любопытно, что у нас, под предлогом борьбы с терроризмом, к связи без паспорта не подключишься. А в Израиле, корорый имеет реальную проблему с терроризмом, запросто можно купить SIM-карту, не показывая никаких документов, кроме билетов местного центробанка.

P.P.S. Чуть не забыл. Работающие настройки для линуха:

Number: *99#
Username: orange
Password: orange
APN: internet

Tue, Oct. 25th, 2011, 06:07 pm
Федорино горе (как откатиться назад с ядра 2.6.40)

Не знаю, чего уж там эти уроды накрутили в ядре 3.0, которое в Федоре скромно называется 2.6.40, но у меня после перехода не него сломался то ли USB, то ли Bluetooth, то ли их сочетание. Причем так хорошо сломалось, что если дочка слямзит мою любимую блютусную мышь и унесет в другую комнату, с ядром случается паника (пять страниц ненависти missed).

В общем, попытался я откатиться к последнему работающему ядру (2.6.38.8-35), да не тут-то было. Выяснилось, что в репозиториях предыдущие ядра не хранятся, а сразу сносятся, а я прохлопал тот момент, когда оно снеслось у меня. И в гугле хрен чего найдешь.

Я уж дошел было почти до того, чтобы изучить ихнюю систему сборки пакетов с целью достать из ихнего GIT'а и собрать старое ядро. И когда уже я стал гуглить на предмет того, как это делается (что ни разу не тривиально, не очевидно и не документированно, и я на 100% не уверен, что вообще возможно), как нашел я следующую ссылку:

https://admin.fedoraproject.org/updates/kernel
http://koji.fedoraproject.org/koji/buildinfo?buildID=251810

Здесь, собственно, эти самые старые ядра в виде RPM-ок и лежат (вместе с новыми). Заметим, что нашел я это, ища информацию о том, как самому с ихней билдовой системой трахаться; а если просто ядра ищешь, оно не выпадает.

Вот делюсь, если вдруг кому еще пригодится

P.S. Естественно, после отката выяснилось, что closed source драйвер для Nvidia нифига уже не работает, потому что он тоже проапгрейдился и хочет более нового ядра. Я попробовал nouveau, и к своему удивлению нашел его вполне работоспособным. Естественно, 3d аккселерация сразу отвалилась, но поскольку я в игры не играю, сломалось только несколько скринсейверов - туда им и дорога

Sun, Jun. 19th, 2011, 04:16 am
Gnome 3

Они ухуели. Я ухожу на XFCE...

Thu, Nov. 11th, 2010, 05:48 am
Самодельные ядра для Ubuntu

Как выяснилось, проще удавиться, чем собрать ядро для убунты. Под "собрать" я имею ввиду изготовить нормальный .deb, который без проблем инсталлируется, и при этом не конфликтует по именам и директориям со стандартными ядрами.

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

Вот этот рецепт, кажется, таки работает для 10.04. Он довольно муторный, но если все делать аккуратно, то все получится. И разжёвано все достаточно подробно

По-соседству лежит рецепт для 10.10, но я его еще не проверял

Да, и для некрофилов, как приладить ядро 2.6.35 от убунты 10.10 к убунте 10.04. Не знаю, кому это может быть надо, но пусть тоже будет, чтобы потом не искать.

Fri, Aug. 6th, 2010, 06:43 am
ASUS Eee PC 1015PE, Ubuntu Linux и звук

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

Как не удивительно, мне помог совет вот отсюда

Собственно, я проапгрейдил только драйвера, alsa-lib и alsa-utils оставил родными

make install я говорить побоялся, потому что он инсталлирует хренову тучу говна в /usr/include/sound, и кто его потом будет выковыривать? Вместо этого я сказал make install-modules, перезагрузился, и все заработало, как из пушки.

Да, и имейте ввиду, оно просто вываливает новые модули поверх проинсталлированных. Поэтому после апгрейда ядра процедуру придется повторить.

Надеюсь, впрочем, что скоро бубунтовцы уже всандалят проапгрейженные драйвера в свое ядро, и можно будет расслабиться

P.S. Прикольная, кстати, машинка. Рекомендую в качестве игрушки, ну или там с собой таскать. От батареек работает целую вечность, и даже процессор у нее с гипертредингом :-)

UPD

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

1. cd <где-оно-у-вас-там>/alsa-driver-1.0.23
2. make mrproper
3. ./configure
4. make
5. make install-modules
6. reboot

Пункты 1-4 можно (и нужно) делать под собой, п.5-6 - под рутом

Без пунктов 2 и 3 (если вы уже раньше собирали драйвер в этой директории) получите неработающее черти-что, наполовину собранное под новое ядро, а наполовину - под старое (работающие dependencies рулят, неработающие - сосут, а кто их сделал - козлы)

Thu, Jul. 22nd, 2010, 12:32 am
Позор

Originally posted by [info]daisyboy at Позор
Перепост:

Тут между делом выяснилось, что у Ю.Норштейна не хватает денег на то, чтобы закончить свою новую работу "Шинель". На государство в таких случаях, понятно, полагаться бесполезно, и люди подумали скинуться деньгами. Но ЖЖ–юзер gleza оказалась не ленива, и списалась с самим Норштейном. А он ответил вот так:

"…Юля, я не могу принять Ваше предложение о сборе средств на фильм "Шинель", в этом случае я чувствовал бы себя крайне неуютно. Но,если Вы хотите поучаствовать в фильме "Шинель", то у меня есть просьба: разместите, пожалуйста, в Вашем блоге информацию о продаже наших книг. Рекламы у нас, в общем, никакой, и поэтому дополнительная информация на Вашем блоге может способствовать привлечению покупателей"

Как выяснилось по субботам художник сам стоит за прилавком, что дает возможность получить книгу с автографом или даже рисунком автора.
размер 400x270, 24.09 kb

"Книги можно купить на нашей студии на Войковской, по адресу — 1–ый Войковский проезд, дом 16, корпус 1, подъезд 1–А, по субботам с 12 до 15 часов, Как правило, я сам в это время стою "за прилавком" и желающим подписываю книги. Для некоторых более обеспеченных покупателей я могу делать рисунки на форзацах книг"

(Карта проезда к нам на студию есть на нашем сайте http://norshteyn.ru/ в разделе "Снег на траве")

Tue, Jun. 15th, 2010, 08:34 pm
skolkovo-ru

За каким-то хуем [info]skolkovo_ru меня в свои друзья записало. Прям даже стыдно как-то :-)

Они что, ищут по всему ЖЖ блоги программистов и всех скопом записывают?...

Fri, Jun. 11th, 2010, 10:23 pm
Linux, миллион исходящих TCP-соединений и волшебный SO_REUSEADDR

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

Довольно быстро вы обнаружите, что очередной connect() завершается у вас с неожиданной ошибкой EADDRINUSE. Задолго до того, как вы понаоткрываете несколько сотен тысяч соединений.

Проблема в том, что прежде, чем connect() начнет куда-то коннектиться, системе надо выбрать локальный номер порта. А их всего в природе 64К. А для автоматического выбора по дефолту доступна лишь половина (sysctl net.ipv4.ip_local_port_range). И часть из них уже занята всякими там TIME_WAIT'ами. В общем остается, с учетом специфики решаемой нами задачи, совсем чуть-чуть

Все это довольно обидно, потому что самому-то TCP нафиг не нужно, чтобы у всех сокетов номер локального порта был разный. TCP различает между соединения не по номеру локального порта, а по тупле {local_addr,local_port,remote_addr,remote_port}. И если речь идет о входящих соединениях, то у всех у них локальный порт будет один и тот же - тот, на который вы сказали listen(), и тем не менее все будет автоматически прекрасно работать. А вот для исходящих соединених автоматически и прекрасно не получается.

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

Ну вот, а теперь записывайте работающий рецепт:

  1. Выберете некоторое множество портов, которое никем без вас не занято. Это могут быть просто порты из другого диапазона, не из того, которых задан параметром net.ipv4.ip_local_port_range, или их можно явно зарезервировать, чтобы их точно у вас никто не отнял. Сколько портов резервировать, решайте сами. В принципе, хватит и одного, но я предпочитаю несколько десятков

  2. Скажите сокету setsockopt(SO_REUSEADDR)

  3. Перед connect()'ом сделайте bind(), явно указав один из ранее зарезервированных вами портов. Не полагайтесь на автоматический выбор порта, он плевать хотел на SO_REUSEADDR


Использовать для резерва более одного порта имеет смысл потому, что если вы куда-то соединялись, потом соединение закрыли, а потом пытаетесь опять присоединиться, у вас может получиться та же самая тупля из локальных и внешних адресов, которая использовалась ранее. А старая все еще может болтаться в состоянии TIME_WAIT. И пока она окончательно не протухнет, переиспользовать ее у вас не получится. А протухает она довольно долго

Резервировать можно следующим образом: понаоткрывайте несколько десятков сокетов, сделайте им SO_REUSEADDR и bind(), выбрав порт случайно - все, пока вы этот сокет не закрыли, никто у вас этот порт не отнимет (в том смысле, что кто-то, конечно, тоже сможет использовать его для исходящего соединения действуя как и вы, но для вас он не перестанет быть доступным). Речь идет, как мы помним, о программе, которая открывает соединения сотнями тысяч, поэтому несколько десятков сокетов нам не жалко.

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

Кстати, казалось бы, с опцией SO_REUSEADDR система могла бы все остальное делать и сама при автоматическом выборе порта. Но вот, собака, не делает...

Fri, Jun. 11th, 2010, 03:17 am
Прекрасное

ПРОЕКТ ФЕДЕРАЛЬНОГО ЗАКОНА (ОТ 7 ИЮНЯ 2010 Г.)


Об исчислении времени



Статья 1. Цели и сфера действия настоящего Федерального Закона

  1. Целями настоящего Закона являются:

    1. установление правовых основ исчисления времени в Российской Федерации;

    2. обеспечение потребности граждан, общества и государства в достоверной информации о времени и дате;

    3. защита прав и законных интересов граждан и государства от отрицательных последствий недостоверной информации о времени и дате.

  2. Действие настоящего Федерального закона распространяется на отношения, возникающие при исчислении времени, а также при распространении и использовании информации о времени и дате.

  3. Государственное регулирование исчисления времени осуществляется в целях установления единого порядка исчисления времени на всей территории Российской Федерации, в том числе для обеспечения обороны и безопасности государства, а также при исчислении времени и распространении информации о времени для оказания платных услуг, зависящих от точного значения времени.


Далее идет рассказ о том, что такое високосный год, Григорианский календарь, часовые пояса, месяц, год, час, минута и секунда и т.п., изложенные простым и доступным бюрократическим языком. Понятие микросекунды, правда, почему-то не вводят.

Охренеть можно. Такими темпами они скоро и до таблицы умножения дойдут :-)

Fri, Mar. 26th, 2010, 01:45 pm
Вопрос залу

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

Fri, Mar. 12th, 2010, 09:08 pm
Где в gmail.com кнопка "послать новое письмо"?

Оказывается не я один маюсь этим вопросом, разглядывая их веб-морду каждый раз по 5 минут. Ранее в этом сознался [info]kika, теперь вот моя жена. При том, что кнопка эта находится на самом видном месте, и обзывается вполне понятными словами

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

Thu, Jan. 14th, 2010, 12:30 am
ИКЕА

Так, по мнению "специалистов" из официальной сборки мебели ИКЕА, вытяжка должна подключаться к вентиляции:

IKEA

Обратите внимание, где дырка в стене, и куда смотрит труба.

По-моему, это пиздец...

Mon, Dec. 7th, 2009, 02:29 pm

Шайка клоунов, вооруженных боевыми кошками, устроила травлю Мише Вербицкому, моему однокласнику, математику и просто хорошему человеку.

Сайт Вербицкого (http://lj.rossia.org/) выдерживает DDoS-атаку на протяжении уже где-то недели. И надо сказать, ничего так выдерживает.

Думаю, не надо бояться DDoS-атак. Хакеры обосрались. Если у админа руки растут не из жопы, DDoS-атака не страшна. Если у вас чего-нибудь вымогают, угрожая DDoS-атакой, смело посылайте на хуй, это люди калибра уличной шпаны, не больше. Их воображаемая сила заключается в том, что публика зачем-то привыкла их бояться, а не в том, что они на самом деле сильны.

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

Fri, Oct. 16th, 2009, 01:52 am
Линукс, файловые локи и потоки

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

В линуксных файловых локах есть механизм детектирования дедлоков. Если процесс A удерживает некоторый лок, и хочет получить лок, который удерживается процессом B, а процесс B в то же время заблокирован в ожидании лока, который принадлежит процессу A, то lockf() вернет ошибку EDEADLK вместо того, чтобы уснуть навсегда. Что, в общем-то, разумно.

Проблема возникает, когда процессы используют потоки внутри себя. Беда в том, что лок принадлежит процессу, а не потоку. Представьте себе, внутри процесса A есть два потока A1 и A2, а внутри процесса B - B1 и B2. Потоки эти занимаются тем, что лочат некоторый файл, чего-нибудь с ним делают, потом отпускают лок и так далее, для большого количества файлов. Поток A1 залочил файл f1 и чего-нибудь с ним делает. Поток B1 залочил файл f2. Теперь если поток B2 попытается залочить файл f1, который все еще принадлежит процессу A, то у него это не удастся, т.к. линукс решит, что случился дедлок. В то время как на самом деле никакого дедлока не случилось.

Я очень подозреваю, что это касается не только линукса, но и других POSIX-подобных систем.

Все это касается вызовов lockf() и fcntl(). BSD-ный flock() не содержит в себе проверки на дедлок, и поэтому таких проблем не имеет (но зато в случае реального дедлока он просто заснет навсегда).

Такие дела.

Tue, Oct. 13th, 2009, 02:54 am
Филологическое

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

На самом деле, это слово имеет совсем другой смысл. "Мудак", происходит от древнерусского "муде", т.е. яйца, те, которые между ног, а не куриные. Мудак - это тот, думает яйцами, человек, поступки и мысли которого определяются тем, чтобы продемонстрировать, что его яйца круче, чем у других. Такое поведение встречается время от времени у мужчин, и по очевидным причинам не встречается у женщин. Поэтому, кстати, слово "мудак" не имеет женского рода, в отличии, например, от "дурак" - "дура".

P.S. Если кто узнал в этом описании себя, обижаться не надо, я почти наверняка имел ввиду не вас :-)

Tue, Sep. 8th, 2009, 11:25 pm
SO_LINGER & Linux

Я всегда думал, что если на сокете в неблокирующемся режиме (O_NONBLOCK) поставить SO_LINGER, то close() будет возвращаться немедленно, а linger time будет определять, сколько времени соединение будет болтаться в полузакрытом состоянии.

Не тут-то было. В линухе close() блокируется даже если сокет неблокирующийся, а SO_LINGER определяет верхнюю границу времени. Если же его не ставить, close() возвращается сразу, а соединение болтается в полузакрытом состоянии уже само по себе, столько времени, сколько ядру будет угодно.

Прикольно было наблюдать strace'ом, как мой супер-дупер-высоконагруженный сервер только тем и занимается, что пачками закрывает сокеты, зависая секунд на 20 на каждом :-)

20 most recent