tag:blogger.com,1999:blog-292269802024-03-07T22:20:56.846+01:00Zlatno ćoše - Zlatan KadragićBlog o informacionim tehnologijama uopšte. Od projektovanja, paterna i programiranja do operativnih sistema i mreža. Da ne bi bilo dosadno biće i zanimljivosti i vesti iz IT.aurelije@gmail.comhttp://www.blogger.com/profile/14414712184569814512noreply@blogger.comBlogger43125tag:blogger.com,1999:blog-29226980.post-4582718389011495142014-11-12T16:12:00.002+01:002014-11-12T16:16:51.102+01:00Logical order of SQL Query executionFirst of all we should know that logical and physical order of query execution are different but result must be the same.<br />
<br />
Every RDBMS can optimize the order in which parts of query are executed for performance reason. However that rearrangement must not influence the final result. The query must return the same records as if it is executed in this logical order:<br />
<br />
<ol>
<li> FROM</li>
<li> WHERE</li>
<li> GROUP BY</li>
<li> HAVING</li>
<li> SELECT</li>
<li> DISTINCT</li>
<li> ORDER BY</li>
<li> TOP X / LIMIT X/ select * from ( <i>subquery</i> ) ROWNUM <= X</li>
</ol>
<br />
The programmers should always be aware of this sequence in order not to fall into a trap.<br />
<br />
A common mistake is to try using column alias in GROUP BY, WHERE and HAVING clause but actually it is possible to use it only after SELECT clause is executed (ORDER BY and TOP/LIMIT/that long stupid oracle boilerplate).<br />
<br />
Another mistake is to try sorting by column that is not listed in SELECT clause.<br />
<br />
The less common but hard to debug problem could be made if OUTER JOIN is used and join condition is moved from ON into WHERE and vice versa. While it is OK with INNER JOIN these two selects will return different results:<br />
<pre class="brush: sql; wrap-lines: false;">select *
from t1
left join t2 on (t1.id = t2.t1_id and t2.color = 'blue')
</pre>
</br>
<pre class="brush: sql; wrap-lines: false;">select *
from t1
left join t2 on (t1.id = t2.t1_id)
where t2.color = 'blue'
</pre>
<br />
Which of those two will return less records?<br />
<br />aurelije@gmail.comhttp://www.blogger.com/profile/14414712184569814512noreply@blogger.com0tag:blogger.com,1999:blog-29226980.post-29018948661523662352014-07-08T18:30:00.000+02:002014-07-08T18:30:00.470+02:00SQL Fiddle<h1 class="with-breadcrumbs" id="title-text">
</h1>
<div id="sidebar-container">
</div>
<div id="action-messages">
</div>
If you need fast try and error check against some of the most popular relational database management system <a class="external-link" href="http://sqlfiddle.com/" rel="nofollow">SQL Fiddle</a>
is the wright address. It is also free as in beer :)<br />
<br />
It is an online application in which you can select to work some of supported
RDBMS.<br />
There are 2 text area fields: first is used to set your schema and data, the second is used to write some query that will run against your schema and data.<br />
<br />
Using SQL Fiddle you can share your script similar to Gist for source code sharing.<br />
<br />
It
is also useful as online SQL code beautifier and formatter. <br />
<br />
Here is an example of SQL Code for Oracle DB: <a class="external-link" href="http://sqlfiddle.com/#%214/1897b/1" rel="nofollow">http://sqlfiddle.com/#!4/1897b/1</a>aurelije@gmail.comhttp://www.blogger.com/profile/14414712184569814512noreply@blogger.com0tag:blogger.com,1999:blog-29226980.post-55354253747443482792014-06-11T10:11:00.000+02:002014-07-08T15:21:29.368+02:00XMLUnit<h1 class="with-breadcrumbs" id="title-text">
</h1>
<div id="sidebar-container">
</div>
<div id="action-messages">
</div>
<br />
<div class="wiki-content" id="main-content">
<div class="level1">
XMLUnit
for Java provides a set of supporting classes (e.g. Diff, DetailedDiff,
Transform, SimpleXpathEngine, Validator,NodeTest) that allow assertions
to be made about:<br />
<ul>
<li class="level1"><div class="li">
The differences between two pieces of XML</div>
</li>
<li class="level1"><div class="li">
The outcome of transforming a piece of XML using XSLT</div>
</li>
<li class="level1"><div class="li">
The evaluation of an XPath expression on a piece of XML</div>
</li>
<li class="level1"><div class="li">
The validity of a piece of XML</div>
</li>
<li class="level1"><div class="li">
Individual nodes in a piece of XML that are exposed by DOM Traversal</div>
</li>
</ul>
XMLUnit
for Java can also treat HTML content (even badly-formed HTML) as valid
XML to allow these assertions to be made about the content of web pages
too.<br />
<h2 id="XMLUnit-Experience">
</h2>
<h2 id="XMLUnit-Experience">
Experience</h2>
<br />
I've used XMLUnit
in 2 situations: assert that 2 xml files are semantically the same
regardless of structural differences (eg. different formatting,
different namespace prefixes, usage of opening and closing tag vs. empty
tag...) and finding real differences between two xml files regardless
of prior mentioned differences in structure.<br />
<br />
The equality of two
xml files can be compared in two ways. We can check if two documents are
identical. Two documents are considered to be "identical" if they
contain the same elements and attributes in the same order. But we can
check if two documents are similar, where those two documents must
contain the same elements and attributes <i>regardless</i> of order.
In most cases you will checking similarity and that is what is checked
when XMLAssert.assertXMLEqual methdo is called.<br />
<br />
<h2>
Howto</h2>
<br />
There
are only few classes that needs to be known. Not so complicated but not
so easy when compared to ordinary Assert implementations (JUnit, TestNG
or FEST).<br />
XMLUnit class is used as a static configuration class.
If there is need for some general configuration change (eg. to ignore
whitespaces, to normalize text nodes, to ignore xml comments...) this is
a place to do it before calling asserts. Also it is possible to change
parsers and engines used by XMLUnit.<br />
<br />
DifferenceEngine is comparing
Nodes (just Nodes of type: ELEMENT_NODE, CDATA_SECTION_NODE,
COMMENT_NODE, DOCUMENT_TYPE_NODE, PROCESSING_INSTRUCTION_NODE and
TEXT_NODE) and when difference is found the responsibility gets
delegated to DifferenceListener interface which implementation is the
final judge if difference is significant. DifferenceEngine is not used
directly but in some not so simple use cases difference listener should
be set.<br />
There are several implementations of DifferenceListener, most useful are Diff and DetailedDiff.<br />
<br />
Diff
is used for simple comparison where only the state of comparison is
needed (identical, similar or different) and the comparison is halted as
soon as the status is known with certainty.<br />
<br />
If you need o collect
all the differences and have all details DetaildedDiff should be used.
It is just a decorator for other DifferenceListeners.<br />
<br />
<span class="n">MatchTracker</span>
interface gets notified when a match between test and actual node is
found. It is useful to implement listener that logs matches so that you
get insight of comparison process. This interface has no implementation.<br />
<br />
ElementQualifier
Interface used by the DifferenceEngine to determine which elements can
be compared within a NodeList of child nodes. It controls which two
nodes from test and actual XML document should be compared.<br />
<br />
There are
few implementations of this interface: ElementNameQualifier which is
default, compares element nodes whose tag name is same.
ElementNameAndAttributeQualifier uses tag name and attribute,<span class="strong">
ElementNameAndTextQualifier uses tag name and text content,
RecursiveElementNameAndTextQualifier compares all Element and Text nodes
in two pieces of XML. Allows elements of complex, deeply nested types
that are returned in different orders but have the same content to be
recognized as comparable. </span><br />
<br />
<span class="strong">Every single compare is done using </span>ElementNameQualifier. I
had a special case where I needed recursive ElementQualifier but which
compares single nodes not just by tag name but also by attributes. So I
have tweaked <span class="strong">RecursiveElementNameAndTextQualifier to be just a recursive decorator around existing ElementQualifier implementation.</span><br />
<br />
<h2 id="XMLUnit-Example">
Example</h2>
<br />
I've crated example at <a class="external-link" href="https://github.com/aurelije/xmlunit" rel="nofollow">https://github.com/aurelije/xmlunit</a>
I had an use case where I needed to refactor one complex wsdl file. I
wanted to sort all operations, types and messages, so I can easily
compare that sorted Old API wsdl file with New API wsdl file and see
what is changed and what is added. So I needed some proof that the
original and sorted wsdl are semantically the same. And then I could
also use this test to list all differences between Old API and New API
wsdl.<br />
<br />
<h2 id="XMLUnit-References">
References</h2>
<div id="XMLUnit-References">
<br /></div>
<ul>
<li class="level1"><div class="li">
<a class="external-link" href="http://xmlunit.sourceforge.net/" rel="nofollow" title="http://xmlunit.sourceforge.net/">http://xmlunit.sourceforge.net/</a> Official XMLUnit site</div>
</li>
<li class="level1"><div class="li">
<a class="external-link" href="http://xmlunit.sourceforge.net/userguide/html/index.html" rel="nofollow" title="http://xmlunit.sourceforge.net/userguide/html/index.html">http://xmlunit.sourceforge.net/userguide/html/index.html</a> User guide</div>
</li>
<li><a class="external-link" href="https://github.com/aurelije/xmlunit" rel="nofollow">https://github.com/aurelije/xmlunit</a> Example of real life usage </li>
</ul>
</div>
</div>
aurelije@gmail.comhttp://www.blogger.com/profile/14414712184569814512noreply@blogger.com0tag:blogger.com,1999:blog-29226980.post-5709634369222864952013-11-17T11:12:00.001+01:002013-12-07T10:21:28.985+01:00How to download multiple files using cURL A few months ago I've bought Kobo Aura HD eBook reader. That is my best investment this year :) I am using every chance to read books, but also I am reading magazines that do have ePub format (PragProg, Libre!, FullCircle, BSDMag and Linux Magazine.<br />
<br />
But I've had a problem to download all issues of some magazine. If download URL for particular issue can be guessed than cURL will do the job perfectly. As example here is a command to download all 78 issues of FullCircle:<br />
<br />
<span style="font-family: "Courier New", Courier, monospace;">curl http://dl.fullcirclemagazine.org/issue[1-78]_en.epub --create-dirs -o "/home/zlatan/Downloads/fullcircle/fullcirclemagazine#1.epub" </span><br />
<br />
Particular url is <span style="font-family: "Courier New", Courier, monospace;">http://dl.fullcirclemagazine.org/issueXX_en.epub <span style="font-family: inherit;">where <b><span style="font-family: "Courier New",Courier,monospace;">XX</span></b> is issue number. The option <b><span style="font-family: "Courier New",Courier,monospace;">o</span></b> controls output, and because there are 78 files filename will be constructed from <span style="font-family: "Courier New",Courier,monospace;">fullcircleXX.epub</span> name where <b><span style="font-family: "Courier New",Courier,monospace;">XX</span></b> is corresponding issue number taken from URL</span></span><br />
<br />
<span style="font-family: "Courier New", Courier, monospace;"><span style="font-family: inherit;">cUrl is free software that exists as package for almost all platforms. So Linux user can use their package manager to install cUrl (if packege is not installed already) and MS Windows users can downloaded it from: <a href="http://curl.haxx.se/download.html">http://curl.haxx.se/download.html </a></span></span><br />
<br />
<span style="font-family: "Courier New", Courier, monospace;"><span style="font-family: inherit;">Simillary to download all epub versions of PCLinuxOS Magazine copy and paste the following line into terminal:</span></span><br />
<br />
<span style="font-family: "Courier New", Courier, monospace;"><span style="font-family: inherit;"><span style="font-family: "Courier New",Courier,monospace;">curl http://pclosmag.com/download-epub.php?f=[2012-2013][01-12]epub.epub --create-dirs -o "/home/zkadragic/Downloads/pclinuxos/pclinuxos#1-#2.epub"</span></span></span>aurelije@gmail.comhttp://www.blogger.com/profile/14414712184569814512noreply@blogger.com0tag:blogger.com,1999:blog-29226980.post-37264337592592623762013-02-10T16:59:00.000+01:002013-02-10T17:02:43.742+01:00How to install Lotus Notes 8.3 on Kubuntu 12.04Installing Lotus Notes became easier than in previous versions and <span style="background-color: white; color: #333333; font-family: 'Lucida Grande', 'Trebuchet MS', Verdana, Arial, Helvetica, sans-serif; font-size: 15px; line-height: 18px;">fortunately</span> there is no need to edit .deb files anymore.<br />
Follow these steps to install Lotus Notes (Kubuntu 12.04.1 32b):<br />
<br />
<ol>
<li>untar the installation: <b>tar xvf lotus_notes853_linuxUb_en.tar</b></li>
<li>run installer: <b>sudo dpkg -i ibm-lotus-notess-8.5.3.i586.deb</b></li>
<li>dpkg will throw missing dependencies, you should search and install all that dependencies using apt-get, aptitude or Muon package manager</li>
<li>run: <b>sudo dpkg -i ibm-lotus-notess-8.5.3.i586.deb</b> again</li>
<li>install other lotus notes parts: sametime, activities and so on using the same approach</li>
<li>similarly untar and install fixpack</li>
<li>install the wrapper:</li>
</ol>
<div>
<pre class="code bash" style="background-color: #f7f9fa; border: 1px dashed rgb(204, 204, 204); color: #333333; font-size: 11px; line-height: 19px; margin-bottom: 1em; overflow: auto; padding: 0.5em; text-align: justify; width: auto !important;"><span class="kw2" style="color: black; font-weight: bold; margin: 0px; padding: 0px;">mkdir</span> <span class="re5" style="margin: 0px; padding: 0px;">-p</span> <span class="sy0" style="color: #66cc66; margin: 0px; padding: 0px;">/</span>tmp<span class="sy0" style="color: #66cc66; margin: 0px; padding: 0px;">/</span>notesfix
<span class="kw3" style="color: #000066; margin: 0px; padding: 0px;">cd</span> <span class="sy0" style="color: #66cc66; margin: 0px; padding: 0px;">/</span>tmp<span class="sy0" style="color: #66cc66; margin: 0px; padding: 0px;">/</span>notesfix
<span class="kw2" style="color: black; font-weight: bold; margin: 0px; padding: 0px;">wget</span> –no-check-certificate https:<span class="sy0" style="color: #66cc66; margin: 0px; padding: 0px;">//</span>github.com<span class="sy0" style="color: #66cc66; margin: 0px; padding: 0px;">/</span>sgh<span class="sy0" style="color: #66cc66; margin: 0px; padding: 0px;">/</span>lotus-notes_gtk2.23.3<span class="sy0" style="color: #66cc66; margin: 0px; padding: 0px;">/</span>raw<span class="sy0" style="color: #66cc66; margin: 0px; padding: 0px;">/</span>d3492c997bc7a92b895fa1369d4743a8e20b56b5<span class="sy0" style="color: #66cc66; margin: 0px; padding: 0px;">/</span>Makefile
<span class="kw2" style="color: black; font-weight: bold; margin: 0px; padding: 0px;">wget</span> –no-check-certificate https:<span class="sy0" style="color: #66cc66; margin: 0px; padding: 0px;">//</span>github.com<span class="sy0" style="color: #66cc66; margin: 0px; padding: 0px;">/</span>sgh<span class="sy0" style="color: #66cc66; margin: 0px; padding: 0px;">/</span>lotus-notes_gtk2.23.3<span class="sy0" style="color: #66cc66; margin: 0px; padding: 0px;">/</span>raw<span class="sy0" style="color: #66cc66; margin: 0px; padding: 0px;">/</span>d3492c997bc7a92b895fa1369d4743a8e20b56b5<span class="sy0" style="color: #66cc66; margin: 0px; padding: 0px;">/</span>libnotesgtkfix.c
<span class="kw2" style="color: black; font-weight: bold; margin: 0px; padding: 0px;">wget</span> –no-check-certificate https:<span class="sy0" style="color: #66cc66; margin: 0px; padding: 0px;">//</span>github.com<span class="sy0" style="color: #66cc66; margin: 0px; padding: 0px;">/</span>sgh<span class="sy0" style="color: #66cc66; margin: 0px; padding: 0px;">/</span>lotus-notes_gtk2.23.3<span class="sy0" style="color: #66cc66; margin: 0px; padding: 0px;">/</span>raw<span class="sy0" style="color: #66cc66; margin: 0px; padding: 0px;">/</span>d3492c997bc7a92b895fa1369d4743a8e20b56b5<span class="sy0" style="color: #66cc66; margin: 0px; padding: 0px;">/</span>notes-wrapper
<span class="kw2" style="color: black; font-weight: bold; margin: 0px; padding: 0px;">make</span>
<span class="kw2" style="color: black; font-weight: bold; margin: 0px; padding: 0px;">chmod</span> +x notes-wrapper
<span class="kw2" style="color: black; font-weight: bold; margin: 0px; padding: 0px;">sudo</span> <span class="kw2" style="color: black; font-weight: bold; margin: 0px; padding: 0px;">cp</span> notes-wrapper libnotesgtkfix.so <span class="sy0" style="color: #66cc66; margin: 0px; padding: 0px;">/</span>opt<span class="sy0" style="color: #66cc66; margin: 0px; padding: 0px;">/</span>ibm<span class="sy0" style="color: #66cc66; margin: 0px; padding: 0px;">/</span>lotus<span class="sy0" style="color: #66cc66; margin: 0px; padding: 0px;">/</span>notes<span class="sy0" style="color: #66cc66; margin: 0px; padding: 0px;">/</span></pre>
The final step is to edit menu. Right click to Kickoff App Launcher -> Edit Application, find the Lotus Notes entry in Office menu, and put this line into command field:<br />
<br />
<pre class="code bash" style="background-color: #f7f9fa; border: 1px dashed rgb(204, 204, 204); color: #333333; font-size: 11px; line-height: 19px; margin-bottom: 1em; overflow: auto; padding: 0.5em; text-align: justify; width: auto !important;"><span class="kw2" style="color: black; font-weight: bold; margin: 0px; padding: 0px;">sudo <span class="re5" style="margin: 0px; padding: 0px;">-u</span> <span class="re1" style="color: blue; margin: 0px; padding: 0px;">$USER</span> env <span class="re2" style="color: blue; margin: 0px; padding: 0px;">GTK2_RC_FILES</span>=<span class="st0" style="color: red; margin: 0px; padding: 0px;">"/usr/share/themes/Raleigh/gtk-2.0/gtkrc"</span> <span class="sy0" style="color: #66cc66; margin: 0px; padding: 0px;">/</span>opt<span class="sy0" style="color: #66cc66; margin: 0px; padding: 0px;">/</span>ibm<span class="sy0" style="color: #66cc66; margin: 0px; padding: 0px;">/</span>lotus<span class="sy0" style="color: #66cc66; margin: 0px; padding: 0px;">/</span>notes<span class="sy0" style="color: #66cc66; margin: 0px; padding: 0px;">/</span>framework<span class="sy0" style="color: #66cc66; margin: 0px; padding: 0px;">/</span>..<span class="sy0" style="color: #66cc66; margin: 0px; padding: 0px;">/</span>notes-wrapper</span></pre>
</div>
Now you can "enjoy" your Lotus Notes :)
aurelije@gmail.comhttp://www.blogger.com/profile/14414712184569814512noreply@blogger.com0tag:blogger.com,1999:blog-29226980.post-60699995955755059972012-06-23T23:17:00.002+02:002012-06-23T23:21:57.455+02:00Pro Spring 3Right now I am reading Pro Spring 3 written by Clarence Ho and Rob Harrop (a SpringSource co-founder). Very up to date book about Spring covering version 3.1. This book doesn't lack information, almost every part of Spring is covered including some useful addons like Spring Data JPA, Spring Batch, Spring Integration and Roo, The book is not just about Spring it is about how to be productive with Spring. Author explains how to use SpringTool Suite (STS), how to decide which approach to follow, examples are very profound. And through the book author is developing a real application! I wish that authors have paid attention on Spring security (not covered at all) and Beans Validation chapter is too thin with only 2 field validation annotations mentioned (@NotNull and @Size). Still this is the best book that will make you a good and capable Spring programmer even if you don't have any precognition about Spring.aurelije@gmail.comhttp://www.blogger.com/profile/14414712184569814512noreply@blogger.com0tag:blogger.com,1999:blog-29226980.post-62677963225846956452012-06-21T08:54:00.000+02:002012-06-23T23:22:34.772+02:00YU18nRaspad SFRJ doneo je mnogo problema lokalizatorima za naše pordučje. Autori Java jezika se nisu baš najbolje snašli u tome pa i u javi 6-te verzije postoje problemi. Rešenje za te probleme kao i kratak istorijat problema pogledajte na sledećem linku:
<a href="http://klaus.e175.net/java-yu">http://klaus.e175.net/java-yu</a><br />
<br />
Hvala Draženu na ovom linku :)aurelije@gmail.comhttp://www.blogger.com/profile/14414712184569814512noreply@blogger.com0tag:blogger.com,1999:blog-29226980.post-82990955763429425662012-02-29T00:23:00.002+01:002012-02-29T22:43:02.032+01:00Zanimljivosti iz istorije Ujedninjenog kraljvestvaDok sam u Škotskoj često gledam emisije iz njihove istorije što i nije teško naći jer ih ima na svim kanalima a postoji i poseban kanal samo za to pod slikovitim nazivom Yesterday.<br />
<br />
Evo nekoliko zanimljivosti nabacanih na gomilu:<br />
<br />
U toku 2. sv. rata zalihe čaja su strateški raspoređene na 7 lokacija kako bi se izbeglo uništavanje što bi po moral Britanaca bilo pogubno.<br />
<br />
Šetland, ostrvo na pola puta između Britanije i Norveške danas deo Škotske je istorijski deo Norveške. Norveški vladar je dao engleskoj kraljici u zakup ostrvo a ono nikad nije vraćeno majci Norveškoj. Na ostrvu i dan danas imaju svetkovine posvećene Vikinzima jer oni i jesu njihovi potomci<br />
<br />
Racionalisanje ishrane (dobijanje sledovanja hrane na bonove, tačkice i slično ograničavanje i razdeljivanje hrane) u UK je ukinuto tek 1954. godine. Toliko ih je rat upropastio.<br />
<br />
U 17. veku je škotskim brđanima (Highlanderima) bilo zabranjeno da nose tartane i oružje. Mnogi klanovi (npr. Mc Donald) su bili desetkovani zbog nepoštovanja naredbe. Vojska je imala naredbu da nikog starijeg od 17 godina ne ostavi u životu.<br />
<br />
Britanija je zagospodarila morem tako što su se prvo zakačili u 16. veku sa moćnom španskom armadom. Povod je bio vrlo prozaičan, Španci su trgovali robovima, Britanci pokušali da sa samo 2 broda uzmu koju mrvicu iz tog ogromnog posla ali im ni toliko nisu dali već su ih napali španski brodovi. Jedan od preživelih britanskih mornara je čitav život posvetio borbi protih Španaca i bio je vrlo ubedljiv. Špancima se škrtarenje nije isplatilo :)<br />
<br />
Najveći poraz engleska mornarica je doživela kad je parlament zavrnuo slavinu za mornare. Brodovi su nedeljama stajali usidreni kod Londona, a onda su došli Nizozemci, probili se kroz Temzu i iznenadili englesku mornaricu. U očaju Englezi pale i potapaju nekoliko brodova kako bi zatvorili prolaz ali kasno. Najveći engleski brod su Nizozemci zarobili i odveli. Takvu sramotu sebi Englezi nikad nisu zaboravili.<br />
<br />
Krajem 18. veka kad se razivija nova klasa sastavljena od trgovaca i ostalih koji su bogatstvo stekli na krilima britanskog gospodarenja morem. Čaj je jako skup ali je ova klasa imala dovoljno para da pravi redovne čajanke. Čajanke su postale sastavni deo društvenog života. Iako su te domoćice imale služavke, same su pravile čaj, tako nešto skupo nisu želele da prepuste služavkama.<br />
<br />
U to vreme dosetio se jedan njihov vladar da oporezuje prozore. I to tako da je bila velika razlika između poreza na 10 i više prozora i onog na manje od 10. Kao posledica utaje poreza i dan danas se mogu videti na starijim kućama zazidani prozori :D<br />
<br />
Britanija je uvela gas mnogo pre nego što je uvedena struja. Gas je do 60-tih bio pravljen od uglja. Služio je ne samo za grajanje i kuvanje već je bio preteča sijalica ne samo u uličnoj rasveti već i u samim domovima.<br />
<br />
Kralj koji je bio kreativan po pitanju poreza na prozore je imao i druge zamisli. Oprezovao je ogledala po kućama pa čak i bele voštane sveće koje su samo imućniji imali. Sirotinja je imala lojane koje su stvarale mnogo čađi.<br />
<br />
Britanija je konačno postala jedina supersila na moru tako što je porazila tada najstrašniju mornaricu sveta: Frnacusku. To je urađeno na vrlo originalni način. Većina brodova Francuzi su držali usidrene u luci Brest na Antlantiku. Jedan se Britanac dosetio da bi mogao isploviti i blokirati brodove u luci. Nikome ranije to nije palo na pamet iz jednog vrlo praktičnog razloga: tada se nije moglo biti dugo na moru, moranri bi se zbog loše i jednolične hrane posle par sedmica porazboljevali. No Britanac se dosetio da mu drugi brodovi donose zalihe sveže hrane i vode tako da je do beskonačnosti mogao držati Francuze za ... Za to vreme je ostatak britanske vojske uzimao francuske posede u srednjoj Americi, Quebec, Indiju... Francuzi nisu mogli imati pomoć mornarice niti dotur oružja i ljudstva. Kad je Frnacuskom kralju dosadilo da mesecima ne dobija novac iz kolonija kao i da gubi zemlju kojekude, naredio je ništa manje nego zauzeće Londona. Francuska mornarica je krenula u proboj kroz deo koji je pun hridina a koji su poznavali bolje od Engleza. Ali su se Englezi ipak usudlili da krenu za njima i rizik se isplatio, uništili su silu brodova tako da se Francuska nikad nije oporavila. Sve se ovo dešavalo za zemana Luja XV. Posle ovolikog gubitka nije ni čudo što je uskoro izbila revolucija u Francuskoj...<br />
<br />
Struja je u Britaniji uvođena neplanski preko privatnih kompanija. Posledica toga je da se mreža do mreže razlikovala po naponu i po utičnicama. Tek posle 2. sv. rata je vlada odlučila da napravi nacionalnu prenosnu mrežu koja bi ujedinila i unifikovala sve te rasparčane mreže.<br />
<br />
Kad je 60-tih otkriven prirodni gas prešlo se sa ugljenog na njega. Prirodni gas je kaloričniji i sve instalacije su morale biti prilagođene. Npr. gorionici na šporetima su zamenjenji. Domaćice tog vrena su se žalile kako ne mogu da se naviknu na novi gas, ako ga zategnu on se ugasi ako ga odviju onda im sve zagori :D<br />
<br />
Jedini deo teritorije UK koji je nemačka vojska zauzela su Kanalska ostrva (Jersey i druga) u blizini Francuske. Ta ostrva su ustvari državice koje za svojeg vladara na neki način priznaju engleskog kralja/kraljicu. Inače nikakve direktne veze s Britanijom nemaju. Kad je Frnacuska pala UK vojska se brzom brzinom pokupila i pobegla. Nemci su na ostrvima ostali sve do 9. maja 1945. iako su iz Francuske protrerani mesecima ranije. Hitler je bio opsednut da drži makar deo nečega što u neku ruku pripada UK i što žulja Čerčila :) Zato je na ostrva poslao silu vojske, gradio podzemne baze za podmornice, utvrdio obalu... Britanci su se poneli krajnje hladno i racionalno, nisu hteli da ginu za slavu, čekali su da zauzmu Berlin pa da se ostrva sama vrate.aurelije@gmail.comhttp://www.blogger.com/profile/14414712184569814512noreply@blogger.com2tag:blogger.com,1999:blog-29226980.post-8663259599714126282011-10-29T16:31:00.000+02:002011-10-29T16:31:57.825+02:00Spring: how to send a mailSpring has module for email sending. First one need to configure mail sender bean. Actually there are two mail sender implementations. The first one is MailSender that can be used for simple mails. For advanced mails (MIME support) JavaMailSender must be used. It is good practice to divide your configuration into several files, so we'll put mailing configuration into service-mail.xml (or you can choose your own name) and then include that file into main config file. Just for example we'll use gmail as SMTP server so configuration looks like this:<br />
<br />
<pre class="brush: xml; wrap-lines: false;"><?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="smtp.gmail.com" />
<property name="port" value="587" />
<property name="username" value="test.mail" />
<property name="password" value="foobarbuz" />
<property name="javaMailProperties">
<props>
<prop key="mail.smtp.auth">true</prop>
<prop key="mail.smtp.starttls.enable">true</prop>
</props>
</property>
</bean>
</beans>
</pre><br />
Spring needs two additional libraries: javax.mail and javax.activation. For maven users: simply add dependency for javax.mail (groupId: javax.mail, artifactId: mail) into your projects pom.xml.<br />
<br />
Now we can implement our mailing service:<br />
<br />
<pre class="brush: java; wrap-lines: false;">@Service("mailService")
public class MailServiceImpl implements MailService {
@Autowired
private JavaMailSender mailSender;
public final void setMailSender(final JavaMailSender p_mailSender) {
this.mailSender = p_mailSender;
}
public final JavaMailSender getMailSender() {
return mailSender;
}
@Override
public final void sendMail(final String p_from, final String p_to, final String p_subject, final String p_msg) {
final MimeMessagePreparator preparator = new MimeMessagePreparator() {
@Override
public void prepare(final MimeMessage p_mimeMessage) throws Exception {
final MimeMessageHelper message = new MimeMessageHelper(p_mimeMessage);
message.setTo(p_to);
message.setFrom(p_from);
message.setSubject(p_subject);
message.setText(p_msg, true); // true means that our text is actually HTML!!!
}
};
mailSender.send(preparator);
}
}
</pre><br />
Now we can use our service like this:<br />
<br />
<pre class="brush: java; wrap-lines: false;">mailService.sendMail(fromEmail, toEmail, subject, msg);
</pre>aurelije@gmail.comhttp://www.blogger.com/profile/14414712184569814512noreply@blogger.com0tag:blogger.com,1999:blog-29226980.post-211421645208326912011-09-21T00:26:00.000+02:002011-09-21T00:26:39.706+02:00Instalacija Arch Linux-a na LVM i obratnoU prošlom postu opisao sam šta je to LVM i kako se pravi. Ali da bi LVM radio na Arch Linux-u mora se izvršiti određeno podešavanje i o teme će biti reči u ovom tekstu.<br />
<br />
Treba obratiti pažnju na 2 fajla. <br />
<br />
U rc.conf treba postaviti <br />
<pre class="brush: shell; wrap-lines: false;">USELVM="yes"</pre><br />
U mkinitcpio.conf treba da stoji: <br />
<pre class="brush: shell; wrap-lines: false;">MODULES="dm_mod"
. . .
HOOKS="base udev autodetect pata scsi sata usb lvm2 filesystems usbinput"</pre><br />
Zatim traba ponovo naraviti initramfs: <br />
<pre class="brush: shell; wrap-lines: false;">cd /boot
mkinitcpion -p linux</pre><br />
<b>Manuelno mountovanje LVM particije</b><br />
<br />
Ponekad je nužno ručno mountovati particiju, sa običnim je to lako: <br />
<pre class="brush: shell; wrap-lines: false;">mount /dev/sda4 /mnt/arch</pre><br />
Ali to ne pali kod LVM particija. <br />
<br />
sa <br />
<pre class="brush: shell; wrap-lines: false;">pvs</pre><br />
saznajemo ime VG i na koje PV su u VG <br />
<br />
Recimo sa se VG zove VolGroup00, zatim sa: <br />
<pre class="brush: shell; wrap-lines: false;">lvdisplay /dev/VolGroup00</pre><br />
izlistamo LV na VG <br />
<br />
Kad smo se odlučili koju LV (LogVol00 u primeru) ćemo mountovati radimo: <br />
<pre class="brush: shell; wrap-lines: false;">vgscan --mknodes
lvchange -a y /dev/VolGroup00/LogVol00
mount /dev/VolGroup00/LogVol00 /mnt/lvm</pre>aurelije@gmail.comhttp://www.blogger.com/profile/14414712184569814512noreply@blogger.com0tag:blogger.com,1999:blog-29226980.post-75651480160868698392011-09-18T14:02:00.001+02:002011-09-21T00:26:48.964+02:00Logical volume manager - LVMLVM je način da linux dobije particije koje se mogu lako širiti i skupljati. Osim toga moguće je raditi apstrakciju diskova i particija, zgodno za sistem sa puno diskova. Nad LVM se često kombinuje sa softverskim RAID-om i enkripcijom.<br />
<br />
Pre nego što nastavimo dalje moramo defisati osnovne pojmove.<br />
<br />
<b>Physical volume - PV</b><br />
Disk ili particija diska koja je određena da se priključi u LVM. Particija treba da je tipa 8e Odnosno Linux/LVM. Pravi se npr. preko disk partition alata cfdisk ili fdisk.<br />
<br />
<b>Volume groupe - VG</b><br />
VG je apstrakcija između PV i LV (niže opisano). VG je nešto kao disk van LVM rečnika. Razlika je što se VG može sastojati od više diskova/particija tj. phisical volume-a. VG se potom deli na logical volume-e. <br />
<br />
<b>Logical volume - LV</b><br />
Predstavlja ono što se u van LVM zove particijom. VG se izdeli na više LV. Pri tom se veličina LV odredi tako da se ne iskoristi čitava veličina VG, zato što se kasnije kad se ukaže potreba lako LV poveća ili smanji.<br />
<br />
<b>Pravljenje LVM PV, VG i LV</b><br />
<br />
Ovde ću prikazati način na koji se LVM pravi na Arch Linux-u. Na drugim distribucijama ne bi trebalo da se postupak mnogo razlikuje, komande za LVM su svuda iste.<br />
<br />
Pretpostavka je da smo prethodno napravili LVM particiju i da je ona na /dev/sda4<br />
<br />
Prvo treba proveriti da li je modul za LVM učitan u kernel: <br />
<pre class="brush: shell; wrap-lines: false;">modprobe dm-mod</pre><br />
zatim na particiju koju smo napravili i koja je tipa 8e (LVM) napravimo PV: <br />
<pre class="brush: shell; wrap-lines: false;">pvcreate /dev/sda4
pvdisplay # prikazuje rezultat
</pre><br />
Zatim pravimo VG: <br />
<pre class="brush: shell; wrap-lines: false;">vgcreate VolGroup00 /dev/sda4 # ime izabrati po želji
</pre><br />
Da imamo još PV da dodajemo u VG (osim ovog jednog sa /dev/sda4) radili bi ovo: <br />
<pre class="brush: shell; wrap-lines: false;">vgextend VolGroup00 /dev/sdb1</pre><br />
A zatim na VG pravimo LV po izboru za sve particije koje nam trebaju: <br />
<pre class="brush: shell; wrap-lines: false;">lvcreate -L 10G VolGroup00 -n lvroot # veličina, pripadajuca VG, ime LV
..
</pre><br />
Dalje ukoliko se instalira početi sa instalacijom i tamo stvoriti filesysteme, ako je linux već instaliran onda mora ručno da se prave FS i da se mount-uju. Particije se sad vide preko device mappera pa mesto uobičajenog pristupa sa /dev/sda[x] referišemo se na njih u obliku:<br />
<pre class="brush: shell; wrap-lines: false;">/dev/mapper/VG00-lvroot
</pre><br />
Za file system na LV preporučujem EXT4 eventualno EXT3. Ta dva sistema se mogu povećavati a da ih nije potrebno umount-ovati nego je direktno - online moguće promeniti veličinu naviše. ReiserFS nije moguće smanjivati.<br />
<br />
Napomena: na LVM je moguće staviti sve linux particije. Ali ukoliko se koristi Grub 1 nije moguće imati boot particiju na LVM, osim ako nije Grub patchovan da to podrži (takav je Red Hatov). Grub 2 trebalo bi da podržava boot particiju na LVM. Swap particija zahteva drugačiju komandu za kreiranje LV da se prostor tog LV-a ne bi raspršio po disku/diskovima već da bi bio iz jednog dela. Pri tom se mnogi žale da kad dođe do popunjavanja swap-a LVM se zaglavi pa se preporučuje da swap bude van LVM. Mada, kad se swap popuni i na običnoj particiji linux se zaglupi...aurelije@gmail.comhttp://www.blogger.com/profile/14414712184569814512noreply@blogger.com0tag:blogger.com,1999:blog-29226980.post-57697948852322270172011-09-02T08:01:00.002+02:002011-09-02T09:50:51.425+02:00IBM Lotus Notes on Ubuntu: invalid character in revision numberFew days ago I needed to upgrade Lotus Notes 8.5.1 to 8.5.2 fixpack 2. IBM provides .deb packages and .sh scripts for smart upgrade.<br />
<br />
Upgrading to 8.5.2 version passed without any problem, but installing fixpack was problematic. I was getting:<br />
<br />
<pre class="brush: shell; wrap-lines: false;">error in Version string '8.5.2-20110323.0837_FP2': invalid character in revision number</pre><br />
I have found a solution reading this <a href="http://www-10.lotus.com/ldd/nd85forum.nsf/c6054cf2ea498b338525733900559bd1/4864ef72b45dd6108525785b000c7662?OpenDocument">post</a> at Lotus forum but that post is too much bare. So I am giving a full explanation on how to solve this problem.<br />
<br />
The problem is in "_" character in control file that is part of .deb package. Also file paths with that character in .deb package makes a problem. So we need to unpack .deb file, edit control file, change file paths and pack it again in .deb file:<br />
<br />
<pre class="brush: shell; wrap-lines: false;"># make directory wiht same name as package but without extension
mkdir ibm_lotus_notes_fixpack-8.5.2.i586
# unpack .deb file in that directory
cp ibm_lotus_notes_fixpack-8.5.2.i586.deb ibm_lotus_notes_fixpack-8.5.2.i586
cd ibm_lotus_notes_fixpack-8.5.2.i586
ar x ibm_lotus_notes_fixpack-8.5.2.i586.deb
rm ibm_lotus_notes_fixpack-8.5.2.i586.deb
# we need to put content of control.tar.gz into DEBIAN directory which is subdirectory of ibm_lotus_notes_fixpack-8.5.2.i586
mkdir DEBIAN
mv control.tar.gz DEBIAN
cd DEBIAN
tar -xvf control.tar.gz
rm control.tar.gz
# now we need to edit control file end delete "_" character from Version: using favorite editor
nano control
# now we should extract data.tar.gz and remove "_" from file path
cd ..
tar xvf data.tar.gz
rm data.tar.gz
cd opt/ibm/lotus/notes
mv fixpack_20110323.0837_FP2/ fixpack_20110323.0837FP2/
# set root owner to the files and pack files into .deb package
cd ../../../../
sudo chown -R root.root .
cd ..
dpkg-deb -b ibm_lotus_notes_fixpack-8.5.2.i586/
</pre>IBM has tradition of braking fixpacks for Ubuntu. This explanation works on any fixpack you just need to adjust file names, but logic is the same.aurelije@gmail.comhttp://www.blogger.com/profile/14414712184569814512noreply@blogger.com0tag:blogger.com,1999:blog-29226980.post-56890871823692744002011-08-24T21:55:00.000+02:002011-08-24T21:55:03.315+02:00Учиться, учиться и еще раз учиться!Stanford je objavio nekoliko programa učenja na koja se možete besplatno prijaviti.<br />
<br />
Machine Learning:<br />
<a href="http://www.ml-class.com/">http://www.ml-class.com/</a><br />
Artificial intelligence: <br />
<a href="http://www.ai-class.com/">http://www.ai-class.com/</a><br />
DB:<br />
<a href="http://www.db-class.com/">http://www.db-class.com/</a><br />
<br />
I za kraj par finih webinara za JPA i Spring:<br />
<a href="http://javapassion.com/portal/webinar/webinar">http://javapassion.com/portal/webinar/webinar</a><br />
<br />
aurelije@gmail.comhttp://www.blogger.com/profile/14414712184569814512noreply@blogger.com0tag:blogger.com,1999:blog-29226980.post-25234679197890234702011-06-25T11:48:00.004+02:002013-07-10T15:16:08.082+02:00Besplatni časopisiIzbor 10 besplatnih online časopisa koji zavređuju pažnju, ukoliko znate neki koji nije na spisku oplemenite me :)<br />
<br />
<h2>
<span class="Apple-style-span" style="font-weight: normal;">JAX Magazine </span></h2>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://jaxenter.com/assets/150/0/JAX-Magazine-2013-05.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://jaxenter.com/assets/150/0/JAX-Magazine-2013-05.png" /></a></div>
<br />
Java magazin sa aktuelnim tekstovima<br />
<br />
<span class="Apple-style-span" style="font-weight: normal;"><a href="http://jaxenter.com/jax-magazine">http://jaxenter.com/jax-magazine</a></span><br />
<br />
<h2>
<span class="Apple-style-span" style="font-weight: normal;">Libre</span></h2>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://libre.lugons.org/wp-content/uploads/2012/06/libre_01_naslovna.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="226" src="https://libre.lugons.org/wp-content/uploads/2012/06/libre_01_naslovna.png" width="320" /></a></div>
<br />
<br />
Domaći časopis o slobodnom softweru još uvek u povoji :)<br />
<br />
Link: <a href="https://libre.lugons.org/">https://libre.lugons.org/</a><br />
<br />
<br />
<h2>
<span class="Apple-style-span" style="font-weight: normal;">BSD magazine</span></h2>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://bsdmag.org/system/editions/photo1s/1741/medium/NanoBSD_and_ALIX_BSD_06_201.jpg?1306937677" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="http://bsdmag.org/system/editions/photo1s/1741/medium/NanoBSD_and_ALIX_BSD_06_201.jpg?1306937677" width="230" /></a></div>
<br />
za sve BSD-ovce uključujući i MAC OSX-ovce. Deluje zanimljivo jer se dosta tekstova može primeniti i na linux. Imaju i napredne tekstove npr. o GIS-ovima i Cloud computing-u.<br />
<br />
Link: <a href="http://bsdmag.org/">http://bsdmag.org/</a> <br />
<br />
<br />
<h2>
<span class="Apple-style-span" style="font-weight: normal;">PCLinuxOS Magazine</span></h2>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.pclosmag.com/images/2011/June/June2011-452x350.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="247" src="http://www.pclosmag.com/images/2011/June/June2011-452x350.png" width="320" /></a></div>
<br />
<br />
Magazin koji pokriva jednu od boljih i laganijih distribucija linux sistema. Ima tesktove o linux softveru.<br />
<br />
Link: <a href="http://pclosmag.com/">http://pclosmag.com/</a><br />
<br />
<br />
<h2>
<span class="Apple-style-span" style="font-weight: normal;">FullCircle Magazine</span></h2>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://dl.fullcirclemagazine.org/cover/50/en.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="http://dl.fullcirclemagazine.org/cover/50/en.jpg" width="320" /></a></div>
<br />
<br />
Slično ko prethodni samo za najpolularnijji distro sadašnjice: Ubuntu<br />
<br />
Link: <a href="http://fullcirclemagazine.org/">http://fullcirclemagazine.org/</a><br />
<br />
<br />
<h2>
<span class="Apple-style-span" style="font-weight: normal;">Open Source Journal</span></h2>
<br />
Žestoki softverski časopis za koji pišu svetske face, vrlo ozbiljan i kvalitetan<br />
<br />
Link: <a href="http://opensource-central.com/downloads.php">http://opensource-central.com/downloads.php</a> (za 3. broj treba ručno dodati .pdf)<br />
<br />
<h2>
<span class="Apple-style-span" style="font-weight: normal;">FYI</span></h2>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://croz.net/var/corporate_site/storage/images/o_nama/fyi_by_croz/fyi_by_croz_broj_10_svibanj_2011/9373-1-cro-HR/fyi_by_croz_broj_10_svibanj_2011_fyi_left.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="http://croz.net/var/corporate_site/storage/images/o_nama/fyi_by_croz/fyi_by_croz_broj_10_svibanj_2011/9373-1-cro-HR/fyi_by_croz_broj_10_svibanj_2011_fyi_left.jpg" width="240" /></a></div>
<br />
Ovo je for your information domaći časopis koji izlazi 2 put godšnje. Ima šarene teme iz enterprise programiranja i sistema, novosti sa tržišta itd. Vezan je za kompaniju koja ga izdaje ali uglavnom ne zamara s tim previše pa je zgodan i za šire narodne mase.<br />
<br />
Link: <a href="http://croz.net/index.php/hrv/download">http://croz.net/index.php/hrv/download</a><br />
<br />
<h2>
<span class="Apple-style-span" style="font-weight: normal;">Overload</span></h2>
<br />
Časopis koji je preporučio Vlada Stanković. Radi se o ozbiljnom časopisu za softverske inženjere i programere, najsličniji je Open Source Journal-u.<br />
<br />
Link: <a href="http://accu.org/index.php/journals/c78/">http://accu.org/index.php/journals/c78/</a><br />
<br />
<h2>
<span class="Apple-style-span" style="font-weight: normal;">Methods and Tools - Software development magazine</span></h2>
<br />
Programming, Software Testing, Project Management, Jobs. Časopis koji dosta piše o alatima koji pomažu razvoj kao i o metodologijama i testiranju. Vrlo je praktičan, izlazi na 3 meseca a postoji još od '99.<br />
<br />
Link: <a href="http://www.methodsandtools.com/mt/download.php">http://www.methodsandtools.com/mt/download.php</a><br />
<br />
<h2>
<span class="Apple-style-span" style="font-weight: normal;">PragPub</span></h2>
<br />
Časopis koji izlazi mesečno od The Pragmatic Bookshelf-a čije knjige obožavam jer su zabavne i sveže. Tako je i ovaj časopis namenjen cutting edge tehnologijama. Nema tu nekih starig i teških tema, nema tu nekog enterprise kenjanja, već Scala, Ruby, Clojure, Cloud... Savršen časopis za studente IT-a koji treba da gledaju u budućnost i sve one koji žele da ostanu na valu IT napretka.<br />
<br />
Link: <a href="http://pragprog.com/magazines/">http://pragprog.com/magazines/</a><br />
<br />
<h2>
<span class="Apple-style-span" style="font-weight: normal;">Java Magazine</span></h2>
<b><br /></b>
Ozbiljan časopis koji izdaje Oracle a u kojem se obrađuje javin ekosistem.<br />
<br />
Link: <a href="http://www.oracle.com/technetwork/java/javamagazine/index.html">http://www.oracle.com/technetwork/java/javamagazine/index.html</a><b><br /></b>aurelije@gmail.comhttp://www.blogger.com/profile/14414712184569814512noreply@blogger.com2tag:blogger.com,1999:blog-29226980.post-20333966830334959762010-12-30T21:28:00.001+01:002011-01-01T16:30:36.321+01:00K/Ubuntu i Windows 7 poređenjeOvih dana sam dobio laptop sa instaliranim Win7. Bio je to povratak korenima (sad će me prozivati win ovisnici) jer je ipak 3.11 moj prvi OS :) Ali isto tako XP je bio poslednji a sa njima nisam imao dodir od 2007. godine.<br />
<br />
Utisci su pomešani. Win nije ružan OS. Task bar je promenjen, više nije tako lako primetiti program koji vam treba jer se ne ispisuju imena, ali bar deluje preglednije, no samo dok se ne otvori više instanci istog programa jer tad radi grupisanje. Očigledno je takav pristup iznuđen nepostojanjem više desktopa.<br />
<br />
Tako dođosmo do prve stvari za koju mi se čini da je Linux bolji: postojanje više desktopa. Mislio sam da je moguće srediti problem instalacijom dodataka. Čini mi se da je čak u XP postojao Power Toys dotatak za to... No više ga nema, a programe iz drugih izvora nisam stavljao jer sam u komentarima viđao da uzrokuju nestabilnost.<br />
<br />
Druga stvar koja me je nervirala a koju sam rešio je zamena z i y u layoutu za naš jezik. Kubuntu ima za svaki jezik više layouta. Npr. za našu latinicu ima postavka koja imitira ćirilicu tj. jednom tipkom se dobijaju digrafi nj, lj i dž. Takođe ima i layout u kojem su y i z na istom mestu kao i na US layoutu. Takvu postavku koristim i u latinici i u ćirilici. Srećom uz probanje 2 programčića problem je rešen.<br />
<br />
Windows je bolji kod instalacije nekih IBM programa. Neke od njih nije ni moguće koristiti na linux-u, neke je moguće ali treba da se čovek pomuči... <strike>VMWare Player je takođe lakše instalirati, s obzirom na to da je za najnoviji kernel potrebno patchovati distribuciju.</strike> Problem sa Playerom je ispravljen u verziji 3.1.3 :D. No sve su to vlasnički programi, ili se moraju kupiti ili se moraš pomučiti da se prijaviš i ručno skidaš instalaciju (što je u linuxu krajnje neobično) za razliku od npr. VirtualBox-a koji radi savršeno. <br />
<br />
Po pitanju resursa... Linux tu dere Win-a. Prvo Win ne vidi više od 3 giga rama. Nešto sam tražio po netu, znam da ima PAE (physical address extension) za win, mislio sam da je to ugrađeno podrazumevano. Ipak komp koji imam je došao sa licenciranim win-om i to najnovijim i to Professional verzijom. Očekivao sam da vidi svu memoriju sa kojom je komp isporučen... Toliko sam verovao da nije do win-a da sam čačkao po netu, video neke 3 opcije koje se dodaju prosleđuju kernelu kod boot-a na MS sajtu. Ali su objašnjenja bila štura. Osim toga pročitao sam da je moguće da grafička uzima giga rama, te sam ne želeći da krivim win okrivio grafičku.<br />
<br />
Međutim kad sam na isti komp stavio Ubuntu videlo se da nije do grafičke. I dalje mi nije jasno kako je Linux toliko "pametniji" da sam instalira PAE kernel i vidi svih 4 giga a win ne? Koji je smisao da neko prodaje komp sa 4 giga a da se sa jednim možeš slikati?<br />
<br />
I to nije kraj. Na win-u sam terao VMWare image, a image ima gomilu servisa na sebi (uključujući 3 klastera). Image sam pojede preko 3 giga. Zato sam morao da u winu skrešem sve što se skresati da: uključim max performance u Advanced System Settings (i time dobijem win95 lnf), pogasim sve što čuči u SysTray-u, pogasim sve programe osim VMWare Player-a, čak i neke servise koji su mi nepotrebni sam gasio. I opet Win posle boot-a uzme oko 900 MB! Toliku memoriju a ne radi ništa...<br />
<br />
Za poređenje: <br />
1) moj Kubuntu uzme 814 MB pri tome: u pitanju je 64-bitna verzija koja inače troši više, podignut je KDE4 najglomazniji GUI od svih GUI-a u lin svetu, radi Akregator (rss čitač), radi Okular (učitana 2 pdf file), pokrenuto 3 deskopa, pokrenut twitter klijent, pokrenut clipboard menadžer, otvoren command prompt, otvoren file menadžer, podignut PostgresSQL ORDMS, DynamicDNS client, apache http server, ssh server, peerguardian ;), applet koji pokazuje vremensku prognozu i mnoge druge stvari kojih klot win nema. <br />
2) Ubuntu 32-bit: troši 360 MB sa upaljenim chat i twitter klijentom, 4 desktopa i Firefoxom u kojem pišem ovaj tekst :) On sam troši preko 60 MB. <br />
<br />
Dakle račun je jasan: 300MB od 4GB >> 900MB od 3GB. Na ovu informaciju treba dodati i činjenicu da linux mnogo bolje upravlja memorijom i procesima (nema zakovanu poziciju u fizičkoj memoriji u koju učitava biblioteke, duplo manji mu je deo memorije rezervisan za kernel) da bi priča bila potpuna.<br />
<br />
Na kraju mogu reći da mi je drago što sam ponovo došao u kontakt sa Win-om i uvideo sve njegove prednosti i mane. Imao sam priliku da direktno i merljivo uporedim 2 sistema i izvučem koliko-toliko nepristrasne zaključke. Eto da me ne bi zvali linux zilotom. A upravo me tako zovu MS ziloti. Kažem MS a ne win jer su svi oni profesionalno upleteni u win i njegovo okruženje: razni MS Office korisnici, VB i C# programeri, SQL server admini... Nikad nisam čuo java programera da toliko brani win jer java programer ničim nije vezan za MS okruženje, naprotiv što više napreduje u java mastera to se više druži sa unixoidima.aurelije@gmail.comhttp://www.blogger.com/profile/14414712184569814512noreply@blogger.com2tag:blogger.com,1999:blog-29226980.post-76057304195161654672010-10-13T09:40:00.000+02:002010-10-13T09:40:26.560+02:00If Operating Systems Ran The Airlines...If Operating Systems Ran The Airlines...<br />
<br />
UNIX Airways<br />
<br />
Everyone brings one piece of the plane along when they come to the airport. They all go out on the runway and put the plane together piece by piece, arguing non-stop about what kind of plane they are supposed to be building.<br />
<br />
Air DOS<br />
<br />
Everybody pushes the airplane until it glides, then they jump on and let the plane coast until it hits the ground again. Then they push again, jump on again, and so on...<br />
<br />
Mac Airlines<br />
<br />
All the stewards, captains, baggage handlers, and ticket agents look and act exactly the same. Every time you ask questions about details, you are gently but firmly told that you don't need to know, don't want to know, and everything will be done for you without your ever having to know, so just shut up.<br />
<br />
Windows Air<br />
<br />
The terminal is pretty and colourful, with friendly stewards, easy baggage check and boarding, and a smooth take-off. After about 10 minutes in the air, the plane explodes with no warning whatsoever.<br />
<br />
Windows NT Air<br />
<br />
Just like Windows Air, but costs more, uses much bigger planes, and takes out all the other aircraft within a 40-mile radius when it explodes.<br />
<br />
Windows XP Air<br />
<br />
You turn up at the airport,which is under contract to only allow XP Air planes. All the aircraft are identical, brightly coloured and three times as big as they need to be. The signs are huge and all point the same way. Whichever way you go, someone pops up dressed in a cloak and pointed hat insisting you follow him. Your luggage and clothes are taken off you and replaced with an XP Air suit and suitcase identical to everyone around you as this is included in the exorbitant ticket cost. The aircraft will not take off until you have signed a contract. The inflight entertainment promised turns out to be the same Mickey Mouse cartoon repeated over and over again. You have to phone your travel agent before you can have a meal or drink. You are searched regularly throughout the flight. If you go to the toilet twice or more you get charged for a new ticket. No matter what destination you booked you will always end up crash landing at Whistler in Canada.<br />
<br />
Linux Air<br />
<br />
Disgruntled employees of all the other OS airlines decide to start their own airline. They build the planes, ticket counters, and pave the runways themselves. They charge a small fee to cover the cost of printing the ticket, but you can also download and print the ticket yourself.<br />
<br />
When you board the plane, you are given a seat, four bolts, a wrench and a copy of the seat-HOWTO.html. Once settled, the fully adjustable seat is very comfortable, the plane leaves and arrives on time without a single problem, the in-flight meal is wonderful. You try to tell customers of the other airlines about the great trip, but all they can say is, "You had to do what with the seat?"<br />
<br />
Izvor: <a href="http://ubuntuforums.org/">UbuntuForums</a>aurelije@gmail.comhttp://www.blogger.com/profile/14414712184569814512noreply@blogger.com3tag:blogger.com,1999:blog-29226980.post-31275802594584701262010-10-12T13:15:00.002+02:002010-10-13T10:20:46.674+02:00#ubuntu channel dijalog :)Danas sam radio upgrade KUbunta 10.04 na 10.10 pa sam napravio par grešaka i trebala mi je pomoć. Najlakše je do pomoći stići preko irc.freenode.net na #ubuntu kanalu. Pomoć sam dobio :) Ali ono što mi je bilo zanimljivo je sledeći dijalog:<br />
<br />
<blockquote>[12:21] malicai: Thanks, I'll go there and never use ubuntu again, it deleted most of my porn anyways, cya all, thanks again!<br />
[12:22] liquid: Malici, porn means little in the grand scheme</blockquote><br />
:))))aurelije@gmail.comhttp://www.blogger.com/profile/14414712184569814512noreply@blogger.com0tag:blogger.com,1999:blog-29226980.post-63975747346891865722010-10-09T16:59:00.001+02:002010-10-09T17:03:41.797+02:00Ubuntu, scalability, java i bazeNisam pisao duže vreme pa se nakupilo dosta dobrog materijala kojeg bi podelio sa vama.<br />
<br />
Sutra je veliki dan za linux jer izlazi xUbuntu 10.10, već godinama najpopularnija distribucija linuxa. Zato vam predstavljem <a href="http://www.pcworld.com/businesscenter/article/207283/12_reasons_to_try_ubuntu_1010_now.html?tk=mod_rel">12 razloga zašto da ga instalirate</a>. A ime sledećeg izdanja (11.04) će biti Natty Narwhal <br />
<br />
Ako ste se odlučili za instaliranje novog Ubuntu-a tekst <a href="http://www.unixmen.com/linux-distributions/4-ubuntu/1158-top-things-to-do-after-installing-ubuntu-1010-marevick-meerkat">Top things to do after installing Ubuntu 10.10 Maverick Meerkat</a> će vam biti od pomoći<br />
<br />
<a href="http://net.tutsplus.com/articles/general/9-ways-to-instantly-code-faster/">9 Ways to Instantly Code Faster</a>, kako poraditi na svojoj produktivnosti u IT poslovima<br />
<br />
<a href="http://www.webspeaks.in/2010/09/7-most-useful-regular-expression.html ">7 Most Useful Regular Expression Snippets</a>, gotovi regexi za različite prilike<br />
<br />
<a href="http://ksat.me/map-reduce-a-really-simple-introduction-kloudo/">Map Reduce: A really simple introduction</a>, bez linije koda na vrlo lak način objašnjen algoritam koji se danas koristi svuda gde je potrena skalabilnost <br />
<br />
<a href="http://www.juhonkoti.net/2010/09/25/example-how-to-model-your-data-into-nosql-with-cassandra">Example how to model your data into nosql with cassandra</a>, za one koji su bili na predavanju koje je organizovala Scalability grupa i kojima se dopalo Dedino predavanje o Cassandra-i. Prikazan je način na koji bi se modelovali podaci za chat aplikaciju. <br />
<br />
<a href="http://www.jasonwhaley.com/an_array_of_reasons_to_not_use_arrays_in_java ">An Array of Reasons to not use Arrays in Java</a>, koji su problemi sa Array klasom i zašto dati prednost Collection implementacijama<br />
<br />
<a href="http://hamletdarcy.blogspot.com/2010/09/mockito-pros-cons-and-best-practices.html">Mockito - Pros, Cons, and Best Practices</a>, tekst o alatu za pravljenje Mock objekata pri testiranju sistema<br />
<br />
<a href="http://viralpatel.net/blogs/2010/06/tutorial-spring-3-mvc-introduction-spring-mvc-framework.html ">Spring 3 MVC</a>, tutorijal o Spring-ovim klasama za web programiranje<br />
<br />
<a href="http://java.dzone.com/articles/android-101-basics ">Android 101: The Basics</a>, serija tekstova o programiranju za Android. Trenutno je izašlo 2 nastavka<br />
<br />
<a href="http://www.turnleafdesign.com/log4j-4-enterprise ">Log4j Enterprise</a>, tekst o upotrebi najpoznatije biblioteke za logovanje u java svetu<br />
<br />
DB blok:<br />
<br />
<a href="http://codeutopia.net/blog/2010/10/07/optimizing-sql-removing-queries-inside-loops/">Optimizing SQL: Removing queries inside loops Hibernate hard facts</a><br />
<br />
<a href="http://www.infoq.com/articles/hibernate_tuning">Revving Up Your Hibernate Engine</a>, fino podešavanja hibernate-a<br />
<br />
<a href="http://www.sql-tutorial.ru/en/content.html">SQL Problems and solutions</a>, SQl napredni tutorijal<br />
<br />
<a href="http://blog.frankel.ch/hibernate-hard-facts-part-1">Hibernate hard facts</a>, najčešče greške u radu sa Hibernate-omaurelije@gmail.comhttp://www.blogger.com/profile/14414712184569814512noreply@blogger.com0tag:blogger.com,1999:blog-29226980.post-87633984887332738722010-09-30T20:52:00.001+02:002010-09-30T20:56:02.113+02:00Vreme je za LinuxGodinama ranije su izlazili tekstovi koji su se pitali da li je ovo godina<br />
linux-a ili predviđali da će naredna to biti. I svi su omašili :) Iako<br />
isključivo koristim linux već godinama mogu reći da je pitanje godine linux-a<br />
stvar prošlosti. Linux je tu među nama i više nije nikakav stranac kog čekamo da<br />
se pojavi. Pogledajte IT oglase. Uopšte nije neuobičajeno da se u njima kao<br />
jedna od stavki pominje i linux. Web programiranje je usko vezano s njim. Uz<br />
programiranje na java platformi često ide linux. Android se ne može zamisliti<br />
bez njega. Kad se doda iPhone i Mac OSX, deca Unix-a nikad nisu bila bliža nama.<br />
<br />
U narednih mesec dana očekuju nas dve velike premijere. Prvo 10.10.'10.<br />
izlazili Ubuntu i drugari u verziji 10.10 :) I ne samo da se igra na foru<br />
poklapanja datuma i verzije, nego kad se verzija pročita binarno dobija se čista<br />
desetka! Taman kad se uhodamo sa Ubuntom a ono već početkom novembra pojaviće se<br />
drugi linux div: Fedora 14.<br />
<br />
Šta nam donosi novi Ubuntu pročitajte u izveštaju: <a href="http://www.linux.com/learn/tutorials/366627-ubuntu-1010-preview-steady-progress-for-maverick">Ubuntu 10.10 Preview: Steady Progress for Maverick</a> <br />
<br />
Par linkova za linux početnike:<br />
<a href="http://www.fortystones.com/40-linux-related-terminologies/">40 Must Know Linux Terminologies</a> <br />
<br />
<a href="http://www.fortystones.com/40-basic-linux-command-line-tips-tricks/">40 Basic Linux Command-line Tips and Tricks</a> <br />
<br />
<a href="http://www.fortystones.com/40-linux-shell-commands-beginners/">40 Linux Shell Commands for Beginners</a> <br />
<br />
Hm, moram priznati da ni sam ne znam sve ove komande i trikove :)<br />
<br />
Za napredne pingvine prilažem tekst o 6 one linera: <a href="http://www.thegeekstuff.com/2010/09/linux-one-liners/">http://www.thegeekstuff.com/2010/09/linux-one-liners/</a><br />
<br />
Kako da instalirate sopstveni DNS i time smanjite tromost interneta: <a href="http://codefui.com/system/setting-up-and-using-bind-part-one ">Setting up and Using Bind</a>. Ja sam probao i mogu odmah da vam kažem da nije sve kao u tekstu. Fajlovi se na Ubuntu nalaze na drugoj lokaciji i ne postoji jedan conf fajl za BIND već je on podeljen. Ali da se sve srediti :)<br />
<br />
Izašao je Ubuntu 10.10 RC i njegovi drugari pa ih testirajte dok ne izađu finalne verzije: <a href="https://wiki.ubuntu.com/MaverickMeerkat/TechnicalOverview ">https://wiki.ubuntu.com/MaverickMeerkat/TechnicalOverview<br />
</a><br />
A za one koji razmišljaju da instaliraju Linux od nule nek pogledaju <a href="http://www.ubuntugeek.com/pinguy-os-10-04-1-2-released-and-review-included.html">PinguyOS</a>, Ubuntu koji je fino ispoliran.aurelije@gmail.comhttp://www.blogger.com/profile/14414712184569814512noreply@blogger.com2tag:blogger.com,1999:blog-29226980.post-64860404257260248662010-09-29T14:26:00.001+02:002010-09-29T17:28:27.038+02:00The state of JavaStephen Colebourne je u tekstu <a href="http://www.jroller.com/scolebourne/entry/the_next_big_jvm_language1">The next big JVM language</a> izneo nekoliko vrlo zanimljivih opaski i ideja. Prvo se kritički osvrće na javu i nabraja šta u njoj ne valja i na osnovu toga postavlja kriterijume za savršeni JVM jezik. Potom prolazi kroz sve nove JVM jezike i ocenjuje ih na osnovu postavljenih kriterijuma. Na kraju zaključuje da ni jedan jezik ne zadovoljava sve kriterijume.<br />
<br />
To ga dovodi do ideje da ne treba tražiti novi jezik već popraviti samu javu. Tolika popravka bi svakako značila raskid kompatibilnosti sa ranijim kodom. Ali Colebourne predlaže upotrebu konvertora koda, nešto što je već primenjeno u Pythonu :)<br />
<br />
Jedna od njegovih kritka jave su Exception klase koje ne nasleđuju RuntimeException (tzv. checked exceptions). U tekstu <a href="http://www.jroller.com/scolebourne/entry/checked_exceptions_bijava">Checked exceptions</a> dalje razrađuje tezu<br />
<br />
U vezi sa ovim je i tekst <a href="http://www.skill-guru.com/blog/2010/09/26/foir-those-naysayers-who-say-java-will-be-dead/">For those naysayers who say Java will be dead…</a>, u kojem se tvrdi<br />
<br />
<blockquote>Java will be the money-maker for cloud computing over the next few years.</blockquote><br />
i to pokazuje najnovijom pohvalom Oracle-a da je oborio rekord u performansama na svom Exalogic Elastic Cloud. Takođe se pominje i VMWare koji se sve više fokusira na javu i javine tehnologije kupovinom Spring frameworka. Izgleda da će to biti dobro i za Groovy i Grails. Oba su vlasništvo VMWara preko Springa, a Grail za razliku od sličnih projekata (Rails, Django) koristi JVM i Spring tehnologiju. Spring već sad nudi svoj framework spakovan sa Tomcate-om napucanim do nivoa app servera i sve to cloud ready! <br />
<br />
Side by side poređenje Jave EE 6 i Springa 3.0. Java EE se tek u poslednje 2 verzije pronalazi i kreće putem koji je Spring utabao mnogo, mnogo pre. Zato se procenjuje da broj korisnika Springa mnogostruko nadmašuje broj korisnika EE: <a href="http://javafootsteps.blogspot.com/p/java-ee-6-and-spring-30.html ">Java EE 6 and Spring 3.0</a><br />
<br />
<a href="http://www.infoworld.com/d/developer-world/infoworld-review-top-java-programming-tools-191?page=0,0">Top Java programming tools</a>, pregled 4 razvojna okruženja za javu, njihova ocena i poređenje <br />
<br />
<a href="http://solitarygeek.com/java/netbeans-and-maven-a-quick-start-guide">NetBeans and Maven – A quick start guide</a>, u slici i reči, autor je čitajući istu knjigu kao i ja prošao kroz isto iskustvo :)<br />
<br />
Oracle je usvojio plan B za Javu 7. Dakle odustaje se od nekih ranije najavljivanih dodataka za Javu 7 ali se zato ne pomera njen izlazak: <a href="http://www.baptiste-wicht.com/2010/09/jdk-7-features-updated-plan-b-is-apparently-here/">http://www.baptiste-wicht.com/2010/09/jdk-7-features-updated-plan-b-is-apparently-here/</a><br />
<br />
Takođe i za Javu ME se predstavljaju planovi. Tu je Java najviše ugrožena od strane Googlovog Androida, pa sve sevaju varnice između ove 2 kompanije, sa sve tužbom Oracla i Googlovim bojkotovanjem JavaOne konferencije: <a href="http://www.theregister.co.uk/2010/09/26/mobile_java_oracle/">Oracle finally outlines roadmap for mobile Java</a>aurelije@gmail.comhttp://www.blogger.com/profile/14414712184569814512noreply@blogger.com0tag:blogger.com,1999:blog-29226980.post-22674058344152496952010-09-28T18:05:00.000+02:002010-09-28T18:05:09.260+02:00Bazno o bazamaObjašnjenje u slici, reči i tabelama šta su indeksi, čemu služe i kako da znamo na koju kolonu da ih postavimo u tekstu: <a href="http://www.kylescousin.com/2010/09/an-absolute-beginners-introduction-to-database-indexes/ ">An Absolute Beginner’s Introduction to Database Indexes</a> <br />
<br />
Na istom blogu se nalazi i objašnjenje šta je B-tree indeks pomenut u prethodnom postu: <a href="http://www.kylescousin.com/2010/09/a-simple-explanation-on-how-b-tree-database-indexes-work/">A Simple Explanation on How B-Tree Database Indexes Work</a><br />
<br />
Pisao sam o korišćenju connection pool-a u Tomcat-u. U toku razvoja se vrlo često mesto Tomcat-a koristi Jetty, a kako se u njemu koristi connection pool i kako se podešava možete pročitati na: <a href="http://docs.codehaus.org/display/JETTY/DataSource+Examples">http://docs.codehaus.org/display/JETTY/DataSource+Examples</a><br />
<br />
Pošto se Jetty uglavnom korisiti u Maven-u preko plugin-a, pročitajte kako da podesite DataSource za tu priliku: <a href="http://java.dzone.com/articles/jetty-maven-plugin-running">http://java.dzone.com/articles/jetty-maven-plugin-running</a><br />
<br />
Šta se dešava sa db transakcijama ako se bazi ne pristupa direktno JDBC-om već preko JPA u tekstu <a href="http://blog.dynatrace.com/2010/09/14/week-38-transactions-in-a-jpa-world/">Transactions in a JPA World</a>aurelije@gmail.comhttp://www.blogger.com/profile/14414712184569814512noreply@blogger.com0tag:blogger.com,1999:blog-29226980.post-67334615700072168072010-09-27T17:25:00.002+02:002010-09-27T17:34:49.930+02:00U slavu naše profesijePeter Denning u tekstu <a href="http://www.americanscientist.org/issues/id.10402,y.2010,no.5,content.true,page.1,css.print/issue.aspx">The Great Principles of Computing</a> koji je napisan za American Scientist razmatra mesto i ulogu računarstva i infromatike. Njegova misao je da infromatika i računarstvo može predstavljati jednu od četiri osnovne oblasti nauke: <blockquote>Computing may be the fourth great domain of science along with the physical, life and social sciences</blockquote>Zato budimo ponosni na našu profesiju :)<br />
<br />
12 stvari koje svaki programer treba da zna, brzo, kratko i tačno:<br />
<div style="width:425px" id="__ss_5284200"><object id="__sse5284200" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=12thingseveryprogrammer-100925065120-phpapp01&stripped_title=12-things-every-programmer-should-know&userName=samnang.chhun" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed name="__sse5284200" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=12thingseveryprogrammer-100925065120-phpapp01&stripped_title=12-things-every-programmer-should-know&userName=samnang.chhun" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object></div><br />
Ovo pokazuje kako naša profesija nije ni malo naivna ;)aurelije@gmail.comhttp://www.blogger.com/profile/14414712184569814512noreply@blogger.com0tag:blogger.com,1999:blog-29226980.post-19405639661481369642010-09-27T16:46:00.001+02:002013-11-17T10:51:33.104+01:00Projektni obrasci i principiJohn Lindquist je došao na genijalnu ideju kako da objasni projeknte obrasce (design patterns) preko screencasta. Upotrebio je analogiju sa igricom StarCraft da pokaže razlog za upotrebu obrazaca. Potom je u screencastu krenuo da rešava razlog na klasičan način i time ukaže na problem, a potom nudi rešenje u obrascu. Fantastično očigledno. Ovo bi trebalo emitovati na Projektovanju softvera na FON-u :) Za sada je opisao 5 obrazaca: <a href="http://johnlindquist.blogspot.com/search/label/design%20patterns">http://johnlindquist.blogspot.com/search/label/design%20patterns</a><br />
<br />
Kad smo kod obrazaca, evo jednog prostog a vrlo korisnog, pri tom nije toliko poznat jer ne pripada grupi GOF pattern-a: <a href="http://thoughts.inphina.com/2010/09/13/duplicate-code-introduce-null-object/">Null object pattern</a> <br />
<br />
Dobar sajt sa opisom GOF obrazaca kao i projektnih principa na kojima svi obrasci počivaju: <a href="http://www.oodesign.com/">http://www.oodesign.com/</a>aurelije@gmail.comhttp://www.blogger.com/profile/14414712184569814512noreply@blogger.com0tag:blogger.com,1999:blog-29226980.post-76301593546491911822010-09-26T20:05:00.002+02:002010-10-09T00:22:36.771+02:00Vim - imperatorPročitao sam jedan izuzetan tekst o Vim editoru. Do tada sam razmišljao o njemu kao arhaičnom editoru iz doba monohromatskih monitora i rada iz konzole, te da je za editovanje bolje koristiti editor sa GUI-om (moja višegodišnja pretraga za dobrim editorom se završila sa <a href="http://www.jedit.org">jEdit-om</a>). A ako je potrebno nešto editovati iz konzole tu je MC, nano i joe editor.<br />
<br />
Izgleda da je uz vežbu moguće jako produktivno koristiti vim editor, daleko produktivnije nego druge koji se koriste mišom, eventualno sa par shortcutova i prolaskom kroz menije preko mnemonika sa tastature. Podešavanjem i instaliranjem dodataka može se svašta uraditi sa Vim-om. Pri tom se troši malo resursa (za razliku od jEdita :)) a stabilnost garantuje to što se Vim razvija skoro 20 godina! <br />
<br />
Naravno, editor je samo editor. IDE će za neke zadatke ipak biti daleko lakše za korišćenje. No znanje rada sa Vim-om i tu se može iskoristiti. Jer svaki dobri IDE i editor mora da ima Vim mode. Tako je u Eclipse, NetBeans, IDEA, čak i jEdit ima vi plugin :)<br />
<br />
Tekst koji me je potakao na sve ovo: <a href="http://stevelosh.com/blog/2010/09/coming-home-to-vim/">Coming Home to Vim</a><br />
Još dobirh tekstova o Vimu:<br />
<a href="http://nvie.com/posts/how-i-boosted-my-vim/">How I boosted my Vim</a><br />
<a href="http://www.pixelbeat.org/vim.tips.html">Essential Vim</a><br />
<a href="http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html">Graphical vi-vim Cheat Sheet and Tutorial</a><br />
<a href="http://naleid.com/blog/2010/10/04/vim-movement-shortcuts-wallpaper/">Vim Movement Shortcuts Wallpaper</a>aurelije@gmail.comhttp://www.blogger.com/profile/14414712184569814512noreply@blogger.com0tag:blogger.com,1999:blog-29226980.post-91894115758642406562010-09-23T14:18:00.002+02:002013-12-07T10:29:42.035+01:00Ćirilični slobodni fontovi<a href="http://www.tipometar.org/aktuelno/akcija!/AdamantBG/img/02XL.gif" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="320" src="http://www.tipometar.org/aktuelno/akcija!/AdamantBG/img/02XL.gif" width="274" /></a>Ako vam se čini da nema dovoljno lepih ćiriličnih fontova ili vam je dosadilo da se naša slova p i t u kurzivu ćirilicom ispisuju kao ruska, postoji rešenje! Poslužite se sa 8 naših ćiriličnih fontova koja su potpuno slobodni za korišćenje:<br />
<br />
<br />
<a href="http://www.tipometar.org/aktuelno/akcija!/ResavskaBG/Index.html">Resavska BG</a><br />
<a href="http://www.tipometar.org/aktuelno/akcija!/ResavskaBGSans/Index.html">Resavska BG Sans</a><br />
<a href="http://www.tipometar.org/aktuelno/akcija!/AdamantBG/Index.html">Adamant BG</a><br />
<a href="http://www.tipometar.org/aktuelno/akcija!/NeoplantaBG/Index.html">Neoplanta BG</a><br />
<a href="http://www.tipometar.org/aktuelno/akcija!/LovelyBG/Index.html">Lovely BG</a><br />
<a href="http://www.tipometar.org/aktuelno/akcija!/PlatanBG/Index.html">ПЛАТАН БГ</a><br />
<a href="http://www.tipometar.org/aktuelno/akcija!/NiokiBG/Index.html">Ниоки БГ</a><br />
<a href="http://www.tipometar.org/aktuelno/akcija!/AdamantSansBG/Index.html">Адамант Санс БГ</a><br />
<br />
Fontovi su tesitrani na mom linuxu uveženi u OpenType obliku<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.tipometar.org/aktuelno/akcija!/ResavskaBG/img/02.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.tipometar.org/aktuelno/akcija!/ResavskaBG/img/02.gif" /></a></div>
aurelije@gmail.comhttp://www.blogger.com/profile/14414712184569814512noreply@blogger.com1