<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3772711163934802218</id><updated>2011-11-27T16:53:32.542-08:00</updated><category term='N900'/><title type='text'>TheFatal Blog</title><subtitle type='html'>Un blog como todos los demás, pero tratando de tener pocas faltas de ortografías</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://thefatalblog.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3772711163934802218/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://thefatalblog.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>TheFatal</name><uri>http://www.blogger.com/profile/05635629279598643395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>16</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3772711163934802218.post-5168519213785429085</id><published>2010-08-12T18:59:00.001-07:00</published><updated>2010-08-12T18:59:54.143-07:00</updated><title type='text'>Blogilo</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p&gt; Despúes de tanto tiempo, sin internet, vengo para tratar de revivir el blog. Como ? Ja, eso es lo dificil. Asique de a poco voy a tener que postear la mayoría de las cosas que encuentre que espero que les sea de utilidad. &lt;/p&gt;&lt;p&gt; Voy a empezar con un programa que encontré de casualidad en los paquetes de mi F13 (Fedora 13 Goddard) y decidí instalarlo es el KBlogilo o Blogilo, como les guste llamarlo. &lt;s&gt;Bilbo&lt;/s&gt;Blogilo es un programa OpenSource destinado a generar post para los blogs (en criollo, entradas para los blog). Es una herramienta bastante sensilla, el cual nos permite editar en modo texto común y corriente o en modo de editor de html, como también darnos una vista previa del post antes de subirlo al servidor. Se puede trabajar tranquilamente OffLine para realizar el documento más prolijo y tranquilo. &lt;/p&gt;&lt;p&gt; Opciones de alineación, de coloración, de edición, de inserción y de la mayoría de las palabras referentes a texto que finalizan en -ción se pueden encontrar facilmente en los botones que se encuentran arriba del texto que estamos ingresando. &lt;/p&gt;&lt;p&gt; Detecta si el servidor soporta adjuntar archivos, como edición de categorías y demás. También soporta múltiples cuentas en simultáneo y edición de posts anteriores (si el server te lo banca).&lt;/p&gt;&lt;p&gt; Corrector ortográfico, insertor de imagen, editor de fuente, etc, etc, etc. Un programa bastante minimalista y completo, con lo justo e indispensable. Un programa bastante recomendado para los que escriben en sus blog continuamente, a diferencia de mí. &lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3772711163934802218-5168519213785429085?l=thefatalblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thefatalblog.blogspot.com/feeds/5168519213785429085/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://thefatalblog.blogspot.com/2010/08/blogilo.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3772711163934802218/posts/default/5168519213785429085'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3772711163934802218/posts/default/5168519213785429085'/><link rel='alternate' type='text/html' href='http://thefatalblog.blogspot.com/2010/08/blogilo.html' title='Blogilo'/><author><name>TheFatal</name><uri>http://www.blogger.com/profile/05635629279598643395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3772711163934802218.post-8512362033164808027</id><published>2010-02-16T09:40:00.000-08:00</published><updated>2010-02-16T09:40:34.404-08:00</updated><title type='text'>Mi Escritorio Awesome</title><content type='html'>Bueno, esta entrada es para que vean como esta quedando mi escritorio despues de pasar de GNOME a Awesome.&lt;br /&gt;&lt;br /&gt;Los archivos de configuración esta vez sí pueden copy-pastearlos y si los ponen en su maquina les va a andar (Ubuntu 9.10)&lt;br /&gt;&lt;br /&gt;rc.lua ::&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-- Standard awesome library&lt;br /&gt;require("awful")&lt;br /&gt;-- Theme handling library&lt;br /&gt;require("beautiful")&lt;br /&gt;-- Notification library&lt;br /&gt;require("naughty")&lt;br /&gt;-- Load Vicious widgets&lt;br /&gt;-- require("vicious")&lt;br /&gt;-- Load Debian menu entries&lt;br /&gt;require("debian.menu")&lt;br /&gt;&lt;br /&gt;-- {{{ Variable definitions&lt;br /&gt;-- Themes define colours, icons, and wallpapers&lt;br /&gt;-- The default is a dark theme&lt;br /&gt;--theme_path = "/usr/share/awesome/themes/default/theme.lua"&lt;br /&gt;-- Uncommment this for a lighter theme&lt;br /&gt;theme_path = "/home/pincha/.config/awesome/themes/sky/theme.lua"&lt;br /&gt;&lt;br /&gt;-- Actually load theme&lt;br /&gt;beautiful.init(theme_path)&lt;br /&gt;&lt;br /&gt;-- This is used later as the default terminal and editor to run.&lt;br /&gt;terminal = "gnome-terminal"&lt;br /&gt;editor = os.getenv("EDITOR") or "editor"&lt;br /&gt;editor_cmd = terminal .. " -e " .. editor&lt;br /&gt;musicplayer= "rhythmbox-client"&lt;br /&gt;videoplayer="gmplayer"&lt;br /&gt;volumen="alsamixergui"&lt;br /&gt;navegador= terminal .. " -e mc"&lt;br /&gt;iceweasel="chromium-browser"&lt;br /&gt;emesene=  "emesene "&lt;br /&gt;&lt;br /&gt;-- Default modkey.&lt;br /&gt;-- Usually, Mod4 is the key with a logo between Control and Alt.&lt;br /&gt;-- If you do not like this or do not have such a key,&lt;br /&gt;-- I suggest you to remap Mod4 to another key using xmodmap or other tools.&lt;br /&gt;-- However, you can use another modifier like Mod1, but it may interact with others.&lt;br /&gt;modkey = "Mod4"&lt;br /&gt;&lt;br /&gt;-- Table of layouts to cover with awful.layout.inc, order matters.&lt;br /&gt;layouts =&lt;br /&gt;{&lt;br /&gt;    awful.layout.suit.tile,&lt;br /&gt;    awful.layout.suit.tile.left,&lt;br /&gt;    awful.layout.suit.tile.bottom,&lt;br /&gt;    awful.layout.suit.tile.top,&lt;br /&gt;    awful.layout.suit.fair,&lt;br /&gt;    awful.layout.suit.fair.horizontal,&lt;br /&gt;    awful.layout.suit.max,&lt;br /&gt;    awful.layout.suit.max.fullscreen,&lt;br /&gt;    awful.layout.suit.magnifier,&lt;br /&gt;    awful.layout.suit.floating&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;-- Table of clients that should be set floating. The index may be either&lt;br /&gt;-- the application class or instance. The instance is useful when running&lt;br /&gt;-- a console app in a terminal like (Music on Console)&lt;br /&gt;--    x-terminal-emulator -name mocp -e mocp&lt;br /&gt;floatapps =&lt;br /&gt;{&lt;br /&gt;    -- by class&lt;br /&gt;    ["MPlayer"] = true,&lt;br /&gt;    ["pinentry"] = true,&lt;br /&gt;    ["gimp"] = true,&lt;br /&gt;    -- by instance&lt;br /&gt;    ["mocp"] = true&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;-- Autorun programs&lt;br /&gt;autorun = true&lt;br /&gt;autorunApps = &lt;br /&gt;{ &lt;br /&gt;  -- "feh --bg-scale /home/pincha/Imágenes/lesbian.jpg",&lt;br /&gt;  -- "sh ~/.awesome/widget_init.sh", &lt;br /&gt;  "sh ~/wallpaper.sh",&lt;br /&gt;}&lt;br /&gt;if autorun then&lt;br /&gt;   for app = 1, #autorunApps do&lt;br /&gt;       awful.util.spawn(autorunApps[app])&lt;br /&gt;   end&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;-- Applications to be moved to a pre-defined tag by class or instance.&lt;br /&gt;-- Use the screen and tags indices.&lt;br /&gt;apptags =&lt;br /&gt;{&lt;br /&gt;    -- ["Firefox"] = { screen = 1, tag = 2 },&lt;br /&gt;     ["mocp"] = { screen = 2, tag = 4 },&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;-- Define if we want to use titlebar on all applications.&lt;br /&gt;use_titlebar = false&lt;br /&gt;-- }}}&lt;br /&gt;&lt;br /&gt;-- {{{ Tags&lt;br /&gt;-- Define tags table.&lt;br /&gt;tags = {}&lt;br /&gt;for s = 1, screen.count() do&lt;br /&gt;    -- Each screen has its own tag table.&lt;br /&gt;    tags[s] = {}&lt;br /&gt;    -- Create 9 tags per screen.&lt;br /&gt;    for tagnumber = 1, 9 do&lt;br /&gt;        tags[s][tagnumber] = tag(tagnumber)&lt;br /&gt;        -- Add tags to screen one by one&lt;br /&gt;        tags[s][tagnumber].screen = s&lt;br /&gt;        awful.layout.set(layouts[1], tags[s][tagnumber])&lt;br /&gt;    end&lt;br /&gt;    -- I'm sure you want to see at least one tag.&lt;br /&gt;    tags[s][1].selected = true&lt;br /&gt;end&lt;br /&gt;-- }}}&lt;br /&gt;&lt;br /&gt;-- {{{ Wibox&lt;br /&gt;-- Create a textbox widget&lt;br /&gt;mytextbox = widget({ type = "textbox", align = "right" })&lt;br /&gt;-- Set the default text in textbox&lt;br /&gt;mytextbox.text = "&lt;b&gt;&lt;small&gt; " .. awesome.release .. " &lt;/small&gt;&lt;/b&gt;"&lt;br /&gt;&lt;br /&gt;-- Create a laucher widget and a main menu&lt;br /&gt;myawesomemenu = {&lt;br /&gt;   { "manual", terminal .. " -e man awesome" },&lt;br /&gt;   { "edit config", terminal .. "nano ~/.config/awesome/rc.lua" },&lt;br /&gt;   { "restart", awesome.restart },&lt;br /&gt;   { "quit", awesome.quit }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;mymainmenu = awful.menu.new({ items = { { "awesome", myawesomemenu, beautiful.awesome_icon },&lt;br /&gt;                                      --  { "open terminal", terminal },&lt;br /&gt;                                      --  { "Debian", debian.menu.Debian_menu.Debian }&lt;br /&gt;                                        { "Musica", musicplayer },&lt;br /&gt;                                        { "Peliculas", videoplayer },&lt;br /&gt;                                        { "Archivos", navegador },&lt;br /&gt;                                        { "Navegador", iceweasel },&lt;br /&gt;                                        { "Volumen", volumen },&lt;br /&gt;                                        {"emesene",emesene}, &lt;br /&gt;                                      }&lt;br /&gt;                            })&lt;br /&gt;&lt;br /&gt;mylauncher = awful.widget.launcher({ image = image(beautiful.awesome_icon),&lt;br /&gt;                                     menu = mymainmenu })&lt;br /&gt;&lt;br /&gt;-- Create a systray&lt;br /&gt;mysystray = widget({ type = "systray", align = "right" })&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-- Another Test adding widgets whit tubes&lt;br /&gt; wifiwidget = widget({type = "textbox", name = "wifiwidget", align = "right" })&lt;br /&gt;-- Function&lt;br /&gt;function wifiInfo(adapter)&lt;br /&gt;     spacer = " "&lt;br /&gt;     local f = io.open("/sys/class/net/wlan0/wireless/link")&lt;br /&gt;     local wifiStrength = f:read()&lt;br /&gt;     if wifiStrength == "0" then&lt;br /&gt;         wifiStrength = "Network Down"&lt;br /&gt;     else&lt;br /&gt;         wifiStrength = "Wifi:"..spacer..wifiStrength.."%"&lt;br /&gt;     end&lt;br /&gt;     wifiwidget.text = spacer..wifiStrength..spacer&lt;br /&gt;     f:close()&lt;br /&gt; end&lt;br /&gt;&lt;br /&gt;-- Here another one but this time, something graphic&lt;br /&gt; batterywidget = widget({type = "textbox", name = "batterywidget", align = "right" })&lt;br /&gt;-- Function&lt;br /&gt; function batteryInfo(adapter)&lt;br /&gt;     spacer = " "&lt;br /&gt;     local fcur = io.open("/sys/class/power_supply/BAT1/energy_now")    &lt;br /&gt;     local fcap = io.open("/sys/class/power_supply/BAT1/energy_full")&lt;br /&gt;     local fsta = io.open("/sys/class/power_supply/BAT1/status")&lt;br /&gt;     local cur = fcur:read()&lt;br /&gt;     local cap = fcap:read()&lt;br /&gt;     local sta = fsta:read()&lt;br /&gt;     local battery = math.floor(cur * 100 / cap)&lt;br /&gt;     if sta:match("Charging") then&lt;br /&gt;         dir = "^"&lt;br /&gt;         battery = "A/C"&lt;br /&gt;     elseif sta:match("Discharging") then&lt;br /&gt;         dir = "v"&lt;br /&gt;         if tonumber(battery) &gt; 25 and tonumber(battery) &lt; 75 then             battery = battery         elseif tonumber(battery) &lt; 25 then             if tonumber(battery) &lt; 10 then                 naughty.notify({ title      = "Battery Warning"                                , text       = "Battery low!"..spacer..battery.."%"..spacer.."left!"                                , timeout    = 5                                , position   = "top_right"                                , fg         = beautiful.fg_focus                                , bg         = beautiful.bg_focus                                })             end             battery = battery         else             battery = battery         end     else         dir = "="         battery = "A/C"     end     batterywidget.text = spacer.."Bat:"..spacer..dir..battery..dir..spacer     fcur:close()     fcap:close()     fsta:close() end-- Create a wibox for each screen and add itmywibox = {}mypromptbox = {}mylayoutbox = {}mytaglist = {}mytaglist.buttons = awful.util.table.join(                    awful.button({ }, 1, awful.tag.viewonly),                    awful.button({ modkey }, 1, awful.client.movetotag),                    awful.button({ }, 3, function (tag) tag.selected = not tag.selected end),                    awful.button({ modkey }, 3, awful.client.toggletag),                    awful.button({ }, 4, awful.tag.viewnext),                    awful.button({ }, 5, awful.tag.viewprev)                    )mytasklist = {}mytasklist.buttons = awful.util.table.join(                     awful.button({ }, 1, function (c)                                              if not c:isvisible() then                                                  awful.tag.viewonly(c:tags()[1])                                              end                                              client.focus = c                                              c:raise()                                          end),                     awful.button({ }, 3, function ()                                              if instance then                                                  instance:hide()                                                  instance = nil                                              else                                                  instance = awful.menu.clients({ width=250 })                                              end                                          end),                     awful.button({ }, 4, function ()                                              awful.client.focus.byidx(1)                                              if client.focus then client.focus:raise() end                                          end),                     awful.button({ }, 5, function ()                                              awful.client.focus.byidx(-1)                                              if client.focus then client.focus:raise() end                                          end))for s = 1, screen.count() do    -- Create a promptbox for each screen    mypromptbox[s] = awful.widget.prompt({ align = "left" })    -- Create an imagebox widget which will contains an icon indicating which layout we're using.    -- Remember say thanks to TheFatal    -- We need one layoutbox per screen.    mylayoutbox[s] = widget({ type = "imagebox", align = "right" })    mylayoutbox[s]:buttons(awful.util.table.join(                           awful.button({ }, 1, function () awful.layout.inc(layouts, 1) end),                           awful.button({ }, 3, function () awful.layout.inc(layouts, -1) end),                           awful.button({ }, 4, function () awful.layout.inc(layouts, 1) end),                           awful.button({ }, 5, function () awful.layout.inc(layouts, -1) end)))    -- Create a taglist widget    mytaglist[s] = awful.widget.taglist(s, awful.widget.taglist.label.all, mytaglist.buttons)    -- Create a tasklist widget    mytasklist[s] = awful.widget.tasklist(function(c)                                              return awful.widget.tasklist.label.currenttags(c, s)                                          end, mytasklist.buttons)    -- Create the wibox    mywibox[s] = wibox({ position = "top", fg = beautiful.fg_normal, bg = beautiful.bg_normal })    -- Add widgets to the wibox - order matters    mywibox[s].widgets = { mylauncher,                           mytaglist[s],                           mytasklist[s],                           mypromptbox[s],                           wifiwidget,                           batterywidget,                           mytextbox,                           mylayoutbox[s],                           s == 1 and mysystray or nil }    mywibox[s].screen = send-- }}}-- {{{ Mouse bindingsroot.buttons(awful.util.table.join(    awful.button({ }, 3, function () mymainmenu:toggle() end),    awful.button({ }, 4, awful.tag.viewnext),    awful.button({ }, 5, awful.tag.viewprev)))-- }}}-- {{{ Key bindingsglobalkeys = awful.util.table.join(    awful.key({ modkey,           }, "Left",   awful.tag.viewprev       ),    awful.key({ modkey,           }, "Right",  awful.tag.viewnext       ),    awful.key({ modkey,           }, "Escape", awful.tag.history.restore),    awful.key({ modkey,           }, "j",        function ()            awful.client.focus.byidx( 1)            if client.focus then client.focus:raise() end        end),    awful.key({ modkey,           }, "k",        function ()            awful.client.focus.byidx(-1)            if client.focus then client.focus:raise() end        end),    awful.key({ modkey,           }, "w", function () mymainmenu:show(true)        end),    -- Layout manipulation    awful.key({ modkey, "Shift"   }, "j", function () awful.client.swap.byidx(  1) end),    awful.key({ modkey, "Shift"   }, "k", function () awful.client.swap.byidx( -1) end),    awful.key({ modkey, "Control" }, "j", function () awful.screen.focus( 1)       end),    awful.key({ modkey, "Control" }, "k", function () awful.screen.focus(-1)       end),    awful.key({ modkey,           }, "u", awful.client.urgent.jumpto),    awful.key({ modkey,           }, "Tab",        function ()            awful.client.focus.history.previous()            if client.focus then                client.focus:raise()            end        end),    -- Standard program    awful.key({ modkey,           }, "Return", function () awful.util.spawn(terminal) end),    awful.key({ modkey, "Control" }, "r", awesome.restart),    awful.key({ modkey, "Shift"   }, "q", awesome.quit),    awful.key({ modkey,           }, "l",     function () awful.tag.incmwfact( 0.05)    end),    awful.key({ modkey,           }, "h",     function () awful.tag.incmwfact(-0.05)    end),    awful.key({ modkey, "Shift"   }, "h",     function () awful.tag.incnmaster( 1)      end),    awful.key({ modkey, "Shift"   }, "l",     function () awful.tag.incnmaster(-1)      end),    awful.key({ modkey, "Control" }, "h",     function () awful.tag.incncol( 1)         end),    awful.key({ modkey, "Control" }, "l",     function () awful.tag.incncol(-1)         end),    awful.key({ modkey,           }, "space", function () awful.layout.inc(layouts,  1) end),    awful.key({ modkey, "Shift"   }, "space", function () awful.layout.inc(layouts, -1) end),    awful.key({modkey,},"i",function() awful.util.spawn(iceweasel,false) end),    -- Prompt    awful.key({ modkey },            "r",     function () mypromptbox[mouse.screen]:run() end),    awful.key({ modkey }, "x",              function ()                  awful.prompt.run({ prompt = "Run Lua code: " },                  mypromptbox[mouse.screen].widget,                  awful.util.eval, nil,                  awful.util.getdir("cache") .. "/history_eval")              end))-- Client awful tagging: this is useful to tag some clients and then do stuff like move to tag on themclientkeys = awful.util.table.join(    awful.key({ modkey,           }, "f",      function (c) c.fullscreen = not c.fullscreen  end),    awful.key({ modkey, "Shift"   }, "c",      function (c) c:kill()                         end),    awful.key({ modkey, "Control" }, "space",  awful.client.floating.toggle                     ),    awful.key({ modkey, "Control" }, "Return", function (c) c:swap(awful.client.getmaster()) end),    awful.key({ modkey,           }, "o",      awful.client.movetoscreen                        ),--    awful.key({ modkey, }, "i" , iceweasel ),    awful.key({ modkey, "Shift"   }, "r",      function (c) c:redraw()                       end),    awful.key({ modkey }, "t", awful.client.togglemarked),    awful.key({ modkey,}, "m",        function (c)            c.maximized_horizontal = not c.maximized_horizontal            c.maximized_vertical   = not c.maximized_vertical        end))-- Compute the maximum number of digit we need, limited to 9keynumber = 0for s = 1, screen.count() do   keynumber = math.min(9, math.max(#tags[s], keynumber));endfor i = 1, keynumber do    globalkeys = awful.util.table.join(globalkeys,        awful.key({ modkey }, i,                  function ()                        local screen = mouse.screen                        if tags[screen][i] then                            awful.tag.viewonly(tags[screen][i])                        end                  end),        awful.key({ modkey, "Control" }, i,                  function ()                      local screen = mouse.screen                      if tags[screen][i] then                          tags[screen][i].selected = not tags[screen][i].selected                      end                  end),        awful.key({ modkey, "Shift" }, i,                  function ()                      if client.focus and tags[client.focus.screen][i] then                          awful.client.movetotag(tags[client.focus.screen][i])                      end                  end),        awful.key({ modkey, "Control", "Shift" }, i,                  function ()                      if client.focus and tags[client.focus.screen][i] then                          awful.client.toggletag(tags[client.focus.screen][i])                      end                  end),        awful.key({ modkey, "Shift" }, "F" .. i,                  function ()                      local screen = mouse.screen                      if tags[screen][i] then                          for k, c in pairs(awful.client.getmarked()) do                              awful.client.movetotag(tags[screen][i], c)                          end                      end                   end))end-- Set keysroot.keys(globalkeys)-- }}}-- {{{ Hooks-- My Widgetsawful.hooks.timer.register(3, function()     wifiInfo("wlan0") end)awful.hooks.timer.register(10, function()     batteryInfo("BAT1") end)-- Hook function to execute when focusing a client.awful.hooks.focus.register(function (c)    if not awful.client.ismarked(c) then        c.border_color = beautiful.border_focus    endend)-- Hook function to execute when unfocusing a client.awful.hooks.unfocus.register(function (c)    if not awful.client.ismarked(c) then        c.border_color = beautiful.border_normal    endend)-- Hook function to execute when marking a clientawful.hooks.marked.register(function (c)    c.border_color = beautiful.border_markedend)-- Hook function to execute when unmarking a client.awful.hooks.unmarked.register(function (c)    c.border_color = beautiful.border_focusend)-- Hook function to execute when the mouse enters a client.awful.hooks.mouse_enter.register(function (c)    -- Sloppy focus, but disabled for magnifier layout    if awful.layout.get(c.screen) ~= awful.layout.suit.magnifier        and awful.client.focus.filter(c) then        client.focus = c    endend)-- Hook function to execute when a new client appears.awful.hooks.manage.register(function (c, startup)    -- If we are not managing this application at startup,    -- move it to the screen where the mouse is.    -- We only do it for filtered windows (i.e. no dock, etc).    if not startup and awful.client.focus.filter(c) then        c.screen = mouse.screen    end    if use_titlebar then        -- Add a titlebar        awful.titlebar.add(c, { modkey = modkey })    end    -- Add mouse bindings    c:buttons(awful.util.table.join(        awful.button({ }, 1, function (c) client.focus = c; c:raise() end),        awful.button({ modkey }, 1, awful.mouse.client.move),        awful.button({ modkey }, 3, awful.mouse.client.resize)    ))    -- New client may not receive focus    -- if they're not focusable, so set border anyway.    c.border_width = beautiful.border_width    c.border_color = beautiful.border_normal    -- Check if the application should be floating.    local cls = c.class    local inst = c.instance    if floatapps[cls] ~= nil then        awful.client.floating.set(c, floatapps[cls])    elseif floatapps[inst] ~= nil then        awful.client.floating.set(c, floatapps[inst])    end    -- Check application-&gt;screen/tag mappings.&lt;br /&gt;    local target&lt;br /&gt;    if apptags[cls] then&lt;br /&gt;        target = apptags[cls]&lt;br /&gt;    elseif apptags[inst] then&lt;br /&gt;        target = apptags[inst]&lt;br /&gt;    end&lt;br /&gt;    if target then&lt;br /&gt;        c.screen = target.screen&lt;br /&gt;        awful.client.movetotag(tags[target.screen][target.tag], c)&lt;br /&gt;    end&lt;br /&gt;&lt;br /&gt;    -- Do this after tag mapping, so you don't see it on the wrong tag for a split second.&lt;br /&gt;    client.focus = c&lt;br /&gt;&lt;br /&gt;    -- Set key bindings&lt;br /&gt;    c:keys(clientkeys)&lt;br /&gt;&lt;br /&gt;    -- Set the windows at the slave,&lt;br /&gt;    -- i.e. put it at the end of others instead of setting it master.&lt;br /&gt;    -- awful.client.setslave(c)&lt;br /&gt;&lt;br /&gt;    -- Honor size hints: if you want to drop the gaps between windows, set this to false.&lt;br /&gt;    -- c.size_hints_honor = false&lt;br /&gt;end)&lt;br /&gt;&lt;br /&gt;-- Hook function to execute when arranging the screen.&lt;br /&gt;-- (tag switch, new client, etc)&lt;br /&gt;awful.hooks.arrange.register(function (screen)&lt;br /&gt;    local layout = awful.layout.getname(awful.layout.get(screen))&lt;br /&gt;    if layout and beautiful["layout_" ..layout] then&lt;br /&gt;        mylayoutbox[screen].image = image(beautiful["layout_" .. layout])&lt;br /&gt;    else&lt;br /&gt;        mylayoutbox[screen].image = nil&lt;br /&gt;    end&lt;br /&gt;&lt;br /&gt;    -- Give focus to the latest client in history if no window has focus&lt;br /&gt;    -- or if the current window is a desktop or a dock one.&lt;br /&gt;    if not client.focus then&lt;br /&gt;        local c = awful.client.focus.history.get(screen, 0)&lt;br /&gt;        if c then client.focus = c end&lt;br /&gt;    end&lt;br /&gt;end)&lt;br /&gt;&lt;br /&gt;-- Hook called every minute&lt;br /&gt;awful.hooks.timer.register(60, function ()&lt;br /&gt;    mytextbox.text = os.date(" %a %b %d, %H:%M ")&lt;br /&gt;end)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3772711163934802218-8512362033164808027?l=thefatalblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thefatalblog.blogspot.com/feeds/8512362033164808027/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://thefatalblog.blogspot.com/2010/02/mi-escritorio-awesome.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3772711163934802218/posts/default/8512362033164808027'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3772711163934802218/posts/default/8512362033164808027'/><link rel='alternate' type='text/html' href='http://thefatalblog.blogspot.com/2010/02/mi-escritorio-awesome.html' title='Mi Escritorio Awesome'/><author><name>TheFatal</name><uri>http://www.blogger.com/profile/05635629279598643395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3772711163934802218.post-7660346893860584333</id><published>2009-11-28T20:17:00.000-08:00</published><updated>2009-11-28T20:19:00.840-08:00</updated><title type='text'>nVidia Widget</title><content type='html'>Para todos aquellos que tengan una placa de video nVidia, y no tengan ganas de ir hasta la página y poner Bajar drivers, nVidia lanzó recientemente un Widget que permíte buscar el controlador facilmente, sin tener que entrar a la pagina de ésta.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Existen 2 posibilidades, la versión vertical :&lt;br /&gt;&lt;div&gt;&lt;script src='http://la.nvidia.com/content/includes/js/AC_OETags.js' language='javascript'&gt;&lt;/script&gt;&lt;script&gt;AC_FL_RunContent('flashVars', 'widgetVersion=vertical&amp;widgetLanguage=la','src', 'http://la.nvidia.com/content/DriverDownload/widget/v2/driver_widget','width', '320','height', '620','align', 'middle','id', 'driver_widget','quality', 'high','bgcolor', '#869ca7','name', 'driver_widget','wmode', 'transparent','allowScriptAccess','sameDomain','type', 'application/x-shockwave-flash','pluginspage', 'http://www.adobe.com/go/getflashplayer');&lt;/script&gt;&lt;/div&gt;&lt;br /&gt;Y la versión horizontal (me queda fuera de bloque por problemas con el diseño del blog) :&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;script src='http://la.nvidia.com/content/includes/js/AC_OETags.js' language='javascript'&gt;&lt;/script&gt;&lt;script&gt;AC_FL_RunContent('flashVars', 'widgetVersion=horizontal&amp;widgetLanguage=la','src', 'http://la.nvidia.com/content/DriverDownload/widget/v2/driver_widget','width', '550','height', '480','align', 'middle','id', 'driver_widget','quality', 'high','bgcolor', '#869ca7','name', 'driver_widget','wmode', 'transparent','allowScriptAccess','sameDomain','type', 'application/x-shockwave-flash','pluginspage', 'http://www.adobe.com/go/getflashplayer');&lt;/script&gt;&lt;/div&gt;&lt;br /&gt;Ambas pudiendose colocar en cualquier blog/pagina que querramos.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3772711163934802218-7660346893860584333?l=thefatalblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thefatalblog.blogspot.com/feeds/7660346893860584333/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://thefatalblog.blogspot.com/2009/11/nvidia-widget.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3772711163934802218/posts/default/7660346893860584333'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3772711163934802218/posts/default/7660346893860584333'/><link rel='alternate' type='text/html' href='http://thefatalblog.blogspot.com/2009/11/nvidia-widget.html' title='nVidia Widget'/><author><name>TheFatal</name><uri>http://www.blogger.com/profile/05635629279598643395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3772711163934802218.post-1106706834381408996</id><published>2009-11-27T13:39:00.000-08:00</published><updated>2009-11-27T13:39:43.297-08:00</updated><title type='text'>Editar particiones NTFS</title><content type='html'>Este va a ser un post corto, tratando de ser lo mas simple posible, pero no dejando de ser informatívo.&lt;br /&gt;&lt;br /&gt;Para todos aquellos que tengan una partición NTFS en su disco, y quieran modificar su tamaño con gParted, van a necesitar una herramienta para que el programa pueda modificar el tamaño. La herramienta se llama &lt;b&gt;ntfsprogs&lt;/b&gt; y aunque parece algo minúsculo, lo que hace es brindarle soporte a gParted y otros programas sobre particiones NTFS, pudiendo así modificar el tamaño de una partición de XP por ejemplo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3772711163934802218-1106706834381408996?l=thefatalblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thefatalblog.blogspot.com/feeds/1106706834381408996/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://thefatalblog.blogspot.com/2009/11/editar-particiones-ntfs.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3772711163934802218/posts/default/1106706834381408996'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3772711163934802218/posts/default/1106706834381408996'/><link rel='alternate' type='text/html' href='http://thefatalblog.blogspot.com/2009/11/editar-particiones-ntfs.html' title='Editar particiones NTFS'/><author><name>TheFatal</name><uri>http://www.blogger.com/profile/05635629279598643395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3772711163934802218.post-3493778181590694397</id><published>2009-11-01T13:08:00.000-08:00</published><updated>2009-11-02T18:25:29.433-08:00</updated><title type='text'>Modificando sudoers manualmente</title><content type='html'>Hace unos dias tuve un problema de permisos con el N810 y se me bloquearon todos los comandos que necesitan usar "sudo" para ejecutarse. Entonces me puse a averiguar sobre como modificar la lista de usuarios sudos para poder resolver el problema que me surgio. Como seguramente algunos no tienen, antes que nada voy a tratar de explicar que es la sudoers y para que sirve el comando sudo.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Como toda distribución basada en Debian, los permisos para ejecutar acciones "administrativas" o importante para la maquina se maneja con comandos con permisos especiales, ya sea mediante el uso de "root" o con el comando "sudo". Si queremos apagar la maquina, por decir un ejemplo, desde consola, tenemos que poner&lt;br /&gt;&lt;blockquote&gt;sudo halt &lt;/blockquote&gt;(no siempre es necesario poner sudo al comando halt si los permisos de usuario estan configurados para poder utilizarlo) o logearnos como super-usuario (root) y ejecutar el comando, pero toma demasiado tiempo.&lt;br /&gt;&lt;br /&gt;Ahora bien, una vez entendido lo de arriba procederemos a lo que es sudoers. Es un archivo el cual contiene una lista con los usuarios con la cual pueden ejecutar operaciones administrativas, como apagar el sistema. Cuando instalamos la distribución, automaticamente se agrega el usuario a la lista de sudo-usuarios. Pero cuando añadimos un nuevo usuario, o queremos que el que ya esta no pida la contraseña cuando usamos sudo (que es altamente no recomendado por cuestiones de seguridad) tenemos que modificar el archivo sudoers para lograrlo. Si hasta este punto entendistes, ahora viene el momento de aplicar lo resumido arriba. El archivo SUDOERS está en la carpeta /etc/ y tiene permisos para no ser modificado por cualquiera. Entonces o bien probamos con &lt;br /&gt;&lt;blockquote&gt;sudo nano /etc/sudoers&lt;/blockquote&gt; o la mas larga &lt;br /&gt;&lt;blockquote&gt;sudo su nano /etc/sudoers&lt;/blockquote&gt;Una vez abierto el archivo, tiene que ser algo así...&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_UKHkg1RP3-k/Su3zKcKcK-I/AAAAAAAAAA8/2ixBFTiUXaY/s1600-h/Pantallazo-1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_UKHkg1RP3-k/Su3zKcKcK-I/AAAAAAAAAA8/2ixBFTiUXaY/s320/Pantallazo-1.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Este es MI sudoers, pero el suyo o el de cualquiera que sepa un poco mas o un poco menos que yo lo puede tener diferente, respecto a su uso/gusto.&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Ahora bien, para modificar algun elemento tenemos que tener en cuenta lo siguiente :&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Usuario&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Host = (usuario privilegiado) comando&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Que quiere decir eso ? Bien, ahora lo explicaré paso por paso.&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Usuario : Puede ser tanto root como cualquier otro usuario que tengamos en la maquina&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Host : Es la maquina en la cual está el usuario (casi siempre será ALL, cualquier maquina)&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Usuario Privilegiado : Este elemento es opcional. Establece si algun otro usuario a travez del que estemos definiendo, puede ejecutar algun comando de los ingresados&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Comando : Establece los comandos que pueda utilizar. En el caso de root, por defecto y es recomendable que no lo modifiquen, es ALL, que quiere decir cualquier comando.&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Una vez entendido esto, podemos agregar, modificar o quitar permisos a los usuarios que esten en la maquina, pero recordá que tenes que tener claro lo que estas haciendo, porque sino no podremos ejecutar comandos con sudo, y posiblemente tampoco como root.&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Ahora bien, volviendo a mi problema, el archivo sudoers en el N810 posee permisos no para todos los comandos, sino para algunos definidos de fabrica para que no se puedan realizar varias cosas, solamente las indispensables (para ellos). Entonces si recordamos un poco lo leido, lo unico que tenemos que hacer es agregar la siguiente linea al final del archivo.&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;blockquote&gt;user ALL = (ALL) ALL&lt;/blockquote&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Con esto establecimos que el usuario user (el que viene de fabrica) pueda ejecutar cualquier comando. No es necesario modificar los permisos que estan mas arriba, ya que directamente al ingresar ultima esta linea, obia los anteriores, porque ya estan integrados en ALL.&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Espero que les alla sido util esta información.&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;FUENTE : No tiene fuente, ya que lo hice yo con la practica (no se recomienda realizar mis formas de entender el archivo ya que tuve que formatear el dispositivo un par de veces. En esta guia traté de explicar a groso modo, el funcionamiento de sudoers, para que, a su riesgo, juegen un poco con los permisos)&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3772711163934802218-3493778181590694397?l=thefatalblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thefatalblog.blogspot.com/feeds/3493778181590694397/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://thefatalblog.blogspot.com/2009/11/modificando-sudoers-manualmente.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3772711163934802218/posts/default/3493778181590694397'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3772711163934802218/posts/default/3493778181590694397'/><link rel='alternate' type='text/html' href='http://thefatalblog.blogspot.com/2009/11/modificando-sudoers-manualmente.html' title='Modificando sudoers manualmente'/><author><name>TheFatal</name><uri>http://www.blogger.com/profile/05635629279598643395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_UKHkg1RP3-k/Su3zKcKcK-I/AAAAAAAAAA8/2ixBFTiUXaY/s72-c/Pantallazo-1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3772711163934802218.post-810951781176182369</id><published>2009-11-01T12:04:00.000-08:00</published><updated>2009-11-01T12:04:01.932-08:00</updated><title type='text'>Disponible la version 190.42 del driver de nVidia</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://la.nvidia.com/content/includes/images/redesign08/nvidia_logo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://la.nvidia.com/content/includes/images/redesign08/nvidia_logo.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Ya esta disponible la versión 190.42 del driver nVidia para placas GeForce para Linux. En esta actualización se detallan los siguientes cambios (en ingles) :&lt;br /&gt;&lt;div class="tabcontent" id="tab1_content" style="display: block; visibility: visible;"&gt; &lt;ul&gt;&lt;li&gt;Added support for the  following GPUs:&lt;/li&gt;&lt;ul&gt;GeForce G102MGeForce GT 220GeForce G210GeForce G210MGeForce GT 230MGeForce GT 240MGeForce GTS 250MGeForce GTS 260M   &lt;/ul&gt;&lt;li&gt;Added support for OpenGL 3.2.&lt;/li&gt;&lt;li&gt;Updated the NVIDIA X driver to allow, on GeForce 8 or greater GPUs, more modes to validate on digital display devices whose EDIDs report very constrained HorizSync or VertRefresh ranges.&lt;/li&gt;&lt;li&gt;Fixed a randomly occurring X  server crash caused by the PixmapCache option.&lt;/li&gt;&lt;li&gt;Increased the allowed amount  of overscan compensation from 100 to 200.&lt;/li&gt;&lt;li&gt;On GPUs with VDPAU feature set B, VDPAU's handling of some corrupted or incorrectly formatted H.264 and MPEG streams has been improved.&lt;/li&gt;&lt;li&gt;Fixed a memory allocation problem with pre-GeForce 8 GPUs that caused GLX_EXT_texture_from_pixmap clients (e.g., Compiz, KDE 4) to display incorrect contents.&lt;/li&gt;&lt;li&gt;Added support for X.Org xserver 1.6.99.901 (also known as 1.7.0 RC1). Add a new OverscanCompensation NV-CONTROL attribute, available on GeForce 8 and higher. This option specifies the amount of overscan compensation to apply to the current mode. It is measured in raster pixels, i.e. pixels as specified in the current mode's backend timings.&lt;/li&gt;&lt;li&gt;Added GLX support for OpenGL  3.2 context profiles through the extension&lt;/li&gt;&lt;li&gt;GLX_ARB_create_context_profile.&lt;/li&gt;&lt;li&gt; Added support for IgnoreEDIDChecksum X configuration option, which can be used to force the X driver to accept the EDID of a display device even when the checksum is invalid. Please see the README IgnoreEDIDChecksum description for a caution and details of use.&lt;/li&gt;&lt;li&gt;Added support for configuring  the GPU's fan speed; see the "Coolbits" X configuration option in the README.&lt;/li&gt;&lt;li&gt;Fixed a bug in VDPAU that could cause visible corruption near the bottom edge of the picture when decoding VC-1 simple/main profile clips whose heights are not exact multiples of 16 pixels, on GPUs with VDPAU feature set A.&lt;/li&gt;&lt;li&gt;On GPUs with VDPAU feature set C, VDPAU now supports decoding MPEG-4 Part 2, DivX 4, and DivX 5 video. The VDPAU API has been enhanced to expose this feature.&lt;/li&gt;&lt;li&gt;On GPUs with VDPAU feature set C, VDPAU now supports a higher quality video scaling algorithm. The VDPAU API has been enhanced to expose this feature.&lt;/li&gt;&lt;li&gt;Added code to reject screen modes based on available DisplayPort link bandwidth. Fixes display corruption caused by allowing high bandwidth modes on display devices that can't handle them, such as certain DisplayPort-to-VGA adapters that only support 2 DisplayPort lanes.&lt;/li&gt;&lt;li&gt;Fixed an initialization  problem on some mobile GPUs.&lt;/li&gt;&lt;li&gt;Worked around X.Org X server  Bugzilla bug #22804.  This bug allows X clients to send invalid XGetImage requests to the   hardware, leading to screen corruption or hangs.  This was most   commonly triggered by running JDownloader in KDE 4.&lt;/li&gt;&lt;li&gt;Fixed a crash in nvidia-settings  displaying GPU information when in Xinerama.&lt;/li&gt;&lt;li&gt;Added GLX protocol support  (i.e., for GLX indirect rendering) for the following OpenGL extensions:&lt;br /&gt;&lt;ul&gt;GL_ARB_draw_buffersGL_EXT_Cg_shaderGL_EXT_gpu_program_parametersGL_NV_fragment_programGL_NV_gpu_program4GL_NV_register_combinersGL_NV_vertex_program1_1GL_NV_vertex_program2&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Added unofficial GLX protocol  support (i.e., for GLX indirect rendering) for the following OpenGL extensions:&lt;br /&gt;&lt;ul&gt;GL_ARB_geometry_shader4GL_ARB_shader_objectsGL_ARB_texture_buffer_objectGL_ARB_vertex_buffer_objectGL_ARB_vertex_shaderGL_EXT_bindable_uniformGL_EXT_compiled_vertex_arrayGL_EXT_geometry_shader4GL_EXT_gpu_shader4GL_EXT_texture_buffer_objectGL_NV_geometry_program4GL_NV_vertex_programGL_NV_parameter_buffer_objectGL_NV_vertex_program4&lt;/ul&gt;GLX protocol for GL_EXT_vertex_array  was also updated to incorporate   rendering using  GL_ARB_vertex_buffer_object.   Use of these extensions  with GLX indirect rendering requires   the  AllowUnofficialGLXProtocol X configuration option and the   __GL_ALLOW_UNOFFICIAL_PROTOCOL  environment variable.&lt;/li&gt;&lt;li&gt;Fixed glXQueryVersion to report GLX version 1.4. NVIDIA's GLX version has been 1.4 for several releases, and was already reported as 1.4 in the GLX client and GLX server version strings.&lt;/li&gt;&lt;li&gt;Fixed a problem that caused window  border corruption when the screen is rotated.&lt;/li&gt;&lt;li&gt;Added support for configuring the GPU PowerMizer Mode on GeForce 8 or later GPUs with multiple performance levels via nvidia-settings and NV-CONTROL.&lt;/li&gt;&lt;li&gt;Added support for NVIDIA Quadro  SDI Capture, part of the Quadro Digital Video Pipeline.&lt;/li&gt;&lt;li&gt;Updated nvidia-installer to detect newer Debian distributions that use /usr/lib32 instead of /emul/ia32-linux as the 32-bit library path. &lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3772711163934802218-810951781176182369?l=thefatalblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thefatalblog.blogspot.com/feeds/810951781176182369/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://thefatalblog.blogspot.com/2009/11/disponible-la-version-19042-del-driver.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3772711163934802218/posts/default/810951781176182369'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3772711163934802218/posts/default/810951781176182369'/><link rel='alternate' type='text/html' href='http://thefatalblog.blogspot.com/2009/11/disponible-la-version-19042-del-driver.html' title='Disponible la version 190.42 del driver de nVidia'/><author><name>TheFatal</name><uri>http://www.blogger.com/profile/05635629279598643395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3772711163934802218.post-7176163912659106667</id><published>2009-10-28T13:46:00.000-07:00</published><updated>2009-10-28T13:46:31.636-07:00</updated><title type='text'>El mayor fabricante de teléfonos móviles del mundo, Nokia, denunció el jueves 22 de Octubre a Apple por infringir patentes con su iPhone.</title><content type='html'>&lt;div class="ynw-article-body mod"&gt;&lt;div class="ynw-standfirst"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id="ynw-article-part2"&gt;Nokia domina el mercado mundial de móviles, pero ha perdido algo de terreno ante nuevos jugadores en el mercado de los teléfonos inteligentes ( con funciones similares a las de un ordenador sencillo ), como Apple, que llegó al sector con su iPhone a mediados de 2007.&lt;br /&gt;&lt;/div&gt;Las 10 patentes de la demanda, presentada en el estado de Delaware, están relacionadas con tecnologías fundamentales para dispositivos que utilizan estándares de GSM, UMTS y/o red local de área (LAN, en sus siglas en inglés), según la empresa finlandesa.&lt;br /&gt;"El enorme catálogo de patentes de Nokia hace que esto no sea una gran sorpresa para nosotros, pero podría tener graves repercusiones para Apple y su proveedor de componentes", indicó el analista de CCS Insight Geoff Blaber.&lt;br /&gt;"Una vez más, la propiedad intelectual se ha convertido en el segundo campo de batalla en un mercado móvil muy competitivo", añadió.&lt;br /&gt;Nokia cerró el año pasado una batalla legal de más tres años con el fabricante estadounidense de procesadores Qualcomm, que abarcó tres continentes y abarcó más de una docena de procesos legales distintos.&lt;br /&gt;"Es demasiado pronto para decirlo, pero es probable que haya una larga batalla. Nos cuesta mucho ver un riesgo material para ninguna de las dos empresas", comentó a su vez el analista de Avian Securities Matthew Thornton.&lt;br /&gt;"Las dos son grandes empresas, tienen mucho efectivo y pueden pelearlo, y al final no espero un gran impacto en el perfil financiero de Apple", añadió.&lt;br /&gt;Una batalla legal sobre 10 patentes puede con facilidad durar varios años.&lt;br /&gt;Las patentes en cuestión se refieren a datos móviles, código de voz, seguridad y cifrado, indicó Nokia, afirmando que todas ellas se infringen en los modelos del &lt;a href="http://es.noticias.yahoo.com/especiales/apple.html"&gt;iPhone&lt;/a&gt; vendidos desde el lanzamiento del aparato en 2007.&lt;br /&gt;El demandante señaló que 40 vendedores de móviles han obtenido licencias para emplear estas tecnologías, pero que no han alcanzado un acuerdo con Apple.&lt;br /&gt;"Al negarse a acceder a términos apropiados para la propiedad intelectual de Nokia, Apple está intentando hacer un viaje gratis a las espaldas de la innovación de Nokia", indicó en un comunicado Ilkka Rahnasto, vicepresidente de Propiedad Legal e Intelectual en Nokia.&lt;br /&gt;No había por el momento nadie en Apple disponible para hacer comentarios.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://es.noticias.yahoo.com/10/20091022/ttc-oesin-nokia-apple-demanda-fe50bdd.html"&gt;FUENTE&lt;/a&gt; &lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3772711163934802218-7176163912659106667?l=thefatalblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thefatalblog.blogspot.com/feeds/7176163912659106667/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://thefatalblog.blogspot.com/2009/10/el-mayor-fabricante-de-telefonos.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3772711163934802218/posts/default/7176163912659106667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3772711163934802218/posts/default/7176163912659106667'/><link rel='alternate' type='text/html' href='http://thefatalblog.blogspot.com/2009/10/el-mayor-fabricante-de-telefonos.html' title='El mayor fabricante de teléfonos móviles del mundo, Nokia, denunció el jueves 22 de Octubre a Apple por infringir patentes con su iPhone.'/><author><name>TheFatal</name><uri>http://www.blogger.com/profile/05635629279598643395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3772711163934802218.post-3179335366565689382</id><published>2009-10-28T13:37:00.001-07:00</published><updated>2009-10-28T13:37:51.708-07:00</updated><title type='text'>Analisis Forense de Firefox</title><content type='html'>Para un análisis forense de Mozilla Firefox 3.X es necesario saber, cómo y dónde, el navegador guarda la información del historial de navegación, correspondiente a cada usuario del sistema.&lt;br /&gt;&lt;br /&gt;Mozilla Firefox 3.X utiliza bases de datos SQLite para almacenar el historial de los usuarios y mas información de interés para un análisis forense.&lt;br /&gt;&lt;br /&gt;Los archivos de bases de datos que utiliza son los siguientes:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;content-prefs.sqlite:&lt;/span&gt; Las preferencias individuales para páginas.&lt;a href="http://3.bp.blogspot.com/_hS7JC7hfz9A/SpawX-PnzlI/AAAAAAAAAhE/y1ZVeD2INs8/s1600-h/foresnse+fierefox+2.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5374677131205267026" src="http://3.bp.blogspot.com/_hS7JC7hfz9A/SpawX-PnzlI/AAAAAAAAAhE/y1ZVeD2INs8/s200/foresnse+fierefox+2.jpg" style="cursor: pointer; float: right; height: 177px; margin: 0pt 0pt 10px 10px; width: 200px;" /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;downloads.sqlite:&lt;/span&gt; Historial de descargas.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;formhistory.sqlite:&lt;/span&gt; Contiene los formularios memorizados.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;permissions.sqlite:&lt;/span&gt; Contiene  los sitios a los que se le permitió abrir pop-ups.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;cookies.sqlite:&lt;/span&gt; Las Cookies.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;places.sqlite:&lt;/span&gt; Los datos de los marcadores e historial de navegación.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;search.sqlite:&lt;/span&gt; Historial del motor de búsqueda que se encuentra en la parte derecha de la barra de herramientas.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;webappsstore.sqlite:&lt;/span&gt; Almacena las sesiones.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Estos archivos según el sistema operativo se almacenan para cada usuario en los siguientes destinos:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Linux :&lt;/span&gt; “/home/"nombre usuario"/.mozilla/firefox/&lt;carpeta perfil=""&gt;/”&lt;/carpeta&gt;&lt;/li&gt;&lt;li&gt;&lt;carpeta perfil=""&gt;&lt;span style="font-weight: bold;"&gt;Windows XP:&lt;/span&gt; “C:\Documents and Settings\"nombre usuario"\Application Data\Mozilla\Firefox\Profiles\"carpeta perfil"\”&lt;/carpeta&gt;&lt;/li&gt;&lt;li&gt;&lt;carpeta perfil=""&gt;&lt;span style="font-weight: bold;"&gt;Windows Vista:&lt;/span&gt; “C:\Users\"nombre usuario"\AppData\Roam&lt;/carpeta&gt;&lt;carpeta perfil=""&gt;ing\Mozilla\Firefox\Profiles\"carpeta perfil"\”&lt;/carpeta&gt;&lt;/li&gt;&lt;/ul&gt;&lt;carpeta perfil=""&gt;&lt;br /&gt;Hay que tener en cuenta un factor muy importante para realizar la línea de tiempo en este análisis forense. Mozilla Firefox utiliza como formato de tiempo PRTime en sus bases de datos. Para realizar la correcta cronología se necesita entender este formato. PRTime es un formato de tiempo de una longitud de 64-bit, que &lt;/carpeta&gt;&lt;carpeta perfil=""&gt;consiste en el incremento en microsegundos desde las 0:00 UTC del 1 de enero de 1970. Un ejemplo PRTime es: “1221842272303080” que se descifraría “16:37:52 19/09/2008 UTC”.&lt;br /&gt;&lt;/carpeta&gt;&lt;br /&gt;&lt;carpeta perfil=""&gt;Para extraer los datos de estas bases de datos se pueden usar &lt;/carpeta&gt;&lt;carpeta perfil=""&gt;herramientas para bases de datos SQLite, ver sus contenidos y transferirlos a archivos usando lenguaje SQL. Aunque es un método más lento, es más transparente y se puede utilizar el sistema operativo que se prefiera, porque estas herramientas están disponibles para: Windows, Linux y Mac OS X.&lt;br /&gt;&lt;br /&gt;Descarga de herramientas SQLite:&lt;br /&gt;&lt;a href="http://www.sqlite.org/download.html" target="_blank"&gt;http://www.sqlite.org/download.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Documentación de herramientas SQLite:&lt;br /&gt;&lt;a href="http://www.sqlite.org/sqlite.html" target="_blank"&gt;http://www.sqlite.org/sqlite.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;También podemos usar una herramienta automatizada llamada Firefox 3 Extractor, que nos permite:&lt;br /&gt;&lt;/carpeta&gt;&lt;a href="http://1.bp.blogspot.com/_hS7JC7hfz9A/SpawpZOfDHI/AAAAAAAAAhM/K4qFGzV5n-Y/s1600-h/forense+firefox.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5374677430506032242" src="http://1.bp.blogspot.com/_hS7JC7hfz9A/SpawpZOfDHI/AAAAAAAAAhM/K4qFGzV5n-Y/s200/forense+firefox.jpg" style="cursor: pointer; float: right; height: 128px; margin: 0pt 0pt 10px 10px; width: 200px;" /&gt;&lt;/a&gt;&lt;br /&gt;Extraer todos los datos de bases de datos SQLite de Firefox 3.X, convertirlos en CSV y descifrar las fechas.&lt;br /&gt;Crear un informe del  historial de navegación  sacado de “places.sqlite” en formato CSV o HTML.&lt;br /&gt;Descifrar el PRTime.&lt;br /&gt;&lt;br /&gt;Firefox 3 Extractor solo está disponible para la plataforma Windows. Para usar esta herramienta hay que copiar los archivos *.sqlite del usuario a analizar en la carpeta del programa.&lt;br /&gt;&lt;br /&gt;Más información y descarga de Firefox 3 Extractor:&lt;br /&gt;&lt;a href="http://www.firefoxforensics.com/f3e.shtml" target="_blank"&gt;http://www.firefoxforensics.com/f3e.shtml&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;También hay que tener en cuenta que este análisis es intrusivo y previamente hay que realizar la adquisición de imagen del disco y la recuperación de datos que hayan sido borrados.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://vtroger.blogspot.com/2009/08/analisis-forense-de-mozilla-firefox-3x.html"&gt;FUENTE&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3772711163934802218-3179335366565689382?l=thefatalblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thefatalblog.blogspot.com/feeds/3179335366565689382/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://thefatalblog.blogspot.com/2009/10/analisis-forense-de-firefox.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3772711163934802218/posts/default/3179335366565689382'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3772711163934802218/posts/default/3179335366565689382'/><link rel='alternate' type='text/html' href='http://thefatalblog.blogspot.com/2009/10/analisis-forense-de-firefox.html' title='Analisis Forense de Firefox'/><author><name>TheFatal</name><uri>http://www.blogger.com/profile/05635629279598643395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_hS7JC7hfz9A/SpawX-PnzlI/AAAAAAAAAhE/y1ZVeD2INs8/s72-c/foresnse+fierefox+2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3772711163934802218.post-7367943170989667694</id><published>2009-10-28T13:34:00.001-07:00</published><updated>2009-10-28T13:34:55.173-07:00</updated><title type='text'>Troyanos en Twitter</title><content type='html'>Finjan ha lanzado el plug-in para navegadores SecureTwitter, que protege a los PC del malware que pueda descargarse de las direcciones URL acortadas. SecureTwitter forma parte de la suite de productos gratuita SecureBrowsing destinada tanto a empresas como particulares.&lt;br /&gt;Twitter se ha convertido en el último año en una herramienta de comunicación ampliamente utilizada. No obstante, la herramienta de microblogging ha sido, asimismo, objeto del continuo acoso de los hackers, habiendo sufrido en los últimos meses numerosos ataques.&lt;br /&gt;&lt;span id="more-2486"&gt;&lt;/span&gt;&lt;br /&gt;Tratando de contrarrestar estas amenazas contra la seguridad que acecha desde Internet, el suministrador de seguridad web en tiempo real para el mercado empresarial Finjan propone SecureTwitter, que advierte a los usuarios de la credibilidad de los links que otros postean en el famoso servicio de microblogging.&lt;br /&gt;Dado el límite de 140 caracteres impuesto por Twitter, la mayoría de las URL tienen que acortarse utilizando servicios como Bit.ly o TinyURL. Estos servicios ocultan el verdadero destino del enlace, lo que representa cierto peligro porque los usuarios no saben si les llevará directos a un site que busca vulnerabilidades de software para infectar sus PC con malware.&lt;br /&gt;SecureTwitter forma parte de SecureBrowsing, un plug-in tanto para Firefox como Explorer que muestra un “visto bueno” verde junto al enlace indicando así que la web final es correcta o una X roja si es maligna. También puede mostrar un interrogante si no puede escanear el site.&lt;br /&gt;En la barra superior de Twitter, los usuarios verán un circulo rotando que indica que Finjan está escaseando las URL. Los enlaces se envían a un centro de datos de la compañía para su escaneo y posterior informe de su estado en un par de segundos. Si el resultado es malo, salta una ventana con un enlace a la página de Finjan donde se proporciona una explicación de por qué el sitio de destino ha sido calificado como malo.&lt;br /&gt;SecureBrowsing también escaneará links a otros servicios web y redes sociales como Bebo, Digg, Slashdot, MySpace, Gmail y las búsquedas de Google y Yahoo.&lt;br /&gt;SecureTwitter puede descargarse desde aquí: http://securebrowsing.finjan.com&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3772711163934802218-7367943170989667694?l=thefatalblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thefatalblog.blogspot.com/feeds/7367943170989667694/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://thefatalblog.blogspot.com/2009/10/troyanos-en-twitter.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3772711163934802218/posts/default/7367943170989667694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3772711163934802218/posts/default/7367943170989667694'/><link rel='alternate' type='text/html' href='http://thefatalblog.blogspot.com/2009/10/troyanos-en-twitter.html' title='Troyanos en Twitter'/><author><name>TheFatal</name><uri>http://www.blogger.com/profile/05635629279598643395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3772711163934802218.post-4563264423717587969</id><published>2009-10-28T13:32:00.000-07:00</published><updated>2009-10-28T13:32:03.699-07:00</updated><title type='text'>Protocolo SMB es vulnerable</title><content type='html'>Unas semanas atrás, Microsoft publicaba un aviso sobre un agujero de seguridad existente en el protocolo SMB. Dicha publicación ha sido actualizada no solo para modificar la lista de quienes son afectados, sino también para incluir en los consejos una nueva manera para mitigar el problema.&lt;br /&gt;&lt;br /&gt;Microsoft utiliza el protocolo SMB (Server Message Block Protocol), para acceder a los recursos compartidos de una red, a través del puerto 445 (2000 y XP), y 139 (NetBeui en sistemas Microsoft Windows), el servicio conocido como “Compartir archivos e impresoras” en todas las versiones de Windows.&lt;br /&gt;&lt;br /&gt;Originalmente el protocolo fue creado por IBM, pero posteriormente Microsoft lo modificó y agregó más funcionalidades, siendo actualmente utilizado en la mayoría de los ordenadores. Una implementación basada en este protocolo también es usada en Linux y Unixm.&lt;br /&gt;&lt;br /&gt;El fallo se produce cuando el protocolo no maneja adecuadamente una petición recibida, causando que el sistema deje de responder y deba ser reiniciado. Bajo estas circunstancias, podría ser posible que un atacante se aproveche del error para tomar el control total del ordenador.&lt;br /&gt;&lt;br /&gt;Se encuentran afectados Windows Vista, Server 2008 y Windows 7 RTM, en sus versiones de 32 y 64 bits, incluyendo los sistemas Itanium.&lt;br /&gt;&lt;br /&gt;Para los usuarios avanzados se recomienda la desactivación del protocolo SMB y el bloqueo de los puertos utilizados mediante un cortafuego.&lt;br /&gt;&lt;br /&gt;Pero para aquellos usuarios con menos conocimientos, recomendamos visitar el artículo de Microsoft que incluye una herramienta automática para desactivar SMBv2 o para reactivarlo según sea el caso.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.enciclopediavirus.com/noticias/verNoticia.php?id=1154"&gt;FUENTE&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3772711163934802218-4563264423717587969?l=thefatalblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thefatalblog.blogspot.com/feeds/4563264423717587969/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://thefatalblog.blogspot.com/2009/10/protocolo-smb-es-vulnerable.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3772711163934802218/posts/default/4563264423717587969'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3772711163934802218/posts/default/4563264423717587969'/><link rel='alternate' type='text/html' href='http://thefatalblog.blogspot.com/2009/10/protocolo-smb-es-vulnerable.html' title='Protocolo SMB es vulnerable'/><author><name>TheFatal</name><uri>http://www.blogger.com/profile/05635629279598643395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3772711163934802218.post-4331248011695325236</id><published>2009-10-19T10:40:00.000-07:00</published><updated>2009-10-19T13:57:45.674-07:00</updated><title type='text'>Reproductor de música gratuito FileFactory</title><content type='html'>Todos sabemos que FileFactory es la gran competencia de empresas como Rapidshare o MegaUpload, con lo cual varias personas preferiran una o la otra, pero esta vez comento para opinar sobre la gran utilidad o Widget que ofrece FileFactory. Cualquiera de nosotros sube archivos de musica comprimidos para despues bajarse el rar/zip/tar y escuchar el cd, pero que pasaría si lo podríamos escuchar directamente sin tener que descargar el rar/zip/tar y ademas seleccionar las canciones que queremos escuchar ? Sería espectacular :). Por estos y mas motivos (que no los descubrí todavia), la gente de FileFactory accedió a crear un reproductor de MP3 de los archivos que nosotros subimos a nuestra cuenta anteriormente creada en la pagina. A continuación incluire mi reprodctor totalmente personalizable para que opinen::&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;embed align="middle" allowscriptaccess="always" flashvars="folderHash=04d530b31fe66259&amp;amp;mainColor=040404&amp;amp;contentColor=02010F&amp;amp;textColor=FFEFF1&amp;amp;highlightColor=17122F" height="320" id="flashElement" menu="false" name="widget" pluginspage="http://www.macromedia.com/go/getflashplayer" quality="high" src="http://www.filefactory.com/widget/music.swf" type="application/x-shockwave-flash" width="250" wmode="transparent" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Sans-Serif; font-size: x-small; text-align: center; width: 250px;"&gt;&lt;a href="http://www.filefactory.com/"&gt;Go To FileFactory.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;embed align="middle" allowscriptaccess="always" flashvars="folderHash=b659df828359599e&amp;amp;mainColor=040404&amp;amp;contentColor=02010F&amp;amp;textColor=FFEFF1&amp;amp;highlightColor=17122F" height="320" id="flashElement" menu="false" name="widget" pluginspage="http://www.macromedia.com/go/getflashplayer" quality="high" src="http://www.filefactory.com/widget/music.swf" type="application/x-shockwave-flash" width="250" wmode="transparent" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Sans-Serif; font-size: x-small; text-align: center; width: 250px;"&gt;&lt;a href="http://www.filefactory.com/"&gt;Go To FileFactory.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3772711163934802218-4331248011695325236?l=thefatalblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thefatalblog.blogspot.com/feeds/4331248011695325236/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://thefatalblog.blogspot.com/2009/10/reproductor-de-musica-gratuito.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3772711163934802218/posts/default/4331248011695325236'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3772711163934802218/posts/default/4331248011695325236'/><link rel='alternate' type='text/html' href='http://thefatalblog.blogspot.com/2009/10/reproductor-de-musica-gratuito.html' title='Reproductor de música gratuito FileFactory'/><author><name>TheFatal</name><uri>http://www.blogger.com/profile/05635629279598643395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3772711163934802218.post-3732607405017522516</id><published>2009-09-21T22:15:00.000-07:00</published><updated>2009-09-21T22:57:18.215-07:00</updated><title type='text'>Callendo a la realidad</title><content type='html'>Fuente (antes que me pegen): &lt;a href="http://www.kriptopolis.org/virus-en-linux-y-ii"&gt;link&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;En Linux no hay virus... ¡Falso!&lt;br /&gt;&lt;br /&gt;Objetivos y técnicas&lt;br /&gt;&lt;h2&gt;Scripts: sh, Perl&lt;/h2&gt;Los lenguajes interpretados han sido una constante en todo sistema UNIX. Actualmente los más utilizados son los scripts de shell y Perl. Programar un virus en estos lenguajes es un juego de niños. Aquí tenemos un ejemplo de un virus de shell sencillo:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;#!/bin/sh&lt;br /&gt;for FICHERO in *&lt;br /&gt;do&lt;br /&gt;  tail -4 $0 &amp;gt;&amp;gt; $FICHERO&lt;br /&gt;done&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;¿Qué hace? Va copiando sus cuatro últimas líneas (tail -4 $0) al final de cada fichero en este directorio ("&amp;gt;&amp;gt;" es append, o añadir al final). Como podemos ver, es un virus bastante tonto, infecta tanto ejecutables como ficheros de datos, y puede dejarlos inutilizados, pero con unas pocas decenas de líneas más podría hacerse algo más presentable...&lt;br /&gt;La sencillez de estos virus es su ventaja para sus programadores, pero también su debilidad: son tremendamente fáciles de detectar a simple vista, engordan el tamaño del fichero infectado considerablemente y realentizan su ejecución más allá de lo que podría resultar imperceptible por un usuario normal.&lt;br /&gt;&lt;h2&gt;Binarios&lt;/h2&gt;&lt;h2&gt;a.out&lt;/h2&gt;Es un formato realmente simple, casi tanto como los COM de DOS. Actualmente este tipo de ejecutables está en desuso, pero todavía quedan sistemas con a.out's (a pesar de que el compilador genere un fichero llamado "a.out", eso no implica que tenga este formato, casi con seguridad se tratará de un ELF).&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_UKHkg1RP3-k/SrhmeyqFc8I/AAAAAAAAAAM/SLSPG4BB0Ig/s1600-h/virus09.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_UKHkg1RP3-k/SrhmeyqFc8I/AAAAAAAAAAM/SLSPG4BB0Ig/s320/virus09.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;Formato de un a.out: &lt;br /&gt;&lt;div align="center"&gt;&lt;br /&gt;&lt;/div&gt;&lt;h3&gt;Infeccion de ejecutables a.out&lt;/h3&gt;Se puede optar por aumentar el tamaño de la sección de código (.text) y desplazar el resto del archivo, o por tratar de encontrar una cavidad (cavity) para instalar el virus allí. El virus, además, deberá modificar la cabecera para reflejar los cambios (diferente tamaño de secciones, diferente entry point...).&lt;br /&gt;&lt;h2&gt;ELF&lt;/h2&gt;El formato ELF es el más utilizado hoy en día en los ejecutables para UNIX. Es un formato muy flexible y bastante bien diseñado.&lt;br /&gt;Formato de un ELF:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_UKHkg1RP3-k/SrhmtA12HYI/AAAAAAAAAAU/tINAwkkSgCw/s1600-h/elf.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_UKHkg1RP3-k/SrhmtA12HYI/AAAAAAAAAAU/tINAwkkSgCw/s320/elf.gif" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_UKHkg1RP3-k/Srhm2XEA32I/AAAAAAAAAAk/n9rxfD7REXY/s1600-h/elf2.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_UKHkg1RP3-k/Srhm2XEA32I/AAAAAAAAAAk/n9rxfD7REXY/s320/elf2.gif" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;br /&gt;&lt;/div&gt;Un ELF frente a un a.out:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_UKHkg1RP3-k/Srhmxoo0o9I/AAAAAAAAAAc/crYBpbTuZkI/s1600-h/elfvsaout.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_UKHkg1RP3-k/Srhmxoo0o9I/AAAAAAAAAAc/crYBpbTuZkI/s320/elfvsaout.gif" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;br /&gt;&lt;/div&gt;&lt;h3&gt;Infeccion de ejecutables ELF&lt;/h3&gt;Las investigaciones más serias en este campo vienen de la mano de Silvio Cesare. Ha publicado ya numerosos artículos acerca de este tema, y todos sus virus han sido programados en C, para poder ser compilados en cualquier sistema UNIX. El método que utiliza es el siguiente:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Incrementar un campo en la cabecera del ELF (p_shoff) que indica el desplazamiento u offset donde se encuentra la tabla de cabecera de secciones (Section header table).&lt;/li&gt;&lt;li&gt;Hallar la cabecera de programa del segmento de código y:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Incrementar la variable que indica el tamaño que ocupa el código físicamente (p_filesz).&lt;/li&gt;&lt;li&gt;Incrementar la variable que indica el tamaño que ocupa el código cuando se carga en memoria (p_memsz).&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Para cada cabecera de programa cuyo segmento está después del de código (que es donde hemos introducido el virus): &lt;br /&gt;&lt;ul&gt;&lt;li&gt;Incrementar el offset del segmento en el fichero (p_offset).&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Para cada cabecera de sección cuya sección esté después de nuestra inserción: &lt;br /&gt;&lt;ul&gt;&lt;li&gt;Incrementar sh_offset, para tener en cuenta el nuevo código.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Insertar el virus en sí en el fichero&lt;/li&gt;&lt;/ul&gt;Esto puede parecer un lío para más de uno, pero en pocas palabras lo que se trata es de hacer el tamaño del segmento de código más grande, para hacer espacio para el virus. Luego hay que actualizar todos los valore,s para que el código nuevo se cargue, y cambiar el entry point para que apunte al virus.&lt;br /&gt;Infección de un ELF por el método de Silvio Cesare:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_UKHkg1RP3-k/SrhnGZByVpI/AAAAAAAAAAs/GLxRReImW80/s1600-h/virus11.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_UKHkg1RP3-k/SrhnGZByVpI/AAAAAAAAAAs/GLxRReImW80/s320/virus11.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;br /&gt;&lt;/div&gt;Este método de infección funciona perfectamente, pero no es el único. Wintermute presentó en el hackmeeting de 2000 un nuevo virus para Linux, el Lotek, que realizaba una infección aprovechando una cavidad (cavity) en la sección ".note".&lt;br /&gt;Recientemente el ex-VXer Bumblebee ha publicado un virus para Linux con residencia per-process en RING-3 y unas cuantas técnicas aprendidas en entornos win32. Muchas de las estructuras de win32 tienen su paralelismo en Linux, por lo que gran cantidad de técnicas pueden portarse fácilmente a los virus de Linux.&lt;br /&gt;&lt;h2&gt;Ficheros de fuentes&lt;/h2&gt;Hay algunos intentos de infectar ficheros fuente en lugar de binarios. Se puede realizar un enfoque desde el punto de vista de ensamblador "inline" o embebido dentro del código, o bien un ejecutable que genere fuente como salida.&lt;br /&gt;&lt;h3&gt;Packages: .deb, .rpm, .mdk&lt;/h3&gt;Un punto todavía poco explotado es el de los paquetes de software de las diferentes distribuciones de Linux. Mucha gente utiliza paquetes para instalar programas de manera sencilla y ordenada, y en ocasiones esos paquetes son descargados por un usuario sin privilegios desde un navegador, para ser instalados posteriormente por "root". En ese intervalo de tiempo en el que permanecen en el directorio del usuario sin privilegios, podrían ser infectados y luego, al ser instalados por "root", acceder a todo el sistema.&lt;br /&gt;Un paquete generalmente tiene comprobaciones mediante MD5, pero pueden recalcularse, por lo que éste puede ser un punto flaco importante en nuestras distribuciones Linux.&lt;br /&gt;Infección de un paquete .deb tras ser descargado por un usuario desde su navegador:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_UKHkg1RP3-k/SrhnMeNLfyI/AAAAAAAAAA0/d7QKOnZFjT0/s1600-h/virus12.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_UKHkg1RP3-k/SrhnMeNLfyI/AAAAAAAAAA0/d7QKOnZFjT0/s320/virus12.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;br /&gt;&lt;/div&gt;&lt;h2&gt;Ya, pero Linux es seguro, ¿no?&lt;/h2&gt;&lt;h3&gt;Linux es seguro&lt;/h3&gt;Sí, Linux es bastante seguro. De hecho un virus deberá utilizar algun despiste de configuración en el sistema para poder colarse hasta tener acceso a todas sus partes.&lt;br /&gt;Está claro que actualmente usar Linux es el mejor antivirus que existe. No he visto a nadie que haya sufrido un virus en Linux y eso que conozco a mucha gente que usa Linux masivamente. Es posible que con el tiempo esta situación vaya cambiando y Linux sea otro escenario donde se libren las batallas entre programadores de virus y de antivirus. Por el momento, salvo experimentos de laboratorio, estamos a salvo.&lt;br /&gt;&lt;h2&gt;¿Cómo podemos hacer una escalada de privilegios?&lt;/h2&gt;&lt;h3&gt;Exploits&lt;/h3&gt;Un exploit es un programa que aprovecha un fallo en el sistema para conseguir algo no permitido de él. Si un virus incluye ese código dentro del suyo, podría conseguir acceder a zonas no permitidas y hacerse con el control del sistema.&lt;br /&gt;Este enfoque ha sido utilizado en varios virus para Linux, como el staog por Quantum/VLAD, pero implica la extinción del virus en cuanto el fallo que explota el exploit sea subsanado. Algunos virus intentan aprovecharse del exploit, y si no tiene éxito, eliminan el código del exploit del resto de infecciones.&lt;br /&gt;Este enfoque es más propio de entornos menos dinámicos en cuanto a correcciones de fallos en programas, como Windows (poca gente actualiza periódicamente su navegador o su editor de textos). En entornos de desarrollo open source los fallos suelen ser detectados y subsanados más dinámicamente.&lt;br /&gt;&lt;h3&gt;LKMs (Loadable Kernel Modules)&lt;/h3&gt;Hemos dicho en la introducción que el núcleo de Linux es monolítico, pero tiene un sistema de carga y descarga de módulos que permite un uso más eficiente de los controladores de dispositivos (drivers).&lt;br /&gt;Un módulo del kernel (o LKM) se ejecuta en RING-0, dentro del espacio reservado para el kernel, es decir, tiene un poder total sobre la máquina. Es posible programar LKMs que tengan más poder o que engañen a "root", por lo que si un virus lograse cargar un módulo dentro del módulo, podría ser una pesadilla para el administrador de la máquina, y el único límite de acción serían las limitaciones físicas de los dispositivos.&lt;br /&gt;Con un LKM se puede hacer de todo: ocultar procesos, modificar tamaños de archivos, etc. por lo que puede que los futuros virus de Linux incluyan LKMs para sus propósitos.&lt;br /&gt;&lt;h3&gt;Windows/Linux&lt;/h3&gt;Muchos de los ordenadores personales que utilizan los usuarios de Linux, aunque a veces cueste reconocerlo, tienen una partición con Windows. Existen varias herramientas para acceder a particiones Linux desde Windows, de las que explore2fs quizá sea la más conocida.&lt;br /&gt;Si un virus atacase un sistema Windows, consiguiese los privilegios suficientes como para acceder al disco duro y buscar un fichero clave dentro de la partición Linux -como pueda ser "init" (el proceso inicial del que se crean todos los demás proceos) o la shell que use "root"- todas las protecciones de Linux como tal habrían sido inútiles. Aunque suene un poco fuerte: la inseguridad inherente de Windows actuaría como "Caballo de Troya" contra el sistema Linux.&lt;br /&gt;Existe otra herramienta bastante utilizada, VMWare, que permite tener varias máquinas virtuales corriendo Sistemas Operativos diferentes. Es también muy común tener Windows y Linux funcionando al mismo tiempo con VMWare. En lugar de tener que esperar a que el sistema rearranque con Linux como en el caso anterior, la infección podría hacerse directamente, ya que VMWare es fácilmente detectable (utiliza un RING que no es ni 0 ni 3).&lt;br /&gt;&lt;h3&gt;fork() y crack&lt;/h3&gt;Un virus desde una cuenta de usuario podría armarse de paciencia y crear un proceso con muy baja prioridad (para no interferir en el rendimiento normal del sistema) que intentase crackear las contraseñas por fuerza bruta.&lt;br /&gt;Imaginemos un sistema automatizado, en el que el administrador entra sólo cada semana a retocar 4 cosas, pero no hay una supervisión real. Un virus podría colarse desde una cuenta sin privilegios, y estar un par de semanas intentando crackear las contraseñas. Una vez conseguido esto, sólo queda dar el salto a "root" y de ahí a donde quiera (kernel, otros ordenadores...).&lt;br /&gt;&lt;h2&gt;Entonces... ¿por qué no hay (casi) virus para Linux?&lt;/h2&gt;&lt;h3&gt;Perfil del usuario medio&lt;/h3&gt;Actualmente el usuario medio de Linux tiene poco que ver con el usuario medio de Windows o Macintosh. Quizá mucha gente cayó con lo de "Enanito sí, pero que pedazo de coj...", pero esto tendría poco éxito en un entorno de usuarios de Linux.&lt;br /&gt;La gente acostumbra a conocer el origen de sus programas, y examina su código fuente. No quiero decir que &lt;i&gt;todos&lt;/i&gt; los usuarios de Linux lo hagan, pero sí hay un grupo importante de gente que lo hace y lo comenta al resto.&lt;br /&gt;Las llamadas "técnicas de ingeniería social" (es decir, hacer uso de la candidez del usuario que recibe un virus o gusano) tienen muchas más dificultades con usuarios de Linux.&lt;br /&gt;&lt;h3&gt;Filosofía del software&lt;/h3&gt;Como acabo de comentar, que Linux sea de código abierto y haya una mentalidad clara en cuanto a ese tema, dificulta ocultar código en los programas.&lt;br /&gt;Ken Thompson dijo que ningún software creado por otro podía ser confiable, especialmente si había sido creado por él. Tal y como explicó en una conferencia en mitad de la década de los 80, Thompson había introducido un sistema de autorreplicación y "troyanización" en todo compilador C para UNIX que le permitió hasta entonces poder entrar como "root" en todo sistema hasta la fecha. Si alguien quiere saber cómo se las ingenió el bueno de Thompson, lo explicaré por email gustosamente, o bien esperáis al turno de preguntas O:-)&lt;br /&gt;&lt;h3&gt;Pocos VXers linuxeros&lt;/h3&gt;Todavía hay pocos escritores de virus que usan Linux habitualmente. Algunos han instalado Linux en una partición para hacer sus pruebas y conocen bastantes cosas de él, pero no tienen en absoluto la soltura que han conseguido durante años de uso de DOS y Windows.&lt;br /&gt;Supongo que esto cambiará con el tiempo, y pronto los VXers usarán Linux a diario. Cuando esto ocurra, yo creo que habrá una nueva hornada de virus para Linux programados desde la experiencia, no como un experimento de laboratorio.&lt;br /&gt;¿Y qué puede pasar en el futuro?&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Más usuarios novatos&lt;/li&gt;&lt;li&gt;Más empresas usan Linux -&amp;gt; Menos Open Source&lt;/li&gt;&lt;li&gt;Más configuraciones "click&amp;amp;play" -&amp;gt; Menos robustez del sistema&lt;/li&gt;&lt;li&gt;Más VXers linuxeros&lt;/li&gt;&lt;/ul&gt;Conclusión&lt;br /&gt;&lt;h2&gt;Solución: una buena "salud" informática&lt;/h2&gt;Es decir:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Actualizar las versiones de nuestros programas para evitar bugs.&lt;/li&gt;&lt;li&gt;Conseguir los programas de fuentes fidedignas.&lt;/li&gt;&lt;li&gt;Utilizar siempre que sea posible la versión en código fuente de los programas.&lt;/li&gt;&lt;li&gt;No ejecutar todo lo que nos llegue por Internet&lt;/li&gt;&lt;li&gt;...&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3772711163934802218-3732607405017522516?l=thefatalblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thefatalblog.blogspot.com/feeds/3732607405017522516/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://thefatalblog.blogspot.com/2009/09/callendo-la-realidad.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3772711163934802218/posts/default/3732607405017522516'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3772711163934802218/posts/default/3732607405017522516'/><link rel='alternate' type='text/html' href='http://thefatalblog.blogspot.com/2009/09/callendo-la-realidad.html' title='Callendo a la realidad'/><author><name>TheFatal</name><uri>http://www.blogger.com/profile/05635629279598643395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_UKHkg1RP3-k/SrhmeyqFc8I/AAAAAAAAAAM/SLSPG4BB0Ig/s72-c/virus09.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3772711163934802218.post-7717420559715898666</id><published>2009-09-17T13:09:00.003-07:00</published><updated>2009-09-17T13:17:16.834-07:00</updated><title type='text'>Para los que viven en Tandil</title><content type='html'>&lt;h2 id="head-1f0738e32c95b5c96383140cc9a12e1b65be2a33"&gt;Día Internacional de la Libertad del Software 2009&lt;/h2&gt;&lt;br /&gt;&lt;div class="line862"&gt;El &lt;b&gt;Día de la Libertad de Software&lt;/b&gt;es una celebración anual a nivel mundial del software libre y de código abierto. Es un evento de educación pública, no solo para celebrar las virtudes de este tipo de software, sino para promover su uso para el beneficio del público. &lt;/div&gt;A fin de colaborar con estos objetivos, los integrantes de la agrupación Centro Libre hemos decidido organizar un ciclo de charlas técnicas y filosóficas que supondrá la introducción de conceptos, herramientas y tecnologías libres a los integrantes de la comunidad académica, miembros de las empresas del polo informático de nuestra ciudad y el público en general. &lt;br /&gt;&lt;br /&gt;Este evento, parte de los festejos globales del “&lt;i&gt;Día de la Libertad del Software&lt;/i&gt;” será uno de los alrededor de 500 a realizarse simultáneamente en 90 países en la misma fecha, y tendrá como principal objetivo difundir los conceptos de Software y Cultura Libre, contando con charlas de diferentes temáticas que los adoptarán como eje central. Será un evento abocado tanto a estudiantes, técnicos y profesionales de la informática, como al público en general&lt;br /&gt;&lt;span style="font-weight: bold; text-decoration: underline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; text-decoration: underline;"&gt;Fecha y Hora:&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-weight: normal;"&gt;Sábado 19 de Septiembre de 2009, 14.00 hs.&lt;/span&gt;&lt;span style="font-weight: bold; text-decoration: underline;"&gt;&amp;nbsp;           &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; text-decoration: underline;"&gt;Lugar:&lt;/span&gt; Centro Cultural Universitario de la UNICEN (Yrigoyen 662), Tandil, Bs. As., Argentina&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="text-decoration: underline;"&gt;Cronograma:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;table border="0" height="155" style="font-size: 0.8em; width: 460px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th class="centeralign" style="background-color: #dedede; color: grey;"&gt;Charla  &lt;/th&gt;&lt;th class="centeralign" style="background-color: #dedede; color: grey;"&gt;Disertante  &lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="left" style="font-weight: bold;" valign="middle" width="50%"&gt;&amp;nbsp;Introducción al Software Libre: implicancias&amp;nbsp;&amp;nbsp; técnicas, sociales y económicas &lt;/td&gt;&lt;td class="centeralign"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;Hugo Curti&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="left" style="font-weight: bold;" valign="middle" width="50%"&gt;&amp;nbsp;Cultura Libre&lt;/td&gt;&lt;td class="centeralign"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;Lucas Corrales - Enzo Ferrante&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="centeralign" style="font-weight: bold;"&gt;&amp;nbsp;Introducción al uso de Linux&lt;/td&gt;&lt;td align="left" valign="middle" width="20%"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;Mariano Rodríguez&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-weight: bold;"&gt;&amp;nbsp;¿Qué hacemos en Centro Libre?&lt;/td&gt;&lt;td class="rightalign"&gt;&lt;span style="font-style: italic;"&gt;Integrantes de Centro Libre&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;span style="font-weight: bold;"&gt;Bloque Técnico (17 hs. en adelante)&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;table height="80" style="font-size: 0.8em; width: 460px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th class="centeralign" style="background-color: #dedede; color: grey;"&gt;&amp;nbsp;  Charla  &lt;/th&gt;&lt;th class="centeralign" style="background-color: #dedede; color: grey;"&gt;Disertante  &lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="left" valign="middle" width="50%"&gt;&amp;nbsp;&lt;span style="font-weight: bold;"&gt;Introducción a Python&lt;/span&gt;&lt;/td&gt;&lt;td class="centeralign"&gt;&lt;span style="font-style: italic;"&gt;Julián Cardonett&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align="left" valign="middle" width="50%"&gt;&amp;nbsp;&lt;span style="font-weight: bold;"&gt;Introducción a Ruby&lt;/span&gt;&lt;/td&gt;&lt;td class="centeralign"&gt;&lt;span style="font-style: italic;"&gt;Manuel Corrales&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="centeralign" style="font-weight: bold;"&gt;&amp;nbsp;Java Server Faces&lt;span style="font-weight: bold;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;td align="left" valign="middle" width="20%"&gt;&lt;span style="font-style: italic;"&gt;Federico Dukatz&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3772711163934802218-7717420559715898666?l=thefatalblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thefatalblog.blogspot.com/feeds/7717420559715898666/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://thefatalblog.blogspot.com/2009/09/para-los-que-viven-en-tandil.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3772711163934802218/posts/default/7717420559715898666'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3772711163934802218/posts/default/7717420559715898666'/><link rel='alternate' type='text/html' href='http://thefatalblog.blogspot.com/2009/09/para-los-que-viven-en-tandil.html' title='Para los que viven en Tandil'/><author><name>TheFatal</name><uri>http://www.blogger.com/profile/05635629279598643395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3772711163934802218.post-6378536240067011051</id><published>2009-09-17T13:02:00.001-07:00</published><updated>2009-09-17T13:02:23.264-07:00</updated><title type='text'>Día de la Libertad del Software 2009 en Mar del Plata</title><content type='html'>&lt;table class="contentpaneopen"&gt;&lt;tbody&gt;&lt;tr&gt;    &lt;td colspan="2" valign="top"&gt;     &lt;h1 align="justify"&gt;&lt;img align="left" alt="Imagen activa" height="105" src="http://www.gulbac.org.ar/images/stories/sfd.jpg" width="322" /&gt;&lt;strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/h1&gt;&lt;div style="text-align: justify;"&gt;En esta oportunidad, el Nodo Mar del Plata del Grupo de Usuarios de GNU+Linux y Software Libre de Buenos Aires Central (gulBAC), coordina y organiza otra jornada de charlas de difusión del Software Libre.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Ésta vez, el evento se desarrollará en el marco del Día de la Libertad del Software, en inglés &lt;a href="http://softwarefreedomday.org/" target="_blank"&gt;Software Freedom Day&lt;/a&gt;, una celebración internacional cuyo objetivo es mostrar al público los beneficios de utilizar software libre y de alta calidad en ámbitos educativos, gubernamentales, corporativos, industriales, profesionales y hogareños.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Los contenidos del evento cubrirán desde lo más básico para principiantes, hasta charlas técnicas para los que ya tienen experiencia con Software Libre.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Está todo el mundo invitado a venir, ya que está dirigido a todo tipo de público: estudiantes, académicos, empresarios, trabajadores, funcionarios públicos, entusiastas y cualquier persona interesada aunque no posea conocimientos informáticos.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Los temas a tratar serán:&lt;/div&gt;&lt;div style="text-align: justify;"&gt;* Desarrollo web&lt;br /&gt;* Entornos de escritorio&lt;br /&gt;* Escuelas con Software Libre&lt;br /&gt;* Servidores&lt;br /&gt;* Migracion en empresas&lt;br /&gt;* Sonido profesional y libre&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Si siempre tuviste curiosidad por saber qué es esto del Software Libre, ésta es tu oportunidad para hacerlo acercándote a una pujante comunidad de usuarios y desarrolladores que comparten la filosofía del software libre como una opción ética, válida y accesible para usar computadoras sin necesidad de sacrificar ninguna de tus libertades.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Los esperamos a todos el sábado &lt;strong&gt;26 de Septiembre&lt;/strong&gt; desde las &lt;strong&gt;10:00 horas&lt;/strong&gt; en las instalaciones del &lt;strong&gt;Instituto Movilizador de Fondos Cooperativos&lt;/strong&gt;, ubicado en la calle &lt;strong&gt;Hipólito Yrigoyen 1549&lt;/strong&gt;.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Habrá sorteos y regalos.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;strong&gt;La entrada será libre y gratuita.&lt;/strong&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3772711163934802218-6378536240067011051?l=thefatalblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thefatalblog.blogspot.com/feeds/6378536240067011051/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://thefatalblog.blogspot.com/2009/09/dia-de-la-libertad-del-software-2009-en.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3772711163934802218/posts/default/6378536240067011051'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3772711163934802218/posts/default/6378536240067011051'/><link rel='alternate' type='text/html' href='http://thefatalblog.blogspot.com/2009/09/dia-de-la-libertad-del-software-2009-en.html' title='Día de la Libertad del Software 2009 en Mar del Plata'/><author><name>TheFatal</name><uri>http://www.blogger.com/profile/05635629279598643395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3772711163934802218.post-6711427990187090428</id><published>2009-09-08T19:21:00.000-07:00</published><updated>2009-09-08T19:21:06.466-07:00</updated><title type='text'>Grub2 en Ubuntu 9.04</title><content type='html'>Grub 2 (o mejor dicho 1.96) vendrá por defecto en Ubuntu 9.10, pero como todavía falta bastante ya varias personas comenzaron a instalarlo en sus maquinas. Al parecer por diferentes motivos, como por ejemplo, el soporte para diferentes sistema de archivos, en los cuales se destaca el nuevo ext4, utilizado en Linux. También posee una interfáz gráfica, lo que para algunos es una alegría, para otros es una maldición. Otra mejora es la mejora de la gestión de memoria y el soporte de scripts.&lt;br /&gt;&lt;br /&gt;Los pasos para la instalación son bastantes sensillos, aunque si realizan el UpGrade, tendrán que tener en cuenta un detalle. Grub 2 posee un nuevo metodo para enumerar las particiones, algo desalentador en personas como yo, ya que me costó entender el actual :P&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.howtoforge.com/how-to-install-grub-2-on-ubuntu-9.04"&gt;Pasos para actualizar Grub&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3772711163934802218-6711427990187090428?l=thefatalblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thefatalblog.blogspot.com/feeds/6711427990187090428/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://thefatalblog.blogspot.com/2009/09/grub2-en-ubuntu-904.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3772711163934802218/posts/default/6711427990187090428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3772711163934802218/posts/default/6711427990187090428'/><link rel='alternate' type='text/html' href='http://thefatalblog.blogspot.com/2009/09/grub2-en-ubuntu-904.html' title='Grub2 en Ubuntu 9.04'/><author><name>TheFatal</name><uri>http://www.blogger.com/profile/05635629279598643395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3772711163934802218.post-8104626273348867470</id><published>2009-09-08T10:44:00.000-07:00</published><updated>2009-09-08T12:13:35.645-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='N900'/><title type='text'>N900</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.lacoctelera.com/myfiles/entrelilasyamapolasolvidado/robinson617166vb.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 339px; height: 450px;" src="http://www.lacoctelera.com/myfiles/entrelilasyamapolasolvidado/robinson617166vb.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Bueno, antes que nada este es mi primer entrada, asique si hay algo erroneo sepan disculparme.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.e-global.es/b2b-blog/wp-images/graficos/Nokia-N900-3.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 301px;" src="http://www.e-global.es/b2b-blog/wp-images/graficos/Nokia-N900-3.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;En esta entrada pondré algo que realmente deseo y me voy a comprar muy pronto. No, no es una mujer :P pero es hermoso. Estoy hablando del N900, un Internet Tablet convertido en telefono, el cual esperan (Nokia) que compita con el iPhone 3G.&lt;br /&gt;Las Catacterpisticas del &lt;span style="font-style: italic;"&gt;widget&lt;/span&gt; son impresionantes, como por ejemplo, 1 Gb de memoria RAM (256 SDRAM y 768 &lt;a href="http://es.wikipedia.org/wiki/Puerta_l%C3%B3gica#Puerta_NO-Y_.28NAND.29"&gt;NAND&lt;/a&gt;), capacidad de 48/32 Gb (nada mal) y un procesador OMAP 3430, el mismo que el del iPhone, con una velocidad de 600 mHz. A diferencia del N810 que posee un límite de 8 Gb para su memoría expansible, y al iPhone que directamente no tiene slot para memoria externa. Otra diferencia del N900 respecto al iPhone es que trae teclado, pero no MultiToch, algo que realmente hace mucha diferencia respecto a los demás dispositivos con pantalla táctil. La batería es un poco mas grande respecto a la del iPhone (1320 mAh contra 1219 mAh). El tamaño de la pantalla es idéntica (88.9 mm), aunque la resolución es mucho mayor en el N900 (800x480 vs 480x320). Algo bastante interesante es la capacidad de utilizar OpenGL 2.0, haciendo posible utilizar la mayoría de las aplicaciones de una computadora común y corriente en este dispositivo. Posee salida de TV y algo que ahora marcó la diferencia, que para muchos hará que no sea mas un Internet Tablet, es la integración del uso de Chip o línea de celular. Esto permite usar tecnología 3G o GPRS para llamada de datos, y así estar conectados en casi cualquier lado, siempre que exista señal de celular. Sigue de la mano con Linux, en este caso la nueva versión de Maemo 5. Mejorado el dispositivo GPS, el cual en el N810, por experiencia se los digo, dejó mucho que desear. Despues otra característica nueva es el acelerómetro integrado, la camara de 5 MP con flash y la posibilidad de escuchar radio FM. Realmente es un aparato muy llamativo e innovador. No espero la hora de poder tenerlo en mis manos.&lt;br /&gt;&lt;br /&gt;El precio según las paginas de nokia es de €500 o u$s 650, con un inter-comunicador de regalo.&lt;br /&gt;&lt;br /&gt;Fuente: &lt;a href="http://www.tecnogeek.com/verpost.php?id_noticia=917"&gt;Tecnogeek&lt;/a&gt;, &lt;a href="http://www.nokia.es/productos/moviles/nokia-n900-maemo-pantalla-tactil-teclado-qwerty/especificaciones"&gt;Nokia españa&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3772711163934802218-8104626273348867470?l=thefatalblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://thefatalblog.blogspot.com/feeds/8104626273348867470/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://thefatalblog.blogspot.com/2009/09/n900.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3772711163934802218/posts/default/8104626273348867470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3772711163934802218/posts/default/8104626273348867470'/><link rel='alternate' type='text/html' href='http://thefatalblog.blogspot.com/2009/09/n900.html' title='N900'/><author><name>TheFatal</name><uri>http://www.blogger.com/profile/05635629279598643395</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
