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

Всем наверно известен замечательный OpenSource проект Trac, позволяющий организовать рабочий процессы при разработке программного обеспечения. Однако его развертывание и настройка является не простой задачей. Информация в интернете разрозненная и часто уже устаревшая. В этом я смог сам убедиться настраивая Trac интегрированный с Gitolite на связке Nginx+UWSGI.

После небольшой увертюры с бубном у меня родился этот документ являющийся практически пошаговой инструкцией по развертыванию проекта Trac. Надеюсь это пригодится кому-нибудь еще.
Читать полностью »

image
Git – это не только удобная распределенная VCS, но и инструмент подготовки релизов.
В статье будет рассмотрен flow на примере Java-проектов на Maven. Статья может быть полезна для разработчиков малых и средних команд, подразумеваются базовые знания git. Материал частично перекликается с git-flow, но здесь описан более простой вариант.
В классическом случае в репозитории существует одна ветка master, из нее же делаются сборки. Если проект собирается при этом на build-сервере, это может привести к беспорядку – несколько разных билдов под одной версией, не ясен набор коммитов, которые попадают в релиз (например, если сборка делается автоматически по триггеру на VCS).

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

Мои проекты, как многие уже знают, подразумевают работу с реально большими объемами данных — сотни миллионов записей.

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

Меня часто спрашивают о движке, который я использую для организации данных, и сегодня я немного приоткрою завесу :)

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

image

Предисловие

Так уж сложилось, что на сегодняшний день много кому приходиться работать(писать макросы) на VBA в Excel. Некоторые макросы содержат сотни строк кода, которые приходиться выполнять каждый день (неделю, месяц, квартал и так далее) и, при этом, они занимают изрядное количество времени. Вроде бы и и процесс автоматизирован и человеческого вмешательства не нужно, но время, занимаемое выполнением макроса, может охватывать десятки минут, а то и несколько часов. Время, как говориться, — деньги и в этом посте я постараюсь значительно ускорить время выполнения Вашего макроса и, возможно, это положительно скажется на ваших делах, а в итоге и деньгах.
Читать полностью »

Администраторам Linux писать скрипты на Bash приходится регулярно. Ниже я привожу советы, как можно ускорить эту работу, а также повысить надежность скриптов.

Совет 1

Не пишите скриптов, которые выполняют действия ничего не спрашивая. Такие скрипты нужны довольно редко. А вот всевозможного «добра» для копирования, синхронизации, запуска чего-либо, хоть отбавляй. И если в любимом Midnight Commander Вы вдруг нажали не на тот скрипт, то с системой может произойти все что угодно. Это как правила дорожного движения — «написано кровью».

Совет 2

Отталкиваясь от предыдущего, в начало каждого скрипта неплохо помещать что-то вроде:

read -n 1 -p "Ты уверен, что хочешь запустить это (y/[a]): " AMSURE 
[ "$AMSURE" = "y" ] || exit
echo "" 1>&2

Команда echo, кстати, здесь нужна потому, что после нажатия кнопки <y> у вас не будет перевода строки, следовательно, следующий любой вывод пойдет в эту же строку.

Совет 3

Это ключевой совет из всех. Для того, чтобы не писать каждый раз одно и то же — пользуйтесь библиотеками функций. Прочитав много статей по Bash, я вынужден констатировать, что этой теме уделяется мало внимания. Возможно в силу очевидности. Однако я считаю необходимым напомнить об этом. Итак.
Заведите свою библиотеку функций, например myfunc.sh и положите ее, например в /usr/bin. При написании скриптов она не только поможет сократить ваш труд, но и позволит одним махом доработать множество скриптов, если Вы улучшите какую-либо функцию.
Например, в свете совета 2 можно написать такую функцию:Читать полностью »

image

Делимся впечатлениями от мероприятия Mail.ru Update. Обсуждаем какие средства помогают создать стартап за 48 часов.

В выпуске:

  • Впечатления от Mail.ru Update. Интервью с Борисом Никифоровым и Константином Рубцовым (Mail.ru Group).
  • Популярные инструменты для быстрой разработки.

Слушать в Itunes
слушать на podfm
скачать файл(50 Мб)
Читать полностью »

Это вторая часть перевода статьи What Every Programmer Absolutely, Positively Needs To Know About Encodings And Character Sets To Work With Text, первая часть — тут.

Мой документ – полная чушь в любой кодировке!

Если последовательность бит не выглядит разумной(с точки зрения человека), то это случай, когда документ скорее всего был неверно сконвертирован в определенный момент. К примеру мы берем текст ÉGÉìÉRÅ[ÉfÉBÉìÉOÇÕìÔǵÇ≠ǻǢ, и, не придумав ничего лучше, сохраняем его в UTF-8. Текстовый редактор предположил, что он правильно прочитал текст с кодировкой Mac Roman и теперь его надо сохранить в другой кодировке. В конце концов, все эти символы валидны в Unicode. В смысле, в Unicode есть пункт для É, для G, и так далее. Так что мы просто сохраняем его в UTF-8:

11000011 10001001 01000111 11000011 10001001 11000011 10101100 11000011 10001001 01010010 11000011 10000101 01011011 11000011 10001001 01100110 11000011 10001001 01000010 11000011 10001001 11000011 10101100 11000011 10001001 01001111 11000011 10000111 11000011 10010101 11000011 10101100 11000011 10010100 11000011 10000111 11000010 10110101 11000011 10000111 11100010 10001001 10100000 11000011 10000111 11000010 10111011 11000011 10000111 11000010 10100010

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

Я увлекаюсь фотографией ещё со Смены-8М. Тогда были длительные ожидания пятницы или субботы (печать обычно шла в ночь на выходные), а перед этим оочень долгие ожидания фотоплёнки, химикатов, фотобумаги (ибо дефицит). Теперь же я вырос, стал большим и ленивым. Моя мыльница почти всегда со мной: либо в рюкзаке, либо где-то в кармане. Фотографирую всё, что вызвало интерес. При этом за день может быть одна фотография (шёл с работы), а может быть сразу много (целенаправленно вышел на прогулку). И если с целенаправленным случаем я скорее всего по приходу домой фотографии солью и разберу, то в единичных случаях я забуду и потом окажется что надо рассортировать фотографии сделанные в десяток разных дней. В последнее время выбираться целенаправленно получалось всё меньше, поэтому росло количество одиночных фотографий. И вот в один из таких дней, вдохновившись прошлогодней статьёй, я решил упростить себе хобби. Поскольку на компьютере стоит Linux (openSUSE 12.1), то нерешаемых проблем быть не должно — подумал я. А захотелось мне чтоб оно само копировало и чтоб никуда тыкать не нужно было. Ну, а поскольку я ненастоящий линуксоид (первый и последний скрипт был на третьем курсе 0x0C лет назад), сразу скажу — не всё получилось.
Читать полностью »

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

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

1. Итак, самое главное: ты не сможешь продавать то, в чем не уверен, чем не гордишься. Проекты «чисто ради денег» — удел менеджеров в галстуках и шелковом нижнем белье. Увлеченный программист не должен брать на себя «классический» бизнес.

Твой удел — один (один!) продукт, которым ты живешь. Которым с радостью занимаешься, который с радостью и гордостью показываешь людям.

Моей первой ошибкой был поиск «бизнеса» — в то время я почему-то считал, что мое хобби бизнесом стать не может. То есть те проекты, которые я делал чисто для себя, я почему-то откидывал.

Соответственно, первый шаг: выкинуть из головы все бизнес-планы, все мега-идеи. Оставить только то, чем ты УЖЕ занимаешься «в кайф». Не «да, мне прикольно было бы сделать какой-то инструмент», а «вот у меня уже что-то есть, сделанное на коленке в свободное время». У каждого увлеченного программиста это есть, просто покопайтесь в архивах.

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

Танковые маневры на Russian AI Cup

Небольшая история про участие в одном из IT-конкурсов Mail.ru group.

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


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