Archive for the ‘Linux’ Category

Using C++ in GCC is OK

Tuesday, June 1st, 2010

Pirms kāda laika tika ieguldīts darbs, lai GCC kompilētos ar C++ kompilatoru, nevis C kompilatoru – jo C++ kompilators veic striktākas pārbaudes. Tagad pašā GCC drīkstēs lietot C++. Un tas vienā no svarīgākajām un lielākajām GNU programmām, kas rakstītas C. Nevar saprast – vai nu C++ ir sasniedzis pietiekamu brieduma pakāpi vai GNU projektus pārņem “svaigas asinis”.

Jāsagaida GCC C++ vadlīnijas, lai redzētu, ko C++ kompilatora autori uzskatīs par “pieņemamo” C++ iespēju komplektu. Googles C++ vadlīnijas tādā ziņā vietām ir arhaiskas. Piemēram – “nelietot izņēmumus (exceptions) un RTTI”, lai gan var arī saprast viņu argumentāciju.

Divas jaunas programmas

Tuesday, March 25th, 2008

Ian Lance Taylor paralēli bloga rakstiem par linkošanu ir uzrakstījis gold linkeri, kas jau tika iekļauts GNU binutils pakotnē. Interesanti, ka tas ir rakstīts C++ ar template, nevis GNU projektiem tik mīļajā C. gold esot piecas reizes ātrāks par tagadējo linkeri ld, kas tiek lietots visos Linux distributīvos. Gala lietotājiem tas būs interesanti, jo ļaus daudz ātrāk startēt sistēmu un lielās, C++ rakstītās, programmas (OpenOffice.org, Firefox, KDE utml.), kurām vairākkārt izmērīts, ka linkošana ir šaurā vieta ielādes laikā.

Tom Tromey savukārt ir uzrakstījis un turpina uzlabot solīto automake/libtool aizstājēju – quagmire. Shell, M4 un perl skriptu vietā ir “pliks” GNU Make, kas vienkāršo dzīvi izstrādātājiem un ļauj kompilēt programmas vēl ātrāk (Gentoo lietotājiem tas patiks). Jāpaiet vēl kādam laikam līdz to sāks lietot citos projektos, bet tikmēr var skatīties Qaugmire programmas kodā un mācīties Makefile-fu.

HDD recovery

Thursday, January 24th, 2008

Sliktas lietas notika ar HDD, uz kura glabāju mūziku un filmas. Š oreiz apjuka gan fsck, gan es:

cartman ~ # fsck -c /dev/hdc1
e2fsck 1.40.4 (31-Dec-2007)
/dev/hdc1: Attempt to read block from filesystem resulted in short read while reading block 524
/dev/hdc1: Attempt to read block from filesystem resulted in short read reading journal superblock
e2fsck: Attempt to read block from filesystem resulted in short read while checking ext3 journal for /dev/hdc1

Man paveicās, ka Linux dzīvo un strādā uz cita diska un varēju turpināt izmantot datoru. Nekad iepriekš nav nācies atjaunot Linux (arī Windows) diskus, tāpēc sagrābstīju visādu informāciju internetā un sekojot padomiem, nopirku jaunu, lielāku HDD datu kopijai. Tad uzinstalēju ddrescue programmu, kas esot ātrāka kopējot datus nekā standarta dd. Pieslēdzu jauno disku, piestartēju Linux un pārkopēju datus no vecā diska (/dev/hdc) uz jauno disku (/dev/sdb) :

cartman ~ # ddrescue -r 1 /dev/hdc /dev/sdb recover.log

ddrescue arī pateica, ka problēmas nolasīt datus bija tikai vienā vietā, tāpēc man radās cerība turpināt lietot bojāto disku, vismaz līdz nākošajām problēmām. Pēc tam ar fsck salaboju failu sistēmu jau uz jaunā diska:

cartman ~ # fsck /dev/sdb1

Uz vecā diska tas acīmredzot nebija iespējams dēļ bojātiem HDD sektoriem (badblocks /dev/hdc tos uzrāda). Sliktos blokus “salabot” (atzīmēt kā nelietojamus) var izdarīt ar fsck, kurš jau iepriekš atteicās darboties. Meklējot risinājumu, izveidoju jaunu failu sistēmu uz bojātā diska un tad fsck piekrita to labot:

cartman ~ # mke2fs -j /dev/hdc1
cartman ~ # fsck -c -c /dev/hdc1

“-c -c” komandrindā speciāli tiek norādīts divas reizes, lai veiktu read-write testu read-only vietā.

Nobeigumā datus no jaunā diska pārkopēju atpakaļ uz veco un jaunajam diskam pārtaisīju partīcijas. Tā kā ddrescue kopēja arī partīciju informāciju, jaunais disks priekš Linux likās tikpat liels kā vecais. Tagad viss pr0n ir glābts un iegūts jauns disks jaunam pr0n :)

autoconf/automake/libtool

Saturday, November 24th, 2007

Ian Lance Taylor raksta par nepieciešamību atteikties no autoconf/automake/libtool un tā vietā realizēt analoģisku funkcionalitāti uz GNU Make bāzes. Viņš ir līdzautors grāmatai par šiem rīkiem, tapēc saprot, ko raksta. Tam visam bija jēga pirms vairākiem gadiem, bet ne tagad: rīki ir pārāk komplicēti, realizēti kā shell skriptu, m4 makrosu un perl koda sajaukums, bet GNU Make ir gļuvis iespējām bagātāks un pieejams uz gandrīz katra izstrādātāja datora. Kā viens no iemesliem tiek minēta arī ātrdarbība, jo bieži sastopamas programmas, kuru konfigurēšanas skripti izpildās ilgāk nekā pašas programmas kompilēšana.

Tā rezultātā Tom Tromey iesāka rakstīt autoconf/automake/libtool aizstājēju un uz Ziemassvētkiem sola kaut ko reāli lietojamu.

Man ar šiem rīkiem nākas saskarties pietiekoši bieži, lai to vietā vēlētos redzēt kaut ko vienkāršāku un (daudz) ātrāku. Tāpat nākas rakstīt Makefile un ir interesanti papētīt GNU Make pielietojumu, lai atklātu jaunus trikus – līdzīgi kā šobrīd var pētīt Linux kodola Makefile.

(Starp citu, Ian Lance Taylor raksti par programmēšanu, linkošanu un vairākpavedienu programmām ir lasīšanas vērti, ja ir interese par to, kas lācītim vēderā.)

Mazliet par OpenMoko

Thursday, August 23rd, 2007

OpenMoko telefons izmaksāja aptuveni 240Ls: ~197Ls par telefonu un piegādi uz Latviju, 6.5Ls cilvēkiem UPS, ~35Ls PVN. Aparāta iegūšanas process nebija patīkams: sākumā neērta un bremzējoša pasūtīšana, pēc tam deklarācijas rakstīšana UPS, došanās uz banku pēc konta darījumu izdrukas (lai muitā pierādītu cik patiesībā maksāja pirkums), deklarācijas pārtaisīšana (uz sūtījuma norādīta tikai telefona cena, neieskaitot piegādi), došanās uz muitu un skaidrošanās kāpēc sūtījums no vienas firmas, bet konta izdrukā citas firmas nosaukums (wtf?) un tad atpakaļ uz UPS pēc telefona.

Š obrīd telefona mērķauditorija ir izstrādātāji. Arī es to pirku, lai paspēlētos ar kodu, tāpēc nav brīnums, ka telefons pat nestartējas. Fabrikā aizmirsa ierakstīt telefonā visus failus, izņemot pašu Linux kodolu. Bet to ir ļoti vienkārši izdarīt caur USB kabeli, tādēļ uzliku pēdējos nightly builds, ar kuriem man tomēr neizdevās veikt testa zvanu sievai. Pirms tam gan es darbojos ar telefonu bez SIM kartes, varbūt nepieciešama papildus konfigurēšana. Tuvākajā laikā ielādēšu jauno GUI un sākšu risināt savas problēmas (instrukcijas ir!), bet līdz tam ir jāpabeidz remonts dzīvoklī – work work you lazy monkey!

Ja tu neesi izstrādātājs, tad par šī telefona pasūtīšanu pagaidām nevajag domāt.

OpenMoko

Monday, August 20th, 2007

K.Ulmaņa gatvē mani gaida paciņa no OpenMoko… Un mans fotoaparāts aizceļojis uz Itāliju.. Un dzīvoklī remonts tikai pusceļā…

Upd.: I HAZ TEH OPENMOKO!

Tuesday, July 17th, 2007

Paskat’, ko es sastapu vienā no Irbenes radiolokatoriem radioteleskopiem:

Lai gan gide nespēja atbildēt vai viņi lieto Linux, tas tik un tā bija pārsteigums. Bet pirms tam es ar atbrīvojos no stresa izdemolētajā armijas pilsētiņā un šoreiz neviena klaviatūra necieta.

Linus and Git

Monday, June 4th, 2007

Linus stāsta par Git Googlei. Manuprāt, ir vērts noskatīties šo video. Lai arī Linusa viedoklis ir diezgan radikāls, tajā ir daudz patiesības. Daudziem argumentiem saknes atrodamas izstrādes metodēs, ko atbalsta Linus. Tas ir: programmētāji izmaiņas veic savos zaros (branch), bieži saglabā izmaiņas un beigās tās pārnes uz galveno zaru vai izmet ārā. Zaru un dalītās sistēmas priekšrocības ir tādas, ka jebkurš var izveidot savu repozitāriju, veikt tajā izmaiņas nekaunoties/nebaidoties no kritikas, nebaidoties salauzt kompilēšanās procesu vai pašu programmu.

  • Git ir nevis failu satura atsekošanas programma, bet gan projekta satura atsekošanas programma – izmaiņas tiek atsekotas projekta, nevis faila līmenī. Š ī pieeja nodrošina gan efektīvu diska vietas izmantošanu, gan ātrdarbību.
  • Versiju kontroles sistēmai ir svarīgi nodrošināt efektīvu zarošanos (branching), bet daudz, daudz svarīgāk ir nodrošināt zaru apvienošanu (merge).
  • CVS dēļ efektīvas zarošanas trūkuma sūkā.
  • Subversion sūkā, jo zarošanu padarīja ātrāku, toties zaru apvienošana, sevišķi vairākkārtēja, joprojām sūkā.
  • Pat Linux kodola sākotnējā “versiju kontrole sistēma” manuāli darbojoties ar *.tar.gz failiem un patchiem bija daudz labāka par CVS.
  • Ja kādam patīk lietot CVS, tad viņa vieta ir Tvaika ielā.
  • Subversion ir bezjēdzīgs projekts, jo viņu uzstādījums bija “labāks CVS” jeb “salabots CVS”. Nav jēgas uzlabot CVS, jo tas risina nepareizo problēmu.
  • Ja tu nepiekrīti Linusam, tu esi stulbs un neglīts – fantastiski, turpmāk neziņas brīžos izmantošu šādu argumentāciju.

Core Duo

Wednesday, March 28th, 2007

Ilgi mocījos ar portatīvā datora sastingšanu (palīdzējā tikai baterijas izņemšana) un patvaļīgu pārstartēšanos, līdz atklāju, ka pie tā vainīgs Processor type and features -> Subarchitecture type -> Generic vērtība pēc noklusēšanas kodola konfigurācijā. Ar padsmito reizi atklāju…

What Really Grinds My Gears

Sunday, February 11th, 2007

Stulbais Gentoo regulāri pie etc-update mēģina atjaunot šos un līdzīgus failus:

/etc/conf.d/hostname
/etc/conf.d/local.start
/etc/rc.conf
/etc/xinetd.d/ftp

Man nav iebildumu, kad mēģina atjaunot failus ar vairākiem konfigurācijas parametriem vai failus, kurus lietotājs 95% gadījumu nemodificē. Bet augstāk minētajos failos galvenokārt ir viena konfigurācijas rindiņa, kur Gentoo dickheads vairākas reizes gadā izdomā uzrakstīt “labākus” komentārus vai salabot kļūdas iepriekšējos “labākajos” komentāros vai dažādu iemeslu dēļ mainās “$Header$” (CVS failu un versiju identificējoša virkne). Kā rezultāta, pie katras konfigurācijas failu atjaunošanas rūpīgi jāskatās vai tur nav kāds fails, ko es pats esmu modificējis, lai pēc pārstartēšanās joprojām viss strādātu.

And that’s what really grinds my gears.

Linux on Jornada 728

Wednesday, September 13th, 2006

Mēģināju instalēt Linux sekojot instrukcijām, bet tālu neesmu ticis – atnāca Kernels Paniks:

Foto-ieraksts

Tuesday, September 12th, 2006

Sestdien tēvs noķēra samu. Š is tāds maziņš – kādi 7 kilogrami, bet pirms diviem gadiem septembrī bija noķerti “40 ar kaut ko” un 56 kilogramus smagi Daugavas lopiņi. Cepts sams man garšo labāk par karbonādi.

Un šodien no Kanādas pienāca paciņa ar Jornada 728. Vienīgo vilšanos sagādāja muita: man nācās samaksāt 18% PVN pasta nodaļā. Dators šobrīd ir pilnībā funkcionējošs: solitaire spēlēt var. Tuvākajā laikā mēģināšu datorā darbināt Linux, gan jau šajā sakarā būs citi ieraksti.

The eBay Song

Thursday, August 31st, 2006

Es tagad sākšu medus-saldā balsī dziedāt eBay dziesmu, cerot, ka pasts mani nepieāakarēs un pēc kādas nedēļas tikšu pie Linux-spējīga plaukstdatora (Jornada 728).

Ohh! Un protams: