LINUX.ORG.RU

Сообщения TirNaNOg

 

namesp^W defpackage

(print *package*)

#<PACKAGE COMMON-LISP-USER>

(defpackage :test-1
  (:use :cl))
(print *package*)

#<PACKAGE COMMON-LISP-USER>

(in-package :test-1)
(print *package*)

#<PACKAGE COMMON-LISP-USER>

Я что-то не так делаю или это косяк в slime? emacs+slime, нахожусь в буфере с .lisp файлом, после каждой строки делал eval-last-expression. Аналогичная последовательность в REPL буфере после in-package переключает пакет.

TirNaNOg
()

подскажите последовательность действий

Надо восстановить систему. Был перезаписан /boot раздел.

По-порядку. Ubuntu 9.10:

/dev/sda1 - /boot
/dev/sda2 - /home
/dev/sda3 - /

После апдейта, было заменено ядро с 2.6.31-14 на 2.6.31-20.

Установка второй системы:

Ubuntu 9.10:

/dev/sda1 - /boot
/dev/sda5 - /

Был невнимателен с /boot.

Нужна первая система, как восстановить? Сейчас в /dev/sda1 лежит boot с ядром 2.6.31-14.

TirNaNOg
()

OO Writer

Заметил, что OpenOffice Writer не все файлы открывает, в частности: свеже установленная убунта 9.10, файл examples.desktop с правами 644 в домашнем каталоге, который ставится системой, пытаюсь открыть во врайтере и ничего не происходит. Баг?

TirNaNOg
()

РоР: добавление авторизации

Имеется сгенерённый скаффолдом список постов, пытаюсь добавить авторизацию. Вручную создал views/posts/login.html.erb, добавил в контроллер before_filter :authorize; login; authorize.

Получил... бесконечный цикл при попытке захода в authorize.

The webpage at http://localhost:3000/posts/login has resulted in too many redirects. ...

Помогите найти косяк.

class PostsController < ApplicationController

  before_filter :authorize, :except => [:login]

  def login
    session[:user_id] = nil

    if request.post?
      user = User.authenticate(params[:name], params[:password])
      if user
        session[:user_id] = user.id
        redirect_to(:action => "index" )
      else
        flash.now[:notice] = "Invalid user/password combination"
      end
    end
  end

  # GET /posts
  # GET /posts.xml
  def index
    @posts = Post.all

    respond_to do |format|
      format.html # index.html.erb
      format.xml  { render :xml => @posts }
    end
  end

  # GET /posts/new
  # GET /posts/new.xml
  def new
    @post = Post.new

    respond_to do |format|
      format.html # new.html.erb
      format.xml  { render :xml => @post }
    end
  end

  private

  def authorize
    unless User.find_by_id(session[:user_id])
      flash[:notice] = "Please log in"
      redirect_to :action => :login
    end
  end

end

p.s. update, edit, destroy вырезал здесь за ненадобностью их показа.

TirNaNOg
()

pendrive linux, damaged fs

Linux Mint, USB-stick, http://www.pendrivelinux.com/install-linux-mint-8-to-a-flash-drive-in-windows...

Выдернул случайно питание, на файловой системе возникли ошибки. Флэшка отформатированна в fat32. fsck.vfat прогнал, больше ошибок не выдаёт, но виртуальная файловая система используемая этим дистрибутивом заточенным под флэшку содержит ошибки - я не могу пару файлов удалить.

cat /etc/fstab:

aufs / aufs rw 0 0
tmpfs /tmp tmpfs nosuid,nodev 0 0

чем лечить, как узнать, какое устройство используется при монтировании /, как лечить?

TirNaNOg
()

Посоветуйте, что написать

на рельсах. Предложили, с учётом того, что «we noticed in your profile that you are an experienced developer» но не имею в резюме пункта с Ruby, написать что-нибудь в качестве демонстрации используя RoR, чтобы попасть на интервью.

Подкиньте идею чего-нибудь нетривиального, но что можно было бы быстро сделать за день-два. Знание рельс на уровне прочтения книги «Agile Web Development».

TirNaNOg
()

telnet

Как заставить работать кнопки управления курсором в телнете? Оно выдаёт esc- последовательности: ^[[D ^[[A и т.д. сейчас.

п.с. gnome-terminal.

TirNaNOg
()

2Shaman

http://www.linux.org.ru/gallery/screenshots/4525288

www.linux.org.ru/gallery/screenshots/4461648

А слабо в третий раз подтвердить? ;-)

TirNaNOg
()

CLOS: (call-next-method)

Из описания в PCL не понял, как (call-next-method) выбирает нужный метод.

Поскольку я буду обсуждать вопросы создания новых классов только в следующей главе, для понимания вы можете просто представить, что определенные классы уже существуют: предположим, что существует класс bank-account и он имеет два подкласса – checking-account и savings-account. Иерархия классов выглядит следующим образом:

(картинки с иерархией нет в тексте)

(defgeneric withdraw (account amount)
  (:documentation "Withdraw the specified amount from the account.
Signal an error if the current balance is less than amount."))

(defmethod withdraw ((account bank-account) amount)
  (when (< (balance account) amount)
    (error "Account overdrawn."))
  (decf (balance account) amount))

(defmethod withdraw ((account checking-account) amount)
  (let ((overdraft (- amount (balance account))))
    (when (plusp overdraft)
      (withdraw (overdraft-account account) overdraft)
      (incf (balance account) overdraft)))
  (call-next-method))

Функция CALL-NEXT-METHOD является частью системы обобщенных функций и используется для комбинации методов. Она сообщает, что контроль должен быть передан от текущего метода, к методу, специализированному для bank-account.

И нигде нет объяснения почему управление должно передаться именно специализации для bank-account, а из приведённого кода я не понимаю. А если ещё есть десяток методов (withdraw)?

TirNaNOg
()

CL, пакеты

Объясните, как ставить. Имеется SBCL, стал ставить по инструкции: http://common-lisp.net/project/cl-gtk2/tutorial.html cl-gtk2, чтобы поставить все зависимости использовал clbuild форкнутый Архимагом, всё поставилось. После зависимостей поставил из гита cl-gtk2, сделал в ~/.sbcl/systems/ симлинки по инструкции.

CL-USER> (asdf:operate 'asdf:load-op :cl-gtk2-gtk)

component :ITERATE not found, required by
#<SYSTEM "cl-gtk2-pango" {AA8F241}>
   [Condition of type ASDF:MISSING-DEPENDENCY]

Iterate устаовлен, наверно, надо как-то загружать его, как?

TirNaNOg
()

CL, macro, генерация раскрытия

Сижу туплю, объясните, плс, работу ` и @.

Спасибо.

TirNaNOg
()

CL: привязки

Читаю главу про переменные. http://lisper.ru/pcl/variables То, что существуют лексические и динамические переменные понял. Наверное. Если перевеси на термины С- подобных языков, корректно же сказать, что лексические переменные это локальные переменные, а динамические это глобальные?

Не пойму, что такое лексическая привязка и динамическая привязка? Там в книге всё крутится вокруг кода

(let ((*x* 10))
  (foo))

где *x* была определана ранее с помощью defvar. В данном случае это динамическая привязка? Потому что *x* это динамическая переменная?

Правильно сказать в терминах С- подобных языков, что в данном случае происxодит скрытие глобальной переменной в ф-и foo т.к. в её области видимости создали локальную переменную с тем же именем?

Если есть несколько потоков, если в момент времени t один поток зашёл в приведённый выше let всем потокам достанется изменённое значение *x* равное 10? Если да, это главное различие с С-подобными языками, там данный код это всего лишь создание локальной переменной *x* с которой работает только foo, а в CL это изменение привязки влияющее на всё, что работает с переменной *x*?

Вот это совсем не понял:

Ранние реализации Lisp использовали динамические переменные в качестве локальных, по крайней мере при интерпретации. Elisp, диалект Lisp, используемый в Emacs, является в некоторой мере устаревшим в этом отношении, продолжая поддерживать только динамические переменные. Некоторые другие языки повторили этот путь от динамических к лексическим переменным: например, локальные переменные в Perl являются динамическим, в то время как my-переменные, введенные в Perl 5 — лексические. Python никогда не имел настоящих динамических переменных, но ввел настоящую лексическую область видимости только с версии 2.2. (Лексические переменные Python все еще ограничены в сравнении с Lisp из-за объединения присваивания (assignment) и связывания (binding) в синтаксисе языка.)

1. Динамические переменные в качестве локальных. Имеется в виду что не было локальных и только это?

2. «локальные переменные в Perl являются динамическим, в то время как my-переменные, введенные в Perl 5 — лексические» - в перле если переменная не объявлена как my она глобальная, именно это имеется в виду?

3. «Python никогда не имел настоящих динамических переменных, но ввел настоящую лексическую область видимости только с версии 2.2.» - питон не имел глобальных переменных, но что имеется в виду под настоящими лексическими? т.е. были локальные которые не являлись лексическими? Что это значит?

TirNaNOg
()

CL

Помогите определиться с выбором:

SBCL, Clozure CL, CLISP. Может быть ещё что-то.

Критерии: наличие библиотек «на все случаи жизни», быстрота откомпилированного кода, удобство документации, наличие гуи-библиотеки, которая позволит сделать современный красивый интерфейс.

Спасибо.

p.s. и чтобы со SLIME работало.

TirNaNOg
()

This Program Cannot Be Run in DOS Mode

DOSBox, старые досовские игрушки. Некоторые при попытке запуска выдают сабж. Смутно помню со времён доса, что дело решал экстендер памяти dos4gw. А, может, и неправильно помню. Короче, как такие игры запускаются?

Пример: GTA - http://www.bestoldgames.net/eng/old-games/grand-theft-auto.php.

TirNaNOg
()

GNOME, диалог открытия файла

Как оттуда убрать показ скрытыx файлов? Кажется, я где-то в гномконфигурилке включил, не могу теперь найти. ;(

TirNaNOg
()

emacs. semantic

Пара вопросов.

1. Как сделать неисчезающим в статусной строке сообщение о параметрах, которое возникает когда открываешь круглую скобку делая вызов функции - после некоторой паузы показывается подсказка, которая пропадает при нажатии на любую клавишу, хочу перед глазами постоянно её наблюдать набирая параметры, пока не выйду за пределы скобок.

2. Можно ли эту подсказку не в статусной строке иметь, а под курсором в буфере?

TirNaNOg
()

emacs, shell

M-x shell $ ls

^[[01;32mhello^[[0m hello.cpp

такое наблюдается на файлах с установленным атрибутом +x. Как вылечить?

TirNaNOg
()

Подайте, люди добрыя :-)

Не студент. Не учусь. Хочу код. ;-)

Увидел на одном форуме просьбу студента сделать календарик - вводится какому дню недели соответствует первое число и количество дней в месяце, выводится в семь столбцов календарик. От нечего делать написал решение на С++.

Сижу изучаю хаскель. Пока где-то в начале ;-( на стадии понимания отличия a -> a -> a от (a-> a) -> a.

В общем, хочу на хаскеле календарик, не могу сам. Напишите, кому не влом, плс.

пруф здесь: http://foren.germany.ru/showmessage.pl?Number=14867409&Board=programmer

TirNaNOg
()

RSS подписка на новые темы