<?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>Alex. Burlacu &#8211; Acasă</title>
	<atom:link href="https://alex.burlacu.org/feed" rel="self" type="application/rss+xml" />
	<link>https://alex.burlacu.org/</link>
	<description></description>
	<lastBuildDate>Wed, 22 Mar 2023 19:47:37 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://alex.burlacu.org/wp-content/uploads/2015/07/logo_alex_burlacu-50x50.jpg</url>
	<title>Alex. Burlacu &#8211; Acasă</title>
	<link>https://alex.burlacu.org/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>ChatGPT în terminalul Linux? Da, de ce nu?</title>
		<link>https://alex.burlacu.org/shellgpt-chat-gpt-ai.html</link>
					<comments>https://alex.burlacu.org/shellgpt-chat-gpt-ai.html#respond</comments>
		
		<dc:creator><![CDATA[alex]]></dc:creator>
		<pubDate>Wed, 22 Mar 2023 19:44:24 +0000</pubDate>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tehnologie]]></category>
		<category><![CDATA[Terminal]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[ChatGPT]]></category>
		<category><![CDATA[ChatGPT linux terminal]]></category>
		<category><![CDATA[GPT-3]]></category>
		<category><![CDATA[GPT-3.5]]></category>
		<category><![CDATA[IA]]></category>
		<category><![CDATA[linux terminal]]></category>
		<category><![CDATA[OpenAI]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[python3]]></category>
		<category><![CDATA[ShellGPT]]></category>
		<category><![CDATA[ShellGPT Linux]]></category>
		<guid isPermaLink="false">https://alex.burlacu.org/?p=5191</guid>

					<description><![CDATA[După ce a stat mai bine de zece ani cu capul la cutie (în urma unor încercări destul de jenante), din mirajul revoluțiilor/apocalipselor (în funcție de partea baricadei din care privim), pe lângă multivers, NFT și crypto, AI revine pe micile și mai puțin micile ecrane cu un mai vechi termen (nou de data asta), [&#8230;]]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;">După ce a stat mai bine de zece ani cu capul la cutie (în urma unor încercări destul de jenante), din mirajul revoluțiilor/apocalipselor (în funcție de partea baricadei din care privim), pe lângă multivers, NFT și crypto, AI revine pe micile și mai puțin micile ecrane cu un mai vechi termen (nou de data asta), <a href="https://chat.openai.com/chat" target="_blank" rel="noopener">ChatGPT</a> și ale sale variante alternative :D.</p>
<p style="text-align: justify;">A trecut ceva vreme de când a ajuns un termen din lumea tehnologiei să acapareze atât de mult interes, fie că vorbim de copii de școală generală sau prim-siniștri, companii mai mari sau mai mici din zona tehnologiei sau controlori de bilete STB.</p>
<p style="text-align: justify;">Nu mă apuc acum să povestesc despre ce știe și cum știe să facă <a href="https://chat.openai.com/chat" target="_blank" rel="noopener">ChatGPT</a>, s-a auzit destul despre el, chiar și eu l-am <a href="https://alex.burlacu.org/chatgpt-ar-putea-deveni-prietenul-hackerilor.html" target="_blank" rel="noopener">menționat</a>, dar ca utilizator de GNU/Linux, m-a gâdilat la neuron ideea de a avea acces la jucărie din terminalul meu.</p>
<p style="text-align: justify;">Și aici intră în discuție <a href="https://github.com/TheR1D/shell_gpt" target="_blank" rel="noopener">ShellGPT</a>, acesta aducând funcționalitatea <a href="https://chat.openai.com/chat" target="_blank" rel="noopener">ChatGPT </a>în terminalul utilizatorului. Cu <a href="https://github.com/TheR1D/shell_gpt" target="_blank" rel="noopener">ShellGPT</a> poți accesa API-ul <a href="https://chat.openai.com/chat" target="_blank" rel="noopener">ChatGPT</a> într-um mod frumos și eficient, direct în consolă, într-un mod pur &#8220;linuxistic&#8221;. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p style="text-align: justify;">Acum că povestea are un început, să vedem cine este <a href="https://github.com/TheR1D/shell_gpt/graphs/contributors" target="_blank" rel="noopener">ShellGPT</a> și cum putem să îl folosim pentru a rula <a href="https://chat.openai.com/chat" target="_blank" rel="noopener">ChatGPT</a> în terminalul Linux.</p>
<p style="text-align: justify;"><a href="https://github.com/TheR1D/shell_gpt/graphs/contributors" target="_blank" rel="noopener">ShellGPT</a> este dezvoltat de Farkhod Sadykov (împreună cu Eric, Loïc Coyle și Ernesto Serrano), încercând să devină o versiune stabilă de <a href="https://chat.openai.com/chat" target="_blank" rel="noopener">ChatGPT</a> în linie de comandă. Este bazat pe noul model <a href="https://en.wikipedia.org/wiki/GPT-3" target="_blank" rel="noopener">LLM (large language model)</a> al GPT-ului produs de <a href="https://openai.com/" target="_blank" rel="noopener">OpenAI</a>.</p>
<p style="text-align: justify;">Odată conectat la API-ul de la ChatGPT, ShellGPT știe să ofere sugestii, recomandări și chiar să execute comenzi în terminal în baza cerințelor utilizatorului, iar o altă parte faină este că e capabil să învețe din interacțiunea cu maimuța de la tastatură suficient cât să-și îmbunătățească rezultatele în timp. De ce este mișto? Păi având în terminal toată lucrarea, utilizatorul nu mai are nevoie să folosească copy/paste <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> și nici să învețe atât de utilele comenzi care l-ar putea ajuta, fiind suficient să scrie cam ce ar vrea să se întâmple, apoi să lase &#8220;roboțelul&#8221; să-i și ruleze comanda în terminal. Da, este din categoria &#8220;Nu încercați acasă!&#8221; adaptat la &#8220;Nu încercați în producție!&#8221; dar am o vagă bănuială că acest concept își va găsi suficienți fani.</p>
<p style="text-align: justify;">Instalarea ShellGPT nu este foarte complicată, cu puțină răbdare și o doză de noroc (alături de câteva pachete necesare a fi instalate înainte) ShellGPT poate fi &#8220;pus pe picioare&#8221; relativ rapid.</p>
<p style="text-align: justify;">Primul pe lista lucrurilor necesare pentru a putea folosi ShellGPT este Python iar versiunea trebuie să fie minim 3. Cum mai toate distribuțiile vin deja cu cel puțin o versiune de python instalată și aceasta este de cele mai multe ori bazată pe versiunea 3, dar ca să ne asigurăm că e versiunea activă, e mai sănătos să verificăm:</p>
<p style="text-align: justify;">
<pre class="qoate-code">python3 --version</pre>
</p>
<p><img fetchpriority="high" decoding="async" class="aligncenter size-full wp-image-5194" src="https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-1.png" alt="shellgpt" width="677" height="490" srcset="https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-1.png 677w, https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-1-300x217.png 300w, https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-1-50x36.png 50w" sizes="(max-width: 677px) 100vw, 677px" /></p>
<p style="text-align: justify;">Dacă această comandă dă orori sau afișează ceva (mult) diferit de poză&#8230; e posibil să nu fie Python 3 instalat sau să avem parte de vreo instanță modificată.</p>
<p style="text-align: justify;">Avem Python, trecem mai departe. Următorul pe listă este Pip. Pip este un manager de pachete pentru Python cu ajutorul căruia se pot instala pachete și librării utile în diverse momente, cum ar fi în cazul nostru cele necesare aducerii la viață al ChatGPT în sistemul nostru Linux. Din nou, în mai toate distribuțiile moderne vine preinstalat, dacă nu este deja prezent, trebuie pus. Pentru Debian și ale sale versiuni derivate comanda este:</p>
<p style="text-align: justify;">
<pre class="qoate-code">sudo apt-get -y install python3-pip</pre>
</p>
<p><img decoding="async" class="aligncenter size-full wp-image-5195" src="https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-2.png" alt="shellgpt" width="674" height="481" srcset="https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-2.png 674w, https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-2-300x214.png 300w, https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-2-50x36.png 50w" sizes="(max-width: 674px) 100vw, 674px" /></p>
<p style="text-align: justify;">După ce termina, verificăm că e instalat cu comanda:</p>
<p style="text-align: justify;">
<pre class="qoate-code">pip3 --version</pre>
</p>
<p><img decoding="async" class="aligncenter size-full wp-image-5196" src="https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-3.png" alt="shellgpt" width="677" height="484" srcset="https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-3.png 677w, https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-3-300x214.png 300w, https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-3-50x36.png 50w" sizes="(max-width: 677px) 100vw, 677px" /></p>
<p style="text-align: justify;">Următorul punct pe listă, deși nu este neapărat necesar pentru a putea instala ShellGPT, este <em>venv</em>. Cu acest modul de Python se pot face medii virtuale izolate care reduc cantitatea și intensitatea durerilor de cap care pot apărea atunci când ne jucăm cu pachete sau librării diverse, mai ales când testăm lucruri noi. Așadar, <em>venv</em>:</p>
<p style="text-align: justify;">
<pre class="qoate-code">sudo apt install python3-venv</pre>
</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-5197" src="https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-4.png" alt="" width="668" height="483" srcset="https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-4.png 668w, https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-4-300x217.png 300w, https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-4-50x36.png 50w" sizes="auto, (max-width: 668px) 100vw, 668px" /></p>
<p style="text-align: justify;">Din acest moment ne putem apuca pe îndelete de instalarea și configurarea ShellGPT pe mașina proprie.</p>
<p style="text-align: justify;">Ca ShellGPT să poată funcționa avem nevoie de o cheie API de la OpenAI ca să putem accesa ChatGPT. OpenAI oferă pentru testare un credit de 5 USD, pentru acces, după consumarea celor 5 dolari &#8220;ie pe bani, da merită&#8221; <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> așadar, primul pas este să intrăm pe site-ul <a href="https://platform.openai.com/overview" target="_blank" rel="noopener">OpenAI</a> pentru a face un cont și apoi să ne autentificăm. Odată autentificat, din colțul din dreapta, sus, clic pe imaginea de profil și apoi selectăm opțiunea &#8220;View API keys&#8221; din meniu.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-5198" src="https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-5.png" alt="" width="287" height="382" srcset="https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-5.png 287w, https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-5-225x300.png 225w, https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-5-38x50.png 38w" sizes="auto, (max-width: 287px) 100vw, 287px" /></p>
<p style="text-align: justify;">Această opțiune ne duce pe pagina în care putem vedea ce chei pentru API au fost generate și putem genera alte chei.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-5199" src="https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-6.png" alt="shellgpt" width="832" height="530" srcset="https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-6.png 832w, https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-6-300x191.png 300w, https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-6-768x489.png 768w, https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-6-50x32.png 50w" sizes="auto, (max-width: 832px) 100vw, 832px" /></p>
<p style="text-align: justify;">Odată ajuns aici, butonul de generat o cheie nouă este vizibil în zona centrală. Cheia odată generată trebuie copiată/salvată undeva pentru a fi folosită mai târziu.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-5200" src="https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-7.png" alt="shellgpt" width="887" height="676" srcset="https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-7.png 887w, https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-7-300x229.png 300w, https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-7-768x585.png 768w, https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-7-50x38.png 50w" sizes="auto, (max-width: 887px) 100vw, 887px" /></p>
<p style="text-align: justify;">Acum că avem dependințele instalate și o cheie pentru API deja generată, să instalăm ShellGPT.</p>
<p style="text-align: justify;">Facem un director nou ca să ne organizăm mai util fișierele, de exemplu <em>&#8220;term-gpt&#8221;</em> și ne mutăm în el.</p>
<p style="text-align: justify;">
<pre class="qoate-code">mkdir term-gpt
cd term-gpt</pre>
</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-5201" src="https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-8.png" alt="" width="667" height="483" srcset="https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-8.png 667w, https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-8-300x217.png 300w, https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-8-50x36.png 50w" sizes="auto, (max-width: 667px) 100vw, 667px" /></p>
<p style="text-align: justify;">Aici facem un mediu virtual pentru modulul nostru, eu l-am numit <em>&#8220;gpt_cli&#8221;.</em></p>
<p style="text-align: justify;">
<pre class="qoate-code">python3 -m venv gpt_cli</pre>
</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-5202" src="https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-9.png" alt="" width="660" height="475" srcset="https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-9.png 660w, https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-9-300x216.png 300w, https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-9-50x36.png 50w" sizes="auto, (max-width: 660px) 100vw, 660px" /></p>
<p style="text-align: justify;">Dacă nu primim nici o eroare, putem trece la pasul următor, activarea acestui mediu virtual. În urma acestei comenzi vom vedea că suntem acum în mediul virtual, în partea stângă avem numele ales anterior.</p>
<p style="text-align: justify;">
<pre class="qoate-code">source gpt_cli/bin/activate</pre>
</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-5203" src="https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-10.png" alt="shellgpt" width="664" height="483" srcset="https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-10.png 664w, https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-10-300x218.png 300w, https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-10-50x36.png 50w" sizes="auto, (max-width: 664px) 100vw, 664px" /></p>
<p style="text-align: justify;">Acum trebuie creată o variabilă de sistem în care vom seta cheia pentru API-ul ChatGPT pe care am făcut-o pe site-ul OpenAI. Pentru asta folosim comanda <em>&#8220;export&#8221;.</em></p>
<p style="text-align: justify;">
<pre class="qoate-code">export OPENAI_API_KEY=&lt;cheia_mea_API_OpenAI&gt;</pre>
</p>
<p style="text-align: justify;">Apoi verificăm cu comanda <em>&#8220;env&#8221;</em> că a ajuns corect.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-5204" src="https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-11.png" alt="shellgpt" width="669" height="483" srcset="https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-11.png 669w, https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-11-300x217.png 300w, https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-11-50x36.png 50w" sizes="auto, (max-width: 669px) 100vw, 669px" /></p>
<p style="text-align: justify;">Această variabilă de sistem este acum setată numai pentru sesiunea curentă, iar cum eu aș vrea să o am permanent setată, o voi adăuga și în fișierul .bashrc din directorul <em>/home/userul-meu</em> pentru a o face persistentă. Folosim un editor de text pentru asta și adăugăm aceeași comandă de mai sus, de preferat la finalul fișierului.</p>
<p style="text-align: justify;">Salvat, ieșit din editor, încărcăm variabilele din .bashrc cu comanda <em>&#8220;source&#8221;</em> (din directorul /<em>home/userul-meu</em>).</p>
<p style="text-align: justify;">
<pre class="qoate-code">source .bashrc</pre>
</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-5205 size-full" src="https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-12.png" alt="shellgpt" width="663" height="487" srcset="https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-12.png 663w, https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-12-300x220.png 300w, https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-12-50x37.png 50w" sizes="auto, (max-width: 663px) 100vw, 663px" /></p>
<p style="text-align: justify;">verificăm încă odată cu <em>&#8220;env&#8221;.</em></p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-5204" src="https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-11.png" alt="shellgpt" width="669" height="483" srcset="https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-11.png 669w, https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-11-300x217.png 300w, https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-11-50x36.png 50w" sizes="auto, (max-width: 669px) 100vw, 669px" /></p>
<p style="text-align: justify;">Iar acum putem instala ShelGPT.</p>
<p style="text-align: justify;">
<pre class="qoate-code">pip3 install shell-gpt</pre>
</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-5206" src="https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-13.png" alt="shellgpt" width="672" height="486" srcset="https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-13.png 672w, https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-13-300x217.png 300w, https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-13-50x36.png 50w" sizes="auto, (max-width: 672px) 100vw, 672px" /></p>
<p style="text-align: justify;">În cazul în care nu folosiți mediul virtual e bine să adăugați și userul sub care va rula, adăugând comenzii de mai sus și parametrul <em>&#8220;&#8211;user&#8221;.</em></p>
<p style="text-align: justify;">Mno, amu avem ShellGPT instalat pe instanța de Linux.<br />
Ca să începem să-l folosim, rulăm comanda <em>&#8220;sgpt&#8221;.</em></p>
<p style="text-align: justify;">
<pre class="qoate-code">sgpt &lt;opțiuni&gt; &lt;ce_vreau_sa_l_intreb&gt;</pre>
</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-5208" src="https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-15.png" alt="shellgpt" width="671" height="490" srcset="https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-15.png 671w, https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-15-300x219.png 300w, https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-15-50x37.png 50w" sizes="auto, (max-width: 671px) 100vw, 671px" /></p>
<p style="text-align: justify;">Opțiunile care pot fi adăugate pentru a îmbunătăți (sau nu) căutările se regăsesc în tabelul de mai jos.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-5207" src="https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-14.png" alt="shellgpt" width="836" height="358" srcset="https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-14.png 836w, https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-14-300x128.png 300w, https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-14-768x329.png 768w, https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-14-50x21.png 50w" sizes="auto, (max-width: 836px) 100vw, 836px" /></p>
<p style="text-align: justify;">Și acum ne putem distra. De exemplu, care e distanța de la Pământ la Lună?</p>
<p style="text-align: justify;">Folosind parametrii de mai sus îl putem aduce în modul chat folosing parametrul <em>&#8220;&#8211;chat&#8221;.</em></p>
<p style="text-align: justify;">
<pre class="qoate-code">sgpt --chat &lt;un_nume_pentru_sesiunea_chat&gt; &lt;întrebarea_mea_incredibilă&gt;</pre>
</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-5209" src="https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-16.png" alt="" width="672" height="482" srcset="https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-16.png 672w, https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-16-300x215.png 300w, https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-16-50x36.png 50w" sizes="auto, (max-width: 672px) 100vw, 672px" /></p>
<p style="text-align: justify;">Altă opțiune utilă este <em>&#8220;&#8211;code&#8221;.</em></p>
<p style="text-align: justify;">
<pre class="qoate-code">sgpt --code "&lt;problema_mea&gt;"</pre>
</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-5210" src="https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-17.png" alt="shellgpt" width="673" height="477" srcset="https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-17.png 673w, https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-17-300x213.png 300w, https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-17-50x35.png 50w" sizes="auto, (max-width: 673px) 100vw, 673px" /></p>
<p style="text-align: justify;">Și ceea ce va deveni probabil noua normalitate în a da comenzi în terminale linux <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> opțiunea <em>&#8220;&#8211;shell&#8221;.</em></p>
<p style="text-align: justify;">
<pre class="qoate-code">sgpt --shell "&lt;o_comandă_inteligentă&gt;"</pre>
</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-5211" src="https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-18.png" alt="shellgpt" width="670" height="484" srcset="https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-18.png 670w, https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-18-300x217.png 300w, https://alex.burlacu.org/wp-content/uploads/2023/03/shellgpt-18-50x36.png 50w" sizes="auto, (max-width: 670px) 100vw, 670px" /></p>
<p style="text-align: justify;">Dar nu vă speriați&#8230; e ca bancul cu prezentarea de Windows95&#8230; nu va rula direct <em>&#8220;rm -rf /&#8221;</em> ci doar va afișa comanda.<br />
Dacă am încredere (și vă recomand să nu o faceți direct), mai e nevoie de parametrul <em>&#8220;&#8211;execute&#8221;</em> ca să se și întâmple. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p style="text-align: justify;">Și așa intrăm în secolul XXI. Acum putem rula în același terminal și căutările pe google și/sau stackoverflow <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /><br />
Revin la recomandarea de la început, nu folosiți roboțeii AI (și aici includ oricare dintre ei, fără discriminare) în medii de producție, pe servere sau calculatoare care au date importante pentru voi sau firma la/pentru care lucrați.<br />
Și nu introduceți date reale, cod sau lucruri care nu vă doriți să ajungă pe internet, pentru că e mai bine să fii prevăzător decât să regreți când îți găsești rezultatele muncii la liber pe net.</p>
<p style="text-align: justify;">
]]></content:encoded>
					
					<wfw:commentRss>https://alex.burlacu.org/shellgpt-chat-gpt-ai.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ChatGPT ar putea deveni prietenul hackerilor</title>
		<link>https://alex.burlacu.org/chatgpt-ar-putea-deveni-prietenul-hackerilor.html</link>
					<comments>https://alex.burlacu.org/chatgpt-ar-putea-deveni-prietenul-hackerilor.html#respond</comments>
		
		<dc:creator><![CDATA[alex]]></dc:creator>
		<pubDate>Thu, 05 Jan 2023 15:56:57 +0000</pubDate>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[Tehnologie]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[ChatGPT]]></category>
		<category><![CDATA[Cybernews]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[inteligenta artificiala]]></category>
		<category><![CDATA[tehnologie]]></category>
		<guid isPermaLink="false">https://alex.burlacu.org/?p=5142</guid>

					<description><![CDATA[Și dacă toată lumea îl laudă și dă exemple de cum ar putea fi folosit, echipa de cercetare de la Cybernews a descoperit că ChatGPT ar putea fi folosit de exemplu pentru a oferi hackerilor instrucțiuni pas cu pas despre cum să pirateze site-urile web.]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;">În ultima perioadă <a href="https://chatgptonline.net/" target="_blank" rel="noopener">ChatGPT</a> a devenit subiect preferat de discuții în multe locuri, provocând un pic de &#8220;zgomot&#8221; datorită capacității sale de a răspunde la întrebări, de a cere, urmări și de a învăța din greșelile sale.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-5143" src="https://alex.burlacu.org/wp-content/uploads/2023/01/ai-1024x768.jpg" alt="" width="580" height="435" srcset="https://alex.burlacu.org/wp-content/uploads/2023/01/ai-1024x768.jpg 1024w, https://alex.burlacu.org/wp-content/uploads/2023/01/ai-300x225.jpg 300w, https://alex.burlacu.org/wp-content/uploads/2023/01/ai-768x576.jpg 768w, https://alex.burlacu.org/wp-content/uploads/2023/01/ai-1536x1152.jpg 1536w, https://alex.burlacu.org/wp-content/uploads/2023/01/ai-1200x900.jpg 1200w, https://alex.burlacu.org/wp-content/uploads/2023/01/ai-50x38.jpg 50w, https://alex.burlacu.org/wp-content/uploads/2023/01/ai-320x240.jpg 320w, https://alex.burlacu.org/wp-content/uploads/2023/01/ai.jpg 1600w" sizes="auto, (max-width: 580px) 100vw, 580px" /></p>
<p style="text-align: justify;">Și dacă toată lumea îl laudă și dă exemple de cum ar putea fi folosit, echipa de cercetare de la <a href="https://cybernews.com/" target="_blank" rel="noopener">Cybernews</a> a descoperit că ChatGPT ar putea fi folosit de exemplu pentru a oferi hackerilor instrucțiuni pas cu pas despre cum să pirateze site-urile web.</p>
<p style="text-align: justify;">Folosind platforma de instruire pentru securitate cibernetică <a href="https://www.hackthebox.com/" target="_blank" rel="noopener">Hack the Box</a>, cercetătorii l-au întrebat pe bot cum ar testa vulnerabilitățile unui site web într-un scenariu ipotetic de &#8220;penetration testing&#8221; (știu sună frumos și în română). Răspunsul ChatGPT , a venit cu cinci puncte de plecare de bază pentru ceea ce ar trebui să inspecteze pe site-ul web pentru a căuta vulnerabilități. Explicând ceea ce au văzut în codul sursă, cercetătorii au primit apoi sfatul AI cu privire asupra căror părți ale codului să se concentreze. Au primit, de asemenea, exemple de modificări sugerate de cod. După aproximativ 45 de minute de conversație cu botul, cercetătorii au reușit să pirateze site-ul de test.</p>
<p style="text-align: justify;">Botul le-a reamintit cercetătorilor despre liniile directoare de hacking etic împreună cu sugestiile sale și a avertizat despre pericolele executării comenzilor rău intenționate. Și, da, ca în cazul oricărui motor de căutare, trebuie să știți ce întrebări să puneți pentru a obține rezultate utile. Dar cercetarea evidențiază potențialul ca instrumentele AI să fie utilizate de actorii amenințărilor, precum și de dezvoltatori și echipele de securitate.</p>
<p style="text-align: justify;">„Chiar dacă am încercat ChatGPT cu o sarcină de testare a pătrunderii relativ necomplicată, acesta arată potențialul de a ghida mai mulți oameni cu privire la modul de a descoperi vulnerabilități care ar putea, mai târziu, să fie exploatate de mai mulți indivizi, iar acest lucru lărgește considerabil peisajul amenințărilor. Regulile jocului s-au schimbat, așa că întreprinderile și guvernele trebuie să se adapteze la el”, spune șeful echipei de cercetare, Mantas Sasnauskas.</p>
<p style="text-align: justify;">Mai multe detalii puteți găsi pe <a href="https://cybernews.com/security/hackers-exploit-chatgpt/" target="_blank" rel="noopener">cybernews</a></p>
<p>Imaginea vine de la <a href="https://free-vectors.net/technology/artificial-intelligence-writing-code" target="_blank" rel="noopener">free-vectors.net</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://alex.burlacu.org/chatgpt-ar-putea-deveni-prietenul-hackerilor.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Fix rapid pentru &#8221; The following signatures couldn&#8217;t be verified because the public key is not available: NO_PUBKEY 78BD65473CB3BD13&#8243;</title>
		<link>https://alex.burlacu.org/fix-rapid-pentru-the-following-signatures-couldnt-be-verified-because-the-public-key-is-not-available-no_pubkey-78bd65473cb3bd13.html</link>
					<comments>https://alex.burlacu.org/fix-rapid-pentru-the-following-signatures-couldnt-be-verified-because-the-public-key-is-not-available-no_pubkey-78bd65473cb3bd13.html#respond</comments>
		
		<dc:creator><![CDATA[alex]]></dc:creator>
		<pubDate>Wed, 14 Jul 2021 19:29:02 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Terminal]]></category>
		<category><![CDATA[78BD65473CB3BD13]]></category>
		<category><![CDATA[apt-key]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[NO_PUBKEY]]></category>
		<category><![CDATA[NO_PUBKEY 78BD65473CB3BD13]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<guid isPermaLink="false">https://alex.burlacu.org/?p=5135</guid>

					<description><![CDATA[La fel cum refrenul unei piese proaste îți rămâne în cap zile în șir după ce ai auzit melodia la radioul unui taximetrist oprit la semafor, actualizările sistemelor Debian/Ubuntu/ș.a.m.d au capacitatea să te scoată din starea de zen, bineînțeles, atunci când îți dorești mai puțin. Iar când vine vorba despre repo-urile de la Google, aceste [&#8230;]]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;">La fel cum refrenul unei piese proaste îți rămâne în cap zile în șir după ce ai auzit melodia la radioul unui taximetrist oprit la semafor, actualizările sistemelor Debian/Ubuntu/ș.a.m.d au capacitatea să te scoată din starea de zen, bineînțeles, atunci când îți dorești mai puțin.</p>
<p style="text-align: justify;">Iar când vine vorba despre repo-urile de la Google, aceste probleme par a avea un ciclu aproape anual <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p style="text-align: justify;">Cum mi s-a arătat mie în seara asta să verific actualizările unui server, nu mi-am pus bine sucul al cărui nume nu ai voie să-l pomenești în pahar, și văd minunatul mesaj:</p>
<p style="text-align: justify;"><code lang="bash">Err:5 http://dl.google.com/linux/mod-pagespeed/deb stable Release.gpg<br />
The following signatures couldn't be verified because the public key is not av                ailable: NO_PUBKEY 78BD65473CB3BD13</code></p>
<p style="text-align: justify;"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-5137" src="https://alex.burlacu.org/wp-content/uploads/2021/07/78BD65473CB3BD13.png" alt=" NO_PUBKEY 78BD65473CB3BD13" width="651" height="56" srcset="https://alex.burlacu.org/wp-content/uploads/2021/07/78BD65473CB3BD13.png 651w, https://alex.burlacu.org/wp-content/uploads/2021/07/78BD65473CB3BD13-300x26.png 300w, https://alex.burlacu.org/wp-content/uploads/2021/07/78BD65473CB3BD13-50x4.png 50w" sizes="auto, (max-width: 651px) 100vw, 651px" /></p>
<p style="text-align: justify;">Deși m-am obișnuit (parțial, recunosc) cu problemele de genul acesta, am o secundă în care-mi sare pulsul înainte de a da un import nou, așa că dau o căutare prin minunatele resurse ale internetului mare înainte de a importa din nou cheile&#8230; Acum, pentru că mi-am amintit de o problemă asemănătoare de acum vreo patru &#8211; cinci ani, am fost mult mai relaxat.</p>
<p style="text-align: justify;">Așa că după o (foarte) scurtă verificare&#8230; am importat cheia cu probleme:</p>
<p style="text-align: justify;"><code lang="bash"># apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 78BD65473CB3BD13</code></p>
<p style="text-align: justify;">și gata, problem solved <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p style="text-align: justify;"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-5138" src="https://alex.burlacu.org/wp-content/uploads/2021/07/apt-key.png" alt=" apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --re cv-keys 78BD65473CB3BD13" width="665" height="182" srcset="https://alex.burlacu.org/wp-content/uploads/2021/07/apt-key.png 665w, https://alex.burlacu.org/wp-content/uploads/2021/07/apt-key-300x82.png 300w, https://alex.burlacu.org/wp-content/uploads/2021/07/apt-key-50x14.png 50w" sizes="auto, (max-width: 665px) 100vw, 665px" /></p>
<p style="text-align: justify;">După asta, la primul <strong><em>sudo apt-get update</em></strong> am scăpat de eroare și am putut să-mi văd mai departe de treabă.</p>
<p style="text-align: justify;">
]]></content:encoded>
					
					<wfw:commentRss>https://alex.burlacu.org/fix-rapid-pentru-the-following-signatures-couldnt-be-verified-because-the-public-key-is-not-available-no_pubkey-78bd65473cb3bd13.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Debian / Ubuntu relocation error, error code (127) după actualizările recente</title>
		<link>https://alex.burlacu.org/debian-ubuntu-relocation-error-error-code-127-dupa-actualizarile-recente.html</link>
					<comments>https://alex.burlacu.org/debian-ubuntu-relocation-error-error-code-127-dupa-actualizarile-recente.html#respond</comments>
		
		<dc:creator><![CDATA[alex]]></dc:creator>
		<pubDate>Wed, 11 Sep 2019 08:07:41 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Terminal]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[error code (127)]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[IDN2_0.0.0 not defined in file libidn2.so.0 with link time reference]]></category>
		<category><![CDATA[libgnutls.so.30]]></category>
		<category><![CDATA[relocation error]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<guid isPermaLink="false">https://alex.burlacu.org/?p=5092</guid>

					<description><![CDATA[Vine o vreme când apar surprize cauzate de actualizări și în zona Debian / Ubuntu. Cea mai recentă surpriză este eroarea de genul: De la asta, module din apache2.4 nu vor mai vrea să funcționeze (modsecurity2 fiind unul dintre ele), curl (și librăriile php-curl) și încă câteva. În majoritatea cazurilor de azi-noapte încoace m-am lovit [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Vine o vreme când apar surprize cauzate de actualizări și în zona Debian / Ubuntu.</p>
<p>Cea mai recentă surpriză este eroarea de genul:</p>
<pre class="qoate-code">relocation error /usr/lib/x86_64-linux-gnu/libgnutls.so.30: symbol _idn2_punycode_decode version IDN2_0.0.0 not defined in file libidn2.so.0 with link time reference</pre>
<p>De la asta, module din apache2.4 nu vor mai vrea să funcționeze (modsecurity2 fiind unul dintre ele), curl (și librăriile php-curl) și încă câteva.</p>
<p>În majoritatea cazurilor de azi-noapte încoace m-am lovit de astfel de erori:</p>
<pre class="qoate-code"> /usr/lib/apt/methods/http: relocation error: /usr/lib/x86_64-linux-gnu/libgnutls.so.30: symbol _idn2_punycode_decode version IDN2_0.0.0 not defined in file libidn2.so.0 with link time reference
/usr/lib/apt/methods/http: relocation error: /usr/lib/x86_64-linux-gnu/libgnutls.so.30: symbol _idn2_punycode_decode version IDN2_0.0.0 not defined in file libidn2.so.0 with link time reference
/usr/lib/apt/methods/http: relocation error: /usr/lib/x86_64-linux-gnu/libgnutls.so.30: symbol _idn2_punycode_decode version IDN2_0.0.0 not defined in file libidn2.so.0 with link time reference
/usr/lib/apt/methods/http: relocation error: /usr/lib/x86_64-linux-gnu/libgnutls.so.30: symbol _idn2_punycode_decode version IDN2_0.0.0 not defined in file libidn2.so.0 with link time reference
/usr/lib/apt/methods/http: relocation error: /usr/lib/x86_64-linux-gnu/libgnutls.so.30: symbol _idn2_punycode_decode version IDN2_0.0.0 not defined in file libidn2.so.0 with link time reference
/usr/lib/apt/methods/http: relocation error: /usr/lib/x86_64-linux-gnu/libgnutls.so.30: symbol _idn2_punycode_decode version IDN2_0.0.0 not defined in file libidn2.so.0 with link time reference
/usr/lib/apt/methods/http: relocation error: /usr/lib/x86_64-linux-gnu/libgnutls.so.30: symbol _idn2_punycode_decode version IDN2_0.0.0 not defined in file libidn2.so.0 with link time reference
/usr/lib/apt/methods/http: relocation error: /usr/lib/x86_64-linux-gnu/libgnutls.so.30: symbol _idn2_punycode_decode version IDN2_0.0.0 not defined in file libidn2.so.0 with link time reference
/usr/lib/apt/methods/http: relocation error: /usr/lib/x86_64-linux-gnu/libgnutls.so.30: symbol _idn2_punycode_decode version IDN2_0.0.0 not defined in file libidn2.so.0 with link time reference
Reading package lists... Done
E: Method http has died unexpectedly!
E: Sub-process http returned an error code (127)
E: Method /usr/lib/apt/methods/http did not start correctly
E: Method http has died unexpectedly!
E: Sub-process http returned an error code (127)
E: Method /usr/lib/apt/methods/http did not start correctly
E: Method http has died unexpectedly!
E: Sub-process http returned an error code (127)
E: Method /usr/lib/apt/methods/http did not start correctly
E: Method http has died unexpectedly!
E: Sub-process http returned an error code (127)
E: Method /usr/lib/apt/methods/http did not start correctly
E: Method http has died unexpectedly!
E: Sub-process http returned an error code (127)
E: Method /usr/lib/apt/methods/http did not start correctly
E: Method http has died unexpectedly!
E: Sub-process http returned an error code (127)
E: Method /usr/lib/apt/methods/http did not start correctly
E: Method http has died unexpectedly!
E: Sub-process http returned an error code (127)
E: Method /usr/lib/apt/methods/http did not start correctly
E: Method http has died unexpectedly!
E: Sub-process http returned an error code (127)
E: Method /usr/lib/apt/methods/http did not start correctly
E: Method http has died unexpectedly!
E: Sub-process http returned an error code (127)
E: Method /usr/lib/apt/methods/http did not start correctly

</pre>
<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-5094" src="https://alex.burlacu.org/wp-content/uploads/2019/09/punycode_decode_version_IDN2_0.0.0_not_defined_in_file_libidn2.so_.0-1024x418.png" alt="punycode_decode_version_IDN2_0.0.0_not_defined_in_file_libidn2.so.0" width="987" height="403" srcset="https://alex.burlacu.org/wp-content/uploads/2019/09/punycode_decode_version_IDN2_0.0.0_not_defined_in_file_libidn2.so_.0-1024x418.png 1024w, https://alex.burlacu.org/wp-content/uploads/2019/09/punycode_decode_version_IDN2_0.0.0_not_defined_in_file_libidn2.so_.0-300x122.png 300w, https://alex.burlacu.org/wp-content/uploads/2019/09/punycode_decode_version_IDN2_0.0.0_not_defined_in_file_libidn2.so_.0-768x313.png 768w, https://alex.burlacu.org/wp-content/uploads/2019/09/punycode_decode_version_IDN2_0.0.0_not_defined_in_file_libidn2.so_.0-938x383.png 938w, https://alex.burlacu.org/wp-content/uploads/2019/09/punycode_decode_version_IDN2_0.0.0_not_defined_in_file_libidn2.so_.0-1309x534.png 1309w, https://alex.burlacu.org/wp-content/uploads/2019/09/punycode_decode_version_IDN2_0.0.0_not_defined_in_file_libidn2.so_.0-50x20.png 50w, https://alex.burlacu.org/wp-content/uploads/2019/09/punycode_decode_version_IDN2_0.0.0_not_defined_in_file_libidn2.so_.0.png 1554w" sizes="auto, (max-width: 987px) 100vw, 987px" /></p>
<p>&nbsp;</p>
<p>Soluția (cel puțin temporară) este următoarea:</p>
<pre class="qoate-code"> # wget http://ftp.us.debian.org/debian/pool/main/libi/libidn2/libidn2-0_2.0.5-1_amd64.deb

# sudo dpkg -i libidn2-0_2.0.5-1_amd64.deb

</pre>
<p>După instalare, un <em>apt-get update &amp;&amp; apt-get upgrade -y</em> ar trebui să rezolve problemele.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://alex.burlacu.org/debian-ubuntu-relocation-error-error-code-127-dupa-actualizarile-recente.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>6 martie &#8211; lansare Păcatele fiului de Theo Anghel</title>
		<link>https://alex.burlacu.org/6-martie-lansare-pacatele-fiului-de-theo-anghel.html</link>
					<comments>https://alex.burlacu.org/6-martie-lansare-pacatele-fiului-de-theo-anghel.html#comments</comments>
		
		<dc:creator><![CDATA[alex]]></dc:creator>
		<pubDate>Sun, 10 Mar 2019 17:58:51 +0000</pubDate>
				<category><![CDATA[Cartile preferate]]></category>
		<category><![CDATA[De-ale mele]]></category>
		<category><![CDATA[Evenimente]]></category>
		<category><![CDATA[AMDF]]></category>
		<category><![CDATA[Carte]]></category>
		<category><![CDATA[Editura Quantum]]></category>
		<category><![CDATA[Editura Quantum publishers]]></category>
		<category><![CDATA[Fantasy]]></category>
		<category><![CDATA[Păcatele fiului]]></category>
		<category><![CDATA[Quantum Publishers]]></category>
		<category><![CDATA[roman]]></category>
		<category><![CDATA[romance]]></category>
		<category><![CDATA[suspans]]></category>
		<category><![CDATA[Theo Anghel]]></category>
		<category><![CDATA[thriller]]></category>
		<guid isPermaLink="false">https://alex.burlacu.org/?p=5041</guid>

					<description><![CDATA[Pasionații de istorie vor găsi probabil legătura din titlu 🙂 dar nu despre Vișinschi vreau să povestesc deși tot despre demoni prezenți pe meleagurile noastre ar putea fi vorba. Așadar, pe 6 martie 2019, intr-o superbă seară de primăvară, la cafeneaua Lente din București intr-una din edițiile săptămânale ale Clubului de lectură “Eu citesc” a [&#8230;]]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;"><span style="font-weight: 400;">Pasionații de istorie vor găsi probabil legătura din titlu <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> dar nu despre Vișinschi vreau să povestesc deși tot despre demoni prezenți pe meleagurile noastre ar putea fi vorba.</span></p>
<p style="text-align: justify;"><span style="font-weight: 400;">Așadar, pe 6 martie 2019, intr-o superbă seară de primăvară, la cafeneaua Lente din București intr-una din edițiile săptămânale ale Clubului de lectură “Eu citesc” a avut loc lansarea celui mai recent volum (cel de-al treilea) al seriei “Păcatele fiului” serie scrisă de Theo Anghel (după mine cea mai tare autoare de literatură fantasy din România), volum despre care se presupune că ar trebui (în stilul plin de suspans, umor și uneori erotism cu care ne-a obișnuit Theo Anghel) -, să aducă lumină în relația dintre Lia și Luca. Mă voi încăpățâna să nu dau spoilere, cărțile acestea chiar merită să fie citite, orice aș spune eu aici ar putea duce la formarea vreunei idei care s-ar putea dovedi greșite la final.</span></p>
<p style="text-align: justify;"><span style="font-weight: 400;">Am reușit să ajung acolo împreună cu Iulia și Bianca (aflată la prima ei lansare de carte, acum dornică să mă însoțească și la alte lansări).</span></p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-5043 size-large" src="https://alex.burlacu.org/wp-content/uploads/2019/03/20190306_184610-1-1024x498.jpg" alt="Lansare Pacatele fiului" width="987" height="480" srcset="https://alex.burlacu.org/wp-content/uploads/2019/03/20190306_184610-1-1024x498.jpg 1024w, https://alex.burlacu.org/wp-content/uploads/2019/03/20190306_184610-1-300x146.jpg 300w, https://alex.burlacu.org/wp-content/uploads/2019/03/20190306_184610-1-768x373.jpg 768w, https://alex.burlacu.org/wp-content/uploads/2019/03/20190306_184610-1-938x456.jpg 938w, https://alex.burlacu.org/wp-content/uploads/2019/03/20190306_184610-1-1309x636.jpg 1309w, https://alex.burlacu.org/wp-content/uploads/2019/03/20190306_184610-1-50x24.jpg 50w" sizes="auto, (max-width: 987px) 100vw, 987px" /></p>
<p style="text-align: justify;"><span style="font-weight: 400;">Lume faină acolo la lansare, sala în care s-au întâmplat lucrurile a devenit destul de repede neîncăpătoare (dacă autorii români ar avea parte de vizibilitatea pe care o merită eu unu’ aș pune o ladă de bere pe masă că o Theo Anghel ar avea nevoie de Sala Palatului pentru lansările sale) iar atmosfera a fost atât de mișto încât după primele minute parea că suntem o gașcă de prieteni adunați să sărbătorim împreună, în avans 8 și 9 martie.</span></p>
<p style="text-align: justify;"><span style="font-weight: 400;">Am avut parte de o recapitulre a întâmplărilor din primele două volume, de o sesiune de întrebări și răspunsur și chiar și o scenetă în care a fost interpretată una dintre scenele cele mai interesante din primul volum. Aici, la faza cu sceneta au cedat probabil și ultimele fețe serioase, felul în care s-a jucat (nu-mi dau seama dacă au avut idee la început de efectul pe care-l va avea sceneta) și felul în care a ieșit totul a transformat momentul într-o adevărată ședință de terapie prin râs.</span></p>
<p style="text-align: justify;"><span style="font-weight: 400;">Probabil că nu are rost să menționez că noaptea care a urmat a fost una albă, acest al treilea volum al Păcatelor fiului ținându-mă treaz și “în priză” de la prima până la ultima pagină.</span></p>
<p style="text-align: justify;"><span style="font-weight: 400;">Nu știu alții cum sunt <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> dar asupra mea cărțile scrise de Theo au același efect pe care-l are George R. R. Martin sau, în copilărie Jules Verne. Așa că deja aștept următoarea carte pe care o va publica Theo, fiind convins că mă va captiva de la prima copertă până la ultima.</span></p>
<p style="text-align: justify;"><span style="font-weight: 400;">Cărțile scrise de Theo Anghel (seria Am Murit Din Fericire, Rochia aurie și de acum trilogia Păcatele fiului) pot fi comandate de la <a href="https://www.quantumpublishers.ro" target="_blank" rel="noopener noreferrer">Editura Quantum Publishers</a>, editură care se încăpățânează să primească autori români tineri (autoarea “tăvălug” Sandra Coroian  &#8211; care scrie un S.F. contra-indicat cardiacilor -, sau Mihaela Strenc &#8211; ale cărei cărți sunt o îmbinare incredibilă de fantasy și sensibilitate, dar și alții care scriu la fel de bine), să le tipărească lucrările și să-i susțină într-o piață în care marile edituri se mulțumesc să traducă autori “consacrați”, mergând pe drumul cu riscuri minime spre profit. </span></p>
<p style="text-align: justify;"><span style="font-weight: 400;">Multumim pentru invitație Theo, cu siguranță vom încerca să-ți fim alături la următoarele lansări <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> .</span></p>
<p style="text-align: justify;">
]]></content:encoded>
					
					<wfw:commentRss>https://alex.burlacu.org/6-martie-lansare-pacatele-fiului-de-theo-anghel.html/feed</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Bash-it &#8211; un framework cu ajutorul căruia îți poti controla aliasurile și scripturile</title>
		<link>https://alex.burlacu.org/bash-it-un-framework-cu-ajutorul-caruia-iti-poti-controla-aliasurile-si-scripturile.html</link>
					<comments>https://alex.burlacu.org/bash-it-un-framework-cu-ajutorul-caruia-iti-poti-controla-aliasurile-si-scripturile.html#respond</comments>
		
		<dc:creator><![CDATA[alex]]></dc:creator>
		<pubDate>Mon, 04 Mar 2019 13:00:57 +0000</pubDate>
				<category><![CDATA[Încearcă!]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Terminal]]></category>
		<category><![CDATA[alias]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[bash framework]]></category>
		<category><![CDATA[Bash-it]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[plugin]]></category>
		<guid isPermaLink="false">https://alex.burlacu.org/?p=5022</guid>

					<description><![CDATA[Bash-it este un pachet de scripturi și comenzi pentru versiuni ale Bash mai noi de 3.2, pachet făcut de comunitatea Bash și care aduce funcții modificate, teme, aliasuri, auto-completarea comenzilor și multe alte lucruri interesante. De asemenea aduce o serie de unelte pentru dezvoltatori, integrări ale unor comenzi pentru git și multe alte scripturi cu [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="https://github.com/Bash-it/bash-it" target="_blank" rel="noopener noreferrer">Bash-it</a> este un pachet de scripturi și comenzi pentru versiuni ale Bash mai noi de 3.2, pachet făcut de comunitatea Bash și care aduce funcții modificate, teme, aliasuri, auto-completarea comenzilor și multe alte lucruri interesante. De asemenea aduce o serie de unelte pentru dezvoltatori, integrări ale unor comenzi pentru git și multe alte scripturi cu ajutorul cărora îți ușurează munca zilnică.</p>
<p><strong>Cum </strong>se<strong> instalează Bash-it în </strong>sistemele<strong> de </strong>operare<strong> GNU/Linux</strong></p>
<p>Pentru a instala Bash-it se clonează în primul rând repo-ul într-o destinație la alegerea utilizatorului:</p>
<pre class="qoate-code">
$ git clone --depth=1 https://github.com/Bash-it/bash-it.git ~/.bash_it
</pre>
<p>Odată clonarea încheiată se rulează următoarea comandă pentru instalare (fișierele ~/.bash_profile sau ~/.bashrc &#8211; în funcție de sistemul de operare folosit vor fi salvate automat)</p>
<pre class="qoate-code">
$ ~/.bash_it/install.sh
</pre>
<p>Veți fi întrebat “Would you like to keep your .bashrc and append bash-it templates at the end? [y/N]”, răspundeți după preferință.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-5029" src="https://alex.burlacu.org/wp-content/uploads/2019/03/bash-it-1.png" alt="" width="789" height="410" srcset="https://alex.burlacu.org/wp-content/uploads/2019/03/bash-it-1.png 789w, https://alex.burlacu.org/wp-content/uploads/2019/03/bash-it-1-300x156.png 300w, https://alex.burlacu.org/wp-content/uploads/2019/03/bash-it-1-768x399.png 768w, https://alex.burlacu.org/wp-content/uploads/2019/03/bash-it-1-50x26.png 50w" sizes="auto, (max-width: 789px) 100vw, 789px" /></p>
<p>Odată instalarea terminată aceasta poate fi verificată cu ajutorul comenzii ls. Fișisrele și directoarele ar trebui să fie afișate.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-5028" src="https://alex.burlacu.org/wp-content/uploads/2019/03/bash-it-2.png" alt="" width="796" height="88" srcset="https://alex.burlacu.org/wp-content/uploads/2019/03/bash-it-2.png 796w, https://alex.burlacu.org/wp-content/uploads/2019/03/bash-it-2-300x33.png 300w, https://alex.burlacu.org/wp-content/uploads/2019/03/bash-it-2-768x85.png 768w, https://alex.burlacu.org/wp-content/uploads/2019/03/bash-it-2-50x6.png 50w" sizes="auto, (max-width: 796px) 100vw, 796px" /></p>
<p><strong>Cum </strong>poate<strong> fi </strong>modificat<strong> Bash-it în Linux</strong></p>
<p>Bash-it poate fi modificat oricând editând fișierul ~/.bashrc.<br />
Pentru a vedea lista aliasurilor, completărilor și modulelor suplimentare instalate și/sau disponibile se pot rula următoarele comenzi (care de asemenea vor indica cum se pot activa și dezactiva):</p>
<pre class="qoate-code">
$ bash-it show aliases
$ bash-it show completions
$ bash-it show plugins
</pre>
<p>Pentru a vedea ce aliasuri sunt active se folosește următoarea comandă:</p>
<pre class="qoate-code">
$ alias
</pre>
<p>Toate aliasurile pot fi găsite în directorul aflat aici: $HOME/.bash_it/aliases/ .<br />
De exemplu, să activăm aliasurile pentru apt:</p>
<pre class="qoate-code">
$ bash-it enable alias apt
</pre>
<p>Reîncărcam apoi Bash-it pentru a vedea rezultatul:</p>
<pre class="qoate-code">
$ bash-it reload
$ alias
</pre>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-5026" src="https://alex.burlacu.org/wp-content/uploads/2019/03/bash-it-4.png" alt="" width="796" height="415" srcset="https://alex.burlacu.org/wp-content/uploads/2019/03/bash-it-4.png 796w, https://alex.burlacu.org/wp-content/uploads/2019/03/bash-it-4-300x156.png 300w, https://alex.burlacu.org/wp-content/uploads/2019/03/bash-it-4-768x400.png 768w, https://alex.burlacu.org/wp-content/uploads/2019/03/bash-it-4-50x26.png 50w" sizes="auto, (max-width: 796px) 100vw, 796px" /></p>
<p>Din ce putem vedea, aliasurile pentru apt au fost activate</p>
<p>Mișcarea inversă se face astfel:</p>
<pre class="qoate-code">
$ bash-it disable alias apt
$ bash-it reload
</pre>
<p>Căile generale sunt următoarele:</p>
<p>Completările pot fi găsite aici &#8211; $HOME/.bash_it/completion/<br />
Modulele suplimentare &#8211; $HOME/..bash_it/plugins/<br />
Toate elementele activate pot fi găsite în directorul $HOME/.bash_it/enabled .</p>
<p>Cum spuneam la început, Bash-it are oferă și mai mult de 50 de teme, cea implicită fiind bobby. Tema activă poate fi aflată afișând valoarea variabilei env BASH_IT_THEME</p>
<pre class="qoate-code">
echo $BASH_IT_THEME
</pre>
<p>Temele pot fi găsite în directorul $BASH_IT/themes .</p>
<pre class="qoate-code">
$ ls $BASH_IT/themes
</pre>
<p>Aceste teme pot fi previzualizate înainte de a fi folosite cu comanda:</p>
<pre class="qoate-code">
$ BASH_PREVIEW=true bash-it reload
</pre>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-5025" src="https://alex.burlacu.org/wp-content/uploads/2019/03/bash-it-5.png" alt="" width="796" height="415" srcset="https://alex.burlacu.org/wp-content/uploads/2019/03/bash-it-5.png 796w, https://alex.burlacu.org/wp-content/uploads/2019/03/bash-it-5-300x156.png 300w, https://alex.burlacu.org/wp-content/uploads/2019/03/bash-it-5-768x400.png 768w, https://alex.burlacu.org/wp-content/uploads/2019/03/bash-it-5-50x26.png 50w" sizes="auto, (max-width: 796px) 100vw, 796px" /></p>
<p>Iar aplicarea uneia dintre ele se poate face editând fișierul .bashrc și adăugând următoarea linie (cu numele temei alese):</p>
<pre class="qoate-code">
$ export BASH_IT_THEME='essential'
</pre>
<p>Salvați apoi fișierul și reîncărcați-l</p>
<pre class="qoate-code">
$ source $HOME/.bashrc
</pre>
<p>Căutarea de noi plugin-uri, completări sau aliasuri specifice diferitelor limbaje de programare sau medii de dezvoltare poate fi făcută ușor astfel (de exemplu căutăm ceva legat de comenzile pe care le utilizăm frecvent):</p>
<pre class="qoate-code">
$ bash-it search python pip pip3 pipenv
$ bash-it search git
</pre>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-5024" src="https://alex.burlacu.org/wp-content/uploads/2019/03/bash-it-6.png" alt="" width="796" height="256" srcset="https://alex.burlacu.org/wp-content/uploads/2019/03/bash-it-6.png 796w, https://alex.burlacu.org/wp-content/uploads/2019/03/bash-it-6-300x96.png 300w, https://alex.burlacu.org/wp-content/uploads/2019/03/bash-it-6-768x247.png 768w, https://alex.burlacu.org/wp-content/uploads/2019/03/bash-it-6-50x16.png 50w" sizes="auto, (max-width: 796px) 100vw, 796px" /></p>
<p>Iar dacă aveți nevoie de ajutor puteți rula comenzile:</p>
<pre class="qoate-code">
$ bash-it help aliases
$ bash-it help completions
$ bash-it help plugins
</pre>
<p>Orice scripturi, aliasuri etc. adiacente pot fi adăugate în directoarele respective:</p>
<p>aliases/custom.aliases.bash<br />
completion/custom.completion.bash<br />
lib/custom.bash<br />
plugins/custom.plugins.bash<br />
custom/themes//.theme.bash</p>
<p>Pentru a avea întotdeauna cea mai recentă versiune a Bash-it rulați:</p>
<pre class="qoate-code">
$ bash-it update
</pre>
<p>Iar dacă la un moment dat nu vreți să mai folosiți Bash-it acesta se dezinstalează astfel:</p>
<pre class="qoate-code">
$ cd $BASH_IT
$ ./uninstall.sh
</pre>
<p>Scriptul uninstall.sh va restaura fișierele de pornire folosite anterior instalării. Odată procesul încheiat directoarele Bash-it pot fi șterse manual.</p>
<pre class="qoate-code">
$ rm -rf $BASH_IT
</pre>
<p>Mai multe detalii despre cum poate fi folosit Bash-it puteți afla rulând comanda:</p>
<pre class="qoate-code">
$ bash-it help
</pre>
<p>Pentru mai multe informații puteți accesa pagina de Github <a href="https://github.com/Bash-it/bash-it" target="_blank" rel="noopener noreferrer">https://github.com/Bash-it/bash-it</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://alex.burlacu.org/bash-it-un-framework-cu-ajutorul-caruia-iti-poti-controla-aliasurile-si-scripturile.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Cel mai mare cablu subacvatic stabilește un nou record</title>
		<link>https://alex.burlacu.org/cel-mai-mare-cablu-subacvatic-stabileste-un-nou-record.html</link>
					<comments>https://alex.burlacu.org/cel-mai-mare-cablu-subacvatic-stabileste-un-nou-record.html#comments</comments>
		
		<dc:creator><![CDATA[alex]]></dc:creator>
		<pubDate>Fri, 01 Mar 2019 13:00:14 +0000</pubDate>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[Tehnologie]]></category>
		<category><![CDATA[cablu]]></category>
		<category><![CDATA[cablu subacvatic]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[fibră optică]]></category>
		<category><![CDATA[Infinera]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[subacvatic]]></category>
		<category><![CDATA[tehnologie]]></category>
		<category><![CDATA[teste]]></category>
		<category><![CDATA[transatlantic]]></category>
		<guid isPermaLink="false">https://alex.burlacu.org/?p=5015</guid>

					<description><![CDATA[Cablul subacvatic cu cea mai mare capacitate din lume, pe numele său MAREA este capabil să susțină viteze de transfer cu 20% mai mari decât era estimat până acum. Acest cablu transatlantic, deținut în colaborare de Microsoft și Facebook are o lungime de aproape 6500 de kilometri este operat de Telxius și se întinde între [&#8230;]]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;">Cablul subacvatic cu cea mai mare capacitate din lume, pe numele său MAREA este capabil să susțină viteze de transfer cu 20% mai mari decât era estimat până acum.</p>
<figure id="attachment_5016" aria-describedby="caption-attachment-5016" style="width: 700px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-5016 size-full" src="https://alex.burlacu.org/wp-content/uploads/2019/03/marea-1.jpg" alt="marea-1" width="700" height="394" srcset="https://alex.burlacu.org/wp-content/uploads/2019/03/marea-1.jpg 700w, https://alex.burlacu.org/wp-content/uploads/2019/03/marea-1-300x169.jpg 300w, https://alex.burlacu.org/wp-content/uploads/2019/03/marea-1-50x28.jpg 50w" sizes="auto, (max-width: 700px) 100vw, 700px" /><figcaption id="caption-attachment-5016" class="wp-caption-text">Foto @dw.com</figcaption></figure>
<p style="text-align: justify;">Acest cablu transatlantic, deținut în colaborare de Microsoft și Facebook are o lungime de aproape 6500 de kilometri este operat de Telxius și se întinde între Bilbao (Spania) și Virginia Beach (SUA) iar un test recent realizat cu modularea de 16 QAM a atins <a href="https://www.businesswire.com/news/home/20190225005955/en/" target="_blank" rel="noopener noreferrer">viteze de 26,2 Terabiti pe secundă</a>. Acest lucru indică o îmbunatățire de 20% față de cei 20 Tbps pe fiecare pareche dintre cele opt perechi de fibră optică reprezentând viteza maximă inițială pentru care a fost proiectat să funcționeze.</p>
<figure id="attachment_5019" aria-describedby="caption-attachment-5019" style="width: 640px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-5019" src="https://alex.burlacu.org/wp-content/uploads/2019/03/marea-2.jpg" alt="marea-2" width="640" height="358" srcset="https://alex.burlacu.org/wp-content/uploads/2019/03/marea-2.jpg 640w, https://alex.burlacu.org/wp-content/uploads/2019/03/marea-2-300x168.jpg 300w, https://alex.burlacu.org/wp-content/uploads/2019/03/marea-2-50x28.jpg 50w" sizes="auto, (max-width: 640px) 100vw, 640px" /><figcaption id="caption-attachment-5019" class="wp-caption-text">Foto @fossbytes.com</figcaption></figure>
<p style="text-align: justify;">Testul a fost făcut de cercetătorii de la <a href="https://www.infinera.com/" target="_blank" rel="noopener noreferrer">Infinera</a> și aduce două vești bune: prima ar fi că s-a demonstrat cum se pot susține viteze mari de transfer pe distanțe foarte lungi; a doua fiind că se pot obține îmbunătățiri ale capacității de transfer folosind cablurile deja existente, fără a mai croșeta altele noi pe fundul oceanului.</p>
<p><iframe loading="lazy" title="The manufacturing and beach landing of Marea – the most advanced transatlantic subsea cable" width="500" height="281" src="https://www.youtube.com/embed/XwbzTpLGJ9M?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></p>
<p style="text-align: justify;">Acest test deschide noi oportunități iar în curând vom auzi probabil și alte vești pe măsură ce nevoile de comunicare între Americi și Europa cer tot mai multă bandă.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://alex.burlacu.org/cel-mai-mare-cablu-subacvatic-stabileste-un-nou-record.html/feed</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Paginile individuale de pornire ale Google Sheets, Docs și Slides au primit actualizările Google Material Theme.</title>
		<link>https://alex.burlacu.org/paginile-individuale-de-pornire-ale-google-sheets-docs-si-slides-au-primit-actualizarile-google-material-theme.html</link>
					<comments>https://alex.burlacu.org/paginile-individuale-de-pornire-ale-google-sheets-docs-si-slides-au-primit-actualizarile-google-material-theme.html#respond</comments>
		
		<dc:creator><![CDATA[alex]]></dc:creator>
		<pubDate>Wed, 27 Feb 2019 18:00:22 +0000</pubDate>
				<category><![CDATA[De-ale mele]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[D'ale mele]]></category>
		<category><![CDATA[Docs]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Google apps redesign]]></category>
		<category><![CDATA[Google Material Theme]]></category>
		<category><![CDATA[Google Sans]]></category>
		<category><![CDATA[redesign]]></category>
		<category><![CDATA[Sheets]]></category>
		<category><![CDATA[Slides]]></category>
		<guid isPermaLink="false">https://alex.burlacu.org/?p=5009</guid>

					<description><![CDATA[Acum 10 ani când am început să scriu aici, prima postare a fost despre Google. Coincidență sau nu, azi am din nou ceva de zis despre Google pentru că în ultimile două zile au tot venit lucruri interesante din zona lor. Astăzi, așadar este vorba de redesenarea aplicațiilor web folosind Google Material Theme. Anul trecut [&#8230;]]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;">Acum 10 ani când am început să scriu aici, <a href="https://alex.burlacu.org/incet-incet-ma-mut-la-google.html">prima postare</a> a fost despre Google.</p>
<p style="text-align: justify;">Coincidență sau nu, azi am din nou ceva de zis despre Google pentru că în ultimile două zile au tot venit lucruri interesante din zona lor.</p>
<p style="text-align: justify;">Astăzi, așadar este vorba de redesenarea aplicațiilor web folosind Google Material Theme.</p>
<p style="text-align: justify;">Anul trecut la Google I/O 2018 am văzut implementarea Matherial în Google Drive. Răspunsurile venite de la utilizatori (în zonele în care este mai utilizat decât pe meleagurile mioritice) au fost pozitive iar cei de la Google au continuat aplicarea noii &#8220;teme&#8221; în celelate aplicații. Astfel că putem vedea la lucru Google Material Theme pe versiunile web ale paginilor individuale de produs pentru <a href="https://docs.google.com/document/u/0/" target="_blank" rel="noopener noreferrer">Google Docs</a>, <a href="https://docs.google.com/spreadsheets/u/0/" target="_blank" rel="noopener noreferrer">Sheets</a> și <a href="https://docs.google.com/presentation/u/0/" target="_blank" rel="noopener noreferrer">Slides</a> acestea fiind cele mai recente aplicații actualizate, utilizarea acestor aplicații din varianta web fiind acum similară cu cea de pe versiunile de Android sau iOS.</p>
<p style="text-align: justify;">Înainte de această redesenare a interfețelor, bara de aplicații pentru fiecare dintre aceste trei aplicații era făcută în așa fel încât să se &#8220;încadreze&#8221; cu Gmail, Drive și Calendar, icoana fiecărei aplicații fiind afișată pe același rând cu numele, în partea stângă și cu o bară de căutare lângă.</p>
<p style="text-align: justify;">Acum zona majoritară a paginii, mulțumită și Google Sans afișează o zonă mult mai degajată și cu un background mai luminos în secțiunea &#8220;Start a new document&#8221; din zona șabloanelor. Butonul de &#8220;Blank&#8221; document a fost de asemenea redesanat și acum apare ca un semn de &#8220;+&#8221; în culorile Google, în aceeași notă cu butoanele pentru Google Drive sau alte aplicații din G Suite.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-5010" src="https://alex.burlacu.org/wp-content/uploads/2019/02/google-docs-1024x286.png" alt="google-docs" width="987" height="276" srcset="https://alex.burlacu.org/wp-content/uploads/2019/02/google-docs-1024x286.png 1024w, https://alex.burlacu.org/wp-content/uploads/2019/02/google-docs-300x84.png 300w, https://alex.burlacu.org/wp-content/uploads/2019/02/google-docs-768x214.png 768w, https://alex.burlacu.org/wp-content/uploads/2019/02/google-docs-938x262.png 938w, https://alex.burlacu.org/wp-content/uploads/2019/02/google-docs-1309x365.png 1309w, https://alex.burlacu.org/wp-content/uploads/2019/02/google-docs-50x14.png 50w, https://alex.burlacu.org/wp-content/uploads/2019/02/google-docs.png 1556w" sizes="auto, (max-width: 987px) 100vw, 987px" /></p>
<p style="text-align: justify;">Mai sunt și alte butoane și icoane modificate cu această ocazie, actualizările poate că nu aduc îmbunătățiri în funcționalitate însă fac acum paginile individuale mai &#8220;consistente&#8221; și mai asemănătoare cu pagina principală Drive.</p>
<p style="text-align: justify;">Ușor, ușor aplicațiile Google ajung să fie similare atât în versiunile mobile cât și pe cele web, funcționalitatea lor se dezvoltă și este foarte probabil ca în curând să ajungă la un nivel apropiat de aplicațiile deja consacrate (nu cred că vor putea concura prea curând suita Office, dar vor putea fi considerate o aleternativă bună pentru utilizatorii care au nevoie doar să acceseze sau să facă mici modificări în documente).</p>
]]></content:encoded>
					
					<wfw:commentRss>https://alex.burlacu.org/paginile-individuale-de-pornire-ale-google-sheets-docs-si-slides-au-primit-actualizarile-google-material-theme.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>10 ani!</title>
		<link>https://alex.burlacu.org/10-ani.html</link>
					<comments>https://alex.burlacu.org/10-ani.html#respond</comments>
		
		<dc:creator><![CDATA[alex]]></dc:creator>
		<pubDate>Wed, 27 Feb 2019 12:59:45 +0000</pubDate>
				<category><![CDATA[De-ale mele]]></category>
		<category><![CDATA[10 ani]]></category>
		<category><![CDATA[aniversare]]></category>
		<category><![CDATA[blog]]></category>
		<guid isPermaLink="false">https://alex.burlacu.org/?p=4999</guid>

					<description><![CDATA[Fără să-mi dau seama au trecut 10 ani de când există alex.burlacu.org 🙂 Ani în care acest &#8220;loc de joacă pentru idei&#8221; cu i-am spus la început m-a ajutat să cunosc oameni faini, să descopăr lucruri noi și să-mi aminteasc lucruri pe care altfel le-aș fi uitat. Recunosc, atunci când am făcut acest blog nu [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Fără să-mi dau seama au trecut 10 ani de când există alex.burlacu.org <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>Ani în care acest &#8220;loc de joacă pentru idei&#8221; cu i-am spus la început m-a ajutat să cunosc oameni faini, să descopăr lucruri noi și să-mi aminteasc lucruri pe care altfel le-aș fi uitat.</p>
<p>Recunosc, atunci când am făcut acest blog nu credeam că va rezista atât. Nu-mi propusesem un țel în acest sens, de asta probabil nu m-a deranjat să îl închid pentru câteva luni acum câțiva ani.</p>
<p>Cumva am strâns aici vreo șapte sute și ceva de postări, multe dintre ele trezindu-mi azi amintiri frumoase.</p>
<p>Acuma nu-mi rămâne decât să desfac o bere diseară pentru acești 10 ani <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-5002" src="https://alex.burlacu.org/wp-content/uploads/2019/02/20180422_132657-300x212.jpg" alt="tort-de-10-ani" width="300" height="212" srcset="https://alex.burlacu.org/wp-content/uploads/2019/02/20180422_132657-300x212.jpg 300w, https://alex.burlacu.org/wp-content/uploads/2019/02/20180422_132657-768x542.jpg 768w, https://alex.burlacu.org/wp-content/uploads/2019/02/20180422_132657-1024x723.jpg 1024w, https://alex.burlacu.org/wp-content/uploads/2019/02/20180422_132657-938x662.jpg 938w, https://alex.burlacu.org/wp-content/uploads/2019/02/20180422_132657-1309x925.jpg 1309w, https://alex.burlacu.org/wp-content/uploads/2019/02/20180422_132657-50x35.jpg 50w" sizes="auto, (max-width: 300px) 100vw, 300px" /></p>
]]></content:encoded>
					
					<wfw:commentRss>https://alex.burlacu.org/10-ani.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Migrarea unui repo git cu tot cu branch-uri în alt mediu, pe alt server.</title>
		<link>https://alex.burlacu.org/migrarea-unui-repo-git-cu-tot-cu-branch-uri-in-alt-mediu-pe-alt-server.html</link>
					<comments>https://alex.burlacu.org/migrarea-unui-repo-git-cu-tot-cu-branch-uri-in-alt-mediu-pe-alt-server.html#respond</comments>
		
		<dc:creator><![CDATA[]]></dc:creator>
		<pubDate>Wed, 07 Nov 2018 16:53:44 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Terminal]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<guid isPermaLink="false">https://alex.burlacu.org/?p=4954</guid>

					<description><![CDATA[A venit și acel moment din viață în care mi-am pus problema migrării unui repo git de pe un server pe altul cu păstrarea branch-urilor și a istoricului acțiunilor. Și cum altfel decât între medii diferite, fără acces direct între ele. Ar fi trebuit să fie simplu, dar s-a dovedit că e puțin mai mult [&#8230;]]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;">A venit și acel moment din viață în care mi-am pus problema migrării unui repo git de pe un server pe altul cu păstrarea branch-urilor și a istoricului acțiunilor.<br />
Și cum altfel decât între medii diferite, fără acces direct între ele.<br />
Ar fi trebuit să fie simplu, dar s-a dovedit că e puțin mai mult de muncă, așa că adun aici (poate așa reușesc să repet mișcarea asta vreodată) lista pașilor de urmat.</p>
<p style="text-align: justify;">Primul pas este să aduc pe local toate datele de pe repo, cu toate branch-urile:</p>
<p style="text-align: justify;"><code lang="bash">alex@ubuntu:~$ git clone git@github.com:proiectulmeu/test.git</code></p>
<p style="text-align: justify;">Apoi vine rândul fiecărui branch în parte și încă un pull ca să fie treaba sigură:</p>
<p style="text-align: justify;"><code lang="bash">alex@ubuntu:~/test$ cd test<br />
alex@ubuntu:~/test$ git checkout master<br />
alex@ubuntu:~/test$ git pull -f<br />
alex@ubuntu:~/test$ git checkout development<br />
alex@ubuntu:~/test$ git pull -f<br />
alex@ubuntu:~/test$ git checkout test<br />
alex@ubuntu:~/test$ git pull -f </code></p>
<p style="text-align: justify;">Fac apoi un director în care să adun bundle-ul proiectului git:</p>
<p style="text-align: justify;"><code lang="bash">alex@ubuntu:~$ mkdir bundles</code></p>
<p style="text-align: justify;">Având toate branch-urile local, am adaptat scriptul făcut de Pagan Maganti (<a href="https://github.com/pmaganti/git-bundler/blob/master/bundler.sh" target="_blank" rel="noopener">https://github.com/pmaganti/git-bundler/blob/master/bundler.sh</a>) pentru a face un fișier bundle cu toate branch-urile, versiunea mea ajungând să arate cam așa:</p>
<p style="text-align: justify;"><code lang="bash">#!/bin/bash<br />
cd /home/alex/test<br />
for branch in `git branch -a | grep remotes | grep -v HEAD | grep -v master `; do<br />
git branch --track ${branch#remotes/origin/} $branch || git branch<br />
done &amp;&amp; git bundle create ../bundles/test.bundle --all &amp;&amp; git bundle verify ../bundles/test.bundle"<br />
</code></p>
<p style="text-align: justify;">În momentul ăsta sunt fericitul posesor al unui bundle care (teoretic) conține toate branch-urile de pe repo-ul care trebuie migrat.</p>
<p style="text-align: justify;">Odată ajuns fișierul cu bundle-ul în noul său mediu, ar fi de restaurat în noua casă și pornită treaba mai departe.</p>
<p style="text-align: justify;">Până aici treaba e destul de simplă, fiind plin internetul de instrucțiuni (exceptând manualul de git care e destul de cuprinzător), și probabil că pot fi numit un vașnic absolvent al școlii ajutătoare de git.</p>
<p style="text-align: justify;">Pe mașina cea nouă bundle-ul terbuie &#8220;despachetat&#8221;.<br />
După inițializarea unui git nou, desfac budle-ul și fac un merge pe HEAD folosindu-i id-ul. Apoi se fac remapările pentru branch-uri și se &#8220;curăță&#8221; cu un reset &#8211;hard.</p>
<p style="text-align: justify;"><code lang="bash">alex@server:~$ mkdir test<br />
alex@server:~$ cd test<br />
alex@server:~/test$ git init<br />
alex@server:~/test$ git bundle unbundle ../test.bundle<br />
alex@server:~/test$ git merge d7fd1f4f<br />
alex@server:~/test$ git fetch -u ../test.bundle 'refs/*:refs/*'<br />
alex@server:~/test$ git reset --hard<br />
</code></p>
<p style="text-align: justify;">&#8220;În acest mod simplu, pomul ajunge lângă fereastră. Aici, avem avantajul că odată cu pomul putem aprinde și perdeaua.&#8221;&#8230; asta era din altă scenetă, nu cu git, dar e cumva din același serial.<br />
Acum ar trebui ca proiectul împreună cu toate branch-urile sale să fie restaurate local, calde și numai bune de a fi urcate pe serverul cel nou.</p>
<p style="text-align: justify;"><code lang="bash">alex@server:~/test$ git remote add origin https://alex@serverulprivatcelnou/proiectulmeu/test.git<br />
alex@server:~/test$ git push --mirror origin </code></p>
<p style="text-align: justify;">Acum proiectul este restaurat complet în noul său mediu, cu tot istoricul commit-urilor, cu branch-uri și toate cele necesare continuării dezvoltării în noul mediu de lucru.</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://alex.burlacu.org/migrarea-unui-repo-git-cu-tot-cu-branch-uri-in-alt-mediu-pe-alt-server.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
