Сообщения

Сообщения за 2015

cmd Windows

clsclear terminal

PHP optimization

src: http://us3.php.net/manual/en/function.include.php
If you're doing a lot of dynamic/computed includes (>100, say), then you may well want to know this performance comparison: if the target file doesn't exist, then an @include() is *ten* *times* *slower* than prefixing it with a file_exists() check. (This will be important if the file will only occasionally exist - e.g. a dev environment has it, but a prod one doesn't.)

---------------------------------------------------


философия. ~ unix way

что такое программа-фильтр: когда из кучи(БД) фильтруется( читай выбирается) что-то что запросил input.

Вот и проектирование БД есть не что иное как тупо создание структуры данных, для удобной( читай быстрой, понятной) последующей фильрации/выборки.

Как-то так. а вы тут заливаете.

*
Стройте прототип программы как можно раньше. Ну типа юнит тест.Красиво — небольшое. Как японские садики. Минимализм красив и лаконичен и понятен и прост.Ищите 90-процентное решение.Если можно не добавлять новую функциональность, не добавляйте её («Чем хуже, тем лучше»).Вообще задача либо имеет решение либо нет - это раз. А во вторых иногда десятая часть что не продумана - занимает в 9 раз больше времени на решение и плюс к тому может вести к большим переменам в сделанной структуре.Программа это структура решения.

test

integration test: when you combine few One purpose test. It's like test some kind of circle in intercation of different parts of app.

Интеграцио́нное тести́рование (англ.Integration testing, иногда называется англ.Integration and Testing, аббревиатура англ.I&T) — одна из фаз тестирования программного обеспечения, при которой отдельные программные модули объединяются и тестируются в группе. Обычно интеграционное тестирование проводится после модульного тестирования и предшествует системному тестированию.

phpStorm

http://www.ivanbreet.com/blog-item/some-handy-phpstorm-shortcuts-everyone-should-know

ctrl + j shows all shortcuts.
ctrl + i implement parent class methods
ctrl + o override parent class methods
alt + F12 toggle between terminal and code
ctrl + Y delete line without send it to a buffer.
ctrl + ` change look and feel
ctrl + alt + -/+ folding/expand recursively ( https://www.jetbrains.com/phpstorm/help/folding-and-expanding-code-blocks.html)
ctrl + shift + -/+ fold/expand all
***********************************************
format:
order: ctrl + shift + alt + key
********************************************

ctrl + shift + f6 rename variable, file...

ctrl + N open class
ctrl + shift + N open file
ctrl + shift + t open test
ctrl + shift + F10 run test
ctrl + shift + F12 hide all windows

alt+f1 from source to file in project tree
ctrl+ alt + f1 open file in explorer

ctrl + + 3 points expand
ctrl + - 3 points hide

open files:
2*shift search everywhere
alt+1 open project view
ctrl+shift+n open a…

JS JavaScript

[0].nextSibling.data replace text after element.
Когда случается что-то интересное, модули сообщают об этом другим частям приложения, а промежуточный слой интерпретирует их сообщения и необходимым образом реагирует на них.
в этой слабосвязанной архитектуре модули всего лишь публикуют события (в идеале, не зная о других модулях в системе). Медиатор используется для подписки на сообщения от модулей и для решения, каким должен быть ответ на уведомление. Паттерн фасад используется для ограничения действий разрешенных модулям.

В следующем примере функция library используется для объявления новой библиотеки и автоматически при создании библиотеки (т.е. модуля), связывает вызов метода init с document.ready.


functionlibrary(module){$(function(){if(module.init){module.init();}});returnmodule;}varmyLibrary=library(function(){return{init:function(){/* код модуля */}};}());
К примеру, модуль может отправить сообщение dataValidationCompletedWriteToDB. В подобных случаях задача фасада — убедиться, дейст…

composer tips

ubuntu bash CentOS

~/home/yapwdshow pathuname -aprint system info`uname -a`in bash excute it and replace with command outputchmodchange permission:
chmod X@Y file1 file2 ... where: X is any combination of the letters `u' (for owner), `g' (for group), `o' (for others), `a' (for all; that is, for `ugo'); @ is either `+' to add permissions, `-' to remove permissions, or `=' to assign permissions absolutely; and Y is any combination of `r', `w', `x' read
write
execute

touchcreate file
internetifconfiginternet config
programmingls -alshow dir contentls -alshow dir contentls -alshow dir contentls -alshow dir content
user managementpasswd userNameset password to usersu userNamechange userexitlog outuserdel userName -rdelete user. -r with user dir.
systemsudo shutdown -r 0reboot через 0 секундctrl+alt+F1-9run console in full screen modeclearclear terminalSymbolic NotationNumeric NotationEnglish----------0000no permissions---x--x--x0111execute--w--w--w-0222write--wx-wx-wx0…

emmet snippets

bootstrap often uses elements

src: http://getbootstrap.com/components/!!!!!!! everywhere use col-sm!!!!!!!!!for devices.* left column:<div class="bs-callout bs-callout-info"><h4></h4> <p><?= $template->text ?></p></div>* header + text block:<div class="panel panel-info"><div class="panel-heading"><h3 class="panel-title"><?= $template->name ?></h3></div><div class="panel-body"><?= $template->text ?></div></div>* btn size:btn-lg btn-sm btn-xs.disabled.btn-disabled

zend framework 2 tips

************** basePath in controller
$renderer= $this->serviceLocator->get('Zend\View\Renderer\RendererInterface');$basePath = $renderer->basePath();
* change form element validators list:
$form =newYourForm(); $form->setData ( $yourPostedData ()); $formInputFilter = $form->getInputFilter ();// change filter $formInputFilter->remove ('your_field'); $inputFactory =new \Zend\InputFilter\Factory(); $formInputFilter->add ( $inputFactory->createInput ( array ('name'=>'your_field','required'=>false)));if($form->isValid ()){//... } * change elements for validation:
$form->remove(

ubuntu dropbox

find / -type f -name "dropboxd"
if smth: "echo fs.inotify.max_user_watches=100000 | sudo tee -a /etc/sysctl.conf; sudo sysctl -p""
run it.

ООП

module uses interface to I/O between others modules. Implementation of interface methods could be done through call services from ServiceManager.

принципы:
1. Разделение ответственности между классами
2. Функции не всемогущи, они пишутся под конкретную задачу.

http://larin.in/archives/42

https://ru.wikipedia.org/wiki/%D0%90%D0%B3%D1%80%D0%B5%D0%B3%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)

http://sergeyteplyakov.blogspot.ru/2012/12/vs-vs.html


html css

psql

connect: psql -U username(postgres) -W
\l \list all dbs
\dt all tables in current db
\connect dbname

mysql

Изображение
quide for best indexes: http://mysql.rjweb.org/doc.php/index_cookbook_mysqlself join:
http://www.programmerinterview.com/index.php/database-sql/what-is-a-self-join/

индексы:
где?

wheremax minorder by group byкогда все извлекаемые поля проиндексированы, можно таблицу вообще не трогатьдля выбора наименьшего количества совпадений. Если есть множественный индекс, то использоваться будет тот индекс, который находит самое маленькое число строк.JOIN. Необходимо использовать одинаковые типы сравниваемых полей, иначе если необходимо преобразование типов, то без индекса. красный зарос не использует индекс:
индексы не понимают вычисляемые выражения, при использовании не точных диапазонов( вычисляемые):
WHERE year(my_date) > 2010;
никаких LIKE;
никаких SELECT *
LIMIT 10000 это плохо.

insert into table values(`1`, `bla`); - плохо потому что если изменятся поля, то запрос не работает.


команда count считает не нулевые значения - т.к. id2 может быть NULL - будут непосчитаны NULL.

Storage engines: http:…