The pragmatic programmer

Жовтень 1, 2009

Програміст-прагматик: від підмайстра до майстра / The Pragmatic Programmer: From Journeyman to Master

Автори: Ендрю Хант, Девід Томас
Видавництво: Addison-Wesley Professional
Рік видання: 1999
Кількість сторінок: 352

“Програміст-прагматик” має стати настільною книгою для усіх, хто заробляє собі на життя програмуванням” (с) Джаред Річардсон, старший програміст iRenaissance, Inc.

“Уявіть, що ви сидите на нараді. Мабуть, ви гадаєте, що нарада продовжується цілу вічність, а замість нього ліпше було б зайнятись програмуванням. Автори книги думали б про те, чому ця нарада відбувається, і задали б собі запитання: “чи є щось, що вони могли б зробити замість наради, і, чи може це “щось” бути автоматизованим таким чином, щоб воно відбувалось не у теперішньому, а в майбутньому. Потім вони б реалізували задумане.” (c) Уорд Кеннінґхем

Останнім часом я ледве не знову відкриваю для себе світ книжок. Мене неабияк почало дивувати те, що більшість знайомих мені програмістів майже не читають технічної літератури. А ті, хто читають, ніби й не погано розуміючи те, що програмування — це далеко не лише кодинг, не приділяють достатньої уваги вивченню і вдосконаленню інших навичок, необхідних в їхній роботі. Гаразд, ця книжка саме про такі навички. Я просто рекомендую, а ви робите, як знаєте…

Оцінка: відмінно


— Дай мені грошей — А за, що?

Вересень 8, 2009

dollars
Меґа-акція “50 гривень за статтю”, яка останні кілька місяців проводилась на ресурсі debian-administration.org.ua завершилась. Причина — її повне фіаско.

Витяг з листування з одним із “волонтерів”:

>>Хочете отримати за свою роботу гроші, чи плюсик до карми?
За свою роботу хотілося б отримати гроші, щоб мати стимул для подальшої роботи.

По порядку: вівши блоґ про адміністрування Debian GNU/Linux на протязі майже двох років, і зрозумівши, що українські користувачі його читачі, серед яких чимало професійних адміністраторів, досвід роботи яких з Дебіеном перевершує мій у рази, і які володіють знаннями, про які я навіть не чув, ні під яким ідеалістичним приводом, штибу “Що більше інформації ви створюватимете, то більше людей нею оволодіє, і з часом зможе підняти її на якісно вищий рівень…” не бажають цими знаннями ділитись, я вирішив зіграти на відомій ще з початку створення нашої цивілізації людській слабкості — любові до грошей. Я вирішив платити людям по 50 гривень за переклади статей: одна година твоєї роботи, і маєш 50 гривень, а інші — корисну інформацію українською.

Read the rest of this entry »


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

Серпень 19, 2009

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

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

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


GTK+ — 8. GtkImage та GtkIconView

Серпень 11, 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 »


GTK+ — 7. Прапорці та комбіновані списки

Квітень 22, 2009

Продовжуємо огляд віджетів основних елементів графічного користувацького інтерфейсу. Цього разу про кнопки-прапорці та комбіновані списки.

GtkCheckButton

GtkCheckButton — віджет, який має два стани: увімкнено і вимкнено. Стан “увімкнено” візуально відтворюється, як встановлений прапорець.

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <gtk /gtk.h>
 
 
void toggle_title(GtkWidget *widget, gpointer window)
{
    if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))) {
        gtk_window_set_title(window, "GtkCheckButton");
    } else {
        gtk_window_set_title(window, "");
    }
}
 
int main(int argc, char** argv)
{
    GtkWidget *window;
    GtkWidget *frame;
    GtkWidget *check;
 
    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), "GtkCheckButton");
 
 
    frame = gtk_fixed_new();
    gtk_container_add(GTK_CONTAINER(window), frame);
 
    check = gtk_check_button_new_with_label("Show title");
    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check), TRUE);
    GTK_WIDGET_UNSET_FLAGS(check, GTK_CAN_FOCUS);
    gtk_fixed_put(GTK_FIXED(frame), check, 50, 50);
 
    g_signal_connect_swapped(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
    g_signal_connect(check, "clicked", G_CALLBACK(toggle_title), (gpointer) window);
 
    gtk_widget_show_all(window);
 
    gtk_main();
 
    return 0;
}
</gtk>

У нашому вищенаведеному прикладі ми створили просту кнопку-прапорець, заголовок до якої буде відображатись, або ж буде відсутнім, залежно від того, буде встановлено прапорець, чи ні.

Створюємо віджет GtkCheckButton, зі станок за замовчуванням “прапорець поставлено”:

1
2
check = gtk_check_button_new_with_label("Show title");
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check), TRUE);

Тут ми прибираємо з нашої кнопки-прапорця фокус:

1
GTK_WIDGET_UNSET_FLAGS(check, GTK_CAN_FOCUS);

А цей код змінюєватиме заголовок кнопки в залежності від стану папорця:

1
2
3
4
5
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))) {
    gtk_window_set_title(window, "GtkCheckButton");
} else {
    gtk_window_set_title(window, "");
}

gtkcheckbutton

Read the rest of this entry »


Get Adobe Flash playerPlugin by wpburn.com wordpress themes