Как стать автором
Обновить
160
-4
Антон Д @atd

Самоуверенный пользователь ПК

Отправить сообщение

Firebird: 10 лет успешного развития

Время на прочтение3 мин
Количество просмотров12K
image
Firebird — универсальная СУБД с открытым кодом.
Этот обзор посвящен 10 летию огненной птицы (которое состоится в июле), а так же скорому выходу финальной версии Firebird 2.5 (скорее всего конец апреля — начало мая).
MindTheBird!
www.MindTheBird.com

за мной, читатель
Всего голосов 27: ↑20 и ↓7+13
Комментарии24

Простой подход к версионированию баз данных MS SQL Server

Время на прочтение8 мин
Количество просмотров11K

Простой подход к версионированию баз данных MS SQL Server



Предисловие.

Очень часто в прикладных программах возникает необходимость использовать современные базы данных, которые предоставляют разработчику очень большой функционал, основанный не только на уровне данных, но также и созданию собственного API для предоставления доступа к этим данным, посредством хранимых процедур, триггеров, функций. Очевидно, что во всей этой структуре в зависимости от обстоятельств, могут понадобятся какие-либо изменения. И в самом безобидном случае, когда разработчик имеет дело с одним клиентом и одной изменяющейся базой данных (предположим на небольшом предприятии), процесс обновления выглядит просто – мы делаем необходимые изменения в структуре, сравниваем с помощью специальных утилит, например SQL Examiner, старую и новую версию и накатываем сгенерированный sql-скрипт на существующую базу. Как видно в описанном случае, миграция данных происходит каждый раз при обновлении структуры базы. Но к сожалению, описанная ситуация встречается крайне редко, чаще — клиенты и соответствующих для них базы данных для какого-либо продукта у разработчиков исчисляется сотнями, если не больше. Таким образом, для нормального жизненного цикла базы данных необходима система версионирования (не путать с системами версионирования исходников типа Subversion).
Читать дальше →
Всего голосов 36: ↑21 и ↓15+6
Комментарии19

Как легально получать деньги из-за пределов России

Время на прочтение5 мин
Количество просмотров202K
Дано: заказчик за рубежом, желающий работать с Вами и платить вам евро или доллары.
Найти: оптимальный способ организовать работу с ним, чтобы платить налоги и спать спокойно.

Сразу скажу, что получение денег на пластиковую карту без уплаты налогов может вылиться в серьезные проблемы (про ответственность написано в конце топика). Объяснения, что деньги «от бабушки внучку на мороженное» при суммах больше 10К$ в год уже не прокатывают, особенно если в реквизитах «бабушки» будет стоять что-то вроде «GMBH Star Development» Вероятность того, что возьмут за задницу достаточно высокая и поэтому лучше не рисковать и делать все по Закону, тем более, что ничего сложного в этом нет
Читать дальше →
Всего голосов 144: ↑142 и ↓2+140
Комментарии192

Реализация VNC клиента

Время на прочтение3 мин
Количество просмотров11K


Признаюсь, написал я код давно, когда был доступен только Silverlight 3.0 и отложил на полочку до прихода лучших времен, потому что как пример он был отличным, а вот пользы, почти, никакой. По причине использования сокетов, которые усложняли всю работу, так как мы должны были иметь в наличии сервер авторизации, в общем с портами была еще та катавасия.
Читать дальше →
Всего голосов 36: ↑25 и ↓11+14
Комментарии4

Обзор электронных платежных систем. Что выбрать?

Время на прочтение4 мин
Количество просмотров65K
В процессе разработки довольно интересного проекта для туристической компании возникла необходимость интеграции на сайт одной из платежных систем, дабы пользователи сайта могли без каких-либо проблем и ограничений оплачивать собственные заказы.

Итак, задача довольно тривиальная, и к её решению приступил с изучения предметной области.
Читать дальше →
Всего голосов 58: ↑52 и ↓6+46
Комментарии116

Тестирование инсталляторов. Теория

Время на прочтение10 мин
Количество просмотров16K
imageТестирование установки ПО направленно на проверку успешной инсталляции и настройки, а также обновления или удаления программного обеспечения.
В настоящий момент наиболее распространена установка ПО при помощи инсталляторов (специальных программ, которые сами по себе так же требуют надлежащего тестирования.

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

В распределенных системах, где приложение разворачивается на уже работающем окружении, простого набора инструкций может быть мало. Для этого, зачастую, пишется план установки (Deployment Plan), включающий не только шаги по инсталляции приложения, но и шаги отката (roll-back) к предыдущей версии, в случае неудачи. Сам по себе план установки также должен пройти процедуру тестирования для избежания проблем при выдаче в реальную эксплуатацию. Особенно это актуально, если установка выполняется на системы, где каждая минута простоя — это потеря репутации и большого количества средств, например: банки, финансовые компании или даже баннерные сети. Поэтому тестирование инсталляторов можно назвать одной из важнейших задач по обеспечению качества программного обеспечения.

Именно такой комплексный подход с написанием планов, пошаговой проверкой установки и отката инсталляции, полноправно можно назвать тестированием установки или Installation Testing.

Под катом много текста о том, что следует помнить при тестировании.
Кат...
Всего голосов 58: ↑37 и ↓21+16
Комментарии13

C# — Использование событий в Microsoft Network Load Balancing

Время на прочтение3 мин
Количество просмотров2.5K
По работе постоянно сталкиваюсь с недостаточностью ресурсов MSDN.
Т.е., даже если общее описание довольно подробно нет почти никакой возможности пользоваться классом/технологией из-за недостатка примеров. Приходится довольно долго (иногда часами) искать по разнообразным ресурсам в Интернете для того чтобы найти разумный и прозрачный способ использования.

Одним из последних примеров у меня было использование Microsoft Network Load Balance (что это такое можно посмотреть тут) внутри C# кода. Существует множество примеров использования NLB из VB скриптов и практически нет примеров использования из managed code.

Задача: определение статуса машины (кластера) в данный момент времени.
Существующее решение: Polling – определение статуса путем запросов через WMI.
Недостаток: есть большая вероятность пропустить изменение состояния в момент самого события, недостаток информации, время затрачиваемое на считывание состояния.
Возможный подход: применение механизма «событий». Такой механизм существует, даже с примерами, но не для использования внутри кода.
Решение:

Объявление в главном методе:
Читать дальше →
Всего голосов 23: ↑14 и ↓9+5
Комментарии4

В который раз о важности сложных паролей

Время на прочтение1 мин
Количество просмотров1.9K
В моей прошлой заметке про пароли некоторые пользователи высказали мнение, что пользователь имеет право ставить любой пароль, хоть из одной буквы. Мол, он сам будет отвечать, если его аккаунт взломают.

На одном местечковом форуме под старенькой phpBB второй версии последнее время участился хитрый спам: спамеры взламывали аккаунты пользователей и редактировали их сообщения многолетней давности, заменяя на SEO-тексты с порноссылками. Редактирование старых сообщений долгое время оставалось незамеченным для администрации, но не для поисковых машин. Парой запросов в базу удалось выяснить, что взламывали аккаунты с паролями двух типов: с паролем «12345» и с паролем, совпадающим с логином. Оказалось, пароль 12345 поставили 13 пользователей, пароль-логин — 16 пользователей, всего порядка 1500 пользователей. То есть каждый 50-й аккаунт мог быть так взломан. Причём, так как спамеры перебирают пользователей, а не пароли, нельзя автоматически заблокировать определённого пользователя, пароль которого пытались подобрать много раз.

Администраторы, запретите устанавливать простые пароли, если вы ещё этого не сделали. Капча на логин — штука спорная, но может пригодиться. Пользователи, не возмущайтесь, когда вам не дают установить простой пароль :-)
Всего голосов 91: ↑72 и ↓19+53
Комментарии121

Просмотр памяти .NET приложений при помощи Crack.NET

Время на прочтение1 мин
Количество просмотров2.2K
Crack.NET — это приложения для отладки, просмотра памяти и ее изменения для любого WPF или WinForms приложения. Также есть поддержка IronPython для написания скриптов, автоматизирующих какие-либо операции.

image

Читать дальше →
Всего голосов 47: ↑38 и ↓9+29
Комментарии13

С 1 апреля действительно неограниченный трафик

Время на прочтение2 мин
Количество просмотров8.6K
Первое апреля время не только для шуток, но и для хороших новостей.

С 1 апреля компания Infobox переходит на новую систему предоставления трафика клиентам по направлениям размещения серверов, аренды серверов, vds-серверов. Мы отказываемся от предоставления условно-бесплатного трафика при условии соблюдении определенных соотношений — входящий-исходящий и российский-зарубежный. Теперь мы предоставляем вам передачу данных по выделенной полосе на скорости 10Мбит/сек.

В настоящее время среди российских провайдеров сложилась практика предоставления неограниченного трафика на виртуальном хостинге и условно-неограниченного (трафика по соотношениям) при аренде и размещении серверов. При несоблюдении соотношений клиентам приходится оплачивать разницу. Переходить на эту модель хостинг-провайдеры в России начали с 2001 года, отменяя постепенно не только плату за трафик, но и регистрационную/инсталляционную плату.
Читать дальше →
Всего голосов 49: ↑32 и ↓17+15
Комментарии151

Создание своего диска в облаке и работа с ним

Время на прочтение1 мин
Количество просмотров1.3K
Ниже представлены два интересных видео (английский язык), в которых рассказывается как создать свой диск VHD в облаке и работать с ним как с обычным диском, считывая и записывая файлы.

Первое видео подробно рассказывает, как создать VHD-образ диска и как загрузить его в облако.



Второе видео, под катом, рассказывает про то, как примонтировать загруженный вами образ в облаке и начать использовать его как обычный диск для доступа к файлам.
Читать дальше →
Всего голосов 18: ↑12 и ↓6+6
Комментарии1

Нынешние способы обмена Webmoney на ЯД и наоборот

Время на прочтение3 мин
Количество просмотров7.8K
Вероятно, практически все хабраюзеры некоторое время назад столкнулись с неожиданным запретом Webmoney на осуществление обменных операций с большим кол-вом обменников, в том числе и ЯД.

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

Эта, удивительным образом сложившаяся ситуация, добавила очередных неудобств, в итак чрезмерно извращенную секьюрность вебманей.

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

Читать дальше →
Всего голосов 76: ↑69 и ↓7+62
Комментарии48

Как я собирал ru-домены у одного регистратора

Время на прочтение3 мин
Количество просмотров46K
UPD: обратите внимание, статья описывает устаревший успешный опыт переноса доменов.

Здравствуй, Хабрасообщество и его уважаемые читатели!

Однажды я узнал что умные люди давно регистрируют/продлевают домены в зоне ru по 99 руб у партнера регистратора «REG.RU» — 2domains.ru. Подумал «надувательство какое-то». Но, наступил день когда мне понадобилось зарегистрировать домен, подешевле и побыстрее. «Чем черт не шутит» подумал я и зарегистрировался на 2domains.ru. Перечислил с Webmoney 99 рублей, затем заполнил нехитрую анкету (персона на которую регистрируется домен,- эта же информация отображается и в whois). Указал имя домена и нажал заветную кнопку «зарегистрировать домен»!
Читать дальше →
Всего голосов 43: ↑26 и ↓17+9
Комментарии95

Притча о пропавшем Стэке

Время на прочтение3 мин
Количество просмотров953
— Здравствуй, дружок…
— Дяденька, вы снова расскажете мне сказку?
— Конечно! Какой умненький мальчик!
— А про что?
— М… сегодня я расскажу тебе о том, куда пропадают чересчур самостоятельные мальчики вроде тебя…
— Э! Что значит пропадают?
— Вот то и значит… На, держи огнелиса *протянул, держа за хвост, пылающее пламенем животное* Только осторожно — он горячий!
— Ай-ай-ай! Он брыкается!
— Посади на него огненного жука — мигом успокоится.
— Класс! Действует!
— Ато! Теперь скажи ему:
function throwException( ){
    (void 0)()
}
throwException()

А дальше идёт жёсткое разоблачение
Всего голосов 155: ↑113 и ↓42+71
Комментарии54

Удобный мониторинг ошибок в приложении ASP.NET

Время на прочтение2 мин
Количество просмотров12K
Здравствуйте, уважаемы читатели Хабра. В данном посте я хочу рассказать вам о модуле для мониторинга ошибок в ASP.NET — ELMAH (Error Logging Modules and Handlers).

Для чего это может быть полезным:


Представьте ситуацию, когда у вас есть работающий в Prod режиме сайт с большим количеством юзеров выполняющих разнообразные бизнес задачи. Время от времени некоторые пользователи сообщают о спонтанно возникающих ошибках, которые на Dev окружении воспроизвести не удается. При этом очень трудно бывает понять по описанию юзера что может быть причиной ошибки и при какой комбинации действий она произошла.
Читать дальше →
Всего голосов 45: ↑32 и ↓13+19
Комментарии16

Поднимаем софтверный бизнес

Время на прочтение8 мин
Количество просмотров1.8K
WEBO SoftwareЭто вторая статья о становлении софтверного (интернет-) бизнеса в России (первая тут). В ней я собираюсь раскрыть некоторые ключевые моменты адаптации продукта под рынок (под требования пользователей), о преодолении тенологической пропасти, и чуть-чуть о реалиях российского бизнеса.

Данный топик хочу приурочить к тому, что год назад (может, чуть раньше или чуть позже) появился продукт WEBO Site SpeedUp (ранее Web Optimizer). Мысли немного сумбурны, но, видимо, для каждого направления все сильно специфично, поэтому ценными будут только общие идеи, направления и подходы к решению проблем (в чем я искренне надеюсь :). Здесь и далее речь идет о создании коробочного решения (а не софтверном аутсорсе).
Читать дальше →
Всего голосов 69: ↑62 и ↓7+55
Комментарии23

Перегрузка функций в JS

Время на прочтение4 мин
Количество просмотров54K
Как известно, в JavaScript нельзя создать несколько функций, различающихся только списком параметров: последняя созданная перезапишет предыдущие. Про различие на уровне типов параметров говорить не приходится вообще. Обычно, если программист хочет создать функцию с множественным интерфейсом, он пишет что-то вроде такого:
  1. // getRectangleArea(x1, y1, x2, y2) или
  2. // getRectangleArea(width, height)
  3. function getRectangleArea(x1, y1, x2, y2) {
  4.   if(arguments.length==2) return x1*y1;
  5.   return (x2-x1)*(y2-y1);
  6. }
* This source code was highlighted with Source Code Highlighter.

Пока пример выглядит не очень страшно, однако интерфейсов может со временем стать заметно больше, тогда функция станет плохочитаема. Посмотрим, что можно с этим сделать.
Читать дальше →
Всего голосов 106: ↑99 и ↓7+92
Комментарии59

LogParser — привычный взгляд на непривычные вещи

Время на прочтение5 мин
Количество просмотров55K
Когда я в очередной раз использовал LogParser, то чтобы проникнуться и чужим опытом, ввел его название в поиск на Хабре. Как результат — сообщение «Удивительно, но поиск не дал результатов». Вот уж воистину удивительно, когда столь интересный инструмент обойден вниманием. Пришла пора восполнить этот пробел. Итак, встречайте LogParser. Маленькая, но чертовски полезная утилита для любителей SQL.

Из названия инструмента, казалось бы, очень непросто понять, что он делает в разделе SQL. А правда заключается в том, что он такой же LogParser, как и ChartGenerator. В то смысле, что он справляется с обоими задачами с одинаковыми успехом. В целом я бы его охарактеризовал как SQL-процессор гетерогенных данных. Концепция работы в общем такова, что он берет данные из некоторого формата и преобразует их в табличный вид (собственно говоря, только на этом этапе и выполняется иногда парсинг). Затем, посредством выполнения над этими табличными данными некоторого SQL-запроса формирует таблицу с результатом и сохраняет ее опять же в некотором формате. Если коротко, то цепочка выглядит как подготовка входных данных->SQL-процессинг->генерация выходных данных.
Читать дальше →
Всего голосов 56: ↑46 и ↓10+36
Комментарии17

Microsoft открывает U-prove

Время на прочтение2 мин
Количество просмотров1.1K
Чуть больше
Всего голосов 50: ↑42 и ↓8+34
Комментарии17

Минимизация Javascript кода и CSS с помощью Microsoft Ajax Minifier

Время на прочтение7 мин
Количество просмотров5.5K
Скачивание объёмных ресурсов, связанных с веб-страницей, таких как JavaScript файлы и CSS, влияет не только на скорость загрузки страницы, но и увеличивает трафик, проходящий от сервера к клиентскому браузеру. Последнее обстоятельство особенно важно в подключениях с ограниченным тарифом или при размещении сайта на хостинге с заранее оговоренным объёмом исходящих данных.

Один из способов борьбы с лишними байтами – сжатие данных на сервере и передача gzip'ированного потока браузеру, который уже распаковывает его во время отрисовки страницы. Обсуждение данного способа не входит в данную статью. Я бы хотел рассказать о способе уменьшения данных с помощью удаления всех незначащих символов из сопутствующих веб-странице файлов: JavaScript и CSS – минимизации.
Далее
Всего голосов 20: ↑13 и ↓7+6
Комментарии6

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность