Єдина Країна! Единая Страна!

Archive for the 'Розробка софту' Category

Розробка для ядра Linux — 2. Ще трохи простих, але важливих речей

Понеділок, Червень 21st, 2010

Цей допис є продовженням і доповненням першого (Розробка для ядра Linux — 1. printk(“Привіт, світе!\n”)). Тут я розгляну такі базові, але дуже важливі речі, як залежність версій і таблиця символів ядра.

Read the rest of this entry »

Розробка для ядра Linux — 1. printk(“Привіт, світе!\n”)

Понеділок, Червень 14th, 2010

Я нещодавно серйозно (як мені здається) взявся за вивчення такої крутої штукенції, як “Linux kernel development”. Я вихований девізом “I’ve learned. I’ll share”, тому спробую ділитись новою для мене інформацією з вами.

На жаль, у мене немає ані часу, ані бажання розжовувати кожну тему, до того ж, теоретичного матеріалу, як мені здається, предостатньо. У мене найбільші проблеми виникають при пошуку достатньо простих для розуміння прикладів. На них я і спробую зосередити свою увагу…

Read the rest of this entry »

Локальна машина часу або чому Git Rulez!

Вівторок, Листопад 17th, 2009

distributed_vcsГаразд, вступу про користь і потрібність використання систем керування версіями не буде — це банально і тупо.

Проблема у тому, що їх використовують переважно для годиться, або ж тому що цього вимагає корпоративна/проектна політика. До того ж, далеко не найефектнішим чином, сприймаючи їх просто, як “місце, де зберігається уся ця фігня”. Гаразд, про це також не будемо, бо і це тема, про яку дуже багато написано.

Існує інша серйозна, і чомусь мало висвітлена (а може я просто надто мало читаю?) тема — фіксація зроблених змін. Під час, скажімо, періоду баґ фіксингу, усе зрозуміло: зафіксив баґ, [залив на review board,] закомітив. У такому випадку, і тобі просто організовувати політику комітів, й історія на сервері виглядає гламурною. Що ж робити під час активного девелопменту? Зі своїх спостережень, можу сказати, що більшість комітить власний код або у кінці робочого дня, за 30 секунд до вимкнення комп’ютера, або ж коли той комусь потрібні (колезі, тім ліду, рев’юверу, менеджеру, клієнту…).

Read the rest of this entry »

rozrobka.com — соціальна ІТ спільнота

Середа, Серпень 19th, 2009

rozrobka_comУсе відбувається якось само собою. Ти чогось очікуєш від інших, і нікуя не отримуєш. Тільки на усе забиваєш, і перестаєш на будь що від них сподіватись, і намагаєшся просто мовчки робити що-небудь бодай для того, щоб не отупішати, і отримуєш усе те, від бажання мати чого нещодавно бризкався слиною, і ледве стримувався, щоб не вкакатись.

Я просто в невібенному шоці — багатомільйонна європейська нація з кількістю розробників, які можуть створити три кремнієвих долини почала щось робити. Ну і типу зустрічайте: rozrobka.com.

Я аж ціпенію від шоку: здавалося б, стільки хороших перспективних хлопців, а інколи так туплять, що хоч бери, і головою цв’яхи забивай… Хоча, я все одно вірю, що усе буде меґа кльово!

GTK+ — 8. GtkImage та GtkIconView

Вівторок, Серпень 11th, 2009

У цій частині трішки попрацюємо з графікою, а точніше, з кількома досить простими, але часто використовуваними віджетами для роботи з нею: GtkImage та GtkIconView.

GtkImage

GtkImage — досить простий віджет для відображення растрових зображень.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <gtk /gtk.h>
 
 
int main(int argc, char *argv[])
{
    GtkWidget *window;
    GtkWidget *image;
 
    gtk_init(&argc, &argv);
 
    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
    gtk_window_set_default_size(GTK_WINDOW(window), 230, 150);
    gtk_window_set_title(GTK_WINDOW(window), "Red Rock");
    gtk_window_set_resizable(GTK_WINDOW(window), FALSE);
 
    gtk_container_set_border_width(GTK_CONTAINER(window), 2);
 
    image = gtk_image_new_from_file("redrock.png");
    gtk_container_add(GTK_CONTAINER(window), image);
 
    g_signal_connect_swapped(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), G_OBJECT(window));
 
    gtk_widget_show_all(window);
 
    gtk_main();
 
    return 0;
}
</gtk>

У вищенаведеному прикладі ми завантажуємо, і відображаємо світлину замку.

Встановлюємо 2-піксельну рамку навколо зображення:

1
gtk_container_set_border_width(GTK_CONTAINER(window), 2);

Завантажуємо зображення з файлу і додаємо його до контейнеру:

1
2
image = gtk_image_new_from_file("redrock.png");
gtk_container_add(GTK_CONTAINER(window), image);

gtkimage

Read the rest of this entry »