понедельник, августа 15, 2011

Разработка программного обеспечения на заказ - наш основной вид деятельности.
У нас Вы можете заказать программу любой сложности. Наши услуги доступны абсолютнь всем.

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

Заказать разработку очень просто. Если Вам необходимо срочно выполнить какое-либо задание, написать уникальное программное обеспечение, спроектировать сложную систему или просто создать (оптимизировать под поисковые системы) Ваш сайт - обратитесь к нам.
По материалам Написание программ на заказ

четверг, сентября 23, 2010

Mac OS

Поставил макось. Понравилось оформление и юзабилити. Попробую пожить на ней пару дней

пятница, сентября 10, 2010

Mercurial, git, svn и прочая хрень

Наткнулся на сообщение Джоела Спольски:

Если вы все еще используете SVN – перестаньте. Mercurial и Git – это антибиотики. Теперь существуют технология лучше.
Думаю не спроста такая авторитетная личность как Джоел, будет так высказыватся. И тут я понял, что нужно менять свое отношение к меркуриалу, хотя стырый добрый свн уж как мне по душе. Да и в проект меня пригласили, в котором опять таки код лежит на меркурале.
Ну что же - начнем.

Mercurial -  кроссплатформенная  система управления версиями. Написана на Python со "вставками" С.  Стоит заметить, что сами разработчики питона с недавних пор начали юзать меркуриал - опять таки еще одит плюс.

Mercurial, в отличии от SVN, является распределенной системной. Более подробно о распределенности можно почитать здесь. Вкратце разницу межну централизованными и распределенными системами можно показать на схемах

 С данных схем можно понять, что фактически у кждого, кто работает с репозиторием меркуриала, на локалке есть своя копия репозитория - и комиты делаются именно в него. Если же нужно залить изменения на сервер - делается объединение веток репозиториев на сервере и на локальной машине. Такая архитектура более отказоустойчива и позволяет обмениваться изменениями даже при отсутствии связи с сервером.

Операции с Mercurial как и в SVN выполняются через консоль и опять таки как и в SVN у Mercurial есть свой юзер-интерфейсед клиент Mercurial tortoiseHg. К расмотрению клиента перейдем немного по позже, сейчас же остановимся на основных командах. Полный лист команд можно найти на оф. сайте http://www.selenic.com/mercurial/hg.1.html.

Вся работа с системой котроля версий Mercurial происходит с помощью команды hg.
Для начала создадим репозиторий. Для этого служит комманда Init
Вот ее описание:

  • hg init [-e CMD] [--remotecmd CMD] [DEST]

  • Initialize a new repository in the given directory. If the given directory does not exist, it will be created.If no directory is given, the current directory is used.

  • options:
  • -e, --ssh specify ssh command to use
  • --remotecmd specify hg command to run on the remote side
Переходим в наш каталог, в котором будет находится репозиторий и выполняем комманду
>hg init meRepos
В текущем каталоге будет создан репозиторий с папкой .hg - здесь то в и хранится вся история измениений (не напоминает SVN? -:) )

Мы создали главный репозиторий. В идеале репозиторий необходимо размещать на сервере, но в качестве ознакомления базовых принципов будем считать что наш ПК - это и сервер и клиент.

Следуюющее что необходимо сделать - создать локальную копию репозитория. Именно с этого действия начинается работа на клиенте. Для этого служит комманда clone
Вот ее описание:

  • clonehg clone [OPTION]... SOURCE [DEST]    
  • Create a copy of an existing repository in a new directory.
  • If no destination directory name is specified, it defaults to the basename of the source.
  • The location of the source is added to the new repository's .hg/hgrc file, as the default to be used for future pulls.
  • options:
  • -U, --noupdate the clone will include an empty working copy (only a repository)
    -u, --updaterevrevision, tag or branch to check out
    -r, --rev include the specified changeset
    -b, --branch clone only the specified branch--pull use pull protocol to copy metadata--uncompressed use uncompressed transfer (fast over LAN)
    -e, --ssh specify ssh command to use--remotecmd specify hg command to run on the remote side
По команде clone Mercurial создает локальную копию репозитория, расположенного по указанному адресу. При этом клонируется именно репозиторий. Таким образом, после всех действий  у нас уже имеется два репозитория - первый, который мы создали, и второй - его локальный клон.

При этом взаимодействовать можно абсолютно с любым репозиторием. Но как правило на предприятии выделяют какойто серверный репозиторий (центральный) - на которого завязывается все взаимодействие.






Mercurial: первые впечатления

среда, марта 17, 2010

Кроссплатформенное программное обеспечение

Задача

Написать модуль активации ПО.

Описание:

  • сервер активации находится на никсовой платформе (Debian)  
  • клиенты находятся на Win32
  • модуль активации должен по индификатору генирировать ответ
  • ответ должен проверятся на клиенте
  • модуль активации на сервере должен быть закрыт (бинарный файл)

Исходя с поставленной задачи и с того, что клиентское ПО было написано на Delphi был сделан выбор в сторону Free Pascal.

В ходе реализации написан модуль, поддержующий станданр Free Pascal и, соответственно, легко компилится на обеих платформах.

В качестве компилятора на никсовой платформе был взят  Free Pascal Compiler (FPC). Как среда разработки - Lazarus



четверг, марта 19, 2009

Preferences ERROR

Сегдня утро началось не радужно. Мы сломали ТРАК. Разработка остановилась, ибо на траке висело зловещее acct_mgr.web_ui.MessageWrapper.  Вобщем все решилось не сразу - помогла статейка http://trac-hacks.org/ticket/4125 а именно вот эта опция - acct_mgr.web_ui.emailverificationmodule = disabled

среда, февраля 25, 2009

Переносим репозиторий subversion

Жил да был репозиторий на винде и решил он переехать на фряху. И тут начались проблемы.

Создаю дамп текущего репозитория 

svnadmin dump --quiet --revision 1:200 C:/SVN/DRDL >DRDL.dump

Говорю, мол, а не создашь ли ты мне дамп репозитория с 1-й по 200 ревизию, находящегося по пути "C:/SVN/DRDL

На фряхе:

svnadmin create /usr/local/www/svn DRDL

svnadmin load /usr/local/www/svn DRDL < DRDL.dump

Все вроде бы нормально. И закачать с репозитория я могу. А вот коммитить зась ...

И что мы токо не делали - таже ошибка:

Error: Commit failed (details follow):  
Error: Server sent unexpected return value (403 Forbidden) in response to MKACTIVITY  
Error: request for '/proj/!svn/act/45f618ab-d256-0c41-929e-eca572b0ac02'

Начали разбираться более подробно - оказалась банальная проблема. Файл с раздачей прав содержал имена пользователей перечисленных через пробел. Поменав на "," все заработало.

понедельник, февраля 23, 2009

DOS и DDOS


Что такое DoS?

Недавно столкнулся с такой проблемой как DoS-атака. Первое что может прийти на ум - это всем извесный коммандный интерпритатор от Windows. Но с этим  DoS-атака почти не связана. Итак, попробуем разобраться по подробнее.

Если обратиться к википедии , найдем определение

DoS-атака (от англ. Denial of Service — «отказ в обслуживании») и DDoS-атака (Distributed Denial of Service — «распределённый отказ обслуживания») — это разновидности хакерских атак на компьютерные системы. Целью этих атак является создание таких условий, при которых легитимные (правомерные) пользователи системы не могут получить доступ к предоставляемым системой ресурсам, либо этот доступ затруднён

DDoS-атака - сокращение от Distributed Denial Of Service Attack. Особенностью данного вида компьютерного преступления является то, что злоумышленники не ставят своей целью незаконное проникновение в защищенную компьютерную систему с целью кражи или уничтожения информации. Цель данной атаки - парализовать работу атакуемого веб-узла. Главной опасностью здесь является простота организации и то, что ресурсы хакеров являются практически неограниченными, так как атака является распределенной.

DoS атаку можно провести двумя способами: первый - использовав уязвимость в программном обеспечении (ПО), и вторым - при помощи отсылки большого количества пакетов на атакуемый сервер. 
В первом случае для проведения DoS атаки можно использовать уязвимости в ПО, для примера ошибка типа "переполнение буфера": при переполнении внутреннего буфера программы, ей можно отослать исходный код выполняющий DoS атаку на сервер, т.к. DoS атака будет производиться на самом сервере, то через 1-5 минут после начала DoS атаки сервер будет выбит из интернета или "зависнет". 

Во втором случае надо хотя бы на минимальном уровне знать стек TCP/IP, но некоторые принципы проведения DoS атаки при помощи этого стека я постараюсь вам объяснить. При получении сервером пакета данных происходит его обработка, но если сервер занят приёмом или обработкой другого пакета ваш пакет становится в очередь и естественно занимает некоторую часть серверных ресурсов. При DoS атаке не ожидая ответа от сервера, ему отсылается большое количество пакетов определённого размера , В результате большая часть серверных ресурсов занята и сервер оказывается перегружен избытком информации и либо аварийно отключается от интернета (при помощи специального ПО, контролирующего сетевой трафик), либо (если не установлено такое ПО) "зависает". Данный тип атаки наиболее опасен, т.к. после её проведения вся подсеть будет повреждена. Так как для проведения качественной DoS атаки требуется большая скорость, хакеры придумали довольно-таки изощрённые методы, вот несколько из них: 

1) Используя скорость уже взломанного сервера и проводя DoS атаку при помощи его.
2) Используя множество персональных компьютеров (обычно такое происходит если одна хак группа хочет "завалить" вражеский сервер).
3) И ещё один довольно хитрый, но рабочий способ: на любом сервере размещаются IRC боты, когда хозяин заходит на IRC канал и даёт команду, например "атакуй 195.168.227.34", то каждый из ботов начинает слать огромное число пакетов небольшого размера. Так как здесь участвуют одновременно несколько ботов, то скорость сервера, на котором стоят боты, может быть меньше скорости жертвы. Теперь давайте разберёмся с DoS атакой на персональные компьютеры, такая атака обычно называется WinNuke или Nuke атака.

Атака WinNuke построена на использовании ошибки ПО в операционной системе Windows 95,98. Такая атака производится на 139 или 135 порт (протокол NetBIOS). Но к сожалению (а может и к счастью) времена WinNuke прошли. Но несмотря на это ещё можно атаковать чужой компьютер WinNuke*ом, но только если ваша скорость интернета в несколько раз превосходит скорость жертвы, либо если жертва "сидит с непропатченой Windows 98 , ну или с Windows 95/ME/2000/XP". 

Подведём итоги по атаке: Гораздо качественней и быстрей производить DoS атаку используя ошибки в ПО сервера. Также можно производить DoS атаку используя взломанный сервер либо IRC ботов. Теперь несколько слов об обнаружении и защите от DoS атак. Домашнему пользователю достаточно будет поставить себе FireWall на 139 и 135 порты, но серверу придётся сделать намного больше для защиты от атак подобного вида. Вот что нужно сделать серверу: 

1) Постоянно следить за обновлениями ПО и обнаружением новых "дыр" в используемом ПО.
2) Скоординировать свои действия с поставщиком услуг интернета и поставить ограничение на входящий трафик.
3) Быть готовым в любой момент отразить DoS атаку и принять необходимые меры по устранению её последствий.
4) Проверять все компьютеры в сети, т.к. их чаще взламывают чем сам сервер.
5) Закрыть неиспользуемые и ненужные порты.
6) Установить FireWall, желательно FireWall-1, т.к. практически все хакеры стараются обходить его стороной из-за многопротокольной проверки пакетов с так называемым учётом состояния протокола (SMLI).

Это только самые важные аспекты, которые помогут вам защитить вашу сеть от DoS атак.

вторник, декабря 30, 2008

Дурацкий НГ

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

пятница, декабря 26, 2008

666 или Проклятье ЕМСТ


Сегоня я решил прикинуть сколько же у меня займет времени ознакомление и рефакторин проекта ЕМСТ. Решил выходить с того, что в среднем на 1 модуль у меня уйдет около 2-х часов. Возникла необходимость посчитать количество модулей в проэкте ...
И каково же было моеудивление, когда обнаружелось, что всего таких модулей - 666
Вот тому подтверждение


Кроме того, следует отметить, что совсем недавно мы открыли 666-й тикет... И взял его Андрей. Ну что же, я желаю Андрею удачи в покорении ЕМСТ. 3 конверта перадаю после НГ ему....

пятница, декабря 19, 2008

Лошадь во сне

Сегодня ночью я долго не мог уснуть... Но мне приснился поразительный сон...
Мне приснилась огромная темная лошадь. Она вся сеяла на солнце и в лучах было четко видно ее мышци, которые так и играли...
Возле лошиди стоял человек. Я не могу сказать кто это, ибо этот человек, как мне показалось во сне, не был мне столь знакомым, но я ее знал. Человек предложил мне взять поводья лошади .... Но я побоялся ... В моих глазах лошадь казалась столь огромной и столь сильной, что я я предпочел оставить поводья в руках этого человека. После этого мы начали взбираться на башню ... Дальше сон очень скудно мне запомнился .. все что могу сказать, как я думаю, лошадь упала с башни ... Тот человек, что вел лошадь тоже кудато исчез ... Далее сон продолжаеться уже внизу. Я выхожу со сдания и при этом как бы думаю, что бы люди, которые меня окружают, не узнали о случившемся ....

Вот такое может насниться..
Не знаю к чему бы это, поживем увидем

четверг, декабря 18, 2008