0
<< предыдущая заметкаследующая заметка >>
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
 Wisconsin Rapids
2
0
Гена
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Леонид, ну и как теперь вы будете жить? Как жить в мире, где ты согласен с Фывой? Отрекитесь!
Mac Safari
 Израиль
0
0
braintunic
Отречься от Фывы?
Это была бы слишком большая жертва ;)
Windows Firefox
 Германия
1
0
Глеб
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
тринадцатого мая в полночь
покинул фыва интернет
вот только что тут русофобил
и нет
Windows Safari Chrome
 Челябинск
0
1
vinny-the-poo
Ну ахуеть, что я пропустил! Вот так бросаешь старые посты читать, а там движуха не утихает.

Однако...

Может быть скинуться Фыве на интернет, чтобы в дополнение ко всем остальным жизненным неурядицам ещё и синдром отмены не ударил? А у нас запустение не началось?
Windows Safari Chrome
 Челябинск
0
0
vinny-the-poo
Ну, вольному воля.
Linux Safari Chrome
 Wisconsin Rapids
0
0
Гена
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
И что, Фыва вот так реально отключился??? 8-[]
Windows Safari Chrome
 Нижний Новгород
0
0
Тимур Сагитов
"а скучать не будешь?" (С) Дж. Салли аки аватар

" Что-то теперь делается в этом проклятом Пролеткульте?" (С) Хворобьев. Золотой теленок

"я сделал это не в интересах истины а в интересах правды" (С) Берлага. Золотой теленок

"В конце тоннеля яркий свет, и я иду,
Иду по выжженной траве, по тонкому льду.
Не плачь, я боли не боюсь – ее там нет.
Я, может, больше не вернусь, а, может, я с тобой останусь" (С) город 312

"Возвращайся в тумане ночи
Возвращайся когда захочешь
Возвращайся я без тебя устал" (С) Корнелюк

"Если хочешь - уходи, раз уж стали дни короче.
Если мой заблудший мир стал тебе не по плечу.
Я не Бог, но я прошу, возвратись когда захочешь,
А пока - считай шаги, в руки флаг и уходи" (С) Лепс

"Тариф «Мой Tele2»" (С):
пакет интернета 5.00 ГБ
бесплатный трафик социальных сетей, WhatsApp и Viber
неиспользованный интернет-трафик переносится на следующий месяц
цена - 99 руб/мес
Linux Safari Chrome
 Москва
0
0
_
> Вот думаю, просто и без обиняков что ли напоследок всех нахуй послать? Или как Игорь Милонов

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

А искать ошибку в чужом коде, не имея представления о том, какие именно подводные камни пытались обойти его разработчики - удел либо гуру, либо безнадёжных оптимистов. Скорее всего, придуманное вами "исправление" починит один конкретный use case ценой поломки десятка других, о которых вам даже в голову не пришло подумать.
Linux Firefox
 Россия
0
0
h0bbyte
Наверное, для статистики:
FFESR 45.8.0 - работает.
Linux Ubuntu Firefox
 Москва
0
0
Леонит Каганофф
Firefox 53.0.2 Linux 32 при масштабе глючит.
Windows Safari Chrome
 Нидерланды
0
0
mclane
Тоже для статистики - в Опере 46.0 работает, в прости-госспади MS Edge тоже.
Linux Safari Chrome
 Петрозаводск
1
0
guest92e
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
> Мораль проста (хотя я знаю множество программистов,
> которые со мной не согласятся): ничто не способно отнять
> столько сил и времени, как чужой код. Если есть
> возможность, надо всё и всегда делать самому.

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

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

В любом случае поскольку whois 91.185.41.140 показывает в полях "address" тоже исключительно "Irkutsk", сам обсуждаемый вопрос изначально лишен смысла. С тем же успехом можно записать сына как "Влодимер" а через 14 лет наезжать на паспортистку, что это типа она в таком простом имени Владимир две ошибки сделала.
Windows
 Москва
0
0
_
Кто вообще в 2017 году локацию по IP определяет? Я уж привык к вечной "Москве", а тут что-то новенькое.
Linux Ubuntu Safari Chrome
 New York
0
0
Кто здесь?
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Смотря что за "чужой код". Не обобщайте.
Когда написано все "в одну функцию", с кучей глобальных переменных, в одну строку, с синтаксическими извращениями, без комментариев, с дурацкими именами переменных, извращенной логикой работы и проч. - ну его нафиг.

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

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

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

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

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

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

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

Если будешь писать open-source код и выкладывать в публичный доступ, тоже можешь начхать на профессиональные методы разработки программного продукта.
Linux Ubuntu Firefox
 Москва
0
0
Леонит Каганофф
Тут надо добавить, что разработчикам OpenSOurce вообще начихать на всё, даже на то, что их софт не работает вообще.

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

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

Пытаюсь его собрать - фигу. Собирается с предупреждениями, инсталлируется, но но не запускается. Судя по комментам проекта (а он всего там один) - ни у кого и не запускается. Судя по исходникам - его начали отлаживать на своем компе, да не отладили. Вопрос: и кому нужно такое говно? Почему оно живо? Почему его вписывают в реестры готовых плагинов, не удосужившись проверить?
Linux Safari Chrome
 Wisconsin Rapids
4
0
Гена
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Вы вот реально оба сидите на линуксах и ругаете опенсорс? :) :)

А если серьезнее, то леонидовы вопросы в той же категории, что спрашивать: почему в глазу нерв с лицевой стороны сетчатки? Кто так сделал через жопу, что свет сперва через нерв проходит? Явный же баг! Почему не исправили? Кто вообще такой глаз выпустил и нахуя?

Так сложилось. Сложная система эволюционировала.
Windows Safari Chrome
 Санкт-Петербург
1
0
Михайлов
Фыва, ты только не умирай, ладно? После слов "уже никем и нигде не работаю" по спине пробежал холодок. Как это не работаешь? Вообще-то, по секрету скажу, мы оба сейчас работаем. Статисты, массовка, и даже ключевые персонажи...
Windows Firefox
 Германия
0
0
Глеб
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Старость по классификации ВОЗ наступает после 75 лет.
Какая старость, Фыва? Вам нет и полтинника!
Windows Safari Chrome
 Россия
0
0
Vasya
Блять, у меня тоже холодок.
Думаю, вот щас напишет, что он мёртв и пишет оттуда.
Windows Safari Chrome
 Челябинск
0
0
vinny-the-poo
Только один плюс за один коммент почему-то ставится. Второй никак не удаётся. А жаль.
Windows Safari Chrome
 Челябинск
0
0
vinny-the-poo
:)
Linux Safari Chrome
 Wisconsin Rapids
0
0
Гена
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
А какая альтернатива "it works for me"? Неужели "it works for everybody"? :) :)
Mac Safari
 Израиль
0
0
braintunic
> Только один плюс за один коммент почему-то ставится. Второй никак не удаётся.

Да ладно.
Забыли того хмыря, кто ставил здесь своему конкурсному стихотворению 500 плюсов? ;)
Windows Safari Chrome
 Челябинск
0
0
vinny-the-poo
Я выше низкого читерства!
Linux Ubuntu Firefox
 Владимир
0
0
Adamos
Эти "претензии к опенсурсу" довольно шаблонны и, как правило, здорово напоминают чувака, который стоит посреди Грушинского фестиваля и ругает горничных за плохую уборку.
Забавный такой экспонат, если вы любите потыкать в кого-нибудь палочкой.
Mac Safari
 Израиль
0
0
braintunic
> Именно поэтому я считал, считаю и буду считать что проприетарный софт более хорош, чем опен сурс

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

Например, подключение высококачественного и многочисленного внешнего потенциала разработчиков и отладчиков кода.
В таких проектах как, скажем, Linux Kernel или Samba, этот фактор сработал прекрасно и продукты получились (и продолжают развиваться) весьма успешно.
Linux Safari Chrome
 Москва
0
0
Леонит Каганофф
О-о-о, давно ли иссяк поток вопросов к Самбе? :) Не самый, мягко скажем, безоблачный пример. А вот еще есть Ooffice - толпы людей кодили кто во что горазд, в итоге родился тяжеловесный, глючный и неповоротливый монстр.
Mac Safari
 Израиль
0
0
braintunic
> Не самый, мягко скажем, безоблачный пример

ОК, согласен ;)
Надо было взять другой пример, скажем, KVM или Git.

Тем не менее, при всех своих проблемах, Samba достаточно успешно применяется во множестве разнообразных продуктов.
Linux Ubuntu Firefox
 Москва
0
0
Леонит Каганофф
Так Windows при всех своих проблемах еще больше применяется ;) А Samba - это вообще что? Я всегда полагал, что это реверс-инженерная подделка его сетевого протокола? ;)
Mac Safari
 Израиль
0
0
braintunic
> реверс-инженерная подделка

Не совсем так.
Reverse-engineering - это когда вскрывается proprietary код (с помощью дебаггеров или дисассемблеров) и затем этот код эмулируется.

Для Самбы такие методы никогда не применялись.
Они не дисассемблируют код майкрософтовских SMB-related программ.
Всё что они используют - это "network analysis", вполне легитимный метод.

Между прочим, ты можешь не поверить, но Microsoft сам реально делал несколько "contributions" кое-каких частей SMB кода в Samba-проект!
(я сперва не поверил, когда прочёл об этом в 2011 году)
Linux Ubuntu Firefox
 Москва
0
0
Леонит Каганофф
Дело не в методе, а в сути: Samba проект архитектурно вторичный, попытка повторить чужой шалаш из своих прутиков.
Linux Ubuntu Firefox
 Москва
0
0
Леонит Каганофф
Как-то между строк читается, что баг у разрабочиков на BBC, но виноват все равно я, потому что его нашел. Им-то можно, они же никому не обязаны. А вот я - это совсем другое дело. Какое же? Другое. Потому и нотации следует читать мне, а не им ;)
Mac Safari
 Израиль
1
0
braintunic
> виноват все равно я

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

И заказчик будет абсолютно прав - ведь это ТЫ заранее не проверил, что ТВОЙ готовый программный продукт не работает в некоторых вполне стандартных условиях.
Linux Safari Chrome
 Москва
0
0
Леонит Каганофф
А в чем вопрос? Я это и говорил: меньше постороннего кода - меньше проблем.
Mac Safari
 Израиль
5
0
braintunic
Меньше постороннего кода - меньше проблем в постороннем коде - это плюс.

Но при этом неизбежно будет и минус - один из двух:

1) либо больше проблем в твоём коде - потому что тебе придётся писать свой код вместо постороннего (часто будучи слабым специалистом в этой конкретной области);

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

Короче, хочешь зарабатывать деньги профессиональным программированием - не жди лёгких решений ;)
Linux Safari Chrome
 Новосибирск
1
0
https://facebook.com/100004839668659
Мне повезло больше: у меня эта штука и на их сайте сразу не работала.
(Или я не понял, какие кнопки там для демо нажимать.)
Windows Safari Chrome
 Wisconsin Rapids
1
1
Гена
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Леонид, вы правы: с вами многие не согласятся, и не только программисты. Я вот не согласен. Ну да кто такой я, а вот этот чувак немного больше заслужил внимания:

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
> Они думают, что старый код - сплошной бардак просто потому, что таков фундаментальный закон программирования:

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

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

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

Блин, какой волапюк вышел ;)
Реально не могу найти подходящие русские термины-аналоги.
Кто-нибудь поможет?)
Linux Ubuntu Firefox
 Владимир
4
1
Adamos
Я помогу: выкиньте из этого текста русский.
Тот, кто не сможет прочесть его по-английски, все равно явно не владеет предметной областью.
Linux Ubuntu Firefox
 Владимир
0
1
Adamos
Собственно, вас никто и не собирался заставлять читать этот текст или ущемлять ваше право переводить его на родной язык, если способностей хватит.
Linux Ubuntu Firefox
 Владимир
0
0
Adamos
> Не хочет или ему безразлично поймёт ли его высказывание большинство жителей России

Второе, естественно.
Windows Safari Chrome
 Москва
0
0
Михаил
> Нефиг в России насаждать всякие левые наречия.
(в сторону) так вот кто язык программирования 1С-Предприятие выдумал...
Windows Safari Chrome
 Домодедово
0
0
id
Э... а можно просьбу? Или - большую просьбу? Или даже - публичную мегапросьбу?

А сделай таки Юрию вменяемый API на метеостанции? Чтобы не только созерцать таблицы да графики, но и - внедрять данные в жизнь?
REST какой-нибудь? Или хоть тупо XML...
Linux Safari Chrome
 Wisconsin Rapids
3
0
Гена
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
REST и XML придумали другие. Я уверен, что у Леонида уже давно в движке есть свой собственный протокол. :)
Linux Ubuntu Firefox
 Москва
3
0
Леонит Каганофф
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
Леонит Каганофф
Я чуть поправил, сейчас вообще все переменные выдает.
Если надо чего-то - скажи, делов на 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 Safari Chrome
 Австралия
4
0
bkonst
Каждый раз, когда Лео постит про программирование, хочется плакать.

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

Но нет, мы не будем исходниками с GitHub / или пакетными менеджерами типа npm пользоваться, мы потянем минимизированный JS хрен знает откуда и будем жаловаться на глюки.
Linux Safari Chrome
 Москва
0
0
Леонит Каганофф
Спасибо, имя ошибки я видел. Не один вы обладаете магией смотреть консоль ошибок. А вот что она означает - это и вы, похоже, не поняли. Потому что пишете какую-то чушь про "оптимизированный 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
Леонит Каганофф
Скажите, правильно ли я вас понял, что:

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%) с включенным масштабированием (??%)
Linux Ubuntu Firefox
 Москва
0
0
Леонит Каганофф
Давайте я уточню вопрос: вы можете показать, что у вас заработало то, что не работает на официальном сайте у разработчика? Ведь если у вас заработало - вам же не сложно показать общественности демку, работающую при изменении масштабов? Если нет демки - то откуда уверенность, что заработало?

Ваши слова про успешный "вызов той же функции с теми же параметрами" и "не стал разворачивать и все проверять" не очень понятны в практическом плане и могут означать что угодно.

[...]
PS: Но конечно вы всегда можете уйти от ответа со словами "мог бы, но что мне за это будет?" Сразу отвечу, что будет то же самое, что и мне - я всегда публикую весь свой код и свои демки (в том числе и эту со всей интеграцией в движок и редактор заметок) совершенно бесплатно, и мне ничего за это не будет - я получаю за свою работу деньги с работодателей, а не с пользователей и не с сообщества разработчиков. Как, собственно, и BBC, опубликовавшие этот код, созданный для внутренних нужд.
Linux Safari Chrome
 Австралия
1
0
bkonst
Как хочется доказать-то свою правоту, а?

Развертывание копии демки - это уже работа, а работаю я за деньги.

Причина ошибки
- умный JS оптимизатор в offsetValues пытается создать массив из N элементов сразу, вместо добавления элементов по одному (несжатый код этого не делает, и на дробном значении не падает);
- N - ширина контейнера на экране в пикселях;
- N - дробное при получении через $(...).width()

$("#zoom-container").width()
1246.166666
$("#zoom-container")[0].clientWidth
1246

Профессионал поймет.

И да, в официальном пакете с npm / bower они используют clientWidth а не width() от jQuery (и вообще никогда не использовали width()), так что страничка-демка вообще не соответствует (рабочим) пакетам в bower / npm и коду в github. Видимо, кто-то решил изобрести колесо :)
Linux Ubuntu Firefox
 Москва
0
0
Леонит Каганофф
О!
Вот теперь вижу, что вы совершенно правы и великолепный профессионал.

Я понапихал в разных местах peaks.min.js Math.floor (думаю, местами даже чересчур, но хуже не будет), и вот пожалуйста вполне работающая демка:

http://lleo.me/dnevnik/2017/04/28.html
Linux Safari Chrome
 Австралия
0
0
bkonst
Я то надеялся на появление npm + webpack...
Linux Safari Chrome
 Москва
1
0
Леонит Каганофф
Остается лишь неясным, о каких упаковщиках речь - этот файл вполне себе отдельностоящий и ничем не пакованный.
Linux Safari Chrome
 Австралия
0
0
bkonst
> Сразу отвечу, что будет то же самое, что и мне

Представьте, Вася: пляж, Ялта, бархатный сезон, а кругом - станки, станки, станки.
Linux Safari Chrome
 Австралия
0
0
bkonst
> Ваши слова про успешный "вызов той же функции с теми же параметрами" и "не стал разворачивать и все проверять" не очень понятны в практическом плане и могут означать что угодно.

Это означает воспроизведение проблемы и тестирование функционала в изоляции.
Windows Firefox
 Москва
0
0
Johny-----------
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Не по теме - что там нынче в качестве банка для фрилансера хорошо?
Я уже целые сутки в полном шоке сижу листаю варианты, находясь в полном ахуе от реалий нашей родины и ее бизнес-климата.

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

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

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

Кто какие еще варианты похвалит?
Windows Firefox
 Москва
0
0
Johny-----------
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
блин, и тут они.
Windows Firefox
 Германия
1
0
Глеб
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
>Альфа банк идёт нахуй семимильными шагами
---
Да, меня тоже покоробило, что они написали "с лицами боевиков ОРДЛО" вместо "с противными рожами террористов".
Однако вы учтите, что это официальный язык, и он обязан быть по возможности сглажен и прилизан. На этом официальном языке допустимы даже словосочетания типа "гарант Конституции РФ", хотя все понимают, кто имеется в виду.
Windows Safari Chrome
 Нижний Новгород
0
0
Тимур Сагитов
Росбанк: платежка - 25 руб., абонплата - 900 р в мес.
Вторая, третья и т.д. фирма идут по хитрому плану, где абонплата составит 500 руб. в мес на фирму

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


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

Нет, конечно
Windows Firefox
 Москва
2
0
Johny-----------
Этот человек не загрузил свой юзерпик, и я подобрал ему этот. Человек, пишущий такое, должен именно так выглядеть, верно?
Вы просто не поняли, зачем они его покупали.

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

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

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

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