Всем мы сперва бережём новое устройство как зеницу ока. А потом - страшно и вспоминать, в какие передряги попадают наши девайсы! Как же восстановить их внешний вид после приключений?
Все, что нам нужно для восстановления "лица" телефона - это плотная материя, паста ГОИ и керосин. Оба вещества стоят дёшево. Если найдется авиационный керосин - применяйте именно его.
1. Смешайте керосин с пастой.
2. Сделайте телефону "маску": нанесите смесь на всю поверхность экрана.
3. Подождите 5 минут, чтоб "крем" впитался.
4. Разотрите дисплей жесткой сухой тканью (лучше всего подойдёт драповая материя).
5. Вытирайте любой другой чистой тряпкой остатки смеси - и вуаля! Телефон сверкает как новенький!
"Рай и Ад - это взгляд на вещи. Это не физическое место, это отношение, то, как Вы смотрите на вещи." - Ошо
понедельник, 5 мая 2014 г.
суббота, 29 марта 2014 г.
Array&Ruby
В данной статье описаны некоторые интересные трюки как можно эффективно использовать и работать с массивами в Ruby. Конечно же, есть РубиДок и множество других ресурсов, где подробно описаны все доступные методы, но здесь я хочу поделиться именно способами использования.
Habrahabr.ru
1. Как проверить содержит ли массив все элементы другого массива
Например, вы хотите проверить или все импортированные е-мейлы уже есть в списке контактов:
imported_emails = [ 'john@doe.com', 'janet@doe.com' ]
existing_emails = [ 'john@doe.com', 'janet@doe.com' , 'fred@mercury.com' ]
puts 'already imported' if (imported_emails - existing_emails).empty?
Запуск в IRB:
already imported
=> nil
Например, вы хотите проверить или все импортированные е-мейлы уже есть в списке контактов:
imported_emails = [ 'john@doe.com', 'janet@doe.com' ]
existing_emails = [ 'john@doe.com', 'janet@doe.com' , 'fred@mercury.com' ]
puts 'already imported' if (imported_emails - existing_emails).empty?
Запуск в IRB:
already imported
=> nil
2. Как найти общие элементы в двух массивах
Например, если вам нужно найти общие теги в двух разных постах:
tags_post1 = [ 'ruby', 'rails', 'test' ]
tags_post2 = [ 'test', 'rspec' ]
common_tags = tags_post1 & tags_post2
Запуск в IRB:
=> [«test»]
Например, если вам нужно найти общие теги в двух разных постах:
tags_post1 = [ 'ruby', 'rails', 'test' ]
tags_post2 = [ 'test', 'rspec' ]
common_tags = tags_post1 & tags_post2
Запуск в IRB:
=> [«test»]
3. Как соединить два массива, не дублируя повторяющиеся элементы
followeds1 = [ 1, 2, 3 ]
followeds2 = [ 2, 4, 5 ]
all_followeds = followeds1 | followeds2
Запуск в IRB:
=> [1, 2, 3, 4, 5]
followeds1 = [ 1, 2, 3 ]
followeds2 = [ 2, 4, 5 ]
all_followeds = followeds1 | followeds2
Запуск в IRB:
=> [1, 2, 3, 4, 5]
4. Как сортировать массив хешей
Например, вы получаете данные от какого-то API, в виде масива хешей:
data = [
{
name: 'Christophe',
location: 'Belgium'
},
{
name: 'John',
location: 'United States of America'
},
{
name: 'Piet',
location: 'Belgium'
},
{
name: 'François',
location: 'France'
}
]
При отображении, вы хотите сортировать по полю location, тогда делаем так:
data.sort_by { |hsh| hsh[:location] }
Запуск в IRB:
=> [
{:name=>«Christophe», :location=>«Belgium»},
{:name=>«Piet», :location=>«Belgium»},
{:name=>«François», :location=>«France»},
{:name=>«John», :location=>«United States of America»}
]
Например, вы получаете данные от какого-то API, в виде масива хешей:
data = [
{
name: 'Christophe',
location: 'Belgium'
},
{
name: 'John',
location: 'United States of America'
},
{
name: 'Piet',
location: 'Belgium'
},
{
name: 'François',
location: 'France'
}
]
При отображении, вы хотите сортировать по полю location, тогда делаем так:
data.sort_by { |hsh| hsh[:location] }
Запуск в IRB:
=> [
{:name=>«Christophe», :location=>«Belgium»},
{:name=>«Piet», :location=>«Belgium»},
{:name=>«François», :location=>«France»},
{:name=>«John», :location=>«United States of America»}
]
5. Как получить уникальные элементы массива по определенному признаку
Например, вы хотите показывать случайные продукты на главной странице, но чтобы каждый продукт брался только из одной категории:
Product = Struct.new(:id, :category_id)
products = [
Product.new(1, 1),
Product.new(2, 2),
Product.new(3, 3),
Product.new(4, 1),
Product.new(5, 3),
Product.new(6, 5),
]
products = products.uniq &:category_id
Запуск в IRB:
=> [
#<struct Product id=1, category_id=1>,
#<struct Product id=2, category_id=2>,
#<struct Product id=3, category_id=3>,
#<struct Product id=6, category_id=5>
]
Например, вы хотите показывать случайные продукты на главной странице, но чтобы каждый продукт брался только из одной категории:
Product = Struct.new(:id, :category_id)
products = [
Product.new(1, 1),
Product.new(2, 2),
Product.new(3, 3),
Product.new(4, 1),
Product.new(5, 3),
Product.new(6, 5),
]
products = products.uniq &:category_id
Запуск в IRB:
=> [
#<struct Product id=1, category_id=1>,
#<struct Product id=2, category_id=2>,
#<struct Product id=3, category_id=3>,
#<struct Product id=6, category_id=5>
]
6. Как фильтровать строковые элементы массива
Например, у вас может быть массив с названиями книг, которые вы хотите фильтровать по какому-то ключевому слову:
books = [
'The Ruby Programming Language',
'Programming Ruby 1.9 & 2.0: The Pragmatic Programmers\' Guide (The Facets of Ruby)',
'Practical Object-Oriented Design in Ruby: An Agile Primer',
'Eloquent Ruby',
'Ruby on Rails Tutorial: Learn Web Development with Rails'
]
books = books.grep(/[Rr]ails/)
Запуск в IRB:
=> [«Ruby on Rails Tutorial: Learn Web Development with Rails»]
Например, у вас может быть массив с названиями книг, которые вы хотите фильтровать по какому-то ключевому слову:
books = [
'The Ruby Programming Language',
'Programming Ruby 1.9 & 2.0: The Pragmatic Programmers\' Guide (The Facets of Ruby)',
'Practical Object-Oriented Design in Ruby: An Agile Primer',
'Eloquent Ruby',
'Ruby on Rails Tutorial: Learn Web Development with Rails'
]
books = books.grep(/[Rr]ails/)
Запуск в IRB:
=> [«Ruby on Rails Tutorial: Learn Web Development with Rails»]
7. Как всегда возвращать массив
Например, у вас есть метод, который может возвращать список продуктов либо один продукт. Чтобы обеспечить чтобы возвращаемое значение всегда было массивом, вы можете использовать Array() или [*]:
def method
# …
[*products]
end
Habrahabr.ru
Например, у вас есть метод, который может возвращать список продуктов либо один продукт. Чтобы обеспечить чтобы возвращаемое значение всегда было массивом, вы можете использовать Array() или [*]:
def method
# …
[*products]
end
вторник, 11 февраля 2014 г.
Удалённая работа
Linux > Linux
1. Server
- Установить ssh клиент(в центре приложений оболочка и сервер)
2. Client
- В терминале: ssh -x -y ip
IP:
- username@ip
- ip
Samba. Example
[global]
workgroup = workgroup
printing = cups
wins support = yes
netbios name = Tortuga
security = share
guest account = tortuga
cups options = raw
show add printer wizard = yes
printer admin = root, tortuga, admin
[printers]
comment = All printers
printable = yes
path = /var/spool/samba
guest only = yes
guest ok = yes
read only = no
[print$]
comment = Drivers for printers
path = /var/lib/samba/drivers
guest only = yes
guest ok = yes
browsable = no
read only = yes
create mask = 0777
directory mask = 0777
force user = tortuga
force group = tortuga
write list = root, tortuga, admin
[PDrivers]
path = /home/tortuga/PrintDrivers
browsable = yes
writable = no
guest ok = yes
read only = yes
workgroup = workgroup
printing = cups
wins support = yes
netbios name = Tortuga
security = share
guest account = tortuga
cups options = raw
show add printer wizard = yes
printer admin = root, tortuga, admin
[printers]
comment = All printers
printable = yes
path = /var/spool/samba
guest only = yes
guest ok = yes
read only = no
[print$]
comment = Drivers for printers
path = /var/lib/samba/drivers
guest only = yes
guest ok = yes
browsable = no
read only = yes
create mask = 0777
directory mask = 0777
force user = tortuga
force group = tortuga
write list = root, tortuga, admin
[PDrivers]
path = /home/tortuga/PrintDrivers
browsable = yes
writable = no
guest ok = yes
read only = yes
понедельник, 27 января 2014 г.
Подписаться на:
Сообщения (Atom)