Рубрика «Программирование» - 1039

Python: надежная защита от потери запятой в вертикальном списке строк Списки строк в программах встречаются часто. Для удобства чтения их не менее часто форматируют вертикально, по одной строке. И есть в такой конструкции уязвимость — если при изменении списка потерять запятую между элементами, то многие языки просто склеют строки слева и справа от пропущенной запятой — в результате получится валидный с точки зрения языка список, в котором на один элемент меньше чем ожидается и один элемент имеет некорректное значение. Есть много способов профилактики этой проблемы, но недавно на stackoverflow мне показали настолько простой и надежный способ, что я просто не могу им не поделиться.

Читать полностью »

9 основных вопросов в карьере разработчика

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

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

Следующие девять пунктов — ключевые для выстраивания Вашей карьеры. Размышление о собственных ответах на эти вопросы это больше, чем просто подготовка к тому, что вам их зададут. Это первый шаг к формированию Ваших интересов и умений.
Читать полностью »

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

Это произошло с моим Macbook-ом, это произошло с моим iPhone-ом, это происходит с каждым апдейтом Windows, Visual Studio, Office, и т.д.

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

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

Это произошло с моим Macbook-ом, это произошло с моим iPhone-ом, это происходит с каждым апдейтом Windows, Visual Studio, Office, и т.д.

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

  Вступление большое, так как подробно объясняет зачем нужен cmake. Можете сразу под кат, если уже знаете.

Вступление

  Компилирование проекта руками — пустая трата времени. Это фактически аксиома и об этом знают те, кто программирует. Но чтобы всё скомпилировалось автоматически необходимо задать правила, так ведь? Часто и по-старинке используют makefile для *nix или какой-нибудь nmake для windows.
  Я хоть и не первый год программирую, и руками составлял простые автосборщики проектов на основе makefile, но стоит немного подзабыть и приходится заново изучать как же составить эту хитрую схему. В основном приходится делать проекты расчитанные на какую-то одну систему, будь то linux или windows, и часто между собой не кросскомпилируемые. Для переносимости makefile используется automake и autogen, но их синтаксис ещё более запутан. Не скажу, что выбор идеальный, но для себя я решил перейти на cmake, благо он портирован под всё доступное. Мне он показался более человекопонятным. Попробую объяснить основы. Вы пишите словами правила, а из них генерируется makefile, который вы уже запускаете стандартным способом.

Ликбез

  Зачем он нужен? Чтобы при переносе на другую машину, с другими путями вы двумя командами собрали проект ничего не исправляя в файле makefile. Но есть же configure? Это альтернатива. И configure не кросплатформенный, для его генерации нужен autoconf/autogen, для которых идёт ещё свой набор правил. Только преимущества? Компиляция автосгенерированным makefile получается немного медленнее старого способа. Но Qt пользуются cmake и никто не жалуется.
Читать полностью »

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

Не очень строгий перевод материала mrbook.org/tutorials/make/ Мне в свое время очень не хватило подобной методички для понимания базовых вещей о make. Думаю, будет хоть кому-нибудь интересно. Хотя эта технология и отмирает, но все равно используется в очень многих проектах. Кармы на хаб «Переводы» не хватило, как только появится возможность — добавлю и туда. Если есть ошибки в оформлении, то прошу указать на них. Буду исправлять.

Статья будет интересная прежде всего изучающим программирование на C/C++ в UNIX-подобных системах от самых корней, без использования IDE.

Компилировать проект ручками — занятие весьма утомительное, особенно когда исходных файлов становится больше одного, и для каждого из них надо каждый раз набивать команды компиляции и линковки. Но не все так плохо. Сейчас мы будем учиться создавать и использовать Мейкфайлы. Makefile — это набор инструкций для программы make, которая помогает собирать программный проект буквально в одно касание.
Читать полностью »

Каждую неделю на профильных блогах мы читаем как нужно использовать методологию X и фреймворк Y, чтобы написать хорошо спроектированный и легко поддерживаемый софт. Нам постоянно говорят, что, мол, говнокод — это плохо, рефакторинг — наше все, дают те или иные очень важные сферические советы в вакууме. В большинстве этих статей можно встретить абстрактные философские нравоучения, например, вот это я распечатаю и повешу при входе в офис:
Как вырастить программу из прототипа

А что, если я скажу, что не все проекты одинаковые, и некоторые из них не то что можно, а даже нужно тщательно выращивать из прототипа? Об этом я рассказывал на конференции Unite'12, а сейчас расскажу вам.Читать полностью »

В прошедшие выходные (13 и 14 октября) мы с aishek и еще двумя нашими коллегами участвовали в хакатоне Rails Rumble 2012. По условиям конкурса за 48 часов нужно задеплоить готовое Rails-приложение.

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

В прошедшие выходные (13 и 14 октября) мы с aishek и еще двумя нашими коллегами участвовали в хакатоне Rails Rumble 2012. По условиям конкурса за 48 часов нужно задеплоить готовое Rails-приложение.

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


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js