<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>RavSite &#187; Programowanie</title>
	<atom:link href="http://ravsite.net/kategoria/programowanie/feed/" rel="self" type="application/rss+xml" />
	<link>http://ravsite.net</link>
	<description>Luźne przemyślenia na różne tematy</description>
	<lastBuildDate>Wed, 30 Sep 2009 21:18:55 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=abc</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Markdown z Textile miażdżą Twojego HTML-a</title>
		<link>http://ravsite.net/markdown-z-textile-miazdza-twojego-html-a/</link>
		<comments>http://ravsite.net/markdown-z-textile-miazdza-twojego-html-a/#comments</comments>
		<pubDate>Thu, 20 Aug 2009 18:07:26 +0000</pubDate>
		<dc:creator>Ravicious</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Programowanie]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Markdown]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Textile]]></category>
		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://ravsite.net/?p=1213</guid>
		<description><![CDATA[﻿Nie lubisz odrywać rąk od klawiatury. To spowalnia każdą pracę, która polega na pisaniu. Czy to kolejny tekst na bloga, czy kolejna porcja kodu &#8211; nieważne. Masz skupić się na pisaniu i niczym kompilator[1] przetłumaczyć kod źródłowy (w tym przypadku Twoje myśli) z jednego języka na drugi (polski, angielski, C++ lub nawet Prolog &#8211; wybierz [...]]]></description>
			<content:encoded><![CDATA[<p>﻿Nie lubisz odrywać rąk od klawiatury. To spowalnia każdą pracę, która polega na pisaniu. Czy to kolejny tekst na bloga, czy kolejna porcja kodu &#8211; nieważne. Masz skupić się na pisaniu i niczym <a href="http://pl.wikipedia.org/wiki/Kompilator">kompilator</a><sup>[1]</sup> przetłumaczyć kod źródłowy (w tym przypadku Twoje myśli) z jednego języka na drugi (polski, angielski, C++ lub nawet Prolog &#8211; wybierz sobie).</p>
<p>Edytor w WordPressie (oczywiście nie mówię o <abbr title="What You See Is What You Get">WYSIWYG</abbr>) może i jest fajny, ale niewystarczający. Zupełnie nie wiem, dlaczego tag <code>strong</code> jest oznaczony w nim jako pogrubienie, a <code>em</code> jako kursywa &#8211; <strong>jest to błąd semantyczny</strong> (<a href="http://perfectionorvanity.com/2006/06/03/jak-pisac-redagowac-posty-na-bloga/">Riddle o tym pisał</a>). Nie posiada on też m. in. przycisków do wstawiania tagów <code>h2</code> czy <code>h3</code>, które przecież często widzi się na blogach. Można go co prawda dopakować wtyczkami takimi jak <a href="http://bueltge.de/wp-addquicktags-de-plugin/120/">AddQuicktag</a>, ale nadal będziesz musiał przechodzić <i>&#8216;koszmar&#8217;</i> w postaci wstawiania tagów HTML. Dlatego wymyślono alternatywne <a href="http://pl.wikipedia.org/wiki/J%C4%99zyk_znacznik%C3%B3w">języki znaczników</a> (z ang. <i>markup languages</i>).</p>
<p><span id="more-1213"></span></p>
<h2>Markup powah</h2>
<p><a href="http://en.wikipedia.org/wiki/Markdown">Markdown</a>, <a href="http://pl.wikipedia.org/wiki/Textile">Textile</a> czy <a href="http://pl.wikipedia.org/wiki/BBCode">BBCode</a> to jedne z popularniejszych języków. Zdecydowana większość (o ile nie wszystkie) silników for posiada wbudowaną obsługę BBCode &#8211; są to te wszystkie znaczniki typu <code>[b]</code> czy <code>[url]</code>. Na forach stosowane są tylko przez poweruserów, reszta jest zbyt leniwa, żeby z nich korzystać. Jego zaletą jest to, że łatwo go przyswoić osobom, które wcześniej miały kontakt z HTML-em. Wadą jest to, że nadal musimy wklepać równie dużą ilość znaków. Dla przykładu:</p>
<pre><code>&lt;b&gt;Pogrubienie w HTML-u&lt;/b&gt;
[b]Pogrubienie w BBCode[/b]
</code></pre>
<p>Tutaj i tutaj po siedem znaków. Nie uważajcie mnie za jakiegoś <i>purystę &#8220;znacznikowego&#8221;</i>, po prostu im mniej znaków, tym lepiej.</p>
<p>O wiele lepiej od BBCode prezentuje się Markdown i Textile. Ten drugi jest znany pewnie użytkownikom <a href="http://jogger.pl">Joggera</a><sup>[2]</sup>. Markdown jest mniej znany, ale moim zdaniem jest nieco lepszy. Oba jednak są lepszym wyjściem niż wklepywanie surowego HTML-a. Dlaczego?</p>
<pre><code>&lt;a href="http://google.pl/"&gt;Link w HTML-u&lt;/a&gt;
[Link w Markdown](http://google.pl/)
</code></pre>
<p>Piętnaście znaków versus cztery. Robi różnicę, prawda? Jeszcze jeden przykład:</p>
<pre><code>&lt;blockquote&gt;Cytat blokowy w HTML-u.&lt;/blockquote&gt;

&gt; Cytat blokowy w Markdown!
</code></pre>
<pre><code>&lt;ul&gt;
&lt;li&gt;lista wypunktowana&lt;/li&gt;
&lt;li&gt;w HTML-u&lt;/li&gt;
&lt;/ul&gt;</code></pre>
<pre><code>- lista wypunktowana
- w Markdown
</code></pre>
<p>Taa, Markdown z Textile miażdżą HTML-a niczym III Rzesza wraz z&#8230; Odpuśćmy to porównanie.</p>
<p>Dobrze, oba języki <strong>wyglądają nieźle</strong>. Ale bez odpowiedniego preprocesora, który przetłumaczy Markdown czy Textile na HTML nic nie zrobimy.</p>
<h2>Ruby powah</h2>
<p>Pogrzebałem trochę na <a href="http://userscripts.org/">userscripts.org</a> i <a href="http://wordpress.org/extend/plugins/">oficjalnym repozytorium dla wordpressowych wtyczek</a>, ale wtyczki po prostu nie były kompatybilne z nowszymi wersjami WP, a skrypty w JS&#8230; Cóż, nie, to też nie było to.</p>
<p>Pomyślałem wtedy <i>&#8220;Uczysz się Ruby, napisz swojego gema&#8221;</i><sup>[3]</sup>. Nie sprawdzając, czy istnieje już coś takiego, przystąpiłem do realizacji własnych założeń. Po prostu w ramach nauki.</p>
<p>Wiedziałem o istnieniu dwóch, całkiem fajnych preprocesorów napisanych w Ruby: <a href="http://redcloth.org/">RedCloth</a> dla Textile oraz <a href="http://www.deveiate.org/projects/BlueCloth">BlueCloth</a> dla Markdown. Żeby powiększyć ilość opcji programu, dodałem trzeci, znaleziony na GitHubie <a href="http://github.com/cpjolicoeur/bb-ruby/">bb-ruby</a> dla&#8230; Tak, BBCode.</p>
<h2>ClothMark</h2>
<p>I tak powstał <a href="http://github.com/ravicious/clothmark/">ClothMark</a>. Wzbogaca on Twoją konsolę/terminal o jedną, milutką komendę: <code>clothmark</code>.</p>
<h3>Jak zainstalować to cacko?</h3>
<p>Userzy Linuksa i Maka sobie poradzą, zawsze trzeba jednak pomóc użytkownikom Windowsa.</p>
<ul>
<li>Najpierw instalujesz inne przydatne narzędzie, które zwie się <a href="http://rubyforge.org/frs/download.php/47082/ruby186-27_rc2.exe">RubyInstaller</a>. Jeśli podczas instalacji wyskoczy jakiekolwiek pytanie o instalację RubyGems &#8211; zainstaluj, bo to też będzie Tobie potrzebne.</li>
</ul>
<ul>
<li>Jeśli jesteś <i>dumnym użytkownikiem</i> Linuksa lub Maka i nadal jesteś matołem<sup>[4]</sup>, który nie wie, jak instalować rzeczy w jego systemie &#8211; przeczytaj <a href="http://www.ruby-lang.org/pl/downloads/">instrukcję z oficjalnej strony</a>.</li>
</ul>
<ul>
<li>Załóżmy, że już uporałeś się z instalacją Ruby. Teraz wchodzisz do swojej konsoli/terminalu i wklepujesz następujące komendy (dodaj <code>sudo</code> przed drugą komendą, jeśli używasz Uniksa):</li>
</ul>
<pre><code>gem sources -a http://gems.github.com
gem install ravicious-clothmark</code></pre>
<p>To już koniec, pod Windowsem powinieneś zobaczyć podobne informacje, jak na screenie:</p>
<p><a href="http://ravsite.net/wprs/wp-content/uploads/2009/08/clothmark_install.png"><img src="http://ravsite.net/wprs/wp-content/uploads/2009/08/clothmark_install-470x385.png" alt="Instalacja ClothMark" title="Instalacja ClothMark" width="470" height="385" class="aligncenter size-medium wp-image-1216" /></a></p>
<h3>Jak używać tego cacka?</h3>
<p>Proste. Wchodzisz do katalogu z Twoim plikiem, którego treść napisana jest w Markdown i wklepujesz następującą komendę:</p>
<pre><code>clothmark nowy_post_w_markdown.txt</code></pre>
<p>I tyle. Twój plik zostanie zapisany pod nazwą <code>nowy_post_w_markdown.html</code>.</p>
<p>Ale&#8230; Nie chcesz Markdown? Jednak wolisz Textile lub BBCode? Proszę bardzo:</p>
<pre><code>clothmark textile_rulez --markup textile
clothmark bbcode_rox --markup bbcode</code></pre>
<p>Później już tylko wklejasz źródło wygenerowanego pliku do, na przykład, wordpressowego edytora i gotowe.</p>
<p>Właśnie, <strong>wpis możesz napisać w Twoim ulubionym edytorze i po prostu zapisać go jako osobny plik</strong>. Ja ten wpis <i>popełniłem</i> w <a href="http://lanooz.net/738">WriteMonkey</a>.</p>
<p>O reszcie opcji przeczytasz <a href="http://github.com/ravicious/clothmark/">w readme</a>. Ja chciałbym pokazać jedną, która może być przydatna.</p>
<p>Otóż domyślnie wygenerowany plik nie jest ostylowany. Jest po prostu tym, co napisałeś w Markdown/Textile/BBCode, ale w HTML-u. Jeśli chciałbyś dodać styl CSS i dodatkowy kod HTML, to dodaj do komendy parametr <code>-ah</code> lub <code>--additional-html</code>, wtedy plik powinien wyglądać lepiej.</p>
<p>Wiem, że kilka rzeczy wymaga pewnej poprawy, przede wszystkim <em>mój angielski</em> i przechwytywanie wyjątku, kiedy plik wejściowy nie istnieje, więc zgłaszajcie wszystkie znalezione błędy (i ewentualne propozycje) ;-)</p>
Przypisy:<ol class="footnotes"><li id="footnote_0_1213" class="footnote">Pewnie wiecie, co to jest, ale wolę się upewnić.</li><li id="footnote_1_1213" class="footnote">Sam kiedyś <a href="http://ravsite.net/stanalem-nad-przepascia/">krytykowałem Joggera za Textile</a>, ale wtedy byłem mały i głupi.</li><li id="footnote_2_1213" class="footnote"><code>gem</code> to po prostu dodatkowa biblioteka lub program</li><li id="footnote_3_1213" class="footnote">Ironia, ironia!</li></ol>]]></content:encoded>
			<wfw:commentRss>http://ravsite.net/markdown-z-textile-miazdza-twojego-html-a/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Google, daj mi hosting dla Ruby on Rails!</title>
		<link>http://ravsite.net/google-daj-mi-hosting-dla-ruby-on-rails/</link>
		<comments>http://ravsite.net/google-daj-mi-hosting-dla-ruby-on-rails/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 18:11:37 +0000</pubDate>
		<dc:creator>Ravicious</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Programowanie]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Sinatra]]></category>

		<guid isPermaLink="false">http://ravsite.net/?p=1134</guid>
		<description><![CDATA[
Największą bolączką Railsów jest brak taniego (a najlepiej całkowicie darmowego), ale w miarę funkcjonalnego hostingu, na którym raczkujący programiści mogliby stawiać swoje pierwsze aplikacje. Owszem, istnieje prześwietne (jeśli chodzi o wdrożenie aplikacji) Heroku, ale żeby mieć dostęp nawet do darmowych ficzerów, należy podać numer karty kredytowej, a ową kartę nie każdy posiada. Dzięki temu nie [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://ravsite.net/wprs/wp-content/uploads/2009/06/ruby_on_rails_is_going_to_google_cloud.jpg" alt="Ruby on Rails (na dole) i GAE (u góry)" width="450" height="250" class="aligncenter size-full wp-image-1142" /></p>
<p>Największą bolączką Railsów jest brak taniego (a najlepiej całkowicie darmowego), ale w miarę funkcjonalnego hostingu, na którym raczkujący programiści mogliby stawiać swoje pierwsze aplikacje. Owszem, istnieje prześwietne (jeśli chodzi o wdrożenie aplikacji) Heroku, ale żeby mieć dostęp nawet do <strong>darmowych</strong> ficzerów, należy podać numer karty kredytowej, a ową kartę nie każdy posiada. <i>Dzięki temu</i> nie można podpiąć własnej domeny pod projekt czy dodać zadań do crona.</p>
<p>Koderzy PHP nie mają w ogóle problemów, jeśli chodzi o hosting, koderzy Pythona mają darmowe <a href="http://code.google.com/intl/pl/appengine/">Google App Engine</a>, które wspiera także Javę.<br />
<span id="more-1134"></span><br />
Javę, Javę&#8230; Właśnie, Ruby <a href="http://en.wikipedia.org/wiki/Jruby">posiada swoją implementację w Javie</a>, ale <strong><a href="http://olabini.com/blog/2009/04/jruby-on-rails-on-google-app-engine/">postawienie railsowej aplikacji na <acronym title="Google App Engine">GAE</acronym></a> to kupa roboty</strong>. Z <a href="http://www.sinatrarb.com/">Sinatrą</a> jest <a href="http://www.slideshare.net/sausheong/ruby-and-the-cloud">nieco mniej problemów</a>.</p>
<p>Z jednej strony jest Heroku, z drugiej chciałoby się czegoś więcej. Niestety, na razie na pisaniu aplikacji nie zarabiam, więc nie stać mnie na <a href="http://www.megiteam.pl/Oferta">najtańszą ofertę na MegiTeam</a> (170 zł na rok). A może znacie w miarę tani hosting, który powinien zaspokoić potrzeby użytkownika Heroku?</p>
<p>Wątpię w uruchomienie przez Google hostingu dla <acronym title="Ruby on Rails">RoR</acronym>, bo całe Google stoi na Pythonie, dlaczego więc mieliby zajmować się <i>obcą</i> technologią? Pomimo tego, niech usłyszą mój niemy krzyk: <strong>Google, daj mi hosting dla Ruby on Rails!</strong></p>
<p><small><a href="http://www.flickr.com/photos/ecstaticist/2589723846/">Blue Sky on Rails</a> by <a href="http://www.flickr.com/photos/ecstaticist/">ecstaticist</a></small></p>
]]></content:encoded>
			<wfw:commentRss>http://ravsite.net/google-daj-mi-hosting-dla-ruby-on-rails/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
		<item>
		<title>Nobody Knows Shoes</title>
		<link>http://ravsite.net/nobody-knows-shoes/</link>
		<comments>http://ravsite.net/nobody-knows-shoes/#comments</comments>
		<pubDate>Tue, 14 Apr 2009 12:03:04 +0000</pubDate>
		<dc:creator>Ravicious</dc:creator>
				<category><![CDATA[LOL & OMG]]></category>
		<category><![CDATA[Programowanie]]></category>
		<category><![CDATA[GUI]]></category>
		<category><![CDATA[interfejs]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://ravsite.net/?p=948</guid>
		<description><![CDATA[Podczas poszukiwań dobrej biblioteki GUI dla Ruby, trafiłem na Shoes. Nie będę się rozwodził nad tym, czy to dobra, czy zła biblioteka, ponieważ nie o to mi chodzi.

]]></description>
			<content:encoded><![CDATA[<p>Podczas poszukiwań dobrej biblioteki <a href="http://pl.wikipedia.org/wiki/GUI" title="Graphical User Interface, interfejs graficzny" class="desc">GUI</a> dla Ruby, trafiłem na <a href="http://shoooes.net/">Shoes</a>. Nie będę się rozwodził nad tym, czy to dobra, czy zła biblioteka, ponieważ nie o to mi chodzi.<br />
<span id="more-948"></span><br />
<a href="http://hackety.org/press/nks.png" rel="lightbox" title="Nobody Knows Shoes - okładka"><img src="http://ravsite.net/wprs/wp-content/uploads/2009/04/nks-okladka.png" alt="Nobody Knows Shoes - okładka" width="143 height="220" class="imageright imagebr" /></a>Mianowicie zawsze, kiedy odkrywa się coś nowego, trzeba się tego nauczyć, więc w przypadku Shoes przydałby się jakiś tutorial. Długo szukać nie musiałem&nbsp;-&nbsp;link do niego znajduje się w pasku bocznym na stronie projektu. <a href="http://hackety.org/press/">&#8220;Nobody Knows Shoes&#8221;</a>, bo tak nazywa się ten e-book, w formacie PDF zajmuje&#8230; 45&nbsp;megabajtów!</p>
<p>Aż tyle? Tak, ale każda strona tego poradnika to świetnie wykonana ilustracja. Po raz pierwszy widzę tak przezabawnie wykonany tutorial.</p>
<p>Nieważne, czy piszesz w Ruby, czy w innym języku, jeśli jesteś geekiem i&nbsp;chcesz się pośmiać, to <a href="http://hackety.org/press/nks.pdf">ten poradnik</a> jest dla Ciebie ;-)</p>
<p><img src="http://ravsite.net/wprs/wp-content/uploads/2009/04/nks-9.png" alt="Nobody Knows Shoes" title="Dziewiąta strona Nobody Knows Shoes" width="469" height="724" class="imagecenter imagebr" /></p>
]]></content:encoded>
			<wfw:commentRss>http://ravsite.net/nobody-knows-shoes/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
