Нормализация базы данных

Если на собеседовании  вашего “собеседователя” вдруг понесло в область теоретических познаний, а вы закончили свой ВУЗ уже этак лет 7-8 назад,  то этот  кратенький пост позволит “освежить” ваши знания… enjoy!!!

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

Теория нормализации реляционных баз данных была разработана в конце 70-х годов 20 века. Согласно ей, выделяются шесть нормальных форм, пять из которых так и называются: первая, вторая, третья, четвертая, пятая нормальная форма, а также нормальная форма Бойса-Кодда, лежащая между третьей и четвертой.
Read the rest of this entry »

Tidy Start Menu (TidyStartMenu)

Are you tired of searching for programs in a long “Start Menu” list? If so, this program is for you. It allows you to arrange all the shortcuts in the Start Menu. Your Start Menu looks neat, and you can easily and quickly find any program you want. For example, you can create a special “Games” category, and when opening the Start Menu you will see a “Games” section (instead of a list of the games) in which you will find the game you need.

Program website -
http://www.tidystartmenu.com/

Download link -
http://www.tidystartmenu.com/TidyStartMenu_Setup_freeware.exe

Шпаргалки по HTML, CSS, Javascript и PHP

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

Основной акцент на HTML, CSS, Javascript, PHP и MySQL, но многие ресурсы освещают и другие языки.
Meta-reference сайты — организованные списки руководств и шпаргалок:

Шаблонизаторы для PHP

Здесь я соберу известные мне шаблонизаторы для PHP. Они бывают двух типов: написанные на PHP и написанные на чём попало, но скомпиленные в виде модуля к самому PHP.  Теоретически, вторые должны быть в разы быстрее первых. Итак:

Модули PHP:

  1. CTPP. Если говорить коротко, то CTPP (CT++, Сити Плас Плас) – это инструмент, отделяющий процесс обработки данных (бизнес-логику) от их представления. Для проектов, в которых программист и HTML верстальщик – разные люди, CT++ – самый подходящий выбор.
    Библиотека CTPP действительно работает очень быстро, поскольку полностью написана на языке C++. В отличие от шаблонизаторов, разработанных на интерпретируемых языках, таких как PERL или PHP, CTPP не тратит время на интерпретацию исходного кода самой себя и не занимается подгрузкой среды исполнения.
    В тоже время, библиотека быстрее широкоизвестных проектов типа Xalan-C или libxslt потому, что не предоставляет излишнюю, зачастую ненужную, но снижающую производительность функциональность.
    Есть НЕПРОВЕРНЕННАЯ информация, что по “бенчмаркам” уступает всем из первого эшелона – blitz, php_templates, smarty, google ctemplate.
  2. Blitz. Blitz родился весьма неоригинально, for fun. Blitz поддерживает разделение и скрытие функционально различных частей шаблонов с помощью простого механизма: текст шаблона может содержать вызов методов объекта, который этим шаблоном управляет. Таким образом, достигается основная цель: шаблон не содержит большого количества блоков и контекстов, часто мешающих разобраться, что к чему. Напротив, даже в проекте со сложной логикой представления при правильном подходе шаблоны будут давать разработчику своеобразную «карту» всего проекта. Blitz также позволяет включать одни шаблоны в другие (аналог include) и поддерживает условный вывод переменных (аналог if).
    Начиная с версии 0.4 в Blitz добавлен функционал движка php_templates.
  3. php_templates.  В php_templates вы совершенно точно НЕ найдете какой-либо подвид скриптового языка в шаблоне. Как уже было сказано ранее, шаблоны предназначены для отделения кода от дизайна. Вот почему любой вид логики в шаблоне идет вразрез с идеологией шаблонов. Несмотря на это, почти в каждом сообществе веб-разработчиков продолжаются споры по вопросу использования программного кода в шаблонах. На самом деле, этот вопрос уже давно перерос в нечто религиозное. В конце концов, есть масса проектов со своим собственным скриптовым языком в шаблонах, на которые вы можете перейти. Однако, они не слишком-то и быстрые.

PHP-код:

  1. Smarty
  2. XTemplates
  3. Perl HTML::Template

 Немного бенчмарков:

  • С сайта автора Blitz

    lebowski-bench-small1.png

Описание комманд *nix систем применительно к FreeBSD

/bin[ - жёсткая ссылка на программу test
cat - перенаправление потоков ввода-вывода.
chflags - установка/снятие флагов - типа неудаляемый, неизменяемый и т.п. на файлы
chio - управление дисковым чейнджером (я и не знал про такую!!)
chmod - установка прав на файлы/директории - кому чё можно - читать/писать/выполнять
cp - копирование файлов/директорий
csh - си-шелл (на саммо деле жёсткий линк на tcsh) - один и варианов шелла
date - вывод/установка даты/времени
dd - в мане - конвертирование и копирование файлов. На самом деле утилита более широкого профиля - копирование разделов, образов, тестирование жёсткого диска на бэды и пр.
df - вывод занятого/свободного места на дисках/разделах
domainname - установка/вывод текущего YP/NIS домена
echo - выводит аргументы на стандартный вывод
ed - неинтерактивный текстовый редактор (типа sed)
expr - работа с выражениями - типа больше меньше, может выполнять арифметические действия (тока с елыми числами - дробные усекаются)
Read the rest of this entry »

Стандарты кодирования для PHP

Ковыряясь в чужом коде, начинаешь понимать насколько всё-таки важны стандарты кодирования

Погуглив чуть-чуть на тему стандартов кодирования для PHP нашёл следующие источники:

стырено здесь

Howto Setup a Subversion (SVN) Repository on FreeBSD

This Howto is for installing SVN on FreeBSD using FreeBSD’s ports. SVN is much like CVS and those who have used CVS will be familiar with some of the concepts. I use FreeBSD 6.2 in this guide and create the repositories using the filesytem (fsfs) backend. Mainly this is because I’ve seen errors with the Berkley DB backend option (like so many other articles on the Internet). This is meant to be as simple as possible.

Install SVN with Ports

Enter the ports directory:

cd /usr/ports/devel/subversion 

To compile subversion without the Berkley DB, but with the WebDAV module and the SVN Serve wrapper (used for the SVN+SSH option), use the following:

make -DWITHOUT_BDB -DWITH_MOD_DAV_SVN -DWITH_SVNSERVE_WRAPPER install && make clean

Read the rest of this entry »

Популярные PHP frameworks

  1. Symfony
  2. CakePHP
  3. Solar 8
  4. Zend Framework
  5. phpOnRails
  6. CodeIgniter

Исходники Facebook просочились в Сеть

Вы давно хотели увидеть исходный код одного из самых успешных проектов Веб 2.0? Ну вот, сегодня как раз тот день, когда вы можете посмотреть на работу «лучших PHP-программистов мира».

Из-за небольшого глюка на сервере Facebook исходный код первой страницы этого социального сервиса стал виден небольшому количеству пользователей. Самые умные из них сделали копию, так что сейчас исходники выложены на всеобщее обозрение.

Компания Facebook уже подтвердила утечку информации, так что это настоящий код, а не подделка.
 
Напомню так же, что ещё два хеджевых фонда из Нью-Йорка подключились к сделке Microsoft и Facebook. Они вложили в социальную сеть ещё $500 млн, то есть в два раза больше, чем Microsoft, и, что самое главное, инвестиции сделаны из расчёта той же самой рыночной оценки проекта в $15 млрд.

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

Read the rest of this entry »

Консоль Windows

console2.jpgВсё еще открываете консоль через run->cmd.exe ?  Забудьте про это, встечаем Console 2 !

Console is a Windows console window enhancement. Console features include: multiple tabs, text editor-like text selection, different background types, alpha and color-key transparency, configurable font, different window styles.