Tag Archives: linux

Linux îl înghesuie pe Windows de pe piața jocurilor

Eu nu-s fanat al jocurilor de calculator. De vreo zece ani nu am jucat nimic. Dar știu că mulți oameni nu considerau să instaleze Linux din cauză că nu suporta un joc sau altul.

Iată că acum lucrurile se vor răsturna.

Gabe Newell, cofondator Valve, a zis puțin mai devreme că Linux este viitorul industriei jocurilor, chiar dacă acum ocupă o cotă mică din piață.

Ca peste o săptămână Valve să anunțe că lucrează asupra SteamOS – un sistem de operare bazat pe linux pentru jocuri și muzică și multe altele. Industria jocurilor a ajuns la un moment în care Windows nu mai poate fi considerat o platformă bună (e vorba de latența unităților de intrare, performanța audio, etc). Cel mai probabil e că SteamOS va fi bazat pe Ubuntu, ceea ce eu consider a fi o decizie bună.

Ca peste încă câteva zile, compania care a fost cea mai criticată de comunitatea Linux (Nvidia), căreia însuși Linus Tolvards i-a arătat degetul mijlociu, a anunțat că lucrează cu dezvoltatorii Linux pentru a rezolva problemele adunate. Asta pentru că Nvidia nu vrea să fie pierdantă în noua oportunitate deschisă de viitoarea apariție a consolelor Steam (care au fost anunțate peste încă câteva zile), și da, Nvidia a confirmat colaborarea.

Și peste încă câteva zile, Valve a anunțat Steam Controller – o chestie care lasă joystick-urile mult în urmă.

Așa că da, peste un an se va putea spune că cea mai bună platformă pentru jocuri e bazată pe Linux, și ultima bătălie se va da deja pentru sistemele de operare pe desktop.

Update: E plăcut să citești asta pe site-ul oficial steam:

steam

Anunțuri

Cum să faci backup la fișierele și mapele importante. Cum să sincronizezi o mapă între două sau mai multe computere

Am găsit și am testat cu succes programul SpiderOak și pot să-l recomand ca soluție de backup pentru mapele importante din sistemul vostru. Deținătorul unui cont gratuit are spațiu de 2 GB pe serverele SpiderOak. În program, după ce îl instalați, adăugați un dispozitiv (device), de obicei – e numele calculatorului. Apoi selectați la ce mape doriți să faceți backup.

Dacă aveți și alte computere, instalați programul și în ele, cu același nume de utilizator, și adăugați câte un dispozitiv pentru fiecare computer.

Sună mai complicat decât este în realitate.

SpiderOak mai oferă și versioning, adică, păstrează fiecare instanță a fișierelor modificate. Astfel, dacă ați șters din greșeală vreun fișier la care se făcea backup, îl găsiți în recycle bin de la spideroak. Totodată puteți descărca o variantă din trecut a unui document.

Fișierele se păstrează pe servere în formă encriptată, iar decriptarea are loc în calculatorul dumneavoastră. Nici angajații SpiderOak nu pot vedea conținutul spațiului vostru de backup.

Alt beneficiu al acestui program – posibilitatea de a sincroniza mape între mai multe computere. Totul se configurează ușor. Cu alte cuvinte – în mai multe calculatoare, anumite mape vor avea același conținut. Modificați un fișier într-un computer – modificarea se va transmite și în celălalt computer. La fel, se oferă posibilitatea de a descărca și versiunea mai veche a fișierului.

Programul poate fi instalat pe Linux, Windows și MacOS. Urmăriți aceste ghiduri de folosință înainte de a instala programul.

[VIDEO] Cum să înregistrezi video în Linux de pe ecran (screencasturi/rip-uri)

How to setup mysql replication with virtually no downtime (without locking tables, without lvm)

Update 1: This is not a copy/paste material. You must understand what you do, otherwise you may lose your data.

Prerequisites:

– you have to understand mysql replication principles.
– Operating system – linux.
– Not working with openvz virtual private servers.

So, you decide to initiate a master-slave replication. The official way of doing this implies some downtime for taking the snapshot, whatever your way of taking snapshot is (mysqldump, tar or rsync). In this article I’ll explain how to take a consistent snapshot of the mysql datadir, while mysql is running and making various inserts. This snapshot can be transferred to the slave to set up the replication.

Steps:

1. Configure master for replication. While mysql is running, edit the /etc/my.cnf file on the master. Add the following to [mysqld] section:

log-bin=mysql-bin
server-id=1

And be sure that you comment the line:

# bind-address           = 127.0.0.1

so that mysql will listen on all interfaces.

Login to mysql as root and execute the following:

GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.1.7' IDENTIFIED BY 'slavepass';

where 192.168.1.7 is the IP address of the slave server.

2. Install R1soft linux hot copy on the master server. After installing, execute:

hcp-setup --get-module

No reboot is required.

This is the tool that we will use to create a hot copy of the filesystem containing the mysql datadir (/var/lib/mysql). Operations on the original filesystem will not affect the snapshot. And the snapshot does not take any additional space but it preserves the changes made to the original system for the period being hot mounted.

3. Shutdown mysql on master and start the hcp mount:

/etc/init.d/mysql stop
# considering the partition mounted on /var is /dev/sda7:
hcp -o /dev/sda7
# look for the phrase :
Hot Copy mounted at: /var/hotcopy/sda7_hcp1
# restart mysql:
/etc/init.d/mysql start

That is all downtime needed for setting up the replication. It should not take more than 10 seconds.

At this point you have a snapshot of the /dev/sda7 filesystem at the time mysql was stopped. You can see the files in /var/hotcopy/sda7_hcp1. This is a virtual folder, its contents will not survive a restart for example. In the original /var/lib/mysql folder you will see that mysql-bin.000001 and mysql-bin.index files were created. These are needed for replication. They are not present in /var/hotcopy/sda7_hcp1 though.

4. On the slave server. Remove th ecurrent /var/lib/mysql (this will wipe current databases on the slave):

/etc/init.d/mysql stop
rm -rf /var/lib/mysql
# sync the snapshot from the master server:
rsync -avz root@172.16.220.1:/var/hotcopy/sda7_hcp1/lib/mysql /var/lib/

5. When the sync in point 4 finishes, umount the snapshot on the master:

hcp -r /dev/hcp1

6. Configure replication on the slave server:

vi /etc/mysql/my.cnf
[mysqld]
# add the following settings. Change master-host to the master ip, master-user to the replication user and master-password to the replication user password.
server-id=2
master-host=172.16.220.1
master-user='repl'
master-password='slavepass'
master-connect-retry=60
log-bin=mysql-bin

7. Start mysql on the slave server. Check replication status:

/etc/init.d/mysql start
mysql
mysql> show slave status\G
              Master_Log_File: mysql-bin.000001
          Read_Master_Log_Pos: 278
               Relay_Log_File: mysqld-relay-bin.000002
                Relay_Log_Pos: 423
        Relay_Master_Log_File: mysql-bin.000001
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes

The last 2 lines confirm replication is functioning correctly.

References:

MySQL online manual – http://dev.mysql.com/doc/refman/5.1/en/replication.html
Howtoforge tutorial – http://www.howtoforge.com/mysql_database_replication
SoftwareProjects tutorial – http://www.softwareprojects.com/resources/programming/t-how-to-move-copy-a-live-mysql-database-and-what-1257.html

Ubuntu se pornește cu sunetul dezactivat (cum se rezolvă)

Ubuntu se pornește deseori cu sunetul dezactivat. Pentru a-l activa, trebuie de mers la Preferințe sunet, și de acolo manual să dați sunetul mai încet.

Pentru a face schimbările permanente, se comentează următoarea linie în /etc/pulse/default.pa

load-module module-device-restore

astfel ca să arate:

# load-module module-device-restore

Cum să trimiți mesaje de notificare pe desktop (Linux)

Ca să trimiteți mesaje de notificare pe Desktop din consolă, trebuie să faceți următoarele:

export DISPLAY=:0
notify-send "Titlul mesajului" "Continutul mesajului" -i /cale/spre/imagine.png

Veți primi un mesaj de notificare cu o imagine pe care ați ales-o pe desktop. Comenzile trebuie rulate sub utilizatorul logat în X-uri.

Dacă comanda notify-send nu merge, trebuie să instalați pachetul libnotify-bin.

 

How to install pwmanager in Debian sid

As you may know, there is a great utility for storing passwords in encrypted form called pwmanager. The project seems discontinued now.

So, how to install it on Debian/Ubuntu?

Firstly be sure to install kdelibs-dev:

$ apt-get install kdelibs-dev

then grab the latest source archive from  http://sourceforge.net/projects/passwordmanager/files/ (at the moment of writing it is pwmanager-1.2.4.tar.bz2)

Decompress it:

$ tar xvjf pwmanager-1.2.4.tar.bz2

Go into the newly created directory:

$ cd pwmanager-1.2.4

And run:

$ ./configure
$ make
$ make intall

Should work, but did not work for me. I got this kind of errors at compilation time:

base64.cpp: In constructor ‘Base64::Base64()’:
base64.cpp:59: error: ‘exit’ was not declared in this scope

binentrygen.cpp: In member function ‘void BinEntryGen::decode(const PwMDataItem&, QByteArray*, BinEntryGen::DataType*)’:
binentrygen.cpp:36: error: ‘strtol’ was not declared in this scope

compressbzip2.cpp: In member function ‘bool CompressBzip2::compress(std::string*)’:
compressbzip2.cpp:36: error: ‘memcpy’ was not declared in this scope

main.cpp: In member function ‘virtual int PwMApplication::newInstance()’:
main.cpp:34: error: ‘EXIT_SUCCESS’ was not declared in this scope

serializer.cpp: In member function ‘bool Serializer::extractEntry(const QDomNode&, PwMDataItem*)’:
serializer.cpp:303: error: ‘strtol’ was not declared in this scope

To solve them, copy the next content into a file, say, /tmp/pwmanager.patch:

Only in pwmanager-1.2.4-patched/pwmanager: addentrywnd.cpp                    
Only in pwmanager-1.2.4-patched/pwmanager: advcommedit.cpp                    
diff -crB pwmanager-1.2.4/pwmanager/base64.cpp pwmanager-1.2.4-patched/pwmanager/base64.cpp
*** pwmanager-1.2.4/pwmanager/base64.cpp        2005-11-06 03:16:51.000000000 +0200        
--- pwmanager-1.2.4-patched/pwmanager/base64.cpp        2010-01-31 15:36:39.000000000 +0200
***************                                                                            
*** 43,48 ****                                                                             
--- 43,49 ----                                                                             
                                                                                           
  #include "base64.h"                                                                      
  #include "pwmexception.h"                                                                
+ #include <stdlib.h>                                                                      
                                                                                           
                                                                                           
  static const char prtcode[] =                                                            
diff -crB pwmanager-1.2.4/pwmanager/binentrygen.cpp pwmanager-1.2.4-patched/pwmanager/binentrygen.cpp
*** pwmanager-1.2.4/pwmanager/binentrygen.cpp   2005-11-06 03:16:51.000000000 +0200                  
--- pwmanager-1.2.4-patched/pwmanager/binentrygen.cpp   2010-01-31 15:36:39.000000000 +0200          
***************                                                                                      
*** 12,17 ****                                                                                       
--- 12,19 ----                                                                                       
  #include "binentrygen.h"                                                                           
  #include "base64.h"                                                                                
  #include "pwmexception.h"                                                                          
+ #include <cstring>                                                                                 
+ #include <cstdlib>                                                                                 
                                                                                                     
                                                                                                     
  void BinEntryGen::encode(const QByteArray &data,                                                   
diff -crB pwmanager-1.2.4/pwmanager/compressbzip2.cpp pwmanager-1.2.4-patched/pwmanager/compressbzip2.cpp
*** pwmanager-1.2.4/pwmanager/compressbzip2.cpp 2005-11-06 03:16:50.000000000 +0200                      
--- pwmanager-1.2.4-patched/pwmanager/compressbzip2.cpp 2010-01-31 15:36:39.000000000 +0200              
***************                                                                                          
*** 10,16 ****                                                                                           
   ***************************************************************************/                          
                                                                                                         
  #include "compressbzip2.h"                                                                             
!                                                                                                        
  #include <stdlib.h>                                                                                    
                                                                                                         
  #define BZ_NO_STDIO                                                                                    
--- 10,16 ----                                                                                           
   ***************************************************************************/                          
                                                                                                         
  #include "compressbzip2.h"                                                                             
! #include <string.h>                                                                                    
  #include <stdlib.h>                                                                                    
                                                                                                         
  #define BZ_NO_STDIO                                                                                    
Only in pwmanager-1.2.4-patched/pwmanager: configwnd.cpp                                                 
Only in pwmanager-1.2.4-patched/pwmanager: findwnd.cpp                                                   
diff -crB pwmanager-1.2.4/pwmanager/main.cpp pwmanager-1.2.4-patched/pwmanager/main.cpp                  
*** pwmanager-1.2.4/pwmanager/main.cpp  2005-11-06 03:16:51.000000000 +0200                              
--- pwmanager-1.2.4-patched/pwmanager/main.cpp  2010-01-31 15:36:39.000000000 +0200                      
***************                                                                                          
*** 13,18 ****                                                                                           
--- 13,20 ----                                                                                           
  #include <kaboutdata.h>                                                                                
  #include <klocale.h>                                                                                   
  #include <kstandarddirs.h>                                                                             
+ #include <cstdlib>                                                                                     
+ #include <cstring>                                                                                     
                                                                                                         
  #include "pwmexception.h"
  #include "pwminit.h"
Only in pwmanager-1.2.4-patched/pwmanager: pwgenwnd.cpp
diff -crB pwmanager-1.2.4/pwmanager/serializer.cpp pwmanager-1.2.4-patched/pwmanager/serializer.cpp
*** pwmanager-1.2.4/pwmanager/serializer.cpp    2005-11-06 03:16:50.000000000 +0200
--- pwmanager-1.2.4-patched/pwmanager/serializer.cpp    2010-01-31 15:36:39.000000000 +0200
***************
*** 12,17 ****
--- 12,19 ----
  #include "serializer.h"
  #include "configuration.h"
  #include "pwmexception.h"
+ #include <cstring>
+ #include <cstdlib>


  /* enable/disable serializer debugging (0/1) */
Only in pwmanager-1.2.4-patched/pwmanager: subtbledit.cpp

Now repeat the steps with ./configure, make, make install.

That’s all.

Conectare ssh şi vnc prin firewall

Atenţie: se va vorbi despre Sistemul de operare Linux, FreeBSD. In Windows nu ştiu cum se face.

Deci, situaţia e următoarea:

vrei să intri prin ssh într-un computer de la o firmă, ca să ajuţi cu nişte chestii. Computerul din firmă are un ip privat (192.168.1.10). Administrator nu-i ca să facă port forwarding (înaintare de porturi) la firewall/router. Cum se face?

Computerul de la firmă se cheamă A, iar computerul nostru se cheamă B.

Vom iniţia un tunel invers de la computerul A înspre computerul B, şi ne vom conecta pasiv. Spunem prin telefon operatorului de la computerul A să facă următorii paşi:

1. Să deschidă o consolă (cunoscută şi ca „Fereastră neagră”).

2. Să scrie:

$ ssh -R 56777:localhost:22 user@ip-ul-computerului-B

Evident, le dăm ip-ul computerului nostru, şi creăm un utilizator cu o parolă temporară. Comenzile de mai sus vor deschide un tunel care va asculta pe portul 56777 în computerul B, şi va transmite datele pe portul 22 din computerul A. Acum nu ne rămâne să facem decât:

$ ssh userA@localhost -p 56777

Şi vom fi logaţi în computerul A.

Pentru VNC, soluţia la fel e simplă, doar că în loc de portul 22 va trebui să pună 5900.

Ajunge pe azi.

Cum să instalezi modemul ZTE MF637 pe Linux

Mi-a trebuit recent să conectez la internet un computer cu Linux pe el. Modemul – ZTE MF637 – de la Orange. Se detectează ca CD-ROM.

Am sunat la suport tehnic la Orange, și mi-au răspuns cu mândrie că modemele lor nu lucrează pe Linux, și că nu pot să-l schimb.

Cum era și de așteptat, nu i-am crezut. Am găsit o soluție care funcționează.

Soluția este:

1. Creați un fișier text: /etc/udev/rules.d/ZTEMF637.rules cu următorul conținut:

ACTION!="add", GOTO="ZTE_End"
# Este acesta un dispozitiv ZeroCD?
SUBSYSTEM=="usb", SYSFS{idProduct}=="2000",
SYSFS{idVendor}=="19d2", GOTO="ZTE_ZeroCD"
# Este acesta modemul nostru?
SUBSYSTEM=="usb", SYSFS{idProduct}=="0031",
SYSFS{idVendor}=="19d2", GOTO="ZTE_Modem"
LABEL="ZTE_ZeroCD"
# Aceasta este partea ZeroCD a cartelei, va sterge
# modulul usb_storage asa incat
# nu va mai fi socotit ca dispozitiv de stocare a informatiilor.

RUN+="/usr/bin/eject /media/cdrom1/"

LABEL="ZTE_Modem"
# Aceasta este partea cu modemul.
# Sa incarcam usbserial cu producatorul corect,
# si cu ID-ul produsului corect.

RUN+="/sbin/modprobe usbserial vendor=0x19d2 product=0x0031",

# Facem ca utilizatorii din grupul dialout sa
# poata folosi dispozitivele seriale USB.

MODE="660", GROUP="dialout"
LABEL="ZTE_End"

2. Acum restartați computerul (cu toate că acest pas nu-i așa necesar).

3. Cand porneste computerul cu modemul inauntru, intai se aprinde lumina rosie, dupa care se stinge, dupa care se aprinde rosie din nou, dupa care devine albastra – asa ar trebui sa fie.

4. Acum creați conectiunea broadband la internet:

System  > Preferences > Network Connections > Broadband Connections > Add > Next > Moldova > Orange > Next > Apply.

Dați un nume conectiunii, apoi la IPv4 properties, selectați Automatic (PPP address only), sau ceva de acest tip, iar în câmpul DNS Servers adăugați :

208.67.222.222, 208.67.220.220

5. Acum, creați un fișier unde vreți, internet.sh, cu următorul conținut:

#!/bin/bash
xterm -e "sudo killall -9 NetworkManager"

Dați-i drept de execuție.

7. Acum e aproape gata. Scoateți modem-ul și puneți-l înapoi. Veți vedea că se va aprinde lumina roșie, după care se va stinge, după care:

a) Se va face albastră, iar în systray veți vedea că s-a conectat la broadband Orange. În acest caz puteți folosi internetul.

b) Se va face albastră, dar conectiunea la internet nu va fi stabilită – atunci executați internet.sh.

c) Va deveni din nou roșie, și conecțiunea la internet nu va fi stabilită – executați internet.sh – dacă va deveni albastră după asta, mai executați odată internet.sh până se va stabili conecțiunea la internet.

Dacă cineva va face un script mai bun decât al meu, care să analizeze capătul fișierului /var/log/syslog, și să repornească NetworkManager automat așa cum trebuie, rog să-mi spuneți.

Cum să pui video pe youtube – solutia ușoară

Soluția e simplă, doar că necesită două lucruri:

1. Sistem de operare Linux.

2. Programul gratuit Kdenlive (îl luați din repozitorii).

Cu acest program puteți edita foarte simplu fișierele video, și le puteți încărca direct din program pe saituri cum ar fi youtube.

%d blogeri au apreciat asta: