All streams
Search
Write a publication
Pull to refresh
2
0
amosk @amosk

User

Send message
На самом деле стрелки там вполне удобные.
Зато очень неудобно что клавиши PgUp/Home и PgDn/End совмещены, причем Home/End включаются модификатором Fn.
Редактировать код очень неудобно, т.к. Home и End постоянно нужны.
Стоит-не стоит — не знаю.
Но на рынке в продаже до сих пор дофига GPS-навигаторов на WM5 и 6.
А это значит что софт под них тоже кому-то приходится писать.
Чтобы понять принцип и успешно применять на практике частичное применение функций никакого предварительного знания функционального программирования не нужно.
Да и навигация по коду через смартуказатели не работает.
 smptr->func();

Переход и вообще всякие подсказки для func не работают если smptr это смартуказатель (с переопределенным оператором ->).
А какой у вас Линукс и оконный менеджер в нем?
Мне проще не использовать жесты, чем извращаться.
К сожалению ни Gestures for Chrome(TM) ни Smooth Gestures под линуксом не пригодны — во время жеста выскакивает контекстное меню.
Под виндой этого нет.

Кто-то знает как бороться, или какойто другой плагин для жестов?
А если серьезно, то претензия не принимается, т.к. в конструкции a != b || c != d трактовка может быть только одна. Никому в голову не придет что имелось в виду a != (b || c) != d. Поэтому именно за то что в паскале автор языка заставляет ставить скобки в совершенно однозначной ситуации надо руки обрывать.
А с битовыми операциями другое.
Там a << b + c может по замыслу программиста быть и (a << b) + c и a << (b + c) поэтому с целью увеличения читаемости там скобки не помешают.
Не знаю, стоит ли Вирту отвечать за это.
Если бы не было паскаля, то все бы гарантированно знали, что в выражении (a != b) || (c != d) скобки не нужны.
За одно то, что в паскале логические операторы имеют приоритет над сравнением, Вирт будет гореть в аду.
Go подталкивает на многопоточное программирование (а не отталкивает, как C++, даже на стероидах нового стандарта).

Голый С++ может и отталкивает от потоков.
Но библиотеки типа boost.asio наоборот позволяют элементарно писать многопоточные программы без явной низкоуровневой синхронизации.
Рассказываю о реально действующем и заодно приятном способе сохранить зрение.
2 часа в день компьютерных сетевых стрелялок от первого лица (Counter strike, Wolfenstein Enemy Territory и подобные).
Всякие стратегии, пасьянсы и прочие энгрибердс — не годятся, там мышцы глаз не работают.

Это кстати хороший тест на инерцию мышления:
24. Напишите рекурсивную ф-ю ХХХХ
25. Напишите ф-ю Фибоначчи
«Любишь читать Хабр? А может и комменты пишешь? company.yandex.ru/job/vacancies/pizdet_ne_meshki_taskat.xml»
Поскольку в примере нет инициализатора для поля n, то данное поле не должно инициализироваться — т.е. содержать конкретное значение.

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

Но практическая ценность сомнительна.
1) В линуксе для getsockopt существует опция SO_ORIGINAL_DST которая как раз позволяет получить первоначальный адрес сервера до перенаправления.
2) Для IPv6 -j REDIRECT не работает, т.к. REDIRECT это NAT который для IPv6 не реализован (хотя и существуют пока незавершенные проекты по устранению этого недочета).
Так вот из-за этого для перехвата IPv6 вместо REDIRECT используют таргет TPROXY который вобщем-то по сути тоже перехватывает соединение, но не через NAT а просто внаглую безо всяких преобразований адресов направляет в локальный слушающий сокет (специальным образом открытый с использованием опции IP_TRANSPARENT).
И поэтому получение первоначального конечного адреса для схемы с TPROXY тривиально — просто получить локальный адрес сокета.
Да и ничего не мешает использовать TPROXY для IPv4.

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

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

Аргумент про тяжесть мне вообще не понятен — сорри. Бывают быстрые/медленные, функционально можные/слабые библиотеки. А тяжесть — это что-то из категорий прошлого века.

Information

Rating
Does not participate
Location
Одесса, Одесская обл., Украина
Registered
Activity