логин: 
<< предыдущая заметкаследующая заметка >>
12 мая 2017
О программировании

Закончил пару программных проектов — песни для Розового Слона и и заводской конвейер для Юры Ильина. Второе — это у Юры колоссальная (для скромно поставленной задачи) система мониторинга окружающей среды и перемещений палетт по конвейерам, он там свою собственную mesh-сеть разработал с датчиками, репитерами и базовыми станциям. А я помогал ему с сайтом-аккумулятором для обсчета и показа всего этого, но и сайт в итоге вышел развесистый и с кучей функций:

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

Тут был конечно прикол. Как вы помните, BBC-шную графику waveform я приспособил к своему движку, обвесил системой редактирования, снабдил автоматической резкой фонограммы на обозначенные куски, и всё вроде работало: http://lleo.me/dnevnik/2017/04/28.html. Работало сперва на домашнем home.lleo.me, работало, когда я перенес пост в дневник на lleo.me, а вот когда я накатил этот модуль Розовому Слону на движок vigele, там все эти красивые waveform тупо отказались запускаться, повисая на полпути. Почему? Загадка. При переносе тех же mp3 на home.lleo.me все начинало работать.

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

Второй вечер был убит на изучение, чем отличается хостинг FreeBSD от Linux (может, какие хедеры nginx вместо apache отдает?)

В третий вечер выяснилось, что перенесенные на home.lleo.me файлы тоже перестали работать. И вечер я убил на выяснение, чем может в этом плане отличаться mp3 на 48 кГц от 44.1, и в чем может быть для BBC-шного конвертера разница между Joint Stereo и просто Stereo.

А тем временем... на home.lleo.me тоже по очереди перестало работать всё, выключая старые фонограммы Боричева и Паперного, которые я изначально там и разбирал, и на которых всё отлаживал. Причем, в дневнике на lleo.me модуль работу свою продолжал как ни в чем не бывало.

Четвертый вечер был убит на изучение этой загадочной эпидемии с наблюдениями, как один за другим сами собой прекращают работать страницы, еще недавно работавшие. Наконец случайно удалось выяснить, что проблема наблюдается только только у меня и только в Firefox. А Chrome показывал и показывает исправно. Более того: если Firefox временно снести и установить с нуля, то в нем тоже всё и везде работает. А вот сброс кэшей не помогает.

Читатели-программисты ждут отгадки? Да, она есть. Вы не поверите. Масштаб страницы! Масштаб, сцуко, страницы! Если нажать в Firefox Ctrl+/Ctrl- масштаб конкретно этой страницы изменится и запомнится, о чем будет пометка в строке адреса. И вот этот BBC-шный движок (можете сами проверить: http://waveform.prototyping.bbc.co.uk/) отказывается запускаться в Firefox, если масштаб отличается от 100% в ту или иную сторону:

Сцука, масштаб страницы разом ломает все графические наработки программистов корпорации BBC! Почему?! Поскольку там наворочены тонны чужих фреймворков один поверх другого (не считая сраного Jquery, который я отдельно ненавижу за подобные приключения), то я полагаю, у этой системы не существует разработчика, который смог бы понять, почему. По крайней мере, мне копаться в этом дерьме совершенно не улыбается:

Мораль проста (хотя я знаю множество программистов, которые со мной не согласятся): ничто не способно отнять столько сил и времени, как чужой код. Если есть возможность, надо всё и всегда делать самому. По крайней мере, это проще, понятней, приятней, не приносит настолько мистических загадок и не требует магии и танцев с бубном. В отличие от чужого и непонятного черного ящика, который способен отвалиться в любую минуту без причин.

<< предыдущая заметка следующая заметка >>
пожаловаться на эту публикацию администрации портала
архив понравившихся мне ссылок
Оставить комментарий
Windows Safari Chrome
 Киев
3
1
Торакс (#6783330)
А учится как? Ничто лучше так не обучает как разобрать чужой код и найти в нем ошибки.
Linux Ubuntu Firefox
 Москва
4
0
Leonid Kaganov
Правда? Тогда у меня для вас прекрасная новость: вы можете поучиться на отличненько, найдя ошибку в чужом коде http://waveform.prototyping.bbc.co.uk Но что-то я по вашему поскучневшему лицу вижу, что вы совершенно не горите желанием... Наверно вы просто не любите учиться ;)
Windows Safari Chrome
 Черневцы
1
0
Торакс2 (#6482481)
Дык я воообще жжж... в абстрактном смысде! :)
Linux Safari Chrome
 Австралия
0
1
bkonst
Ищется за 15 минут.
Windows Firefox
 Москва
3
0
Abstraction
Учиться ровно наоборот: сначала пытаться самому решить какую-то задачу, потом взять библиотеку и осознать, почему она написана именно так, потом найти в ней места которые всё ещё кажутся странными и разобраться, отчего же разработчики не сделали их "проще". (Это именно чтобы учиться, в разработке, особенно командной и/или продукта, который должен жить долго, велосипеды можно использовать только если специально выделять много времени на документирование и тестирование оных. Хотя писать их, да, обычно намного "проще, понятней и приятней").

А искать ошибку в чужом коде, не имея представления о том, какие именно подводные камни пытались обойти его разработчики - удел либо гуру, либо безнадёжных оптимистов. Скорее всего, придуманное вами "исправление" починит один конкретный use case ценой поломки десятка других, о которых вам даже в голову не пришло подумать.
Linux Firefox
 Россия
0
0
h0bbyte
Наверное, для статистики:
FFESR 45.8.0 - работает.
Linux Firefox
 Москва
0
0
просто Фыва Jr Олдж
FF 53.0 Linux 64bit работает, и даже если страница не 100%, а любое другое значение, то всё равно работает.
Linux Ubuntu Firefox
 Москва
0
0
Leonid Kaganov
Firefox 53.0.2 Linux 32 при масштабе глючит.
Windows Safari Chrome
 Нидерланды
0
0
mclane
Тоже для статистики - в Опере 46.0 работает, в прости-госспади MS Edge тоже.
Linux Safari Chrome
 Петрозаводск
1
0
guest92e (#6703519)
> Мораль проста (хотя я знаю множество программистов,
> которые со мной не согласятся): ничто не способно отнять
> столько сил и времени, как чужой код. Если есть
> возможность, надо всё и всегда делать самому.

Так-то оно так, но почитайте Спольски:
https://www.joelonsoftware.com/2000/04/06/things-you-should-[...]
Windows Safari Chrome
 Wisconsin Rapids
0
0
Gena Kukartsev
Блин, я то же самое запостил ниже... :)
Windows Safari Chrome
 Каменск-Уральский
0
0
D.iK.iJ
Там про то, что они решили свой код переписать с нуля. Или надо дальше 1 абзаца читать? )))
Windows Safari Chrome
 Каменск-Уральский
0
0
D.iK.iJ
"Они решили переписать код с нуля".
Оу.
Свой.
Код.
Переписали.
С нуля.
Linux Safari Chrome
 Иркутск
2
3
m (ngs-govno)
> знаю множество программистов, которые со мной не согласятся

Я могу расширить ваше множество - ни один профессиональный программист с этим не согласится.
Вы уж тогда, для начала, язык свой собственный разработайте, напишите интерпретатор или компилятор к нему на, так уж и быть, чужом ассемблере. А то не совсем честно получается.
Linux Safari Chrome
 Иркутск
0
2
m (ngs-govno)
Впрочем, вы, традиционно, хитро оставили оговорку "если есть возможность", под которую можно подогнать любой случай.
Linux Safari Chrome
 Иркутск
1
1
m (ngs-govno)
Какой ещё, блядь, Иркутск?? Это где, вообще?
Linux Ubuntu Firefox
 Владимир
0
1
Adamos
Это, как мы понимаем, образец работы кода, в котором автор избегал использовать чужой опыт.
Linux Ubuntu Firefox
 Москва
2
0
Leonid Kaganov
О, ровно наоборот: это как раз типичный образчик работы чужого публичного внешнего сервиса, зацените: http://ipgeobase.ru/geo?ip=91.185.41.140
Нетрудно догадаться, что если бы определялку писал я, такого бы не было ;)
Linux Ubuntu Safari Chrome
 New York
0
0
Кто здесь?
Смотря что за "чужой код". Не обобщайте.
Когда написано все "в одну функцию", с кучей глобальных переменных, в одну строку, с синтаксическими извращениями, без комментариев, с дурацкими именами переменных, извращенной логикой работы и проч. - ну его нафиг.

А то еще некоторые любят делать простые вещи максимально сложным способом...
Windows Safari Chrome
 Санкт-Петербург
0
0
[email protected]Кошак (cats-shadow)
>Мораль проста (хотя я знаю множество программистов, которые со мной не согласятся): ничто не способно отнять столько сил и времени, как чужой код. Если есть возможность, надо всё и всегда делать самому. По крайней мере, это проще, понятней, приятней, не приносит настолько мистических загадок и не требует магии и танцев с бубном. В отличие от чужого и непонятного черного ящика, который способен отвалиться в любую минуту без причин.

Всё так, да :)
Потому и задаю глупые вопросы :)
Mac Safari
 Израиль
4
0
braintunic
> Мораль проста

Только мораль другая.
Для себя и своих друзей ты можешь выкатывать версии твоих программ как тебе нравится.
А вот если ты собираешься поставлять заказчику профессиональный программный продукт (за деньги), то без нормального тестирования (QA) тебе не обойтись.

Ну и сразу до кучи нормальный "version control" и нормальный "bug tracking" для каждого проекта.
А не как сейчас: "когда это я вставил такую фичу? ни хрена не помню..."

Или иначе сразу пиши, что твоя программа поддерживает Web-интерфейс только на Firefox 53.0, только на Linux Ubuntu 32-бит, и только в конфигурации "by default".
А если пользователь изменил масштаб страницы - сам виноват ;)
Linux Ubuntu Firefox
 Москва
1
0
Leonid Kaganov
Это ты программистам корпорации BBC говоришь? Боюсь, они тебя тут не прочтут: когда я им сегодня отправлял багрепорт, ссылку на этот пост не давал, только скриншоты приаттачил.
Mac Safari
 Израиль
4
0
braintunic
> Это ты программистам корпорации BBC говоришь?

Вовсе нет - программисты корпорации BBC не пишут профессиональные программные продукты на продажу.
Они пишут всякие прикольные штучки для внутреннего использования.
Ну а если получилось очень прикольно, могут выложить свою программку в публичный доступ.

Что они и сделали с этими их audiowaveform и peaks.js - выложили их в публичный доступ как open-source.
То есть, каждый может ими пользоваться, искать баги и посылать им либо баг-репорты либо (что лучше) готовые правки их багов.
Но они никому не обязаны эти баги править.
Для них самое важное - чтобы код работал на самом BBC, в их специфической среде, а проблемы сторонних пользователей не очень-то интересны.

Если будешь писать open-source код и выкладывать в публичный доступ, тоже можешь начхать на профессиональные методы разработки программного продукта.
Linux Ubuntu Firefox
 Москва
0
0
Leonid Kaganov
Как-то между строк читается, что баг у разрабочиков на BBC, но виноват все равно я, потому что его нашел. Им-то можно, они же никому не обязаны. А вот я - это совсем другое дело. Какое же? Другое. Потому и нотации следует читать мне, а не им ;)
Mac Safari
 Израиль
1
0
braintunic
> виноват все равно я

Когда ты продашь свою программу, а она перестанет работать (и ты не сможешь это быстро исправить), то заказчик потребует С ТЕБЯ деньги обратно НЕСМОТРЯ на то, что баг сидит не в твоём коде, а в коде, который ты взял со стороны и использовал.

И заказчик будет абсолютно прав - ведь это ТЫ заранее не проверил, что ТВОЙ готовый программный продукт не работает в некоторых вполне стандартных условиях.
Linux Firefox
 Москва
2
0
просто Фыва Jr Олдж
Если будешь писать open-source код и выкладывать в публичный доступ, тоже можешь начхать на профессиональные методы разработки программного продукта.

Вот! Именно поэтому я считал, считаю и буду считать что проприетарный софт более хорош, чем опен сурс. Девиз всего GNU "It works for me!" что значит "У меня всё работает и мне нравится, а вы идите нахуй!" В проприетарном такого никогда не будет, там всегда на первом месте клиент, а не разработчик.
Linux Ubuntu Firefox
 Москва
0
0
Leonid Kaganov
Тут надо добавить, что разработчикам OpenSOurce вообще начихать на всё, даже на то, что их софт не работает вообще.

Вот например мне вчера понадобился плагин Slack для Pidgin - по работе надо быть в чате (ставить новый говномессенжер не собираюсь - у меня всё говно от ICQ и Jabber до Фейсбука с Вконтактом и Телеграмом собрано в Pidgin, я бы с ума сошел все это по отдельности ставить).

Так вот, захожу на сайт плагинов: https://developer.pidgin.im
И вижу там в списке плагин Slack: https://github.com/necrosis/slack-libpurple

Пытаюсь его собрать - фигу. Собирается с предупреждениями, инсталлируется, но но не запускается. Судя по комментам проекта (а он всего там один) - ни у кого и не запускается. Судя по исходникам - его начали отлаживать на своем компе, да не отладили. Вопрос: и кому нужно такое говно? Почему оно живо? Почему его вписывают в реестры готовых плагинов, не удосужившись проверить?
Mac Safari
 Израиль
0
0
braintunic
> Именно поэтому я считал, считаю и буду считать что проприетарный софт более хорош, чем опен сурс

Ну, в этом случае я как раз привёл отрицательные стороны open-source проектов.
Но есть и положительные стороны - которых нет у коммерческих проектов и которые нередко перекрывают все минусы.

Например, подключение высококачественного и многочисленного внешнего потенциала разработчиков и отладчиков кода.
В таких проектах как, скажем, Linux Kernel или Samba, этот фактор сработал прекрасно и продукты получились (и продолжают развиваться) весьма успешно.
Linux Firefox
 Москва
1
0
просто Фыва Jr Олдж
Мораль проста (хотя я знаю множество программистов, которые со мной не согласятся): ничто не способно отнять столько сил и времени, как чужой код. Если есть возможность, надо всё и всегда делать самому. По крайней мере, это проще, понятней, приятней, не приносит настолько мистических загадок и не требует магии и танцев с бубном. В отличие от чужого и непонятного черного ящика, который способен отвалиться в любую минуту без причин.

Полностью и безоговорочно соглашусь. Когда я раньше ещё бывало программировал, то 90% времени у меня уходило на то, чтобы понять чужой код. А без полного понимания чужого кода (не стандартных библиотечных функций, которые тоже в принципе чужой код, но они стандартны всегда и везде, а всяких дополнительных библиотек и фреймворков) никогда ничего нормально не сделаешь. Поэтому чужой код это зло и его надо всячески избегать. Code reuse -- изобретение садистов, фашистов и извращенцев.
Windows Safari Chrome
 Wisconsin Rapids
2
0
Gena Kukartsev
Леонид, ну и как теперь вы будете жить? Как жить в мире, где ты согласен с Фывой? Отрекитесь!
Mac Safari
 Израиль
0
0
braintunic
Отречься от Фывы?
Это была бы слишком большая жертва ;)
Linux Firefox
 Москва
0
0
просто Фыва Jr Олдж
Сегодня уже 13-е мая, сегодня мой последний день интернета ( http://lleo.me/dnevnik/2017/04/01.html#241613 ). Так что сегодня в 12 ночи я сам отрекусь, вернее провайдерский робот меня отречёт, от всех и от всего на радость труашеранам, глебам, аудиотеатрам и всем прочим нгсговнам.

Вот думаю, просто и без обиняков что ли напоследок всех нахуй послать? Или как Игорь Милонов ( https://lurkmore.to/Письмо_Милонова ) постараться, потратить чуть больше времени и составить "Последнее письмо" в котором рассказать всё что я думаю про всех? До 12 ночи пока что время есть, буду думать как поступить.
Windows Firefox
 Германия
1
0
Глеб
тринадцатого мая в полночь
покинул фыва интернет
вот только что тут русофобил
и нет
Windows Safari Chrome
 Челябинск
0
1
vinny-the-poo
Ну ахуеть, что я пропустил! Вот так бросаешь старые посты читать, а там движуха не утихает.

Однако...

Может быть скинуться Фыве на интернет, чтобы в дополнение ко всем остальным жизненным неурядицам ещё и синдром отмены не ударил? А у нас запустение не началось?
Linux Safari Chrome
 Москва
0
0
m (ngs-govno)
> Вот думаю, просто и без обиняков что ли напоследок всех нахуй послать? Или как Игорь Милонов

Что бы ты не сделал, всем будет похуй, извини
Linux Safari Chrome
 Москва
0
0
m (ngs-govno)
Кстати, ты кто, вообще?
Linux Safari Chrome
 Новосибирск
1
0
&amp;#19978;&amp;#37096;
Мне повезло больше: у меня эта штука и на их сайте сразу не работала.
(Или я не понял, какие кнопки там для демо нажимать.)
Windows Safari Chrome
 Wisconsin Rapids
1
1
Gena Kukartsev
Леонид, вы правы: с вами многие не согласятся, и не только программисты. Я вот не согласен. Ну да кто такой я, а вот этот чувак немного больше заслужил внимания:

https://www.joelonsoftware.com/2000/04/06/things-you-should-[...]

Вот наверное самая главная мысль и мой вольный перевод:

"We’re programmers. Programmers are, in their hearts, architects, and the first thing they want to do when they get to a site is to bulldoze the place flat and build something grand. We’re not excited by incremental renovation: tinkering, improving, planting flower beds.

There’s a subtle reason that programmers always want to throw away the code and start over. The reason is that they think the old code is a mess. And here is the interesting observation: they are probably wrong. The reason that they think the old code is a mess is because of a cardinal, fundamental law of programming:

It’s harder to read code than to write it."

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

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

Понимать код сложнее чем его писать.

- Джоэл Спольский, создатель StackOverflow и еще некоторых вещей.
Windows Safari Chrome
 Каменск-Уральский
0
0
D.iK.iJ
А еще эту заметку нужно было правильно прочитать, ага ))
Linux Safari Chrome
 Москва
0
0
Andrey (azangru)
> Они думают, что старый код - сплошной бардак просто потому, что таков фундаментальный закон программирования:

О, какая прекрасная синтаксическая двусмысленность перевода :-) Старый код — сплошной бардак, потому что таков фундаментальный закон программирования, — или думают <что старый код сплошной бардак>, потому что таков фундаментальный закон программирования?

Мне прочлось первое; в оригинале, конечно, второе.
Windows Firefox
 Австралия
1
0
bbbooo (#5758774)
до определенных масштабов, да. а потом фиг с маслом, будешь 100 лет писать и закончишь наполовину
Linux Firefox
 Израиль
1
0
Igor
>хотя я знаю множество программистов, которые со мной не согласятся

Программисты, возможно, и согласятся. Но вот начальники программистов точно возразят.

PS. Кстати, о программировании. Почему в предыдущей заметке (про девятое мая) над фото Ллео (верхний левый угол) есть зеленый карандаш, на в остальных - нету. Это баг, или фичер?
Linux Firefox
 Израиль
0
0
Igor
Движок не предлагает в режиме редактирования добавлять картинку. Поэтому вот новое сообщение с картинкой с карандашом (только 9 мая)

Linux Ubuntu Firefox
 Москва
0
0
Leonid Kaganov
Это фича, которая призвана показывать владельцам движка, каков реально код у этой заметки. В нынешней заметке никакой интересной верстки и модулей не применено, чего тут ставить карандаш.
Windows Safari Chrome
 Киев
0
0
Maxfactor9
"Руки отрывать таким программистам!"(с)
Windows Safari Chrome
 Москва
0
0
iisus
Я согласен насчёт самому писать весь код. Но как люди в командах работают над общим проектом? Это они так прозорлливо об интерфейсах договариваются, чтоб не вникать в код друг друга? Или может есть люди, которым окей читать чужой код?
Linux Safari Chrome
 Москва
0
0
Leonid Kaganov
А разве не для этого придумали интерфейсы?
Mac Safari
 Израиль
3
0
braintunic
> Или может есть люди, которым окей читать чужой код?

Эти сложности сильно преувеличены.
Если ты работаешь в группе (development team), то читать чужой код нужно практически каждый день, да и свой код ты не сможешь внести в главный "branch" пока он не пройдёт "review" коллеги по группе.
Плюс, нередко проводятся коллективные "review" нового кода какой-нибудь важной feature или важного bugfix.
А когда team leader делает крупный merge нескольких новых features, то ему бывает приходится одновременно читать и править конкурирующий код от нескольких программистов.

Блин, какой волапюк вышел ;)
Реально не могу найти подходящие русские термины-аналоги.
Кто-нибудь поможет?)
Linux Ubuntu Firefox
 Владимир
3
1
Adamos
Я помогу: выкиньте из этого текста русский.
Тот, кто не сможет прочесть его по-английски, все равно явно не владеет предметной областью.
Linux Firefox
 Москва
1
0
просто Фыва Jr Олдж
Он может выкинуть, имеет право. Но те, кто живёт в России имеют полное право не читать тексты не по-русски несмотря на то, что некоторые из жителей России вполне владеют предметной областью. Нефиг в России насаждать всякие левые наречия.
Linux Ubuntu Firefox
 Владимир
0
1
Adamos
Собственно, вас никто и не собирался заставлять читать этот текст или ущемлять ваше право переводить его на родной язык, если способностей хватит.
Windows Safari Chrome
 Москва
0
0
Михаил
> Нефиг в России насаждать всякие левые наречия.
(в сторону) так вот кто язык программирования 1С-Предприятие выдумал...
Windows Safari Chrome
 Домодедово
0
0
id
Э... а можно просьбу? Или - большую просьбу? Или даже - публичную мегапросьбу?

А сделай таки Юрию вменяемый API на метеостанции? Чтобы не только созерцать таблицы да графики, но и - внедрять данные в жизнь?
REST какой-нибудь? Или хоть тупо XML...
Linux Safari Chrome
 Wisconsin Rapids
3
0
Gena Kukartsev
REST и XML придумали другие. Я уверен, что у Леонида уже давно в движке есть свой собственный протокол. :)
Linux Ubuntu Firefox
 Москва
3
0
Leonid Kaganov
JSON подойдет?

http://pripyachka.com/graph/api.php?n=100&lines=5&st[...]

Выдать 5 последних замеров станции 100, пропустив 200
Windows Safari Chrome
 Домодедово
0
0
id
[э... тут нужен популярный на некоторых бордах смайлик, кланяющийся в ноги...]

Сойдет!
Linux Ubuntu Firefox
 Москва
2
0
Leonid Kaganov
Я чуть поправил, сейчас вообще все переменные выдает.
Если надо чего-то - скажи, делов на 5 минут.
Mac Safari Chrome
 Киев
12
0
lim
«Фам Нювен несколько лет провел, обучаясь программировать и исследовать. Программирование восходило к началу времен. Как та навозная куча за замком отца. Когда ее промыло ручьем на десять метров вглубь, обнаружились искореженные корпуса машин - летающих машин, как говорили крестьяне, еще от тех великих дней колонизации Канберры. Но та навозная куча была чистой и свежей по сравнению с тем, что лежало в локальной сети "Репризы". Были программы, написанные пять тысяч лет назад, когда человечество еще не покинуло Землю. И самое чудесное (самое ужасное, как говорила Сура) было то, что, в отличие от бесполезных обломков прошлого Канберры, эти программы все еще работали! И через миллион миллионов запутанных нитей наследования многие из старейших программ все еще выполнялись во внутренностях системы Кенг Хо. Например, методы слежения за временем у торговцев. Поправки вносились неимоверно сложно - но на самом дне лежала крошечная программа, которая гоняла счетчик. Секунду за секундой отсчитывала система Кенг Хо с того момента, как нога человека ступила на Луну Старой Земли. Но если приглядеться еще пристальнее... начальный момент был миллионов на сотню секунд позже; момент "ноль" одной из первых компьютерных операционных систем Человечества.
Значит, под всеми интерфейсами верхнего уровня лежат уровни поддержки, слой на слое. Какая-то часть этих программ была создана для совершенно иных ситуаций. То и дело несоответствие рождало фатальные инциденты. Вопреки всей романтике космических полетов, чаще всего катастрофы вызывались древними забытыми программами, которым удавалось взять реванш.
- Надо все это переписать, - сказал Фам.
- Это уже сделали, - ответила Сура, не поднимая глаз. Она готовилась уйти с Вахты и последние четыре дня пыталась выловить проблему, обнаруженную в автоматике анабиоза.
- Это пытались сделать, - поправил ее Брет, стоя у морозильников. - Но объем кода только во флотских системах верхнего уровня неимоверен. Посади тебя и еще тысячу человек его воспроизвести, и вы проработаете целое столетие. - Тринли зловеще улыбнулся. - И знаешь что? Даже если вы это сделаете, к концу у вас будут свои несовпадения. И все равно не будет совместимости со всеми приложениями, которые нам то и дело бывают нужны.
Сура на минуту оставила отладку программ.
- Знаешь, как все это называется? "Зрелая среда программирования". Когда аппаратура работает уже на своем конечном пределе, а программисты пишут код уже много столетий, доходишь до точки, когда осмысленного кода становится больше, чем кто-нибудь может прочесть. Тогда лучшее, что ты можешь сделать, - разобраться в общей структуре уровней и понять, как искать экзотические средства, которые могут оказаться удобны - как в ситуации, которая у меня здесь сложилась.»
Windows
 Москва
1
0
vshvetsov
Если есть возможность, надо всё и всегда делать самому. По крайней мере, это проще, понятней, приятней, не приносит настолько мистических загадок и не требует магии и танцев с бубном. В отличие от чужого и непонятного черного ящика, который способен отвалиться в любую минуту без причин.
Вот странно: я всю жизнь именно так поступаю, и при этом всю жизнь думаю, что это, видимо, неправильно. У меня много раз бывало, что мой софт не работает из-за проблем в чужом коде, включая даже совсем стандартные библиотеки. В итоге я пришёл к ситуации, когда я даже классы "авто-пойнтеров" и динамические массивы свои написал и пользуюсь, вместо STL (я про C++). Мне гораздо легче жить, когда я при дебаггировании каждый оператор понимаю, потому что сам написал. Вот, к примеру, когда-то в Borland-е при переходе от VCL к OWL взяли, и выкинули нафиг удобные и полезные геометрические классы TPoint и TRect, и всю библиотеку контейнеров, казавшихся мне удобными, в придачу. Я их тогда взял, и сам себе написал, и с тех пор они у меня не пропадают.
Но вот что хочу сказать: я работаю вне команды. Максимум иногда 1-2 человека мне помогут в реализации отдельных фич, и то я потом не выдержу, и поправлю, как мне больше нравится (включая даже обозначения). И когда я окончательно уйду на покой раскладывать пасьянсы, мой софт умрёт безвозвратно.
Windows Safari Chrome
 Москва
0
0
Sav
Для этого и существуют современные языки программирования. Ассемблер - это способ объяснить компу что делать, ЯП - это способ описать алгоритм на понятном человеку языке. Не уверен чей тезис "код читается гораздо чаще чем пишется", возможно Гвидо Ван Россума, я с ним столкнулся осваивая python, был поражен глубиной и мудростью этой невероятно простой мысли, и с тех пор большой адепт питона, который разработан, чтобы читать чужой код. Отсюда простой синтаксис и так коробящие многих обязательные отступы.

То, что творят в других ЯП - это просто ужас. И одним из лидеров по-моему является javascript. Это ж надо из простого языка сделать такую предподвывертность.

Конечно, от человека писавшего тоже зависит читаемость. Но процент этой зависимости в свою очередь зависит от инструмента, который не позволит написать непонятно и простимулирует ясную формулировку своей идеи. Я действительно только на питоне стал переиспользовать свой код и не боятся скачивать и использовать чужие библиотеки, даже плохо документированные.
Linux Firefox
 Mt Laurel
0
0
Михаил (#1684620)
> большой адепт питона, который разработан, чтобы читать чужой код

Особенно веселуха с областями видимости и типизацией этому способствует...
Linux Firefox
 Москва
0
0
просто Фыва Jr Олдж
У питона есть типизация? Ну то есть типы данных там безусловно есть, но IMHO Python один из немногих недоязыков где запросто можно сделать

>>> print уж
ползучий
>>> уж = ёж
>>> print уж
ползучий колючий
ёж = уж
>>> print ёж
колючий

и никто не будет недоволен. За это лично я питон не особо. Pascal наше всё! там `уж = ёж` не сделаешь, по башке сразу дадут. И будут правы.
Linux Safari Chrome
 Австралия
4
0
bkonst
Каждый раз, когда Лео постит про программирование, хочется плакать.

Неужели написать гневный пост про изобретение собственного квадратного колеса быстрее, чем открыть консоль в Firefox, увидеть там сообщение об ошибке в waveform-data offsetValues, посмотреть, что там за функция, и убедиться, что это "соптимизированный" JS файл виноват?

Но нет, мы не будем исходниками с GitHub / или пакетными менеджерами типа npm пользоваться, мы потянем минимизированный JS хрен знает откуда и будем жаловаться на глюки.
Linux Safari Chrome
 Москва
0
0
Leonid Kaganov
Спасибо, имя ошибки я видел. Не один вы обладаете магией смотреть консоль ошибок. А вот что она означает - это и вы, похоже, не поняли. Потому что пишете какую-то чушь про "оптимизированный JS" (какой из семи?) и исходники, которые я дескать откуда-то не оттуда брал. Речь-то давно не про меня и не про мой сайт, а про саму демку на родном сайте разработчиков BBC. Не хотите им написать, что они лохи и не с того github взяли "оптимизированный JS" и поэтому у них все не работает не только Опере, но и в Firefox с измененным масштабом? Не хотите им посоветовать взять правильный JS :) Или вы только со мной здесь такой смелый знаток ошибок из консоли? :)
Linux Safari Chrome
 Австралия
1
0
bkonst
Я-то как раз понял, и отследил ошибку на их сайте до offsetValues. И сравнил определение offsetValues в peaks.min.js (пожатый JS) с тем, что на их GitHub https://github.com/bbc/waveform-data.js/blob/602f7d7b54fde93[...]. И да, это делается за пятнадцать минут.

Так вот, пакеты bower и npm, предлагаемые к установке на https://github.com/bbc/waveform-data.js этой проблемы не содержат. И то, что JS в их демке глючит в FF - это чисто проблемы сборщика пакета с кривыми руками, перемудрившего с настройками оптимизации сжатия (и FF, выдающего размеры элементов в дробных пикселях)

Соответственно, то, что оно заглючило на вашем движке - это, по всей видимости, проблема таскания готовых кривых сборок вместо использования нормального менеджера пакетов для JS + пайплайна обработки JS.

Такой подход для домашней поделки-хобби на коленке - сойдет.
А вот инженеров, изобретающих очередное квадратное колесо, из нормальных фирм, где умеют ценить время и деньги, гонят метлой.
Linux Ubuntu Firefox
 Москва
0
0
Leonid Kaganov
Скажите, правильно ли я вас понял, что:

1) Сам разработчик системы, разместивший свое же демо на своем же официальном сайте и "сборщик пакетов с кривыми руками" - это одно и то же лицо?

2) Вы не только прочли общедоступную ошибку "offsetValues", но и поняли, почему она происходит, и можете объяснить?

3) Вы установили пакет с github, и он у вас заработал без ошибок?
Linux Safari Chrome
 Австралия
0
0
bkonst
1 - без понятия. Скорее всего команда. Как легко увидеть на github, там минимум 4 человека в разработке. Деплоем мог вообще какой-нибудь пятый заниматься.
2 - да; встречный вопрос - а что мне будет за рассказ про автоматизированное сжатие / оптимизацию JS, type-hinting и отличия поведения Firefox от Chrome при масштабировании?
3 - нет, потому что пакет с npm; да, потому что вызов той же функции без пропуска еще через компрессор с с теми же параметрами к ошибке не привел; нет, потому что я не стал разворачивать все демо один-в-один с нуля и все перепроверять.

Как говорит старый добрый анекдот - шашечки или ехать?
Можно убить пару месяцев на написание своей супер-библиотеки или пару недель на кривенький костылик, а можно перестать жаловаться и отправить им PR с исправлением.

... А можно, кстати, и просто забить на маргиналов на Опере (<1%) и Firefox (<10%) с включенным масштабированием (??%)
Windows Firefox
 Москва
0
0
Johny----------- (#6761238)
Не по теме - что там нынче в качестве банка для фрилансера хорошо?
Я уже целые сутки в полном шоке сижу листаю варианты, находясь в полном ахуе от реалий нашей родины и ее бизнес-климата.

Пока присматриваюсь либо к Веста ( дешево и сердито, авось пронесет, на АСВ уповаем, обслуживание бесплатно, перевод на счет физлица - 89р платежка до 300т.р.

Либо промсвязьбанк - обслуживание 333р(при оплате за год) , платежка до 75т.р. - 0.1% ( то есть до 75 рублей ).

либо отдаться таки в альфу - 812р ( при оплате за год ) , вывод на карту альфы до 150 тыр без комиссий, и 50 на карту физлица другого банка ( например в сбер )

Кто какие еще варианты похвалит?
Linux Firefox
 Москва
0
0
просто Фыва Jr Олдж
Альфа банк идёт нахуй семимильными шагами: https://alfabank.ua/ru/about/press/oficijna-zayava-alfa-bank[...]
Windows Firefox
 Москва
0
0
Johny----------- (#6761238)
блин, и тут они.
Windows Firefox
 Германия
1
0
Глеб
>Альфа банк идёт нахуй семимильными шагами
---
Да, меня тоже покоробило, что они написали "с лицами боевиков ОРДЛО" вместо "с противными рожами террористов".
Однако вы учтите, что это официальный язык, и он обязан быть по возможности сглажен и прилизан. На этом официальном языке допустимы даже словосочетания типа "гарант Конституции РФ", хотя все понимают, кто имеется в виду.
Windows Safari Chrome
 Нижний Новгород
0
0
Тимур Сагитов (timurkin)
Росбанк: платежка - 25 руб., абонплата - 900 р в мес.
Вторая, третья и т.д. фирма идут по хитрому плану, где абонплата составит 500 руб. в мес на фирму

Альфа хорош, если платежей исходящих в месяц не более 5 (у нас по фирме без НДС вполне канает - 1 платеж = зарплата, 2 и 3 - налоги, 4 - закупка, 5 - резерв или на хозрасходы. Для ИП тоже пойдет такой)
Windows Firefox
 Москва
0
0
Johny----------- (#6761238)
ваще налоги в альфе ( как и у всех ) написано вроде бесплатно. 900 жалко. попробую в веста-банке открыться. Хотя и пишут что они бывает блочат счета а при закрытии удерживают 10% за "сомнительные операции"
Windows Safari Chrome
 Москва
0
0
Тимур Сагитов (timurkin)
Налоги - бесплатно. Забыл это упомянуть. Простите(
Windows Firefox
 Израиль
5
0
Павел бывший Пашка
Подумаешь, чужой код, тут со своим пятилетней давности разобраться бы...
Вроде писал чтоб всем понятно было, а на тебе...
Вот пока так не закопаешься со своим же, не научишься правильно писать!
Windows Firefox
 Обнинск
0
0
https://obninsk.name/news12927.htm
Гениальному Лукину в 1988 году даже в страшном сне не виделось.
Mac Safari
 Израиль
1
0
braintunic


Linux Ubuntu Firefox
 Москва
0
1
Leonid Kaganov
Бывало и такое. Каково же было удивление Microsoft, когда они купили Skype, а потом принялись изучать чудовищно изощренный хакерский код от лучших в мире мастеров пиринговых сетей... Думаю, в итоге переписали с нуля :)
Windows
 Москва
1
0
m (ngs-govno)
> Думаю, в итоге переписали с нуля :)

Нет, конечно
Windows Firefox
 Москва
2
0
Johny----------- (#6761238)
Вы просто не поняли, зачем они его покупали.

Пирринговый код им был нахрен не нужен - в первой же версии от Микрософт его выкинули и сделали прохождение ВСЕХ звонков, всех чатов и всех файлов через сервера Микрософта.

Более того - если вы отправляете своему другу абсолютно секретную ссылку на абсолютно секретный файл, тут же беззастенчиво по ссылке придет бот с микрософтовских IP и выкачает ваш очень секретный файл себе для изучения.
Linux Ubuntu Firefox
 Москва
0
0
Leonid Kaganov
Добавлю, что файл в Скайпе вообещ послать тяжело - в большинстве случаев присланные мне файлы выглядят ссылкой, которая либо не открывается, либо открывает сайт Skype со словами "оопс! вы не залогинены!" В этом случае проще ответить собеседнику, что ссылки не доходят, чем садиться вспоминать свой логин и пароль :)

всего комментариев: 131

<< предыдущая заметка следующая заметка >>