Search
Write a publication
Pull to refresh
1
0
bashor @bashor

User

Send message

Кунг-фу поддержки проектов

Reading time3 min
Views1.5K
Наверно каждому из программистов приходилось сталкиваться на новом или на не новом месте работы с необходимостью поддерживать «чужой» проект.

Программисту удается написать код компилилируемый или интерепретиуемый, но не каждому понятный.

Все реагируют на «чужой» код по разному. Одних бросает в холодный пот, другие стиснув зубы разбираются. Так получилось, что я наблюдал этот процесс изнутри, как сторонний наблюдатель, как team leader и как специалист передающий свой код «новичку»

Читать дальше →

Организуем древовидные комментарии к статьям c помощью JavaScript

Reading time2 min
Views10K
Сразу оговорюсь, что не являюсь профессиональным web-разработчиком, а занимаюсь этим just for fun, а также для саморазвития.
Потребовалось реализовать в моих разработках возможность комментирования. Простые структуры комментариев меня уже не интересуют, поэтому захотелось древовидности.
На первых порах старался реализовать ее самостоятельно, но потом решил обратиться к ресурсам интернета за чертежами изобретенных колес )))
Читать дальше →

Subversion: cлияние переименований файлов

Reading time3 min
Views3.5K
— Зачем ты, Белка, летишь за мной, Кабаном?
— Не знаю, Кабан! Приказ Хорька. Как понял? Приём.
— Ни хера не понял! Какого Хорька, Белка? Я Кабан. Кто такой Хорёк? Кто это? Приём.
— Кабан, ты дятел! Как понял? Приём.
— Понял тебя, Белка. Я — Дятел. Повторяю вопрос про хорька. Кто это?
— Кабан, сука, ты всех заманал, лети вперёд молча! Конец связи.
Виктор Шендерович

Как известно, Subversion не умеет отслеживать переименования файлов. Согласно документации, команда svn move равносильна svn copy с последующим svn delete. Такое поведение вызывает большие проблемы при слиянии веток. Рассмотрим способы их решения.
Читать дальше →

Оптимизация процесса создания unit-тестов

Reading time6 min
Views4.8K
Всем привет! Хабраюзер shai_xylyd написал статью про аспекты тестирования, где им были рассмотрены некоторые понятия и ценности TDD. В частности, он упомянул очень интересный способ создания первичных юнит-тестов — когда функциональный код пишется совместно с кодом юнит-теста, чем меня очень заинтриговал.

Дело в том, что я (как программист), нахожусь в состоянии переходного процесса между «классической» разработкой и разработкой test-driven, поэтому всякими способами ищу возможности упростить и сделать более естественной последнюю. После пары приседаний, сразу включиться в методику shai_xylyd не сумел. Начал переписку с автором статьи, где он натолкнул меня на мысль подойти к решению с математической точки зрения. Идея в том, чтобы воспользоваться функциональным пространством среды программирования и «разложить» написание юнит-теста на составляющие. После чего сделать выводы.
Немного математики, а потом пример

Разработка снизу-вверх и базы данных.

Reading time5 min
Views3.9K
    Пол Грэм в своих эссе часто касается темы разработки снизу-вверх. Этот метод упоминается у него, когда он пишет о разработке програмного обеспечения, о способе ведения бизнеса, о преимуществах open source и блогах. Ниже я опишу почему при этой модели разработки взаимодействие с базой данных встает поперек глотки, и предложу решение уместное в некоторых случаях.

читать далее...

Компиляция QT-программы под Windows — зависимости

Reading time1 min
Views27K
Ради интереса решил пощупать Qt.

Соответственно, скачал Qt Creator, создал проектик, поигрался с экшнами и прочим. И захотелось проектик этот собрать в .exe-файл.

Дебаг в рамках Creator выполнялся идеально, а вот после Build — .exe выдал мне требование зависимости mingwm10.dll.

Полез в Google, и после некоторого времени поиска сообразил скопировать

C:\QT\QTCreator\bin\mingwm10.dll, а так же
C:\QT\QTCreator\qt\bin\QtCore4.dll
C:\QT\QTCreator\qt\bin\QtGui4.dll

в папку с билдом. Только после этого и заработало.

Но остаётся проблема последующего распространения программы. Неужели для того, чтобы передать другому человеку своё творение размером в 100 килобайт, надо делать инсталлер, чтобы закидывать вышеуказанные файлы в System32?

Уважаемые знатоки, просвятите меня — разве никак нельзя собрать проект вместе с зависимостями?
Может, как-то можно уменьшить объём 13-ти мегабайт библиотек для работы 100 килобайтной программы?

UPD: Знатоки пишут, что библиотеки обязательны.

Выбор невелик тогда — или паковать NSISом (получилось 4.5 мегабайта на пустой проект), или же делать сетевой инсталлер с вспомогательной программкой, которая будет тянуть зависимости, или же делать solid — как есть.

Даже если собирать библиотеки static — то получится просто раздутый .exe-файл

Производительность простых и сложных конструкций в JavaScript

Reading time7 min
Views24K
Периодически натыкаясь на статьи, посвященные оптимизации кода на JS (вот одна из популярных) я ловил себя на мысли, что информации в них катастрофически мало. Перечислены 2-3 конструкции, 1-2 браузера и все на этом.

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

Ну и раз уж результаты получены, почему бы не выложить их для всеобщего пользования?

Upd: добавил графики результатов, предоставленные хабраюзером deerua (для тех, кто воспринимает визуальную подачу информации лучше чем табличную)
читаем дальше

Руки прочь от автозапуска!

Reading time2 min
Views3.4K
Не правда ли, удалять с любимой флешки кучу вредоносных элементов, после каждого ее подключения к чужому компьютеру, несколько обременительно? А сколько нервных клеток уничтожают эти элементы? Моих — немеряно!

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

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

Должен отметить, что, на защищенной таким образом флешке, будут затруднены операции над элементами корневой папки. Именно на этом основан метод.

Суть: запретить кому бы то ни было запись/изменение корневого каталога.
Результат: вся нечисть, попавшая на флешку, ничем не сможет Вам помешать.

Читать дальше →

Работа с буфером обмена в Linux: теория и практика

Reading time5 min
Views124K

Совсем немного теории


Copy and PasteИсторически сложилось так, что в X Window System (X11, — оконная система для Linux, UNIX) существует два буфера обмена.

Один из них (clipboard) похож на буфер обмена в Windows — при нажатии на Ctrl+Insert или Ctrl+C выделенный фрагмент (текст, картинка, файл) копируется в буфер обмена, а при нажатии на Shift+Insert (или Ctrl+V) — вставляется из него. Следует заметить, что во многих программах эти сочетания зарезервированы для иных целей и приходится пользоваться другими — например, в терминале сочетание Ctrl+C используется для завершения процесса, а для работы с буфером обмена используются сочетания Ctrl+Shift+C для копирования и Ctrl+Shift+V для вставки.

Второй буфер (primary) является специфичным для оконной системы X11. Выделенный текст незамедлительно попадает в буфер primary, и для того, чтобы вставить скопированный текст, достаточно лишь нажать среднюю кнопку мышки (колёсико). У кого в наличии не имеется трёхкнопочной мышки, а так же владельцам ноутбуков с тачпадами следует одновременно нажать левую и правую кнопки мышки для вставки текста.

Перейти к практике...

Буржуйские трюки

Reading time3 min
Views888
image

Человек и Машина: Взаимодействие


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

Прочитав несколько статей на UX Booth удивился, как буржуям всё же удаётся заставить посетителей своих сайтов (и не только) почувствовать некий человеческий фактор. Моим любимым стал Tom Anderson из команды MySpace.
Читать дальше →

Изобретаем технологию: опыт соединения нескольких open-source проектов

Reading time6 min
Views1.9K
Я хотел бы поделиться опытом создания приложения, или точнее технологии, основанной на нескольких open-source проектах. Это нечто вроде веб-сервера с поддержкой асинхронных сообщений и возможностью исполнения скриптов на JavaScript.

Читать дальше →

Метро 2033 / Архитектура

Reading time1 min
Views2K
Выполняю давно обещанное – рассказываю об январском брейн-шторме по архитектуре браузерной онлайн игры Метро 2033 (клиент на флеше). Постараюсь сделать акцент не столько на результате, сколько на описании того, как мы думали.



Обсуждаемые под катом вопросы:
+ Какие возникают вопросы?
+ Зачем CORBA?
+ Веб-решения;
+ Узкоспециализированное хранилище vs SQL;
+ Куда коннектится клиент-флешка? Есть ли узкое место?
+ Как переносить клиента из локакции в локацию?
+ Как осуществлять коммуникацию между братиками-серверами?
+ Архитектура в общем виде;
+ Функциональная схема.


Выбор лучшего решения… Приятного чтения

За 10 евро каждый может стать on-line бомжом

Reading time1 min
Views700
В немецком Интернете набирает популярности «игра в бомжей». Именно так переводится Pennergame — on-line игра, которую разработали два молодых человека из Гамбурга.

Количество зарегистрированных участников Pennergame уже перевалила за миллион.
Начать игру можно, заплатив 10 евро. В начале виртуальный игрок — гамбургский безработный, который не умеет ни читать, ни писать. Его цель — разбогатеть. Инструкция подсказывает, с чего начать свой путь к богатству. Сначала необходимо научиться грамоте и написать плакат, чтобы обратить на себя внимание окружающих. Потом стоит завести себе нескольких собак — это вызывает жалость у людей.
Читать дальше →

Критерии 100% читаемости сайтов

Reading time5 min
Views3.4K
Перевод статьи Oliver Reichenstein «The 100% Easy-2-Read Standard».

Большинство сайтов доверху наполнены мелким текстом, который больно читать. Но зачем? Нет причины вжимать так много информации в экран. Это глупая коллективная ошибка, которая относится к временам когда экраны были действительно маленькими. Так что…

screen vs magazine
Экран и журнал: 100%-размер шрифта — это не много. Фотограф: Wilson Miner.

Не заставляйте нас изменять размер шрифта

Мы не хотим изменять настройки браузера каждый раз когда посещаем новый сайт!

Читать дальше →

Как быстро начать и эффективно продолжить писать расширение для лисы

Reading time1 min
Views1.1K

Обычно цикл разработки таков:


1) вносим изменение в исходники,
2) перепаковываем исходники в *.xpi (скриптами),
3) переключаемся на лису,
4) Ctrl+O, выбираем полученный выше *.xpi,
5) появляется диалог установки, ждём 4 секунды,
6) жмём «Install»,
7) потом «Restart Firefox» и смотрим что изменилось.

Стало страшно? Тогда…
дальше про то как userChrome.js позволяет обойтись без перезагрузки и сократить количество шагов до двух

Российский софт и outsourcing в Германии — 2

Reading time2 min
Views674
В догонку и развитие первому посту — Российский софт и outsourcing в Германии, давшему необходимую мотивацию и темы для размышелиний.

Взыграло ретивое – взялся я за стройку. Сейчас положение дел таково: накинул страницу, настраиваю настройки, колдую над логотипом (эх, ручки мои кривенькие) и размышляю над категоризацией софта и разработчиков.

Категоризировать ПО и разработчиков думаю так: будут следующие категории:
— Web development
— Development for Windows
— Development for MacOS
— Development for *NIX
— Development for mobile devices
— Development for other platforms
Остальные детали будут задаваться тэгами (custom properties для каждого текста).

Вопрос и просьба к уважаемой публике: предлагайте, пожалуйста, тэги!

Со временем (когда каталог разовьётся так, что разработчики будут сами публиковать свои информации) введу возможность самим публикующим описывать тэгами свои тексты. Пока же необходим общий набор тэгов, описывающий разработки и разработчиков, например, по следующим признакам:
— языки программирования,
— open/closed source,
— готовность брать заказы на custom development,
— количество сотрудников,
— на каких языках возможно общение,
— для разработок под CMS – какие CMS,
— какие frameworks внедряются,
— MVC – да/нет

и тому подобные критерии.

Итак, спасибо за внимание и советы в комментариях – всё мониторится, обдумывается и внедряется.

Ну, и как заведено в ужасных реалити шоу: ждите продолжения и следите за прессой :)

ps: хочу похвастаться: доменнное имя будет сногсшибательное, за миллион тугриков.

UPD: Очень важная информация! Только что в голову пришло и решил сразу опубликовать: речь идёт о принципе очерёдности публикации. Так вот, судя по исключительно позитивной и мотивирующей реакции хабралюдей на эту идею, разработчиков, желающих опубликовать данные о себе, своих фирмах и своих продуктах в реализуемом каталоге будет много (или может быть очень много). Мне придётся на основании неких критериев принимать решение, в каком порядке очереди я перевожу и публикую информацию о фирмах и продуктах. Пришёл мне в голову следующий принцип: информация о разработчиках и продуктах, пришедшая мне личным сообщением или эл. почтой ДО запуска каталога, будет переведена и опубликована при запуске каталога. После запуска в первую очередь будет опубликована информация о разработчиках, которые имеют готовый продукт и предлагают партнёрскую программу для его распространения. Большая просьба прокомментировать этот принцип очерёдности и, при наличии, предложить альтернативные варианты.

Лучшие стартапы декабря

Reading time6 min
Views854

2008 год для Рунета — это точно год стартапов. Год расцвета этой культуры в России. И пока пузырь ещё не лопнул публикую декабрьский рейтинг лучших стартапов месяца. Под Хабракатом 10 лучших стартапов Декабря с комментариями разработчиков и как бонус ещё семь стартапов, которые вышли в Декабре и заслуживают вашего внимания.

Читать дальше →

И почему все-таки ERP?

Reading time2 min
Views2K
Проведенный опрос довольно недвусмысленно показал, что такая аббревиатура хабрасообществу известна мало. Наверняка еще меньше слышали об ECM, CRM, SCM, CPM, BPM и других страшных трехбуквенных аббревиатурах.

Что характерно, другой возможности узнать о современном состоянии дел в области автоматизации предприятий, кроме как покопаться самому или поработать в этой сфере, у начинающих айтишников нет. Вузы этому не учат учат редко. (Меня, к слову, очень заинтересовал предмет «информационный менеджмент», встретившийся в комментариях — чему еще там учили?). Конечно, радует тяга людей к самообразованию, но отсутствие хотя бы начального введения в эту тему в вузах не радует.
Читать дальше →

GNU Make может больше чем ты думаешь

Reading time3 min
Views7K
Как только исходники проекта надо распространять, то возникает необходимость использовать систему сборке, вместо того что нагенерила любимая IDE. В мире unix (с подачи gnu) традиционно используется autotools, ему есть отличные альтернативы в виде cmake или scons. Но почему-то ядро Linux собирается при помощи GNU Make, а вся FreeBSD включая порты при помощи BSD Make. WTF?

Однажды намучившись с autotools, я решил провести эксперимент — насколько можно перелопатить Makefile, чтобы обеспечить себе более-менее удобную сборку.

Читать дальше →

Защита флэшки от Autorun-вирусов.

Reading time3 min
Views65K


     Доброго времени суток, уважаемый хабра–читатель. Я работаю в университете, в лаборатории вычислительной техники. Администрируем около сотни компьютеров. Перед нами встала проблема защиты от Autorun–вирусов на флэшках. Естественно у нас отключен автозапуск в Windows, однако нужно было защитить сами флэшки, чтобы работник дома, вставив рабочую флэшку, не заразил свой компьютер. Под катом решение проблемы.
Итак, примемся за дело...

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity