Archiwum dla luty, 2009

Ester eggs w Komodo Edit

Takie małe wielkanocne jaja ze strony autorów… Jak chcesz zobaczyć utwórz makro i w jego treści wpisz:

ko.eggs.boing ();

i uruchom je ^^

Bespin 0.1

Bespin to edytor kodu online będący kolejnym eksperymentem programistów z Mozilla Labs. O wydaniu pierwszej wersji edytora, programiści poinformowali dnia wczorajszego na swoim blogu.

Edytor w głównej mierze bazuje na nowości w HTML5: znaczniku canvas. Cechuje się, mimo fazy eksperymentalnej, dużą szybkością (nawet gdy edytujemy bardzo duży plik) oraz stabilnością. Edytor zapewnia, jak na razie, podstawową funkcjonalnością pomocą przy tworzeniu kodu: kolorowanie składni (JavaScript, HTML, CSS), numerowaniem linii, podgląd edytowanego pliku w nowym oknie przeglądarki.

Edytor posiada również tryb komend z podpowiadaniem składni. Komendy między innymi pozwalają na szybkie przechodzenie do wybranej linii, usuwanie białych znaków, zastępowanie wybranej frazy tekstu czy zarządzaniem plikami projektu.

Edytor można samodzielnie przetestować pod adresem https://bespin.mozilla.com, po błyskawicznej, darmowej rejestracji…

Więcej informacji na stronie projektu lub na stronie laboratorium Mozilli.

FAQ: Odczyt praw dosępu do pliku w giomm

Odczyt praw dostępu realizujemy, analogicznie jak w przypadku innych atrybutów pliku, poprzez metode get_attribute_boolean z klasy Gio::FileInfo przekazujać w parametrze ciąg znaków z nazwą atrybutu który nas interesuje.

W przypadku praw dostępu do pliku będzie to access::can-rename, access::can-delete, access::can-trash, access::can-read, access:can-write, access::can-execute oznaczające kolejno prawo do zmiany nazwy pliku, usunięcia, przeniesienia do kosza, odczytu z pliku, zapisu do pliku i uruchomienia. Wartość zwrócona przez tą metode odpowiada danemu prawu do pliku użytkownika który uruchomił aplikacje.

Przykład aplikacji sprawadzącej prawa dostępu do pliku z ścieżki podanej w prametrze…

#include <iostream.h>
#include <giomm.h>

int main(int argc, char *argv[]) {

    Gio::init ();

    if (argc <= 1) {
        std::cout << "Niepodano pliku...\n";
        return -1;
    }

    Glib::RefPtr<Gio::File> f = Gio::File::create_for_path (argv[1]);
    if (f)
    {
        Glib::RefPtr<Gio::FileInfo> info = f->query_info ();

        std::cout << "Mogę zmieniać nazwe ?    \t" << info->get_attribute_boolean ("access::can-rename") << std::endl;
        std::cout << "Mogę usunąć ?            \t" << info->get_attribute_boolean ("access::can-delete") << std::endl;
        std::cout << "Mogę przenieść do kosza ?\t" << info->get_attribute_boolean ("access::can-trash") << std::endl;
        std::cout << "Mogę odczytać zawartość ?\t" << info->get_attribute_boolean ("access::can-read") << std::endl;
        std::cout << "Mogę zapisywać do pliku ?\t" << info->get_attribute_boolean ("access:can-write") << std::endl;
        std::cout << "Mogę wykonywać plik ?    \t" << info->get_attribute_boolean ("access::can-execute") << std::endl;
    }

    return 0;
}

Kompilacja:

g++ `pkg-config giomm-2.4 –cflags –libs`