Ознакомьтесь с нашей политикой обработки персональных данных
  • ↓
  • ↑
  • ⇑
 
Записи с темой: work (список заголовков)
11:07 

Килотонны JS-кода в своременной веб-разработке иногда вымораживают не своим весом, а странным поведением.

Необходимо было пофиксить отображение некоторых блоков верстки некоторого сайта на мелкоэкранных девайсах. В css лезть было бесполезно, т.к. нужные блоки имели ещ и атрибут style, перекрывающий CSS-классы.

Набросал JS-код, проверяющий ширину экрана и в зависимоти от значения оной - вырезащий в нужном месте ненужное. Повесил на обработку события загрузки страницы. Обновил шаблон страницы на сервере.

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

В итоге просто вручную покрутил размеры окна раузера + зашел на сайт с виндофона -и убедился что все работает так как надо.

@темы: web-dev, work, мысли вслух

11:08 

Доступ к записи ограничен

Закрытая запись, не предназначенная для публичного просмотра

URL
19:51 

Django & jinja2 = ?

В начатом недавно новом проекте решил использовать не дефолтный шаблонизатор Джанги, а jinja2 - про которую был наслышан уже. Мол, "жынжа" (я в курсе что читается несколько иначе, не мне лень язык ломатьи моск напрягать =))) и шустрее, итеги с фильтрами там круче, и синтаксис проще и логичней.

В Django 1.8 впилили поддержку сторонних шаблониззаторов и бэкенд для работы с jinja2. ННастроил все по мануалу, плюс поставил ещё вот эту батарейку". Слепил простенький шаблон на стартовую вьюху - завелось.

Из неппривычнного - отсутствие среди переменных, отдаваемых в шаблон, переменной "user". Отсюда сразу не понял как выводить текущего юзера в шаблоне страницы. Потом дошло что надо вместо {{ user }} делать {{request.user }}, и все будет нормально.

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

Стандартный рендер шаблонов Django пришлось все же включить в проект, т.к. шаблоны админки не расчитанны на работу со сторонними бэкендами рендеринга.

@темы: python, work, программирование

15:18 

Клиентско-серверное противостояние

В ночь с 13 на 14 мая приснился сон, в котором пришлось решать некоторые проблемы с потерянными данными на некоторых серверах с веб-проектами (своими и чужими). В реальности утром на своих VDS ничего такого не обнаружил.

Зато обнаружил что в серверной части текущего рабочего проекта что-то "пошло не так" - задействованные методы API стали возвращать не расово-верные корректные тестовые данные, а какую-то ересь.

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

Собрал тестовый билд софтины, скинул - кричит что у него совсем ничего не работает. Точнее "работает не так".

Отправил ему отладочный выхлоп, набитый json-ом с некорректными данными - пусть разбирается.

@музыка: КИНО - Нам с тобой

@темы: work, дыбр

22:11 

Коды ошибок? Не, не слышал

Текущий проект (софтина под windows, клепаемая в линуксе на нс С++) использует некоторый интерфейс межпрограммного взаимодействия (API). Который был написан другим человеком. И человек этот, решил что ошибки от сервера к клиенту надо передавать в виде текстовых строк. И никак иначе - "их же все равно юзеру показывать".

А всякие числовые код - не нужны.

А я вскгда думал что далеко не каждую ошибку в ПО надо демонстрировать пользователю. Юзера они ж все равно тупые вылезающие мессадж-боксы закрывают, клацая по кнопке "Ок". И не читают что там приложение или операционка желает до нести до их мозга.

Некоторые ошибки нужно просто обработать, без каких-либо уведомлений пользователя (ну может в пользовательском интерфейсе чего-нить xenm изменить). И тут error codes таки рулят и педалят.

Увы, некоторые кодер-куны этого не понимают.

@музыка: ГрОб - Долгая счастливая жизнь

@темы: work, коды ошибок, мессалжи

20:28 

Софтостроительно-эмуляторное

Эмулятор Windows Phone из комплекта MS Visual Studio 2013 запускается весьма неторопливо. Точнее не он сам, а эмулируемая в нём винда - надпись "Запуск Windows Phone" на экране "устройства" я наблюдал минуты две, если не все три. Ну да эуль андроида тоже не особо шустр, даже на линуксе приходилось ждать секунд по 30-40 пока отрисуется "рабочий стол" на виртуальном девайсе.

Собрать Qt приложение под WP 8.1 x86 удалось. В самом Qt Creator'е. И вышеописанный эмулятор из этой среды разработки и запускался. Собрать софтину под WP 8.1 arm (для устройства реального) также получилось. Но за неимением смарта на винфоне - дальше дело не пошло. Без конвертирования проектного файла в солюшен Visual Studio и последующей сборки в ней - скорее всего не обойтись.

Приложение в эмуляторе запустилось. И худо-бедно отрисовало интерфейс, хотя и не полностью (х-з какой там разрешение и значение pixel-per-inch). И частично все работало, сетевая часть уж точно - авторизоваться с тестовым логином-паролем получилось, значит с сетью все ок. Бяка вылезла со шрифтами, надписи на кнопках и прочих интерфейсных элементах из набора QtQuick Conrtols, были представленны в виде набора квадратиков. Плюс не отрисовалась географическая карта,но тут видимо издержки эмулятора (ибо в свободной версии Qt рендеринг QML в софтверном режиме не доступен).

Начал думать о приобретении смарта на Windows Phone, присматриваюсь к бюджетным Люмиям.

Да, "студия" несмотря на то что даёт возможность при установке выбрать только нужные компоненты (я выкинул SQL Server, Microsoft Bend и что-то там ещё) - все равно зачем-то скачивает весь набор всего при установке.

@музыка: NightWish - The Riddler

@темы: work, windows phone, qt

22:01 

Веб не спасёт мир

Тащить все в браузер, пытясь "эмулировать" в нем нативное дестопное приложение - было ошибкой. Javasсript никогда не был моим любимым языком программирования, скорее даже наоборот - после Питона и С++ его конструкции почему-то бесят. В итоге имеем то что имеем - мешанину из HTML, чистого JS и Jquery/JQuery UI. Ах да, ещё и Bootstrap как основа адаптивной верстки.

Все же надо было в вебе оставить только API на основе Django RRST framework, а всю "клиентскую" часть со списками, формами и прочей картографией - реализовать в виде десктопных и мобильных приложений (тем более что мобильные "отростки" хоть и не планировались изначально, но в итоге мы к ним все же пришли). И "красивый" landing-page на "морде" сайта.

На разработку ушло бы раза в полтора-два меньше времени.

Всё-таки не верю я в то что "веб спасёт мир", в плане быстроты разработки и удобства для пользователей. Браузеры становятся свобобразной "операционкой в операционке". А лишние прослойки - не нужны.

Но увы, моё мнение не разделяют в гугле и прочих "гигантах" индустриии =)

@музыка: Intra Spelaeum - Не Поспеть Зиме

@темы: стартапинг, мысли вслух, work

22:31 

Сонно-опенстримопное

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

Но поменять "красивый" рендер на дефолтный - секундное дело, правкой одной строчки в JS-файле и пересборкой статики на сервере через python manage.py collectstatic. А с поиском сейчас придётся чуть больше повозиться, поскольку выдача результатов в "большого" поиска OSM отличается от русскоязычного. Ну да все не так уж и сложно, к полуночи думаю разгребу это и сделаю апдейт.

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

Это конечно не норвежские IP-адреса, про которые некоторое время назад я видел упоминание во френдленте - но тоже "интересно" =)

@музыка: АлисА - Камакадзе

@темы: osm, work, сны

10:36 

Google Play

Зарегистрировал аккаунт разработчика в сабже. Корпорация добра содрала 1600, прислав об этом уведомление на почту. А вот письмо с поздравлениями по поводу вливания что "Уважаемый Артём... вы теперь.... и прочая бл-бла-бла" (и ссылку на собственно вход в девелоперскую часть ведроид маркета) - не прислали. Несолидно как-то, гуглеь =)

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

Но пусть будет, кто знает мож и до программирования под самую массовую и самую фрагментированную мобильную платформу я когда-нибудь доберусь.

А вобще это надо было сделать ещё летом, потерял бы денег в два раза меньше.

@музыка: Ankhagram - Fly Away

@темы: дыбр, work, google play, android

18:09 

О (не)сорванных сроках релизов...

Вот говорят что фрилансеры срывают сроки. Ну да, есть такое. Причем не только у фрилансеров, но и у больших компаний, разрабатывающих то или иное программное обеспечение (ну может только Яббл штампует новые версии iOS "строго по графику" - не в курсе, ибо не интересуюсь продукцией компании имени г-на Джобса).

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

И хорошо когда он (работодатель) хоть немного понимает что "софта без багов не бывает" (особенно в процессе разработки и при кривом ТЗ). В этом случае с ним ещё как-то можно спокойно работать. А если нет, то...

А вот когда за неделю до предполагаемого запуска в продакшен открытое бета-тестирование вдруг выясняется что "фичу А" надо выкинуть к фигам коровьим, и вставить на её место "фичу Б" - в оных случаях хочется убивать этого человека. Чтобы он подыхал долгой и мучительной смертью. Ибо не всегда "доплата решает".

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

@музыка: Catharsis - Dream Of My Soul

@темы: work, мыслесборник

Doom, Death, Darkness...

главная