kika: (Default)
[personal profile] kika
http://kika.livejournal.com/32433.html?thread=188849#t188849

Вопрос простой - а где у нас в ЗАО РФ нынче учат на программистов? В смысле учат, а не "учат", то есть не читают лекции про эльбарроуз, а откуда выходят неплохие хакеры, способные аргументированно обсуждать стиль написания ядра Линукса и BSD. Ну или еще что-либо такое же высокодуховное и бесполезное.

Date: 2007-06-14 04:47 pm (UTC)
From: [identity profile] pzz.livejournal.com
Что-то я не заметил, чтобы из МФТИ готовые хакеры прям валом валили.

Я вообще не уверен, что из индустриальных программеров получаются такие уж хорошие институтские преподаватели программирования. По-моему, инициация нежной студенческой души должна начинаться скорее с Дейкстры и прочих инвариантов, а не с i-node и прочих vmalloc'ов :-)

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

Date: 2007-06-14 04:51 pm (UTC)
From: [identity profile] kika.livejournal.com
Я не претендую на обобщение, но по моему опыту наиболее характерное свойство программистов-физтехов - это "забитость". То есть они слишком какие-то индустриальные получаются, и для стартапопригодности требуют сильной ломки стереотипов.

Date: 2007-06-14 05:02 pm (UTC)
From: [identity profile] pzz.livejournal.com
Их, наверное, водят в swsoft, и там забивают :-)

Date: 2007-06-14 05:19 pm (UTC)
From: [identity profile] flhack.livejournal.com
SWsoft - тоже вполне стартап :)

Date: 2007-06-14 05:50 pm (UTC)
From: [identity profile] kika.livejournal.com
Ну это, мягко говоря, натяжка.

Если нет, то для начала опубликуйте размер option pool в SWSoft, типичное значение stock grant для средней инженерной позиции и условия (cliff и общий срок).

(no subject)

From: [identity profile] flhack.livejournal.com - Date: 2007-06-14 06:05 pm (UTC) - Expand

(no subject)

From: [identity profile] kika.livejournal.com - Date: 2007-06-14 06:09 pm (UTC) - Expand

(no subject)

From: [identity profile] flhack.livejournal.com - Date: 2007-06-14 06:22 pm (UTC) - Expand

(no subject)

From: [identity profile] kika.livejournal.com - Date: 2007-06-15 04:40 am (UTC) - Expand

(no subject)

From: [identity profile] flhack.livejournal.com - Date: 2007-06-15 05:25 am (UTC) - Expand

(no subject)

From: [identity profile] kika.livejournal.com - Date: 2007-06-15 05:32 am (UTC) - Expand

(no subject)

From: [identity profile] flhack.livejournal.com - Date: 2007-06-15 08:40 am (UTC) - Expand

(no subject)

From: [identity profile] kika.livejournal.com - Date: 2007-06-15 10:26 am (UTC) - Expand

(no subject)

From: [identity profile] flhack.livejournal.com - Date: 2007-06-15 11:04 am (UTC) - Expand

(no subject)

From: [identity profile] vvs2002.livejournal.com - Date: 2007-06-15 03:38 pm (UTC) - Expand

(no subject)

From: [identity profile] kika.livejournal.com - Date: 2007-06-15 03:43 pm (UTC) - Expand

(no subject)

From: [identity profile] dottedmag.livejournal.com - Date: 2007-06-14 06:22 pm (UTC) - Expand

Date: 2007-06-14 05:52 pm (UTC)
From: [identity profile] xfyre.livejournal.com
да сколько можно уже

Date: 2007-06-14 05:46 pm (UTC)
From: [identity profile] kika.livejournal.com
Я сразу вспоминаю одного lj-юзера, который пошел в SWSoft, проработал там ровно месяц, рассказывая по дороге разные истории, и свалил в ужасе. Самое прикольное в этой истории то, что после того как он свалил, меня вычислили как его предыдущего начальника, нашли мой мобильный телефон и позвонили мне из Сан Франциски, выясняя не водится ли за этим lj-юзером привычки красть trade secrets с места работы.
Что само по себе хорошо описывает отношение хозяев компании к работникам. Если работник в ужасе выпучивает глаза и бегом бежит, то у хозяина не возникает даже мысли что в организации работы что-то не так, а дело исключительно в персональной нечистоплотности работника.

Date: 2007-06-14 05:53 pm (UTC)
From: [identity profile] xfyre.livejournal.com
кажется я знаю эту историю :)

(no subject)

From: [identity profile] kika.livejournal.com - Date: 2007-06-14 05:54 pm (UTC) - Expand

Date: 2007-06-14 06:18 pm (UTC)
From: [identity profile] flhack.livejournal.com
Не очень понятно, откуда последний вывод. Собственно, я бы вообще не делал далеко идущих выводов из одного случая с эмоциональным лжеюзером. Это еще и было лет эдак 5-7 назад, поди?

(no subject)

From: [identity profile] kika.livejournal.com - Date: 2007-06-14 06:22 pm (UTC) - Expand

Date: 2007-06-14 05:59 pm (UTC)
From: [identity profile] kika.livejournal.com
Но хоть научным методом теперь. А раньше они мучились.

Date: 2007-06-14 05:27 pm (UTC)
From: [identity profile] flhack.livejournal.com
Физтехи склонны кучковаться ;)

Date: 2007-06-14 05:25 pm (UTC)
From: [identity profile] flhack.livejournal.com
Если откуда-то вдруг повалят готовые хакеры, надо как минимум насторожиться :) Преподают, кстати, не только CS.

А по поводу проектов - http://swsoft.mipt.ru/projects.shtml

Date: 2007-06-14 05:49 pm (UTC)
From: [identity profile] pzz.livejournal.com
Дарю идею студенческого проекта.

Представим себе линуксный лабтоп. У него есть 2 сетевые карты: Ethernet и какой-нибудь WiFi. Машинка ведет очень хаотическую сетевую жизнь: в любой момент ее могит подключить/отключить к Ethernet'у, или она может подключиться/отключиться к беспроводной сети.

Типичный линух ведет себя в такой ситуации довольно плохо. А именно:
1. в качестве DNS-сервера будет использоваться последний, о котором машинка узнала по DHCP. Если последний не работает, машинка останется без DNS'а (предудущий она уже потерла).
2. Если есть 2 равнозначных default route, то линукс будет упорно использовать какой-то один из них, даже если он не работает, и никогда не попробует другой. Такое бывает, например, если линукс зацепился за Access Point, не подключенный к Интернету (а через Ethernet выход наружу есть).

Соотсветственно, предлагается написать софтварий, который все это исправит. Софтварий должен включать в себя:
1. Следилку за состоянием сетевых интерфейсов - мне кажется, проще написать свою, чем интегрироваться с ifplugd (http://0pointer.de/lennart/projects/ifplugd/)
2. DHCP клиент, или интеграцию к существующему
3. DNS-мультиплексор, который узнает от DHCP клиента список возможных DNS-серверов, и пытается сам выбирать из них работающий(ие) методом проб и ошибок, с учетом состояния сетевых интерфейсов.
4. Интеграцию с wpa_supplicant'ом, для управления WiFi roaming'ом. Кстати, надо не забыть, что DHCP клиент должен запускаться после окончания WPA handshake, а не до (нотификация о том, что интерфейс зацепился за медию приходит до WPA handshake)
5. Управление линуксным фаирволом в более простом виде, чем iptables
6. Систему конфигурирования всего этого хозяйства
7. Управляющую гуевую морду.

Неочевидные вопросы:
1. Как понять, что дефолтовый роутинг ведет в никуда?
2. В отличии от Ethernet'а, настройки WiFi в принципе могут на многопользовательской машинке принадлежать пользователю, а не системе (например, пароль для доступа в сеть). Как аккуратно поделить сетевую карту между пользователями?

Гм...

Date: 2007-06-16 09:04 am (UTC)
From: [identity profile] ifp5.livejournal.com
На неочевидный вопрос номер 1 ответ один: никак. В качестве универсального fuck-up может служить, например, авторизация через captive portal, губящая идею мегапроекта на корню.

Re: Гм...

Date: 2007-06-16 04:17 pm (UTC)
From: [identity profile] pzz.livejournal.com
Но винда-то с этим справляется более-менее. Чем мы-то хуже? :-)

Винда, насколько я понимаю 1) при автиконфигурации (DHCP и т.п.) никогда не расставляет одинаковые метрики на default routes через разные интерфейсы 2) если она чует, что с интерфейсом что-то не так, она может поменать метрику соответствующего роута.

Как именно она чует, не очень понятно. Вероятно, учитывает неудачи при попытке установить TCP соединение.

Re: Гм...

From: [identity profile] ifp5.livejournal.com - Date: 2007-06-17 12:13 am (UTC) - Expand

Re: Гм...

From: [identity profile] pzz.livejournal.com - Date: 2007-06-17 11:06 am (UTC) - Expand

Re: Гм...

From: [identity profile] ifp5.livejournal.com - Date: 2007-06-18 07:42 am (UTC) - Expand

Re: Гм...

From: [identity profile] pzz.livejournal.com - Date: 2007-06-18 03:12 pm (UTC) - Expand

Re: Гм...

From: [identity profile] ifp5.livejournal.com - Date: 2007-06-19 09:25 am (UTC) - Expand

Re: Гм...

From: [identity profile] pzz.livejournal.com - Date: 2007-06-19 12:07 pm (UTC) - Expand

Re: Гм...

From: [identity profile] ifp5.livejournal.com - Date: 2007-06-19 03:05 pm (UTC) - Expand

Re: Гм...

From: [identity profile] pzz.livejournal.com - Date: 2007-06-19 03:28 pm (UTC) - Expand

Re: Гм...

From: [identity profile] ifp5.livejournal.com - Date: 2007-06-19 04:38 pm (UTC) - Expand

Re: Гм...

From: [identity profile] pzz.livejournal.com - Date: 2007-06-19 05:03 pm (UTC) - Expand

Re: Гм...

From: [identity profile] ifp5.livejournal.com - Date: 2007-06-19 09:00 pm (UTC) - Expand

Date: 2007-06-14 05:52 pm (UTC)
From: [identity profile] pzz.livejournal.com
И еще одна.

Есть програмка fuse (http://fuse.sourceforge.net/), позволяющая реализовать файловую систему в user space.

Предлагается написать аналог для реализации в user space сетевого протокола (т.е., address family).

Назвать можно suse :-) (от слова socket).

Date: 2007-06-14 09:47 pm (UTC)
From: [identity profile] rblaze.livejournal.com
Ну вообще-то bpf и sysvipc уже написаны, этого достаточно для user-space протоколов, если не морочиться безопасностью.

Date: 2007-06-14 10:25 pm (UTC)
From: [identity profile] pzz.livejournal.com
Я имею ввиду именно address family. Т.е., возможность создать свои тип сокетов, существующий параллельно с AF_INET, AF_UNIX, AF_INET6, ...

В винде аналогичные вещи делаются с помощью layered service provider: http://en.wikipedia.org/wiki/Layered_Service_Provider

Но конечно, хотелось бы получить не столь замороченную конструкцию.

(no subject)

From: [identity profile] rblaze.livejournal.com - Date: 2007-06-14 10:36 pm (UTC) - Expand

(no subject)

From: [identity profile] pzz.livejournal.com - Date: 2007-06-14 11:15 pm (UTC) - Expand

(no subject)

From: [identity profile] rblaze.livejournal.com - Date: 2007-06-15 07:40 am (UTC) - Expand

(no subject)

From: [identity profile] pzz.livejournal.com - Date: 2007-06-15 05:57 pm (UTC) - Expand

Date: 2007-06-14 11:30 pm (UTC)
From: [identity profile] msh.livejournal.com
У netfilter есть же модуль такой, queue или что-то типа того, который ворует пакеты из цепи и отдает их в user space, а потом из user space получает и обратно вбрасывает

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

Date: 2007-06-14 11:42 pm (UTC)
From: [identity profile] msh.livejournal.com
.. а в user space мы энкапсулируем либо в UDP либо в TCP, смотря что за протокол у нас, и забрасываем обратно. Теперь мы его можем использовать из обычного сокета - recvmsg и вот наш пакетик или read и получаем наш стрим

Date: 2007-06-15 12:02 am (UTC)
From: [identity profile] pzz.livejournal.com
Сокет это вовсе не обязательно что-то, что генерирует в конечном итоге UDP или TCP пакеты.

Переформулирую задачу другими словами. Я хочу иметь возможность создать вызовом socket() объект, который выглядит как нормальный сокет. Т.е. позволяет делать над собой все те же операции, которые позволяет делать обычный сокет. В частности, может быть использован вместе с другими файловыми хендлами в select'е (poll'е), может быть передан как файловый хендл другому процессу, и позволяет использовать protocol-specific опции в setsockopt/getsockopt, и auxiliary data в sendmsg/recvmsg.

Но при этом содержательно все операции над ним обрабатываются в другой программе (на худой конец, в shared library, но в любом случае прозрачно для той программы, которая пользуется таким сокетом).

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

(no subject)

From: [identity profile] msh.livejournal.com - Date: 2007-06-15 12:30 am (UTC) - Expand

(no subject)

From: [identity profile] rblaze.livejournal.com - Date: 2007-06-15 07:56 am (UTC) - Expand

(no subject)

From: [identity profile] msh.livejournal.com - Date: 2007-06-15 11:50 am (UTC) - Expand

(no subject)

From: [identity profile] rblaze.livejournal.com - Date: 2007-06-15 11:54 am (UTC) - Expand

Date: 2007-06-14 06:12 pm (UTC)
From: [identity profile] pzz.livejournal.com
Кстати, в западных университетах осмысленные результаты такого рода проектов часто публикуются.

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

Что это, отсутствие у нас толковых студенческих работ, или желание компаний на корню подгрести всех вменяемых студентив под себя?

Date: 2007-06-14 06:25 pm (UTC)
From: [identity profile] flhack.livejournal.com
Не пишет там никто запчасти к реальным проектам, это ыообше не реально. Почему результаты не публикуют - надо бы спросить.

Date: 2007-06-14 06:40 pm (UTC)
From: [identity profile] krotoff.livejournal.com
Насчет публикаций - вопрос темный. Публикуются в-основном те проекты, создание которых каким-либо образом спонсировалось государством (тот же BSD).

(no subject)

From: [identity profile] pzz.livejournal.com - Date: 2007-06-14 06:42 pm (UTC) - Expand

(no subject)

From: [identity profile] krotoff.livejournal.com - Date: 2007-06-14 06:46 pm (UTC) - Expand

(no subject)

From: [identity profile] pzz.livejournal.com - Date: 2007-06-14 06:49 pm (UTC) - Expand

(no subject)

From: [identity profile] krotoff.livejournal.com - Date: 2007-06-14 07:02 pm (UTC) - Expand

(no subject)

From: [identity profile] pzz.livejournal.com - Date: 2007-06-14 07:14 pm (UTC) - Expand

(no subject)

From: [identity profile] krotoff.livejournal.com - Date: 2007-06-15 06:47 am (UTC) - Expand

(no subject)

From: [identity profile] pzz.livejournal.com - Date: 2007-06-15 04:15 pm (UTC) - Expand

Profile

kika: (Default)
kika

January 2017

S M T W T F S
1234567
89 1011121314
151617181920 21
22232425262728
293031    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 16th, 2026 04:11 pm
Powered by Dreamwidth Studios