Как стать автором
Обновить
0
0
vitaks @vitaks

Пользователь

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

Рефакторинг: миссия (не)выполнима?

Время на прочтение4 мин
Количество просмотров2K
Что делать, если исходники проекта напоминают болото, а жить в нем планируется еще долго? Рефакторинг исходных кодов проекта — это более выгодная из двух альтернатив разобраться с означенной проблемой. Вторая из альтернатив — выбросить и переписать все заново — обычно не устраивает, по разным причинам.

А как делать этот самый рефакторинг, если даже неизвестно, с чего начать? Как осушить болото кода и не утонуть нем?

Конечно, идеальный вариант — считать рефакторинг одной из активности на проекте с самого его начала и выделять на него проектное время команды. В жизни, как ни странно, однако чаще всего оказывается, что предыдущий лид проекта не сильно озадачивался этим вопросом, предпочитая плыть по течению; возможно, он надеялся когда-нибудь сбагрить эту ношу менее удачливому лиду — пока проект еще не развалился; а может быть, просто не знал, что делать. Шеф, усё пропало!

Читать дальше →
Всего голосов 65: ↑64 и ↓1+63
Комментарии52

Что такое SPF

Время на прочтение5 мин
Количество просмотров50K
Думаю, никому не нужно объяснять, какой проблемой является спам в наше время. Борьба с этим злом — дело не простое, и если хочется приблизится к идеалу, требующее сочетания нескольких элементов. Одним из этих элементов является протокол SPF. Будучи опубликованным в апреле 2006 года в RFC 2006 года к настоящему времени протокол имеет статус «экспериментальный», и достаточно неплохую распространенность.

SPF взят на вооружение такими гигантами, как Google, Яндекс, Mail.Ru, Microsoft, Рамблер. Yahoo не поддерживает SPF, а пытается продвигать свою разработку DKIM, к слову, не слишком успешно.

Итак — как же работает SPF?
Читать дальше →
Всего голосов 51: ↑50 и ↓1+49
Комментарии43

Курс по интернет маркетингу от Jeremy Schoemaker

Время на прочтение1 мин
Количество просмотров1.4K
Известнейший SEOшник, блогер и манимейкер ShoeMoney начал свой 12 недельный курс по интернет маркетингу.

image

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

Прочитать первую неделю курса от ShoeMoney
Всего голосов 105: ↑67.5 и ↓37.5+30
Комментарии54

Стэнфордский курс по программированию iPhone

Время на прочтение1 мин
Количество просмотров6.1K
Бесплатный курс Стэнфордского университета по программированию iPhone скачали уже более миллиона человек. Популярность лекций резко возросла, когда их семь недель назад выложили на сайте iTunes U — это специальный обучающий ресурс Apple, посвящённый iTunes.

Курс iPhone Application Programming представляет собой видеозаписи лекций из 10-недельного обучающего курса, который читался программистами Apple для студентов Стэнфорда. Через два дня после каждой лекции её выкладывали в свободный доступ, так что интернетчики могли учиться практически в режиме реального времени, одновременно с настоящими студентами. Видеоматериал сопровождается кадрами из презентаций, которые показывали на экране в аудиториях одного из лучших университетов мира.

Менеджеры проекта iTunes U говорят, что у них на сайте это первый курс, который достиг отметки в миллион скачиваний.
Всего голосов 41: ↑34 и ↓7+27
Комментарии21

Glimmer – jQuery-эффекты для вашего сайта за несколько минут

Время на прочтение2 мин
Количество просмотров2.3K
image
Сегодня я вам расскажу о замечательном WPF приложении, которое сильно упростит вам создание популярных jQuery-эффектов!
Читать дальше
Всего голосов 71: ↑46 и ↓25+21
Комментарии76

Азбука начинающего Symbian OS юзера

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

Внимание!


Сия статья ориентирована на людей которые по тем или инным причинам являются владельцами смартфонов на базе Symbian OS, но не смотря на это используют свой девайс исключительно для вскрытия пивных пробок звонков. В статье присутствуют элементы пренебрежения авторскими правами некоторых забугорных софт контор, но учитывая мои исключительно благие намерения я позволю себе такую слабость. В конце концов, если захотите приобрести ту или инную софтину — вас никто не держит. У меня, например, около 30% софта чесно куплено (ибо я в нем действительно нуждаюсь), 60% — свободнораспространяемого, и всего лишь 10% — вареза, платить за который я отказываюсь принципиально, в силу несоответствия цены и качества у онного.

Я, при содействии и снабжении меня необходимым запасом провианта и очень стимулирующими (правда, очень) пинками со стороны моего незабвенного товарища которого зовут Олегом, пишу статью-мануал, такую себе азбуку начинающего смартовода, которая поможет ему (смартоводу) разобраться в азах смартовединея и достойно заюзать сии прекрасные девайсы как на то полагается по праву. С чего это вдруг? Хе-хе… В один прекрасный день я узрел своего старого знакомого. Он такой себе среднестатистический писи пользователь, кодит даже немного на питоне (джаст фор фан)… Так вот, попросил он меня помочь ему освоить новый гаджет (который он виду врожденной паталогической лени не захотел осваивать с Божей и (или) Гугла помощью). Ну помог я человеку ес-но, как уж тут отказать-то. И задумался. А ведь сколько народу имеют в своем распоряжении смартфон, но в виду лени/отсутсвия времени даже не желают им пользоваться. Может и среди хабранарода есть такие? Вот в сегодняшней статье я расскажу вам о том, как из безжизненного куска железа на безе Symbian OS сделать то, чем не стыдно и даже приятно пользоваться.

Осторожно! Под катом много букв и картинок!
Всего голосов 129: ↑109 и ↓20+89
Комментарии139

Еще десять маленьких программ, с которыми уютно

Время на прочтение4 мин
Количество просмотров13K
Всем привет.
В этом посте я опишу несколько маленьких и удобных windows-программ, к тому же абсолютно бесплатных. Предыдущий пост вызвал бурную дискуссию, в результате которой, как водится, родилась истина :)
Итак, этот пост — дань благодарному хабрасообществу — в комментариях по крупицам собрались полезные программки, о которых, возможно, мы бы никогда и не услышали. Заранее извинюсь перед людьми, которые предлагали свои программы, не вошедшие в этот обзор — в каментах было много утилит, так или иначе дублирующих функции друг друга, и опробовать их все, сравнить и разложить по полочкам — задача для википедии. :)
Ну что ж, от слов к делу.

01) Сворачиваем окно в заголовок и не только — куча возможностей в обмен на 90 килобайт
02) Сворачиваем окно в трей правым кликом по «крестику»
03) Создаем виртуальные рабочие столы — теперь с помощью бесплатной программы
04) Двигаем кнопки окон на панели задач как табы в браузере
05) Клейкие листочки на рабочем столе — когда не хочется заносить в ToDo
06) Мини-консоль для быстрого запуска программ по алиасам
07) Мгновенный поиск по компьютеру — программа-индексатор жесткого диска
08) Копируем текст откуда угодно, даже из рисунков
09) создаем хранилище заметок с вложениями посредством быстрой и бесплатной программы
10) управляем буфером обмена — теперь можно запомнить больше!

Поподробней...
Всего голосов 132: ↑117 и ↓15+102
Комментарии122

Нейронные сети: Лекция 2 (+пример на РНР).

Время на прочтение3 мин
Количество просмотров39K
Совокупность нейронов соединённых тем или иным способом называется искусственной нейронной сетью или просто нейронной сетью.
Закон по которому нейроны соединены в сеть носит название структуры или топологией сети.

Множество нейронов не соединённых между собой, но соедененные с другими нейронами носит название слоя нейрона.
Сети бывают 2х видов: однослойные, многослойные.

Простой перцептрон


Простой перцептрон состоит из 1го нейрона (один слой) с n входами и пороговой функции активации

Поскольку выходами сети является +1 или -1. То перцептрон эффективен для решение задачи классификации 2х классов.
Читать дальше →
Всего голосов 53: ↑38 и ↓15+23
Комментарии92

Десять маленьких программ, без которых неуютно жить

Время на прочтение5 мин
Количество просмотров8K
Заменяем диспетчер задач
Управляем автозагрузкой и следим за состоянием системы
Устанавливаем переключение раскладки
Создаем виртуальные рабочие столы
Сохраняем все заметки в одно место, не задумываясь ни о чем, кроме текста
Ускоряем навигацию по винчестеру
Ставим плагины к проводнику Windows и радуемся
Легко и быстро удаляем папки-файлы «занятые другими процессами»
Копируем и перемещаем быстрее и качественнее
Перестаем парится с кодировками, заменив блокнот

и как мы это сделаем?
Всего голосов 180: ↑139 и ↓41+98
Комментарии306

Свободные лицензии

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

и вот что я узнал
Всего голосов 51: ↑47 и ↓4+43
Комментарии32

Какая боль! Толпы против Веб — 2:0. Эпизод два — клоны заходят в полдень

Время на прочтение5 мин
Количество просмотров554
Продолжаем warstory оптимизации PHP+mySQL сайта редчайших слов. Одним майским днем, копаясь в словах, мне пришла в голову мысль — расставить под этими словами textbox'ы — использовать [модный для Web 2.0] crowdsourcing. Заполняй чем хочешь, только про это конкретное слово. Но, должно было работать collaborative — как Google Docs — если ты и еще кто-то редактируют слова на одной и той же странице — изменения будут отображаться одновременно. Или, например, кто-то редактирует слово «google» на странице Гугла, а на странице TechMeme, к примеру, есть тоже слово «google» — и им в real-time покажутся эти изменения со страницы Гугла [это необязательно понимать]. Знал бы я какие последствия эта веселая задумка на mySQL окажет позже…

Сделать это оказалось несложно: prototype.js — в руки, ajax — каждые 10 секунд, смотрим в базе что менялось за последние 10 секунд, делаем пересечение со словами на текущей странице, отправляем js highlight effect и новый текст — вуаля. Людей было, но мало кто что-то вводил, тогда я придумал повесить в уголок страницы блок «только что было сказано». Например: «На странице 'fibonacci.com' только что было сказано, что 'fibonacci' → 'crazy math scientist'». Это уже значительно заинтересовало людей и заполняемость выросла в разы. Все видели движения на сайте и сами вовлекались.

Собственно, я сделал достаточно функционала для довольно забавной игрушки — «войны сайтов редкими словами», авто-категоризатор, синонимизатор и т.п. Я сидел мирно редактировал «живой» сайт, загружал новый файл, если видел ошибку — исправлял, не переживая, что это кто-то может видеть. Не подозревал я, что уже тысячи людей видят это. После очередной ошибки в названии функци что-то произошло… я не смог загрузить на FTP index.php… это был TechCrunch....
Читать дальше →
Всего голосов 98: ↑84 и ↓14+70
Комментарии43

Основные виды ПО

Время на прочтение4 мин
Количество просмотров12K
Собственно недавно заинтересовался этим вопросом. В частности отличием свободного ПО от open source (я думал это одно и то же). Путем нехитрых изысканий в сети (спасибо wiki и яндексу) выяснил все что мне нужно. И решил поделиться с вами. Может кому-нибудь будет интересно.
Читать дальше →
Всего голосов 87: ↑65.5 и ↓21.5+44
Комментарии47

VMware Server :: управляемся с парком машин

Время на прочтение7 мин
Количество просмотров2.6K
Всем привет ;)

Продолжаем… (кто пропустил шаг назад)
Интересно, а как вы управляетесь с виртуальными машинами?!
Каждый раз, когда Вы делаете snapshot, ставите на паузу или выключаете машину(ы) Вы тратите на это время?!

Тогда мы идем к Вам! :)

Читать дальше →
Всего голосов 42: ↑34 и ↓8+26
Комментарии33

Ресурсы по поиску качественных иконок.

Время на прочтение1 мин
Количество просмотров6.2K
Все когда-нибудь сталкивались с проблемой поиска качественных иконок для различных нужд. Список лучших поисковиков:
Читать дальше →
Всего голосов 57: ↑50.5 и ↓6.5+44
Комментарии24

TinyMCE — получение содержимого редактора.

Время на прочтение2 мин
Количество просмотров3.7K
Хотелось спросить у сообщества совета, так как сам я вследствие неопытности в данном вопросе никак не могу найти решение.

Описываю ситуацию:
Пишу редактор структуры сайта. Сделан он следующим образом: при клике на раздел вслывает окно thickbox, в который загружается редактор раздела, частью которого является TinyMCE. В редакторе присутствует кнопочка «применить», функция которой сводится к сериализации данных формы, отсылки этих данных на сервер, получение ответа и замена этим ответом содержимого thickbox. Выглядит это так:
function submit_form(button) {
var str = $("#edit_form").serialize()+"&"+button+"=true";
$.post("update", str, function(data) {
$("#container").parent().html(data);
});
}

Содержимое TinyMCE не содержится в textarea и, соответственно не сериализуется. Вариантов решения мне видится два: либо копировать содержимое редактора в textarea перед сериализацией, либо как-то сериализовать его отдельно и приаттачивать к посылаемой строке. Вот тут-то и всплывают грабли, на которых я отплясываю уже некоторое время: в TinyMCE не существует ни переменной которая бы просто сожержала контент редактора, ни функции которая бы этот контент возвращала без каких-либо лишних махинаций (ну или я просто её не смог найти — в этом случае ткните меня носом и я отстану от вас, посыпапя голову пеплом). Единственное, что я нашел — это метод getContent, который «Gets the content from the editor instance, this will cleanup the content before it gets returned using the different cleanup rules options.» Я не совсем понимаю смысл этой фразы, но если воспользоваться этим методом так как я это попробовал:
function submit_form(button) {
$("#text").val(tinyMCE.get('text').getContent());
var str = $("#edit_form").serialize()+"&"+button+"=true";
$.post("update", str, function(data) {
$("#container").parent().html(data);
});
}

то при загрузке в thickbox второй раз строчка $("#text").val(tinyMCE.get('text').getContent()); не срабатывает. Редактор есть, содержимое в нем есть, а метод не работает, и соответственно вся функция submit_form() — тоже.

Вразумите молодого падавана, а?

Если нужно каких-то дополнительных сведений — скажите, я дополню.

P.S. Я не являюсь знатоком javascript и использую его только постольку, поскольку приходится и без него — никуда. Поэтому заявления «уйди с глаз долой неумеха» со скорбным видом принимаются, но я рекомендую обойтись без них — это и так понятно. К сообществу я обратился только после того как долго тыкался сам и решения не нашел.

Update:
Проблему удалось решить вот так:
function submit_form(button) {
tinyMCE.get('text').save();
var str = $("#edit_form").serialize()+"&"+button+"=true";
$.post("update", str, function(data) {
tinyMCE.get('text').remove();
$("#container").parent().html(data);

});
}


Ну а контент проще всего получить через tinyMCE.get('text').getBody().innerHTML;

По всей видимости при замене содержимого thickbox создавался новый экземпляр редактора а старый никуда не девался, поэтому надо было использовать remove(), который я поместил в $.post чтобы момент преображения принцессы в лягушку редактора в textarea происходил наиболее незаметно для пользователя.
Всего голосов 14: ↑9 и ↓5+4
Комментарии11

Список используемых в Windows XP сочетаний клавиш

Время на прочтение6 мин
Количество просмотров4.2K
Интересно, посетители хабра часто используют «горячие клавиши»?
Компания Microsoft, откровенно «приучила» людей использовать мышь, но это не всегда правильно и эффективно.
Потеря времени на открытие того или иного объект гораздо выше, чем по «горячим клавишам».
Предлагаю вашему вниманию более расширенный список из оф.источника.

Читать дальше →
Всего голосов 41: ↑20 и ↓21-1
Комментарии10

Разговорный английский за месяц

Время на прочтение5 мин
Количество просмотров21K
Перепечатано с моего ЖЖ.

Решился написать про свой опыт изучения английского в экстремально короткие сроки (1 месяц) — вдруг кому пригодится. Также выдам немного инфы про то, как собеседовался за границу.

Читать дальше →
Всего голосов 9: ↑6 и ↓3+3
Комментарии220

О правде, которую не должен знать пользователь

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

Здравствуй.

У Горького в пьесе «На дне» одним из ключевых моментов идет диалог героев о правде, о том нужна ли правда, в каких количествах и под каким соусом она должна быть подана. Сегодня я тоже хочу поговорить о правде, о той которую говорят или скрывают от пользователя администраторы и создатели сайта.

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

Итак, список того, о чем не должен знать пользователь:

Пользователи не должны видеть, кто как проголосовал. По собственному опыту знаю, что такое пользователь, знающий кто какие оценки ставит. В своем первом проекте я разрешил видеть оценки (уж настолько сильно просили об этом).
Читать дальше →
Всего голосов 2: ↑1 и ↓10
Комментарии82

Absmiddle — забыть или стоит помучиться?

Время на прочтение1 мин
Количество просмотров802
Как известно absmiddle это значение параметра align, которое поддерживается всеми браузерами, однако не поддерживаются спецификацией HTML 4.x/XHTML 1.0.

Параметр собственно был достаточно полезен и удобен.

В принципе, легко заменить через background конструкций ul-li, но столкнулся со
следующей проблемой
Всего голосов 9: ↑7 и ↓2+5
Комментарии17

Software Configuration Management // Контроль версий

Время на прочтение12 мин
Количество просмотров19K
И снова здравствуйте.

Продолжаю публиковать цикл статей о SCM — управлении конфигурацией ПО.
3 предыдущие заметки можно прочитать в этом же блоге.

Сегодня расскажу о том, с чем работает большинство читателей — о контроле версий.

Disclaimer


Далее будут описаны основные техники, реализованные в подавляющем большинстве систем контроля версий. Как они реализуются в приложениях, которые использует читатель, оставим на откуп многочисленным руководствам пользователя, how-to, FAQ и прочим документам, коих можно найти без труда. Главное – понять, по каким принципам и зачем оно работает именно так.

Всё понятно, продолжай
Всего голосов 30: ↑28 и ↓2+26
Комментарии27
1
23 ...

Информация

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