to post messages and comments.

← All posts tagged работа

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

До чего же пространно указываются схемы подписи запросов на биржах. Во-первых, у каждого свои, во-вторых, постоянно непонятно, как что (де)кодировать, и нужно ли. В Poloniex секрет — очевидно шестнадцатеричная строка, но декодировать её не нужно, а в Cryptopia — очевидно Base64 строка, но декодировать её оказалось нужно. Или sha256 напишут, а потом сиди гадай, это SHA-256 в шестнадцатеричном виде в нижнем регистре или двоично, хотя всё остальное рядом — текст. В Kraken выясняется, что двоично, хотя всё остальное рядом — текст. URL в Kraken — это не то, что вы подумали, а только путь URL, как можно понять, перебрав всякие варианты кодирования/декодирования/некодирования/недекодирования остальных вызывавших сомнения элементов схемы и подсмотрев, наконец, в чужих реализациях.

Увидев в документации Cryptopia такое:
URI: the request uri. e.g. https://www.cryptopia.co.nz/Api/SubmitTradeОбрадовался, подумал, ну хоть что-то написали понятно. Вот, у кого Кракену бы поучиться. И думал я так, пока не запарился пытаться пробиться и не посмотрел опять, как делают другие:
strtolower( urlencode( $uri ) )
Как же вы мне все дороги.

Не получается у заказчика через cPanel добавить запись NS, там есть только A, AAAA, CNAME, SRV и TXT, и через WHM тоже не сработало. У меня и в Windows 2003 получилось, и в Яндекс.ПДД порядок, только домены-то при этом мои, а надо, чтоб заказчика. Который день это уже длится. Пытаюсь сагитировать его взять ещё домен второго уровня, уж там-то NS поставятся как надо. $3 в год за .science, $30 сразу за 10 лет — вот столько стоит твоё потерянное время, говорю. Не сдаётся :)

Среди клиентов заказчика (обход геоблокировок) попадаются такие, у которых провайдер мудрит. Бывает, заворачивает все запросы к любым DNS на свой и отвечает от чужого имени. Бывает, блокирует сторонние DNS. Так или иначе, обычная схема с изменённым DNS не работает. Начал делать с proxy.pac. В нём очень плохо, что всё на виду. Тестируют люди все проксируемые каналы на Amazon Fire Stick, на Smart TV, на Chromecast, и каждый раз домены новые всплывают. И сам список найденных доменов, которые нужно проксировать, начинает представлять коммерческую ценность. Поэтому, когда клиенты шарят лучом в темноте DNS, это одно дело, а когда они могут открыть proxy.pac и увидеть там полный список, всё, над чем работали тестеры несколько месяцев на самом разном оборудовании, и просто слить, так можно и конкурентам ненароком сильно помочь.

Было у заказчика желание и до абонентов злых провайдеров добраться, и домены не светить. А у меня давно идейка была в связи с помешательством на блокировках. Я прочитал, что proxy.pac может резолвить айпишки (isResolvable + dnsResolve), и пришла мне в голову мысль, что так ведь можно в DNS хранить команды, а в proxy.pac — читать их и интерпретировать. О том, может ли такое вообще работать, представления были туманные, а тут выдался шанс подтвердить гипотезу. Отзеркалил таблицу перенаправлений DNS в зону поддомена и заставил proxy.pac дописывать к хостам суффикс (этот поддомен) и пытаться резолвить то, что получилось, и в зависимости от этого ходить напрямую или через прокси. В общем и целом получилось так же, как и через SmartDNS, каждый шарит лучом в темноте и видит только нужный ему фрагмент, не видя всей полноты. Отличие — в том, что между клиентом и нашим сервером ещё появились DNS провайдера, а так работает очень похоже.

Автозавершение в текстовых элементах Windows
Так и не нашёл нормальный способ вручную пинать это автозавершение, чтоб оно список перечитывало и чтоб возможные варианты принудительно показывало. Возможные варианты, пока текст не набран, отсутствуют, а даже после того, как набран, нужно получить ответ по HTTP, и только тогда есть, что показать. Объект автозавершения читает пустой список и запоминает, а когда можно что-то показать, список для автозаполнения всё равно пустой. Пока остановился на варианте с RecreateWnd + SendMessage(WM_KEYDOWN, VK_DOWN).

Изолентой там всё скручено. Тут оконные ручки и оконные функции, а тут COM-интерфейсы, а как что-то надо, так и пнуть нечего. Ни сообщение нормальное послать, ни метод интерфейса вызвать.

Небольшое объявление о моих услугах. Я умею делать хитрые прокси. Очень разной степени хитрости.

Один мой клиент раньше делал запросы к чужим сайтам с айпишки пользователя средствами Java, но ему не нравилось, как оно у людей тормозило. Я ему на Ada Web Server сделал JSONP-прокси на локалхосте, залоченный на его сайт, с установщиком для Windows, и чтоб сворачивалось в значок. Он через этот прокси получал валидный для айпишки посетителя прямой URL файлов на всяких OpenLoad и показывал их на своём сайте в HTML5 плеере.

Другой мой клиент промышляет тем, что хостит SmartDNS+прокси для обхода геоблокировок британских ТВ-сервисов. В собственно прокси тут особо много интеллекта не нужно, sniproxy справляется, но нужно отсекать халявщиков и как можно меньше раздражать плательщиков. Соответственно, если обнаруживается на первый взгляд левый запрос, его нужно кинуть в личный кабинет, а если там по кукисам вдруг резко стало понятно, что он свой, просто ему провайдер IP поменял, то нужно оперативно обновить IP и бросить обратно. Тут я на netfilter+ipset сделал такую систему, которая хороших бросает на sniproxy, а плохих — на веб-сервер, который отпинывает в личный кабинет, ну а попутно принимает запросы на синхронизацию из этого кабинета. При синхронизации нужно добавить и/или убрать IP из ipset, а чтоб пользователь не ждал две минуты, удалить объект conntrack. Это две разных сишных библиотеки. И личный кабинет написать надо было, чтоб запросы и на сервер, и в базу корректные делал. Получилось хорошо. У кого IP меняется, действительно оперативно туда-сюда бросает.

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

Занимается человек саморазвитием. Администрирование Линукса осваивает. Идеями безопасного программирования проникся, даже учителя ищет. С головой в учёбу ушёл, некогда ответить.

В погоне за любимым делом или как я оказался в Бельгии
У каждого из нас есть свои мечты, цели, увлечения (и есть работа). Иногда все эти вещи совпадают, иногда сосуществуют, и иногда и вовсе расходятся. Мне очень повезло и, по сути, я смог объединить их и найти работу своей мечты, которая прекрасно сочетала в себе мечты и увлечения.[…]
В какой-то момент меня осенило — но ведь программное обеспечение для авиации тоже пишут и делают обычные люди, не Боги же горшки обжигают, а какой самый «авиационный» язык программирования? Правильно, Ада! Аду я к тому времени уже худо-бедно знал — сосед по квартире расхваливал мне этот «прекрасный язык без переполнений буфера» и постепенно я стал втягиваться в сообщество (да, сообщество есть, в том числе и в России)[…]
вполне себе используют Ada в разработке и даже периодически появляются вакансии; ну, в общем, с десяток компаний набиралось (на весь мир!). Возникла одна проблема — из России они брать не хотели (и, как будет видно дальше, дело вовсе не в визовых заморочках). И тут пришло решение столь популярное в последнее время — пора валить.
Когда–то тоже мечтал свалить из России именно ради работы своей мечты, в те годы проблемы типа ювенальной юстиции были за пределами моего кругозора. А сейчас вполне успешно уламываю заказчиков на фрилансе. Эх, знал бы прикуп.

Пока рейтинг низкий и заказы мелкие, всё было ожидаемо довольно жёстко, ни влево, ни вправо. Но когда прокачался и заказы относительно крупные, риски успеха повышенные, и вообще заказчик не уверен, возможно ли за относительно малые (для заказчика) деньги довести дело до конца, а ещё помогает, если заказчик сначала выбрал не меня, его кинули, и тут уже из тех других, кто подавал заявку, начинают выбирать, находят меня, смотрят послужной список, это всё действует убедительно. И, в принципе, я ведь и не лукавлю, когда оцениваю перспективы в доведении проекта до желаемого состояния работоспособности. Хоть и приходится конвертить заголовочные файлы от всяких libipset в адские привязки и оборачивать их потом в высокоуровневую обёртку, но когда это готово, при отладке всплывает не так уж много сюрпризов, обычно просто дурацкие ошибки, которые проявляются, где положено, а не при случайных обстоятельствах по всему коду.

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

Бесплатный вебинар: Пять шагов к работе своей мечты
Время проведения: 18.05.2016 в 17.00 по МСК (20.00 НСК)Вдруг здесь кому–то такое интересно. Если время будет, я тоже загляну.
Основатель Кадрового Агентства и IT-Академии Алексей Сухоруков совершенно бесплатно раскроет все секреты поиска работы!
Вы ищете работу, но пока безрезультатно? Хотите уйти с опостылевшей должности, но за месяц всего один просмотр резюме? Не знаете, как аргументированно отстоять высокую зарплату?

С тех пор, как настроил WLW на altaimolodoi.ru , открыл для себя негласный стандарт на миниатюры изображений. В Joomla есть свой уменьшатель изображений, который действует в паре с UI и генерит код вида <a href="большая картинка" rel="lightbox"><img /></a>, а WLW может такой код и сам генерить тоже, только картинки при этом, будучи явно заданными, могут отличаться. Я, например, на некоторых страницах в GIMP циркулем промеряю интервал между глаз и так уменьшаю и обрезаю фотки, чтобы все были ровно, ну а по щелчку можно показать фото как было. Например, по такому принципу я делал новые фотографии (для старых нет оригиналов) здесь: atrsib.ru
Для сравнения, как выглядит, если на миниатюре такое же изображение, как на полной фотографии: altaikdm.ru

А вот с atrsib.ru были проблемы. Там тоже Joomla, и тоже давно и не мной поставленная, но все эти трюки не работали. Уменьшитель картинок использовал другой тег, data-milkbox, UI только его и понимал, а если я пытался прописать его в статье руками, то он вырезался фильтрами текста и не сохранялся. Фильтры, я теперь знаю, где отключать, но всё же что–то не то. Оказалось, что в плагине уменьшителя картинок есть выбор подплагина UI, и у них разные способы сообщать друг другу о наличии увеличенной версии, так что я смог перебором найти такой, который бы тоже применял rel="lightbox" (кажется, это был Mediabox), и мои хитрые картинки заработали. Начал портировать свою модифицированную версию плагина XMLRPC с altaimolodoi.ru на atrsib.ru , и заметил, что в статьях, публикуемых через WLW, нет rel="lightbox". Гипотеза, что это как–то вырезается фильтрами, оказалась неверной. Сам WLW не ставит rel="lightbox", если считает, что его нет на сайте, а определяет он его наличие через teg script src="lightbox.js", которого не было. В настройках WLW так и не нашёл, как заставить его думать, что он есть, зато у Microsoft нашёлся твикер, который всё же позволяет это настроить:
social.microsoft.com
Download and run this:
joecheng.com

Select the blog you want to do this for, then Add the following (case matters!):
Name=dhtmlImageViewer
Value=Lightbox 2

That should do it.

Стоит у меня железка и, похоже, надолго, STB с процессором MIPS, на 333MHz и RAM 106Mb. Всё это напоминает мне о том, как много лет назад был у меня Cyrix 333, и RAM там было едва ли больше. И программил я на нём замечательно, как на Turbo Pascal, так и на Delphi, и немного на TASM, а вот теперь, столько спустя, сопоставимое оборудование числится в разряде Embedded, и под него, оказывается, нужно кросскомпилировать.

Работаю в конторе. Контора работает с другими конторами. И все они как будто не слышали про инициативы КПЕ, ППР и местного LUG'а насчёт перехода на свободное ПО, об опасностях зависимости от закрытого ПО и т. д. Шлют нам в формате .cdr и .psd, и глаз не тикает. Так вот, докладываю:
InkScape вполне себе нормально открывает те .cdr, которые нам посылали. Ни я, ни те сотрудники, которым ставился InkScape (пиратский я ставить не подпишусь, а платного всё равно нет, так что куда они денутся?). Только он себя с ними не ассоциирует, и даже в предлагаемых программах при попытке открыть не фигурирует. Надо один раз попытаться открыть такой файл, вручную найти inkscape.exe, запомнить для всех файлов .cdr, и дальше всё будет в порядке.
А вот .psd GIMP открывать теоретически может, а практически он ломается на цветовом пространстве CMYK. Сейчас это якобы можно пофиксить костылём: openmutual.org Я это ещё не проверил, потому что нам «для нашего удобства» дублировали макеты в… .png? .svg? нет, ну конечно же, .cdr, такие вот представления об удобстве. Так как с .cdr геморроя существенно меньше, то что–то в этом есть, это действительно оказывается удобнее.