Search
Write a publication
Pull to refresh
0
0
bobic @bobic

User

Send message

ООП с примерами (часть 1)

Reading time4 min
Views616K
Волею судьбы мне приходится читать спецкурс по паттернам проектирования в вузе. Спецкурс обязательный, поэтому, студенты попадают ко мне самые разные. Конечно, есть среди них и практикующие программисты. Но, к сожалению, большинство испытывают затруднения даже с пониманием основных терминов ООП.

Для этого я постарался на более-менее живых примерах объяснить базовые понятия ООП (класс, объект, интерфейс, абстракция, инкапсуляция, наследование и полиморфизм).

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

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

Безопасная авторизация с передачей хешированного пароля

Reading time4 min
Views30K
При разработке одного проекта, появилась задача осуществить защиту в случае просмотра трафика, и просмотра исходника (могут узнать хеш пароля) злоумышленниками. Имея доступ ко всем данным, никто не должен авторизоваться на сервере, не зная исходный пароль. Варианты подмены IP адреса, получение пароля непосредственно в момент ввода (keylog), или брутфорс исключаем, это уже не забота веб сайта.

Пароль по сети передаваться не будет, поэтому используется хеширование прямо в браузере, для этого использую небольшую библиотеку JavaScript SHA-1. Почему SHA-1, а не, допустим, MD5? Считается, что SHA-1 немного надежнее, да и сама JavaScript библиотека меньше, чем аналогичная (на том же сайте) для MD5.
Читать дальше →

Управляем голосом или правильный посыл

Reading time3 min
Views36K
Продолжаю маленькими порциями выдавать то, что знаю про скрытые резервы каждого человека.

Часто сталкиваюсь с тем, что люди не умеют управлять голосом. Даже те, кто публично выступает. Выглядит это со стороны довольно уныло: человек со сцены (из-за круглого стола переговоров, в совещательной комнате, в классе) в лучшем случае говорит кому-то одному, близкосидящему, либо вообще в никуда. От этого всем остальным становится неуютно. Они чувствуют себя лишними.

Мало того, говорящий может реально напрягаться, даже почти кричать, а все равно сзади его могут не услышать. От чего это происходит?

Как правило, из-за неумения банально управлять своими связками и глоткой (гусары!) Есть 2 типичные ошибки:

1. Стараясь сказать громко, чтобы все услышали, человек сильно напрягает связки. А что такое связки? Правильно, мышцы, которые буквально сжимают горло! Чтож мы имеем? Сильное напряжение легких, глотки, рта и… сдавленный, визгливый голос. Красиво, правда?

2. Человек старается говорить громко, но все равно посылает звук себе под нос! Как будто надо оглушить какого-то рядомсидящего слушателя. И всем как-то неловко.

Что же с этим можно сделать?
Читать дальше →

Сборка и запуск HipHop-PHP

Reading time5 min
Views18K

Почти три недели назад был анонсирован новый проект от Facebook. Он называется HipHop-PHP.
Для широкой публики исходные коды стали доступны лишь сутки назад.

HipHop был создан для улучшения производительности Facebook. Он преобразует PHP код в C++ код и комплирует его с помощью g++. HipHop доступен под opensource лицензией.

В данной статье описан процесс сборки HipHop из исходных кодов и его использование.

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

Этот загадочный while…

Reading time3 min
Views6.8K
«Все потребности в нем заложены, какие только бывают на свете. И все эти потребности он может удовлетворить. С помощью нашей науки, разумеется.»
А. и Б. Стругацкие


Я думаю, многим из Perl-программистов знакома следующая конструкция построчного чтения содержимого файла:
while (<FILE>) {
    # do something
}
Этот код стал настолько привычным, что многие даже не задумываются, а как же он, собственно, работает. В данной статейке я опишу одну особенность, о которой весьма полезно помнить.
Читать дальше →

Be Pythonic

Reading time3 min
Views17K

От переводчика


Представляю вашему внимаю перевод статьи Shalabh Chaturvedi «Be Pythonic», рекомендованной в этом топике. Если мое начинание будет поддержано, планирую также перевести две остальные упомянутые там статьи этого автора.

Вступление


Эта статья предназначена для новичков в Python.

При переходе с одного языка на другой некоторые вещи для вас могут остаться неизвестными (см. Transfer of Learning). То, что вам известно о других языках, может быть не всегда полезным в Python. Эта статья содержит некоторые используемые в Python идиомы, которые мне особенно нравятся. Я надеюсь, читатели найдут их полезными для овладения языком.
Читать дальше →

Мотивация сотрудников, свободные рассуждения

Reading time4 min
Views4.3K
… История об частичном успехе в сфере управления от новичка.

Так уж получилось, что я начал работать кодером не так давно. Рос плавно. Сначала для себя писал игрушку в армии, потом учавствовал в разработке рекламной платформы и последующей ее переписки, потом переквалифицировался в PHP-кодера. И, вдруг, нежданно негаданно стал Сеньором. Сразу возник вопрос, как стимулировать людей к работе. Причем не абы как, а чтобы поставленная задача была выполнена в срок и как надо.
Очень многа букв

Введение в Continuous Integration

Reading time5 min
Views178K
Недавно я попал на новый проект, с задачей создать небольшое приложение с нуля. Разговариваю с тестером:
— А как тебе новые версии поставлять?
— Можешь как все остальные на проекте, через SVN.
— То-есть ты сама билдить будешь?
— Да нет… Бинарники оттуда беру.


Оказывается, очень много программистов, даже имеющих в подписях слова вроде Senior или Superior никогда в жизни не стыкались с понятием CI, или слабо себе представляют что это такое. Не найдя отдельных публикаций на Хабре на эту тему, решил восполнить пробел, а заодно и по возможности заработать желанный инвайт.
Читать дальше →

Использование альтернативных компиляторов в Gentoo на примере Intel Compiler Suite

Reading time4 min
Views6.3K
В этой статья я хочу рассказать, как в Gentoo и других portage-based дистрибутивах для сборки пакетов исползовать отличный от gcc компилятор.
Выбор альтернативных компиляторов обширен: Intel Compiler Suite, Sun Studio Express Compilers, TenDRA C/C++ Compiler, Tiny C Compiler и прочие легковесные компиляторы.
Я рассмотрю переход на самый популярный (AFAIK) из альтернативных компиляторов — icc.
Вы можете спросить: а зачем это вообще надо? Дело в том, что icc оптимизирует код для исполнения на интеловских процессорах лучше, чем gcc.
Сравните сами:
тестируемая программа bunzip2 linux-2.6.32.tar.bz2 bzip2 linux-2.6.32.tar oggenc -q5 testfile.wav lame -V4 testfile.wav
среднее время выполнения (gcc) 22.118 91.452 108.554 98.438
среднее время выполнения (icc) 20.373 68.284 88.581 84.626
прирост скорости 8.5% 33.9% 22.5% 16.3%

Согласитесь, весьма неплохие результаты.
Конфигурация компьютера, на котором производилась проверка: Intel Core 2 Duo T7250 @ 2.00 GHz; linux 2.6.31-gentoo-r7 x86; gcc-4.4.2; icc-11.1.056; все тесты выполнялись в tmpfs — разделе, дабы не грешить на скорость i/o.
Читать дальше →

Числа Фибоначчи (этюд на C#)

Reading time2 min
Views48K
Наверное многим студентам приходилось изучать рекурсию на примере вычисления чисел Фибоначчи. Задачка это безусловно академическая, и рекурсию она иллюстрирует явно хуже чем вычисление, скажем, факториалов, но она интересна тем, что имеет много решений разной степени извращенности. В этом посте – небольшой этюд на эту тему.

Если интересно...

Аналитическая машина Бэббиджа. Часть третья — заключительная

Reading time5 min
Views32K
(Для начала советую прочесть первую и вторую части статьи.)
Разностная машина Чарльза Бэббиджа впервые позволила автоматизировать процесс вычислений и производить его в некоторой степени без вмешательства человека. Как было сказано в предыдущей части, для вычисления функций типа логарифма, тригонометрических функций и прочих, их необходимо было разбить на участки, каждый из которых представлялся своим многочленом, и только потом можно было произвести расчёт значений функции для данного участка. Переходя от одного многочлена к другому, оператор машины должен был вручную ввести все исходные значения регистров. К тому же машина позволяла производить только операцию сложения, что было не много даже по меркам 19го века.

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

ИТ управление — масштабируемый подход

Reading time5 min
Views15K
Долго являлся пассивным читателем Хабра, но вот собрался с духом и решил поделиться своим опытом. Надеюсь, мои идеи придут на пользу в повседневной практике админов.

Пару месяцев назад я проводил на работе анализ ИТ инфраструктуры, в ходе которого нужно было установить наиболее слабые места и дать рекомендации к улучшению. Уверен, ситуация с которой я столкнулся известна многим. За несколько лет, компания существенно изменилась и заметно подросла, однако некоторые элементы в используемой ИТ инфраструктуре так и остались неизменными за прошедшие 10 с небольшим лет. В результате, регулярно придумывались различные заплатки и изощрения дабы собрать все воедино, что, очевидно, не добавляло стабильности и эффективности общей системе. Итогом являлся пересмотр общей инфраструктуры и требований бизнес-процессов с целью выбрать новое единое решение. Другими словами – революция, не эволюция.

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

Быстрочтение featuring Восприятие текста

Reading time8 min
Views79K
Привет всем. Основываясь на предыдущем опыте, считаю нужным сразу расставить все точи над ё. Описанная ниже методика — не мое изобретение. Однако из собственного опыта могу уверить вас, что она работает. Ровно так, как обещано.
Идея, описанная в посте, появилась давно (под катом есть история), в том виде, в каком расскажу ее я, по большей части она представлена в чудесных книгах Тони Бузана Use You Head и The Speed Reading Book (в последней много воды).

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

Написано с подачи пользователя cympak. Посвящается всем кто много читает: будь то деловые документы, художественные произведения или статьи на Хабре типа этой.

Прежде чем приступить к самому главному, прошу вас пройти тест из шести вопросов на Да/Нет.

1. Чтение со скоростью свыше 1000 слов в минуту невозможно?
2. Медленная скорость чтения способствует лучшему пониманию текста?
3. Пропускать слова во время чтения — плохая привычка, ухудшающая понимание текста?
4. По умолчанию мы все читаем с «естественной» для нас скоростью, а следовательно, наилучшей?
5. Если вы не поняли слово или предложение, лучше перечитать его и понять?
6. Ваши глаза находятся в непрерывном движении во время чтения?
За результатами и, наконец-то, интересными штуками добро пожаловать под кат.
Читать дальше →

Как качать с Rapidshare.com «free user», используя curl или wget

Reading time5 min
Views5.1K
Появившаяся почти год назад статья про скачивание с многими любимого кладезя почти легальной вами же забэкапленной информации Rapidshare.com вызвала одобрение у публики хабра. За последнее время рапида убрала с себя капчу, сделала не столь долгим ожидание между загрузками, в общем, всем своим видом показывает, что с ней очень приятно работать. А если это можно делать ещё и бесплатно… так почему же нет?!
Читать дальше →

Закачка файлов с depositfiles.com из консоли

Reading time1 min
Views5.5K
Пост не мой — просто попросили закинуть. Если понравилось, то почта автора для инвайта: jeka.eee.12@gmail.com. Уже получено — спасибо!

Функция для скриптов на bash, предназначенная для автоматизации скачивания файлов с файлообменника Depositefiles.com:
Читать дальше →

Bash's dead, baby*. Viva zsh

Reading time5 min
Views16K
Позволю себе поднять упавшее знамя, оставшееся после предыдущих ораторов и продолжить благое дело продвижения zsh в массы. Надеюсь, после прочтения топика вы тоже смените старый добрый, но, как по мне, так застрявший в прошлом, bash на более удобный и продвинутый zsh.
Чтобы не быть голословным, попробуем рассмотреть это дело в контексте абсолютно субъективного и предвзятого сравнения bash vs. zsh.
Покажите

Управляй эмоциями!

Reading time3 min
Views1.7K
Как обещал, попробую в качестве продолжения темы про подачу себя, затронуть довольно спорную область — область эмоций и попробую рассказать, как управление эмоциями может помочь в трудную минуту.

Сразу предупрежу: я сам со своими эмоциями справляюсь с трудом, не сразу, иногда требуются вспомогательные приёмы. Но с другой стороны, что же это за эмоции, если их так легко победить? Нет, эмоции — это суть нашей жизни, и чем они сильнее, тем ярче жизнь. Но все же, иногда ой как хочется часть из них пригасить. Как?
Читать дальше →

Не можешь найти то, что нужно? Сделай сам

Reading time2 min
Views5.4K
Так получилось, что мне было необходимо настроить резервное копирование баз данных MySQL и PostgreSQL. Хотелось вполне определенного, а именно:
  • Простота решения
  • Каждая БД в отдельном файле
  • Имя в формате «bdname.YYYY-MM-DD-HH:mm:ss.sql.gz»
  • Для каждой БД хранится определенное число архивов
  • Набор архивов БД находится в ротации
  • Решение определенных проблем с указанием пароля для pg_dump
  • и т.п.
Готовых скриптов я в сети не нашел, но подобрал и объединил несколько решений, получив искомое.
Читать дальше →

Образование: психологический аспект

Reading time4 min
Views2K
В сессионное время на хабре явно наблюдается всплеск активности в блогах про образование. Ну и, естественно, посты преимущественно негативного содержания. Логика, как известно, продажная шкура, и продается она эмоциям, потому нам, студентам, лучше бы говорить об образовании закрыв сессию, а то и через 2-3 года после окончания учебы. Но тем не менее, раз уж пошла такая пьянка, рискну вставить свои пять копеек в поддержку нашего образования.

Рискну потому что есть очень много психологических факторов, которые не позволят студентам со мной согласиться. Собственно речь пойдет, в основном, как раз о психологии.

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

Кто хочет, тот ищет возможности, кто не хочет — ищет причины

Reading time3 min
Views295K
Открыв сегодня хабр, увидел большое количество публикаций на тему образования. Так как эта тема мне очень близка, решил поделиться своими мыслями.

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

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

Information

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