Category: работа

Category was added automatically. Read all entries about "работа".

Доставайте голангистов из гробов

Есть вопросы по языку для интеллектуального большинства:
1) Если я форкаю чужую библиотеку, а она унутре себя ссылается на сама себя - как с этим работать? SO советует сначала делать go get оригинальной, затем подключать git remote свою репу и потом править. Т.е. на всех других рабочих местах нужно будет повторять то же самое. По идее, это должен менеджер зависимостей делать в конечном итоге?

2) Что за херня с логгерами и обработкой в этом вашем голанге? В большинстве либ обработка ошибок сводится к log.Println(err) где err - строка в стиле "у вас произошла херня", без объяснений что, где и как, причем способа привязать логгер к пакету я чо-то не нашел.

А вот про тусовки программистов

http://ivan-gandhi.livejournal.com/3564338.html?thread=59084594#t59084594
Занятно то, что организованных неформальных тусовок людей, занимающихся какой-то интересной предметкой, я как-то не встречал.
То ли интересных задач и так мало, чтобы еще и конкурентам грибные места выдавать, то ли времени ни у кого нет.
А обсуждать очевидные вещи вроде "как использовать сотый фреймворк в идеальных условиях наличия бесконечного бабла на амазон сервера" нет смысла.

Субъективное и объективное насилие

http://artureg.livejournal.com/261332.html
http://pelageya.livejournal.com/1328119.html#comments
http://feldgendler.livejournal.com/155015.html
http://proza.ru/2008/03/16/62 (поиск по фразе "наступил на его тень")

Общего между этими ссылками - субъективное (в случае кришнаитов, впрочем, не совсем) восприятие некого действия как насилия. Сексистские шутки на рабочем месте, религиозные ритуалы, мешающие жить окружающим, наступание на тень человека, суеверия которого утверждают, что тень - часть его тела.
Последнее, про тень, в произведениях у alex_rozoff обычно используется как контр-пример, разделяющий объективное и субъективное насилие - запретить наступать на тень - это ограничение свободы, объективное насилие, а наступание на тень - субъективное.
Еще есть такая занятная вещь, как вторжение в личное пространство - т.е. угроза или манипулирование лучше осуществляется, если преступник-манипулятор находится на небольшом расстоянии от жертвы, или вообще касается ее. Объективно вреда от этого нет, субъективно же - дискомфорт в такой ситуации достаточно сильный.
Фактически, во всех случаях возникает казус "отвечания за базар". Один человек или группа людей осуществляет нематериальное действие, которое другим человеком или группой воспринимается, как насилие/оскорбление и вопрос состоит в том, должно ли государство(или руководство фирмы), с его монополией на насилие, вмешиваться с объективным насилием в качестве ответной меры ща субъективное. Ну или дает ли субъективное насилие право на объективную самозащиту - если к тебе сунулся гопник с наездом, можно ли ему превентивно что-нибудь в организме повредить.

Мы на эту тему очень долго и упорно спорили с белорусскими аутишниками, но в итоге ни к чему внятному не пришли. Абстрактные гуманисты с упорством, заслуживающим лучшего применения, защищают условную идею "нельзя сломать гопнику руку раньше, чем он начал на тебя нападать с ножом" или "нельзя бить лицо за оскорбления".

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

Новости из сумеречного мира.

Звонит клиент и жалуется: на одном рабочем месте валится ошибка в отчете.
Смотрю логи - дохнет на распаковке gzip ответа от сервера приложений, битые данные.
Добавляю в прогу отладочное сохранение ответа сервера, смотрю логи: идет 60 килобайт gzip, затем бац - распакованный кусок ответа, несколько килобайт.
Перекапываю в интернетах баги jetty, баги клиентской либы - ничего похожего.
Ладно, прошу у клиентов доступ на проблемное рабочее место, скачиваю туда wget/curl/wireshark/sysinternals и начинаю тестировать.
curl пишет такое: "received problem 3 in the chunky parser". На выход пишет тот же самый ад, что у меня в логах, половина gzip, половина ответ.
wget получает данные целыми, WTF
Ладно, думаю, запускаю tshark с фильтрацией моего коннекта, еще раз запускаю curl, получаю битые данные.
Скачиваю дамп разговора curl и сервера себе, открываю - идеальный ответ сервера, chunked encoding, в конце 0 чанк, все как доктор прописал.
В итоге - лезу в драйвера сети, смотрю - а там антивирус ESET ПРОТОКОЛЫ БЛЯДЬ ФИЛЬТРУЕТ.
Включаю все свои проги в исключения, все начинает работать как положено.

Козлопитоны из ESET в драйвере декодят gzip, декодят chunk encoding и успешно поверх этого грохают свой же буфер, придурки лагерные.

О симптомах трудоголизма

dmzlj в жуике писал, что отличить рабочий день с нормальной работой от занятия херней очень просто: если вечером болит голова - то занимался херней, типа "общаться с клиентами", "писать документы для госконтор" итд. Если программировать - голова не болит.

У меня аналогично: если я к вечеру себя ощущаю не совсем адекватно (голова побаливает, мысли в порядок не приводятся, одновременно невозможно заснуть и невозможно ничем толком занятся) - скорее всего целый день нифига не делал, тупил в интернеты.
Если же целый день работать - к вечеру обычно чувствуешь себя адекватно и спишь нормально.

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

О какие вакансии

http://crew.taucraft.com/

Ведущий дотнет разработчик, от 2.5 к$
Краткая характеристика:
Думает объектами и выделяет абстракции из вакуума.
Кодирует вслепую на C# и помнит 10 шорткатов решарпера.
Способен в одиночку решить любую задачу, но может делать это и в паре.
Предсказывает будущее и знает, что появится в .NET 5.0.
Не помнит, как писать код без юнит тестов.
Понимает монады и может объяснить другим, что это такое.

Эти же люди снимают офис в трилистнике в самой высокой точке Минска. Антенну бы у них на окно впихнуть

Денех мало и решарпер я не использую, т.к. он меня огорчает.
Впрочем, я все равно не подойду - я ретроград и до сих пор использую 2008 студию и 3.5 дотнет, потому что монады и абстракции от смены языков и инструментов не изменяются. Ну и в agile и прочий баззворд я не верю.

Псение на самого Кахеса

А поговорю-ка я тоже с голосами в голове:
http://ingaret.livejournal.com/100470.html?thread=1201526#t1201526
Один уважаемый ребе, живущий по принципу "за счёт зарплаты токаря ставим на токарный станок счётчик оборотов и сажаем рядом снимающего показания с этого счётчика", вполне технарь. Но и он очень любит повысирать в сторону людей, которые его кормят.
Это, например, на тему этого поста: http://belnetmon.livejournal.com/1721437.html
В прошлом набросе я всего лишь спросил "можно ли оправдывать плохую работу маленькой зарплатой". Теперь внезапно оказывается, что водилы, крадущие топливо, "нас кормят".

Штанга и хаскель

Короче, тема штанги уже без вариантов всплывает в любом обсуждении ФП и хаскеля.

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


Представляю себе требования к вакансии, типа "Знание налоговых и бухгалтерских оперденей, понимание теории категорий, реляционной алгебры, жим лежа не меньше 100 кг".

Ссылка с planet haskell, наследование

Reflections on leaving Haskell

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

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

Например, недавняя задача: есть объект типа "датагрид". C ним пользователь сделать три действия: открыть текущую запись-объект на редактирование, воспроизвести из одного из полей текущей записи аудиозапись, открыть из другого поля этой записи большой текстовый документ на редактирование. Это все представляется в виде объекта типа "текущее рабочее место пользователя", содержащей этот грид и методы, замапленные на меню/тулбар. Если бы действия были независимы - сделал бы три наследника базового рабочего места: "с редактором записи", "со звуком", "с редактором текста".
Но дело в том, что эти три действия могут комбинироваться в любых вариациях и вместо наследования тут получается проще сделать некую аггрегацию, собирая из комбинаций типов "рабочее место с гридом", "рабочее место с редактором объекта", "рабочее место со звуком, "рабочее место с редактором текста" итоговый тип рабочего места, склеивая их анонимными делегатами, связывающими текущую запись в гриде и действия с ней из других классов.

И так, если глянуть, почти везде - везде наследование реализации выглядит прибитым гвоздями сбоку. Кроме одного частного случая, как и там по ссылке - когда нужно из двух-трех объектов данных, отражающих частные аспекты, собрать новый. Например "финансовый документ" + "объект, внесенный в определенном филиале по определенной ИМНС" = "финансовый документ с привязкой к подразделению и ИМНС". Хотя тут, по идее аггрегация, тоже бы помогла, наследование тоже выглядит прибитым сбоку.