Search
Write a publication
Pull to refresh
17
0
Иван Мащенко @StrangeAttractor

User

Send message

Мой подход к проектированию веб-сайтов

Reading time4 min
Views42K

Прелюдия


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

В рамках данной статьи я поделюсь своим опытом проектирования сайтов средней сложности. Данный подход зарекомендовал себя понятным как разработчикам, так и клиентам. Я не собираюсь открывать Америку, представленные ниже инструменты всем прекрасно знакомы. Суть данной статьи как раз в том, что бы продемонстрировать насколько просто можно представить достаточно сложные задачи.

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

Лабораторный источник постоянного напряжения из блока питания

Reading time4 min
Views436K
image

Несколько недель назад мне для некого опыта потребовался источник постоянного напряжения 7V и силой тока в 5A. Тут-же отправился на поиски нужного БП в подсобку, но такого там не нашлось. Спустя пару минут я вспомнил о том, что под руки в подсобке попадался блок питания компьютера, а ведь это идеальный вариант! Пораскинув мозгами собрал в кучу идеи и уже через 10 минут процесс начался.
Читать дальше →

Failover файрвол на iptables

Reading time6 min
Views14K
Чем же заняться админу в новогодние праздники, как не настройкой серверов!

В этой статье описан общий подход как можно:
— сделать кластер на iptables
— настроить кластер через GUI fwbuilder
— сохранить коннекты пользователей при failover при помощи conntrack-tools

Общее окружение в котором у меня работает такой кластер:
— Внутренняя сеть из backend и frontend серверов
— Блок внешних IP-адресов
— 2 сервера под кластер на базе linux (в моем случае Fedora 13 x64_86): fw1 и fw2 в режиме Master/Backup

Задачи кластера:
— шлюз для локальной сети
— публикация сервисов на внешнем блоке ip-адресов

В общем виде это работает так:
— за состоянием кластера следит служба ucarp и дергает нужные скрипты в случае failover
— служба conntrackd синхронизирует информацию о коннектах между серверами
— fwbuilder компилирует нужные скрипты для iptables

Под катом инструкция для сборки с напильником
Читать дальше →

Борьба с INotifyPropertyChanged или как я стал опенсорсником — 2

Reading time5 min
Views33K
Начиналось все как и в прошлый раз, достаточно прозаично: мне пришлось разработать *-надцать ViewModel-ей для своего MVVM-приложения.
Для того, чтобы они оптимально работали как ViewModel-и, мои классы должны были наследоваться от DependencyObject или же реализовывать заезженный до дыр интерфейс INotifyPropertyChanged (INPC).

Давно уже ни для кого не секрет, что DependencyProperty тормознее ручной реализации INPC. Мои тесты показывают, что запись в DependencyProperty в ~13 раз медленнее ручной реализации. Поэтому я, как неисправимый оптимизатор, склоняюсь именно к INPC. Тем более, что код поддержки INPC выглядит логичнее и органичнее, чем описание DependencyProperties.

Внимание, дальше много кода и о том, как этот код значительно уменьшить...

Неочевидные фишки от ASUS

Reading time7 min
Views207K
   В арсенале каждого производителя техники есть немало различных технологий и полезных «мелочей», полезность которых «на первый взгляд как будто не видна». Я решил рассказать про несколько таких «фишек» на примере продукции компании ASUS – как показали последние несколько обзоров, многие о них не знают. Поэтому встречайте – небольшой экспресс-ликбез.

Мудрый китайса

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

Чем отличаются настоящие тестировщики от поддельных?

Reading time5 min
Views27K
Сегодня я не смогла уснуть. Тяжкие думы не первый день омрачают моё бренное существование.

Их первоисточником (или, скорее, катализатором) послужило описание сферы тестирования на сайте SQA Testing School, находящейся в Силиконовой долине. В этом описании тестирование представляется как элементарная область, научиться которой можно очень быстро, знаний для этого нужно минимум, а зарабатывать в которой можно очень даже неплохо.

Первой праведной мыслью было: тестирование обидели!

На смену первой пришла вторая, более взвешенная: описанное вполне соответствует действительности. Устроиться тестировщиком легко. Быть плохим тестировщиком и при этом не быть уволенным — легко. Не приносить ни малейшей пользы проекту, и при этом зарабатывать нормальные деньги — легко.

Но ведь бывают, бывают истинные гении своего дела, которые приносят пользу, и, несмотря на «болотистый» рынок труда в сфере тестирования, являются высококвалифицированными специалистами!

Кто они?
Как отличить настоящих джедаев от поддельных тестировщиков?

Результатом раздумий стал СПИСОК ИЗ ДЕСЯТИ ОТЛИЧИЙ НАСТОЯЩЕГО ТЕСТИРОВЩИКА ОТ ПОДДЕЛЬНОГО.
Читать дальше →

Автоматизация работы *nix системного администратора

Reading time3 min
Views2.7K
О ssh и системных администраторах:

С давних пор *nix системные администраторы используют ssh для удаленного управления серверами.
Некоторые из них делают себе готовые наборы скриптов для обновлений софта, раскладки из репозитория, и так далее.
До определенных размахов бедствия можно обходить парк машин одну за одной. Однако рано или поздно парк машин вырастет до вполне себе солидных размеров и тогда простейшая раскладка по фронтэндам новых скриптов становится головной болью нескольких часов.

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

Однако теперь есть универсальное решение

Основные положения тестирования

Reading time9 min
Views146K
Области применения, цели и задачи тестирования ПО разнообразны, поэтому тестирование оценивается и объясняется по-разному. Иногда и самим тестировщикам бывает сложно объяснить, что такое тестирование ПО 'as is'. Возникает путаница.

Для распутывания этой путаницы Алексей Баранцев (практик, тренер и консалтер в тестировании ПО; выходец из Института системного программирования Российской академии наук) предваряет свои тренинги по тестированию вводным видео про основные положения тестирования.

Мне кажется, что в этом докладе лектор смог наиболее адекватно и взвешенно объяснить «что такое тестирование» с точки зрения ученого и программиста. Странно, что этот текст еще не появлялся на хабре.

Привожу здесь сжатый пересказ этого доклада. В конце текста есть линки на полную версию, а также на упомянутое видео.

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

Opera 11 — Вы этого хотели

Reading time4 min
Views61K
image

Как уже многие догадались, поводом для сегодняшней статьи послужил выход очередной финальной версии браузера Opera под номером 11. Практически все основные новшества, отличающие данную версию от предыдущего релиза 10.63, уже были озвучены ранее после выхода бета-версии, поэтому я не буду снова отнимать ваше время на их подробный разбор — за прошедшее время они претерпели лишь косметические изменения. Впрочем, не упоминать о них совсем не получится, но сделаю я это немного в другом контексте.
Читать дальше →

Изменяем шаблон MotoCMS до неузнаваемости. 10 простых шагов

Reading time8 min
Views19K
Прошла ровно неделя с того момента, как Moto CMS стал доступен русскоязычным пользователям. Мы подошли к этому маленькому рубежу с готовым магазином шаблонов флеш-сайтов на основе нашей панели управления. Сегодня днем на templates.motocms.ru был добавлен 65-й шаблон.

Шаблоны на основе Moto CMS

Возьмем на себя смелость утверждать, что большой выбор flash шаблонов MotoCMS позволяет создать сайт практически с любым дизайном и функциональными возможностями.
Давайте разберем подробней на примере.

Осторожно! Большое количество скриншотов.

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

Обновлён ModularGrid — удобный инструмент для HTML-верстальщиков

Reading time1 min
Views2.7K
Демо-страница
Спешу сообщить, что наконец-то обновил ModularGrid — небольшой javascript, который рисует гайды и модульную сетку поверх вёрстки:
  • появилась панель с контролами для тех, кто не любит хоткеи;
  • состояние сетки теперь сохраняется в cookie;
  • было исправлено несколько досадных ошибок.

Демо-страница | проект на GitHub | предыдущая статья

Как придумать и запустить стартап? Личный опыт с проектом BabbleLABEL

Reading time4 min
Views787
В августе уходящего года, приехав на тренинг МГУ+Intel+Роснано в Дубну, мы еще не подозревали, что он нам принесет не только важные знания, но и идею нового проекта. А все начиналось с модуля Design thinking, который проводили Ирина Кутенёва, Елена Хромкова и их команда из Lumiknows. Задача была такова…



Задание нашей команде было разработать некий продукт, который бы улучшал покупательский опыт. Мы должны были провести интервьюирование коллег, очертить портрет потребителя, выявить скрытые потребности, провести мозговой штурм по решению выявленных потребностей, сделать и представить прототип. Из 50 возникших идей мы решили развивать мобильное приложение, которое бы при наведении на штрих-код товара выдавало по нему информацию. Таким образом, покупатель бы мог без продавца и без серфинга по разным сайтам с маленького экрана телефона мгновенно получить описание, технические характеристики, рецепты и т.д. Тогда мы победили среди остальных команд и получили книжки от Intel.

А теперь о том, что же случилось дальше...

Межведомственный электронный документооборот: сегодняшняя ситуация

Reading time4 min
Views20K
Проект «Электронная Россия» часто обсуждается и критикуется – как целиком, так и по частям. Мы расскажем лишь об одном аспекте данного проекта – о ситуации с межведомственным электронным документооборотом – в частности о том, что уже сделано в этом направлении.
Читать дальше →

Вероятностное Unit-тестирование. (Chaos driven Unit Testing.)

Reading time4 min
Views3.6K
Все более-менее сложные программные системы содержат ошибки (если и не собственные, то наведённые используемыми библиотеками или по причине неточного осознания поведенческих парадигм используемых фреймворков).
Часто, для тестирования системы на этапе разработки используются Unit-тесты.

Так программист может контролировать поведение системы на контрольных точках и пограничных значениях.
Часто именно неверная отработка пограничных значений приводит к проблемам. И опытные программисты это знают и учитывают при проектировании Unit-тестов.

Удобство Unit-тестов ещё и в том, что изменяя код вы ожидаете получить предсказуемые результаты и провести полностью автоматическое тестирование по имеющимся сценариям, чтобы быстро выявить наведённые изменениями неприятности.

Например, вы пишите код для работы на Intel и PPC, разрабатываете его на Intel, но учитываете порядок байтов. Потом прогоняете свои Unit-тесты, чтобы сравнить выходные данные с эталоном и обнаруживаете расхождения — понятно, где-то забыли байты перевернуть — исправляете — всё в порядке.

Однако, любой пользователь всегда несёт в себе элемент случайности.

Опытный программист сочетает в себе талант качественного тестировщика и может отловить много ошибок до выхода программы в свет.

Если программа делает больше чем печать «Hello World!», то скрытые ошибки в любом случае остаются.
Это могут быть ошибки и в логике в том числе.

Программа компилируется, все Warning'и устранены… но иногда что-то идёт не так… у пользователя (который живёт далеко в домике на островке в тихом океане — приехать к нему и пощупать нет возможности). Программист прокликал и протестировал со своей стороны всё что мог, но ошибки не нашёл. Что же делать?
Читать дальше →

Леонид Каганов в гостях у Materialise

Reading time1 min
Views8.4K
Радостным и неожиданным событием для сотрудников Materialise стал визит Леонида «Ллео» Каганова в киевский офис компании.

image

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

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

О Freemium модели монетизации

Reading time4 min
Views14K
Словообразование Freemium появилось в языке инвесторов и разработчиков не так давно — ввел его в употребление Фред Вилсон в 2006 году. Произошло это понятие из слияния двух слов — Free и Premuim, и означает соответственно такую модель предоставления услуг, когда базовые возможности сервиса пользователь получает бесплатно, а затем имеет возможность расширить их, заплатив за Premuim-аккаунт.

Вопрос, всем ли подходит такая модель, и как заставить ее работать. Именно на эти вопросы я постараюсь ответить в этой заметке.

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

Внутренности вордовских файлов: просто ужас

Reading time9 min
Views57K
О сложности и жуткости вордовских файлов давно ходили легенды. Известно было, что формат этот крайне запутанный, а к тому же еще и полностью засекреченный, так что о половине тамошних полей можно было только догадываться.

Не скрою, что и меня эти файлы интересовали, но дальше первой страницы описания я так продвинуться и не смог. Однако незакрытый гештальт остался.

А теперь вот жизнь заставила (или подкинула возможность) все-таки разобраться во внутренностях всем хорошо известных документов, тем более, что в Штирлица теперь играть не обязательно, достаточно скачать с сайта «Майкрософта» официальные спецификации.

Что тут можно сказать? Невольно вспоминается старый пошлый анекдот: ну ужас. Ну просто ужас, но ведь не ужас-ужас-ужас.
Читать дальше →

Information

Rating
Does not participate
Location
Praha, Hlavni Mesto Praha, Чехия
Date of birth
Registered
Activity