A czy Ty znasz juz blipa?

Nie? Zapraszam – prezentacja o “blipie”:http://www.blip.pl/ zrobiona przez “^njet’a”:http://blip.pl/users/njet/dashboard

BTW. Masz bloga i nie masz w czym chodzić? “Koszulka za screencast – tylko do piątku!”:http://www.bliplog.pl/koszulka-za-screencast-tylko-do-piatku/134 :-)

Tags:

YSlow – Optymalizacja stron www

“YSlow”:http://developer.yahoo.com/yslow/ to dodatek do “Firebuga”:http://getfirebug.com/ analizujący stronę www… … pod kątem 14 reguł:

# Wykonywanie mniejszej liczby żądań HTTP
# Używanie Content Delivery Network
# Używanie nagłówka Expires
# Kompresja gzip
# Umieszczanie arkuszy stylów na początku dokumentu
# Umieszczanie skryptów na końcu dokumentu
# Unikanie wyrażeń CSS
# Używanie zewnętrznych plików JavaScript i CSS
# Redukcja liczby zapytań DNS
# Zmniejszanie objętości kodu JavaScript
# Unikanie przekierowań
# Usuwanie duplikujących się skryptów
# Konfiguracja nagłówka ETag
# Buforowanie zapytań Ajax

Zobacz też:

* “Screencast”:http://developer.yahoo.net/blog/archives/2007/08/yslow-podcast-screencast.html pokazujący możliwości pluginu.

* Książka (“Spis treści”:http://helion.pl/ksiazki/spisy/oprzep.htm) wydana przez “Helion”:http://www.helion.pl/:
“Wydajne witryny internetowe. Przyspieszanie działania serwisów WWW”:http://helion.pl/ksiazki/oprzep.htm opisująca 14 wyżej wymienionych reguł. Darmowy rozdział: “Redukcja liczby zapytań DNS”:ftp://ftp.helion.pl/online/oprzep/oprzep-9.pdf

* “High Performance Web Sites”:http://www.stevesouders.com/hpws/rules.php – przykłady różnych optymalizacji, różnice można zobaczyć “live”

* “Best Practices for Speeding Up Your Web Site”:http://developer.yahoo.com/performance/rules.html z podziałem na kategorie: content, server, cookie, css, javascript, images, mobile. Yahoo! Developer Network Performance Blog.

* “Performance >> Yahoo! User Interface Blog”:http://yuiblog.com/blog/category/performance

Poniżej wyniki dla kilku stron :-)

!http://farm4.static.flickr.com/3233/3050873856_66be404a74_d.jpg!

!http://farm4.static.flickr.com/3164/3050876908_1a0fa1bdcf_d.jpg!

!http://farm4.static.flickr.com/3169/3050888092_1b66deca15_d.jpg!

!http://farm4.static.flickr.com/3137/3050890624_58f20fdb43_d.jpg!

!http://farm4.static.flickr.com/3011/3050894478_1c6872ee06_d.jpg!

Tags: , , ,

jabberpl.org? Nie polecam.

“*Ratuj Tybet*

W związku z trwającą właśnie olimpiadą w Pekinie postanowiłem na czas igrzysk wyłączyć serwer xmpp.”
“http://bluszcz.jogger.pl/2008/08/10/ratuj-tybet/”:http://bluszcz.jogger.pl/2008/08/10/ratuj-tybet/

No comment.

Tags:

svn to git

Krótko o tym jak przenieść repozytorium svn’a do git’a. Repozytorium gita będzie znajdować się na zewnętrznym serwerze, do ktorego bedziemy laczyć się przez ssh.

Na serwerze repo_serv tworzymy nowego usera git:

root@repo_serv# useradd git -m
root@repo_serv# passwd git
git@repo_serv$ mkdir test.git
git@repo_serv$ cd test.git
git@repo_serv$ git --bare init
Initialized empty Git repository in /home/git/test.git/

Na lokalnym komputerze, checkoutujemy repozytorium svnowe:

oki@localhost@$ git-svn clone svn://svn_server/test/trunk test
Initialized empty Git repository in .git/
r1 = 356f9f14174ffa6848a958f9077044ff42ad0330 (git-svn)
	A	plik.rb
	A	plik2.rb
r2 = 7c236c87146787156a9b13be258ac1bf19d2a4e1 (git-svn)
	A	.htaccess
r3 = cbc6d6347a960379804937ceabb4601cf82a63e9 (git-svn)
	M	.htaccess
r4 = e47b697bf3d658a9da4201c59797a31fef203c70 (git-svn)
	M	request.xml
	A	README
r5 = 9ab46e1a0217eb83210514969b84a95d6a8a1b8e (git-svn)
	M	request.xml
r6 = c6a9552257e02276605be32b9f57e09e3f4b80c6 (git-svn)
	M	xml-tester.rb
r7 = 81aba1c49bd8ca7f23477e4f65023163ffa1ae6e (git-svn)
	M	xml-tester.rb
r8 = 896ebb06ff96fe5e25275fa0b19338ddc594324d (git-svn)
	M	request.xml
	M	xml-tester.pl
r9 = 0f3448ae600d26ec51ffee6c3e5d233c7043d8c0 (git-svn)
Checked out HEAD:
  svn://svn_server/test/trunk r9

Dodajemy zewnętrzne źrodło, nasze nowe nowe repozytorium git’a:

$ git remote add origin git@repo_serv:test.git

Następnie nasze zmiamy wysyłamy w świat:

oki@localhost$ git push origin master
git@repo_serv's password:
Counting objects: 39, done.
Compressing objects: 100% (38/38), done.
Writing objects: 100% (39/39), 9.41 KiB, done.
Total 39 (delta 20), reused 0 (delta 0)
To git@repo_serv:test.git
 * [new branch]      master -> master

Testujemy git-clone:

oki@localhost$ git clone git@repo_serv:test.git
Initialized empty Git repository in /home/oki/tmp/test/.git/
git@repo_serv's password:
remote: Counting objects: 39, done.
remote: Compressing objects: 100% (38/38), done.
remote: Total 39 (delta 20), reused 0 (delta 0)
Receiving objects: 100% (39/39), 9.05 KiB, done.
Resolving deltas: 100% (20/20), done.

Dodatkowo możemy wygenerować klucze ssh dla uzytkownika git,
dzięki temu nie będziemy za każdym razem przy połączeniu do serwera pytani o hasło.

Tags: ,

Frameworki javascriptowe i Railsy

Nie samym “Prototype”:http://www.prototypejs.org/ człowiek żyje…
“mootools”:http://mootools.net/ – *compact javascript framework*

* “Mootools on Rails”:http://code.google.com/p/mootools-on-rails/
** “mootools kurs”:http://blog.dziudek.pl/2007/04/10/mootools-spis-tresci/ – kurs mootools po polsku
** “Mootools – 40 przykładowych zastosowań”:http://medeco.p9.pl/wordpress/2008/02/06/mootools-40-przykladowych-zastosowan/
** “MooTools”:http://pl.wikipedia.org/wiki/MooTools – info na polskiej wiki

“jQuery”:http://jquery.com/ – *The Write Less, Do More, JavaScript Library*

* “jRails”:http://ennerchi.com/projects/jrails – jQuery on Rails
* “Using jQuery with Ruby on Rails”:http://jimneath.org/2008/06/18/using-jquery-with-ruby-on-rails/
* “JQuery Ajax + Rails “:http://mad.ly/2007/05/17/jquery-ajax-rails/

Na koniec kilka faktow:

* prototype == mootools = = jquery

* “script.aculo.us”:http://script.aculo.us == “moo.fx”:http://moofx.mad4milk.net = = “pluginy jquery?”:http://plugins.jquery.com/

Tags: ,

ack zamiennik grepa

Używasz czasami grepa przy pisaniu swoich skryptów? A widziałeś w akcji *ack*? Przykladowy screen:

!./images/ack.jpg!

Linki do przejrzenia:

* “Top 10 reasons to start using ack”:http://www.perlmonks.org/?node_id=586862

* “App::Ack”:http://search.cpan.org/~petdance/ack/ack

* “Ack”:http://petdance.com/ack/

Tags: , ,

Rails 2.1

Mamy Railsy w wersji 2.1! <tadam> “DHH”:http://www.loudthinking.com komitnął: http://github.com/rails/rails/commit/f9db7695fe3c148c8d1077f1564e5b94d126b83b

Oficjalny wpis na blogu: “Rails 2.1: Time zones, dirty, caching, gem dependencies, caching, etc”:http://weblog.rubyonrails.org/2008/6/1/rails-2-1-time-zones-dirty-caching-gem-dependencies-caching-etc

Przegląd nowych możliwości:

* “Rolling with Rails 2.1 – The First Full Tutorial – Part 1″:http://www.akitaonrails.com/2008/5/25/rolling-with-rails-2-1-the-first-full-tutorial-part-1
* “Rolling with Rails 2.1 – The First Full Tutorial – Part 2″:http://www.akitaonrails.com/2008/5/26/rolling-with-rails-2-1-the-first-full-tutorial-part-2

Jeżeli ktoś preferuje screencasty:
* “Time Zones in Rails 2.1″:http://railscasts.com/episodes/106
* “Tracking Attribute Changes, UTC-based migrations”:http://railscasts.com/episodes/109
* “Gem Dependencies”:http://railscasts.com/episodes/110
* “named_scope”:http://railscasts.com/episodes/108

Aktualna lista błędów: “http://rails.lighthouseapp.com/dashboard”:http://rails.lighthouseapp.com/dashboard

Tags:

irbrc i railsrc

Wyprodukowano na podstawie materiałów znalezionych w sieci.

Linki na końcu wpisu.
*.irbrc*

*.railrc*

Prezentacja oręża:

$ irb
Loading... OK
>> # *dopelnianie nazw metod tabem*
>> p
p                                pretty_print_cycle               protected_methods
po                               pretty_print_inspect             public
poc                              pretty_print_instance_variables  public_methods
popb                             print                            pushb
popws                            printf                           pushws
pp                               private                          putc
pretty_inspect                   private_methods                  puts
pretty_print                     proc                             pwws
>> # wypas

>> h = { :foo => 1, :bar => 2, :dupa => false }
=> {:bar=>2, :foo=>1, :dupa=>false}  # <--- dzieki Wirble to jest w kolorze, ale tutaj tego nie widac :)
>> class Ble
>>   def b
>>     end
>>   end
=> nil # IRB.conf[:AUTO_INDENT] = true

# method finder! morowo! :)
>> "oki".what? == "OKI"
"oki".swapcase == "OKI"
"oki".swapcase! == "OKI"
"oki".upcase == "OKI"
"oki".upcase! == "OKI"
=> ["swapcase", "swapcase!", "upcase", "upcase!"]

# show_regexp
>> show_regexp("foo bar test", /\w+est/)
=> "foo bar <>"

# mozna tez tak
>> /(s.\w+)/.show_match("foo bar s_test")
=> "foo bar <>"
>> /(s.\w+)/.show_match("nie ma")
=> "no match"

# irb_callbacks, zabawka ^^
>> 2.times { sleep 0.52 }
=> 2
=> 1.040 seconds :( 

# duration
>> quit
12 minutes and 47 seconds

# czas na railsy
$ ./script/console
Loading development environment (Rails 2.0.2)
Loading... OK
Loading railsrc...OK
linuxlinki> Link.count
  SQL (0.000222)   SET SQL_AUTO_IS_NULL=0
  Link Columns (0.041859)   SHOW FIELDS FROM `links`
  SQL (0.000514)   SELECT count(*) AS count_all FROM `links`
=> 207

linuxlinki> sql "show tables"
  SQL (0.010506)   show tables
[{"Tables_in_linuxlinki"=>"authors"},
 {"Tables_in_linuxlinki"=>"categories"},
 {"Tables_in_linuxlinki"=>"links"},
 {"Tables_in_linuxlinki"=>"rates"},
 {"Tables_in_linuxlinki"=>"redirects"},
 {"Tables_in_linuxlinki"=>"rss"},
 {"Tables_in_linuxlinki"=>"schema_info"},
 {"Tables_in_linuxlinki"=>"sessions"},
 {"Tables_in_linuxlinki"=>"taggings"},
 {"Tables_in_linuxlinki"=>"tags"}]
=> nil

linuxlinki> link(:first)
  Link Load (0.000453)   SELECT * FROM `links` LIMIT 1
...
linuxlinki> 

Strony z których korzystałem przy tworzeniu plików konfiguracyjnych:

“http://errtheblog.com/posts/24-irb-mix-tape”:http://errtheblog.com/posts/24-irb-mix-tape

“http://poignantguide.net/ruby/expansion-pak-1.html”:http://poignantguide.net/ruby/expansion-pak-1.html

“http://radarek.jogger.pl/2007/05/28/interaktywny-ruby/”:http://radarek.jogger.pl/2007/05/28/interaktywny-ruby/

“http://utilitybelt.rubyforge.org/”:http://utilitybelt.rubyforge.org/

“http://zargony.com/2008/04/28/five-tips-for-developing-rails-applications”:http://zargony.com/2008/04/28/five-tips-for-developing-rails-applications

“http://www.sufixo.com/raw/index.php/2006/05/29/tip_ruby_irb_auto-complete/”:http://www.sufixo.com/raw/index.php/2006/05/29/tip_ruby_irb_auto-complete/

“http://drnicwilliams.com/2006/10/12/my-irbrc-for-consoleirb/”:http://drnicwilliams.com/2006/10/12/my-irbrc-for-consoleirb/

“http://snippets.dzone.com/posts/show/2586″:http://snippets.dzone.com/posts/show/2586

“http://dotfiles.org/%7Elattice/.irbrc “:http://dotfiles.org/%7Elattice/.irbrc

“http://dotfiles.org/~topfunky/.irbrc “:http://dotfiles.org/~topfunky/.irbrc

“http://quotedprintable.com/2007/9/13/my-irbrc “:http://quotedprintable.com/2007/9/13/my-irbrc

“http://blog.nicksieger.com/articles/2006/05/30/irbrc-on-windows “:http://blog.nicksieger.com/articles/2006/05/30/irbrc-on-windows

“http://ruby.tie-rack.org/3/my-irbrc/”:http://ruby.tie-rack.org/3/my-irbrc/

“http://blog.nicksieger.com/articles/2006/04/23/tweaking-irb”:http://blog.nicksieger.com/articles/2006/04/23/tweaking-irb

“http://www.ruby-forum.com/topic/84414#new”:http://www.ruby-forum.com/topic/84414#new

“http://redhanded.hobix.com/inspect/stickItInYourIrbrcMethodfinder.html”:http://redhanded.hobix.com/inspect/stickItInYourIrbrcMethodfinder.html

“http://nikolasco.livejournal.com/339449.html”:http://nikolasco.livejournal.com/339449.html

“http://redhanded.hobix.com/inspect/stickItInYourIrbrcMethodfinder.html”:http://redhanded.hobix.com/inspect/stickItInYourIrbrcMethodfinder.html

“http://programmingishard.com/”:http://programmingishard.com/

“http://ozmm.org/posts/railsrc.html”:http://ozmm.org/posts/railsrc.html

“http://weblog.jamisbuck.org/2007/2/1/per-developer-configuration”:http://weblog.jamisbuck.org/2007/2/1/per-developer-configuration

“http://snipplr.com/view/5135/my-railsrc/”:http://snipplr.com/view/5135/my-railsrc/

Tags: , , ,

Vim i automatyczny backup plików

Automatyczne backupy edytowanych plików.

$ mkdir .vim_backups
$ vim .vimrc

Do konfiga dopisujemy:

set backup
set backupdir=~/.vim_backups
fun! NewInitBex()
    let &bex = '-' . strftime("%Y%m%d-%H%M")
endfun
autocmd BufWritePre * call NewInitBex()

Pliki będą automatycznie zapisywane w ~/.vim_backups

Np:

$ ls -1 .vim_backups/
author.rb-20080521-1612
x.pl-20080521-1609

Linki:

“Vim Tip#892″:http://vim.sourceforge.net/tips/tip.php?tip_id=892

“Vim Script#89″:http://vim.sourceforge.net/scripts/script.php?script_id=89

“Slackware 12 upgrade – vim backup files”:http://blog.alltheinfo.org/slackware-12-upgrade-vim-backup-files/419/

Tags: ,

Capistrano i backup bazy

Backup produkcyjnej bazy danych za pomoca capistrano:

Kod:

Przykład działania:

$ cap mysql:backup
  * executing `mysql:backup'
  * executing "cat /var/www/apps/blogmd6/current/config/database.yml"
    servers: ["md6.org"]
    [md6.org] executing command
    command finished
  * executing "mysqldump -u puszek -p blog | bzip2 -c > blogmd6.dump.2008-05-20_23:24:32.sql.bz2"
    servers: ["md6.org"]
    [md6.org] executing command
    command finished
    servers: ["md6.org"]
 ** scp download blogmd6.dump.2008-05-20_23:24:32.sql.bz2 -> backups/blogmd6.dump.2008-05-20_23:24:32.sql.bz2
    [md6.org] backups/blogmd6.dump.2008-05-20_23:24:32.sql.bz2
  * scp download complete
  * executing "rm blogmd6.dump.2008-05-20_23:24:32.sql.bz2"
    servers: ["md6.org"]
    [md6.org] executing command
    command finished

Backup bazy znajdziemy w *backups/blogmd6.dump.2008-05-20_23:24:32.sql.bz2*

Tags: , ,