Списки строк в программах встречаются часто. Для удобства чтения их не менее часто форматируют вертикально, по одной строке. И есть в такой конструкции уязвимость — если при изменении списка потерять запятую между элементами, то многие языки просто склеют строки слева и справа от пропущенной запятой — в результате получится валидный с точки зрения языка список, в котором на один элемент меньше чем ожидается и один элемент имеет некорректное значение. Есть много способов профилактики этой проблемы, но недавно на stackoverflow мне показали настолько простой и надежный способ, что я просто не могу им не поделиться.
Рубрика «Программирование» - 1039
Python: надежная защита от потери запятой в вертикальном списке строк
2012-10-20 в 13:31, admin, рубрики: python, Блог компании Фаматек, Программирование, метки: python9 основных вопросов в карьере разработчика
2012-10-20 в 11:59, admin, рубрики: Исследования и прогнозы в IT, карьера, Программирование, размышления 
С самого рождения и до момента смерти наш путь наполнен выбором места и вида деятельности. Иногда мир достаточно добр, чтобы позволить нам влиять на свою судьбу. Благодаря растущему спросу на свои услуги, разработчикам есть что обсудить касательно своей занятости.
Будь Вы программист-контрактник, или работающий в своей будочке лоялист с восторженными глазами, программирование кишит объявлениями, каждое из которых волнует своим набором пунктиков об устройстве своей карьеры. А для некоторых это совершенно новая область — ведь начать работать с компьютерами так же просто, как почесать свою пятую точку.
Следующие девять пунктов — ключевые для выстраивания Вашей карьеры. Размышление о собственных ответах на эти вопросы это больше, чем просто подготовка к тому, что вам их зададут. Это первый шаг к формированию Ваших интересов и умений.
Читать полностью »
Манифест эволюции программы
2012-10-19 в 16:13, admin, рубрики: IT-стандарты, информационные технологии, правила, Программирование, Проектирование и рефакторинг, разработка, метки: информационные технологии, правила, Программирование, разработкаДолгие годы меня удручает то, что я вижу в индустрии программирования — каждая последующая версия большинства программ или сервисов работает медленнее, жрет больше ресурсов и требует более мощного железа.
Это произошло с моим Macbook-ом, это произошло с моим iPhone-ом, это происходит с каждым апдейтом Windows, Visual Studio, Office, и т.д.
Программы работают медленней, веб-сайты тормозят, телефоны умножают мощность процессора при незаметных на глаз улучшениях производительности.
Читать полностью »
Манифест эволюции программ
2012-10-19 в 16:13, admin, рубрики: IT-стандарты, информационные технологии, правила, Программирование, Проектирование и рефакторинг, разработка, метки: информационные технологии, правила, Программирование, разработкаДолгие годы меня удручает то, что я вижу в индустрии программирования — каждая последующая версия большинства программ или сервисов работает медленнее, жрет больше ресурсов и требует более мощного железа.
Это произошло с моим Macbook-ом, это произошло с моим iPhone-ом, это происходит с каждым апдейтом Windows, Visual Studio, Office, и т.д.
Программы работают медленней, веб-сайты тормозят, телефоны умножают мощность процессора при незаметных на глаз улучшениях производительности.
Читать полностью »
Используем Cmake для автоматической генерации makefile в проектах
2012-10-19 в 12:23, admin, рубрики: cmake, мануал, начинающим, Программирование, метки: cmake, мануал, начинающимВступление большое, так как подробно объясняет зачем нужен cmake. Можете сразу под кат, если уже знаете.
Вступление
Компилирование проекта руками — пустая трата времени. Это фактически аксиома и об этом знают те, кто программирует. Но чтобы всё скомпилировалось автоматически необходимо задать правила, так ведь? Часто и по-старинке используют makefile для *nix или какой-нибудь nmake для windows.
Я хоть и не первый год программирую, и руками составлял простые автосборщики проектов на основе makefile, но стоит немного подзабыть и приходится заново изучать как же составить эту хитрую схему. В основном приходится делать проекты расчитанные на какую-то одну систему, будь то linux или windows, и часто между собой не кросскомпилируемые. Для переносимости makefile используется automake и autogen, но их синтаксис ещё более запутан. Не скажу, что выбор идеальный, но для себя я решил перейти на cmake, благо он портирован под всё доступное. Мне он показался более человекопонятным. Попробую объяснить основы. Вы пишите словами правила, а из них генерируется makefile, который вы уже запускаете стандартным способом.
Ликбез
Зачем он нужен? Чтобы при переносе на другую машину, с другими путями вы двумя командами собрали проект ничего не исправляя в файле makefile. Но есть же configure? Это альтернатива. И configure не кросплатформенный, для его генерации нужен autoconf/autogen, для которых идёт ещё свой набор правил. Только преимущества? Компиляция автосгенерированным makefile получается немного медленнее старого способа. Но Qt пользуются cmake и никто не жалуется.
Читать полностью »
Групповой искусственный интеллект для роботов-штабелеров на Oracle SQL XE
2012-10-18 в 16:29, admin, рубрики: oracle, Программирование
Хорошо размышлять о роботах и искусственном интеллекте в нерабочее время перед домашним компьютером и за чашечкой кофе. И совсем другое дело, когда оказываешься перед необходимостью в сжатые сроки разработать высокоуровневое ПО для роботизированного склада. И при этом практический опыт в данной предметной области напрочь отсутствует, но есть богатый теоретический. Вы скажите, что умному человеку не стоит оказываться в подобной ситуации. Ну что ж, возможно Вы правы, однако жизнь весьма сложная и нелинейная штука. Поэтому когда ко мне обратился мой приятель-директор фирмы, производящий железо для роботизированных складов с жалобой на то, что предыдущий разработчик высокоуровневого ПО их кинул (взял предоплату, долго кормил завтраками, а затем и вовсе скрылся в неизвестном направлении) — я обещался подумать что тут можно сделать. Читать полностью »
Makefile для самых маленьких
2012-10-18 в 10:52, admin, рубрики: makefile, мануал, начинающим, перевод, Программирование, метки: makefile, мануал, начинающим, переводНе очень строгий перевод материала mrbook.org/tutorials/make/ Мне в свое время очень не хватило подобной методички для понимания базовых вещей о make. Думаю, будет хоть кому-нибудь интересно. Хотя эта технология и отмирает, но все равно используется в очень многих проектах. Кармы на хаб «Переводы» не хватило, как только появится возможность — добавлю и туда. Если есть ошибки в оформлении, то прошу указать на них. Буду исправлять.
Статья будет интересная прежде всего изучающим программирование на C/C++ в UNIX-подобных системах от самых корней, без использования IDE.
Компилировать проект ручками — занятие весьма утомительное, особенно когда исходных файлов становится больше одного, и для каждого из них надо каждый раз набивать команды компиляции и линковки. Но не все так плохо. Сейчас мы будем учиться создавать и использовать Мейкфайлы. Makefile — это набор инструкций для программы make, которая помогает собирать программный проект буквально в одно касание.
Читать полностью »
Как вырастить программу из прототипа
2012-10-18 в 8:57, admin, рубрики: agile, DRY, KISS, unite, выставки, говнокод, методологии разработки, Программирование, проектирование, прототип, прототипирование, управление проектами, метки: agile, dry, kiss, unite, выставки, говнокод, методологии разработки, ооп, проектирование, прототип, прототипирование Каждую неделю на профильных блогах мы читаем как нужно использовать методологию X и фреймворк Y, чтобы написать хорошо спроектированный и легко поддерживаемый софт. Нам постоянно говорят, что, мол, говнокод — это плохо, рефакторинг — наше все, дают те или иные очень важные сферические советы в вакууме. В большинстве этих статей можно встретить абстрактные философские нравоучения, например, вот это я распечатаю и повешу при входе в офис:
А что, если я скажу, что не все проекты одинаковые, и некоторые из них не то что можно, а даже нужно тщательно выращивать из прототипа? Об этом я рассказывал на конференции Unite'12, а сейчас расскажу вам.Читать полностью »
Опыт участия в RailsRumble
2012-10-17 в 17:40, admin, рубрики: railsrumble, ruby, ruby on rails, оценка сроков, планирование, Программирование, управление проектами, метки: railsrumble, ruby, ruby on rails, оценка сроков, планированиеВ прошедшие выходные (13 и 14 октября) мы с aishek и еще двумя нашими коллегами участвовали в хакатоне Rails Rumble 2012. По условиям конкурса за 48 часов нужно задеплоить готовое Rails-приложение.
Надо сказать, что кроме выпитого ящика пива и прочего фана мы получили действительно хороший опыт.
Читать полностью »
Опыт участия в Rails Rumble
2012-10-17 в 17:40, admin, рубрики: railsrumble, ruby, ruby on rails, оценка сроков, планирование, Программирование, управление проектами, метки: railsrumble, ruby, ruby on rails, оценка сроков, планированиеВ прошедшие выходные (13 и 14 октября) мы с aishek и еще двумя нашими коллегами участвовали в хакатоне Rails Rumble 2012. По условиям конкурса за 48 часов нужно задеплоить готовое Rails-приложение.
Надо сказать, что кроме выпитого ящика пива и прочего фана мы получили действительно хороший опыт.
Читать полностью »
