Friday, October 25, 2013

Github cheat sheet

HEAD - pointer to latest commit
git diff <source_branch> <target_branch> - changes between 2 branches
git diff HEAD - changes with latest commit
git diff --staged - diff with staged files
git reset <file> - unstage <file>

Branch - the copy of project
git branch <branch_name> - creates branch <branch_name>
git checkout <branch_name> - switch branch to <branch_name>
git branch -d <branch_name> - delete <branch_name> branch

Merge - copy changes to current branch
git checkout <branch_name> - now we'r in the <branch name>
git merge <other_branch_name> - merge <other_branch_name> changes into <branch_name>

Update your local copy to latest:
git pull
Creating tag:
Tag is a software release (like in SVN)
git tag 1.0.0 b01a419cff
The b01a419cff is a commit id.

If something went wrong, and you need to replace changes:
git checkout -- <file_name> - replaces changes with the last content in HEAD.

If you want to drop all local changes and commits:
You need to fetch the latest history from remote repo and point local master branch at it
git fetch origin
git --hard origin/master

How git works:
1. Changes in local repo
git add --all
2. Changes in Index (staged)
git commit -m "Adding all files"
3. Changes in HEAD (commited, but still not in remote repo)
git push origin <branch_name> (git push origin master)
4. Now changes pushed to remote repository (master or other branch)

Usefull commands: 
Launches git GUI:

gitk

Information from:
http://try.github.io
http://rogerdudler.github.io/git-guide/

Wednesday, October 23, 2013

CSS only for IE 10/11

http://artkiev.com/blog/hacks-for-ie10-ie11.htm - вот до чего приходится извращаться в борьбе против маразма Майкрософта!

Раньше было проще - http://polezniy.com/2011/02/25/kak-pisat-sss-dlya-ie-ili-boremsya-s-gavnobrauzerom/ - можно было легко задать стили только для Интернет Эксплорера. Но с 10-й версии они там, видите ли, решили не давать больше разработчикам возможности делать свои сайты так, чтобы они во всех браузерах смотрелись адекватно. Возомнили себя богами - типа, у нас самый правильный браузер, и нехай другие браузеростроители подгоняют свои творения (Гугл Хром, Мозиллуа, Оперу и т.д.) под то, что вытворяет Интернет Эксплорер. Во наглость!

Но, как говорится, на всякий хитрый болт завсегда найдётся не менее хитрая гайка, и умельцы придумали даже несколько хаков, как обойти защиту и всё-таки иметь возможность прописывать для IE10 и IE11 свои собственные стили. О чём и написано по первой приведённой мною ссылке. Во как!
Текст не мой :)

Tuesday, October 22, 2013

Regular expression: password

 Password 8-16 characters words and number required!

/(?!^[0-9]*$)(?!^[a-zA-Z]*$)^([a-zA-Z0-9]{8,16})$/

Saturday, October 12, 2013

Symfony 2 - Работа с ресурсами (CSS, JS, картинки)

UPDATE 3
Assetic manager очень глючно работает под виндоус. То генерирует файлы, то перестаёт это делать.


UPDATE Symfony 2.3

Добавляем ресурсы используя ассетик мэнеджер.
1. Ложим необходимые файлы в наш бандл (прим. AmAppBundle) по адресу: AmAppBundle/resources/public/css|js
2. Меняем в app/config.yml следующую строку:
assetic:
    bundles:        [ AmAppBundle ]
3. В шаблоне прописываем наши ксс/йс файлы:
        {% javascripts
            '@AMAppBundle/Resources/public/js/jquery-2.0.3.min.js'
            '@AMAppBundle/Resources/public/js/bootstrap.min.js'
        %}
            <script type="text/javascript" src="{{ asset_url }}"></script>
        {% endjavascripts %}
        {% stylesheets filter='cssrewrite'
            '@AMAppBundle/Resources/public/css/bootstrap.min.css'
            '@AMAppBundle/Resources/public/css/bootstrap-theme.min.css'
        %}
            <link rel="stylesheet" href="{{ asset_url }}" />
        {% endstylesheets %}
4. Пишем в cmd команду: php app/console assetic:dump --env=prod --no-debug (При добавлении новых файлов всегда следует применять эту команду. Как я понял, она генерит файлы для продакшена. Все скрипты генерятся в один файл (сжимаются для повышения производительности). Тоже самое проихсодит с ксс файлами.)
5. Пишем в cmd команду: php app/console cache:clear --env=prod --no-debug

У меня то работало, то не работало. Иногда всё было впорядке на деве, но продакшн отказывался генерить ксс и/или джс файлы.

Старый пост:

Ложим все необходимые ресурсы в папку бандла:
Symfony\src\bundlenamespace\bundlename\Resources\public\
 После выполяем команду, чтобы ресурсы были скопированы в директорию веб (к чему все эти трудности?) web - директория
$ php app/console assets:install web
Далее непосредственно в представлениях можно будет получить доступ к ресурсу следующим образом:
Twig:
<script src="{{ asset('bundles/bundlename/js/jquery.js') }}">

Также можно ложить фаилы в директорию Symfony/web/, откуда через команду {{ asset('file.css') }} можно получить к ним доступ.

Wednesday, October 2, 2013

Ruby first

Before i'll start learning ruby on rails framework, i'm going to learn some basics of ruby language.

Variables:

hello_world = "";
variable = 10;

Methods:

def method_name
  return "Something";
end

def method_name(arg1, arg2)
  puts arg1.to_s + " " + arg2.to_s;
end

Classes:

class ClassName
  // Constructor
  def initialize
    @price = 30
  end

  // Variable @price and getter of price
  def price
    @price
  end

  // Setter of price.
  def price=(value)
    @price = value
  end
end

vari = ClassName.new;
puts vari.price; // Prints 30
vari.price = 10; // Same as vari.price=(10)
puts vari.price; // Prints 10

class ClassName
  attr_reader :price; // Same as getter. attr_reader :price, :weight, :lol;
  attr_writer :price;  // Same as setter
  //attr_accessor :price; // This method creates getters and setters together.
end

Anonymous functions (blocks)

yield :)

Tuesday, October 1, 2013

Ruby on Rails (novice)

Установить ноде.жиесть т.к. могут возникнуть ошибки.
Создание каркаса (модель вид и контроллер) одной командой:  rails generate scaffold Product title:string description:string price:decimal image_url:string

Данная команда создаёт модель, различные виды, контроллер, миграцию и т.д. Далее можно отредактировать миграцию (db/migrate/TIMESTAMP_migration.rb), которая впоследствии внесёт изменения в нашу бд через команду (rake db:migrate - вносит изменения в бд из миграций, которые ещё не были задействованы)

Удалить каркас можно командой: rails destroy scaffold Product