• Решение проблемы с кодировками в Mono

      Проблема.


      В целом, эта проблема может по-разному проявляться. В моём случае это был SharpDevelop, напрочь отказавшийся компилировать Hello world, который в командной оболочке (в том числе, через NAnt) собирается без ошибок.
      Читать дальше →
    • Создаём Mac-on-Stick при помощи Mini vMac

      • Translation
      Уже мало кого можно удивить работающими с флешки Linux, Windows, FireFox, AbiWord Thunderbird и другими приложениями. А как насчёт Mac 128K или Mac Plus на USB-флешке? Несмотря на некоторую несуразность идеи, у «портативного» Мака есть практическое применение:
      • Поиграться со старой ОС и приложениями, не затрудняя себя поиском старого Мака.
      • Удивить друзей, или показать кому-нибудь, как выглядел старый Мак.
      • Использовать Макинтош на Windows или Linux.

      Это Mac-on-Stick!Для этого проекта, давайте назовём его Mac-on-Stick, нам потребуются следующие компоненты:
      • Эмулятор Mini vMac. Этот эмулятор доступен для Mac OS (Classic и OS X), Windows, Linux, и даже Pocket PC.
      • ROM-образ. Если есть Macintosh Plus, 128K, или SE, то можно скопировать ROM оттуда, используя утилиту CopyRoms. В противном случае, ROM можно скачать.
      • Пустой образ диска, который будет винчестером для нашего Мака.
      • Операционная система и системный софт. К счастью, Apple выкладывает старые версии своего программного обеспечения, включая Mac OS вплоть до версии 7.5.5, на странице Older Software Downloads. В этом проекте используется System 7.0.1
      • Программное обеспечение, с которым собираемся играться. Для начала, можно посмотреть список старого программного обеспечения для Маков на сайте Mini vMac.
      • USB-флешка (Хватит даже 32MB).

      Установка


      Теперь, когда все необходимые компоненты под рукой, мы можем начинать. В процессе описания установки предполагается, что используется Mac OS X, но большая часть описанных действий будет корректна и для Windows.
      1. Создаём директорию Mac-on-Stick.
      2. Распаковываем архив с Mini vMac и файл vmac.rom file, после чего копируем их в директорию Mac-on-Stick.
      3. Распаковываем архив blanks-x.x.x.zip и диск из него на собственное усмотрение. Чтобы не испытывать проблем со свободным местом, можно выбрать наибольший из доступных — архив hfs24M.zip.
      4. Копируем hfs24M.DSK в директорию Mac-on-Stick.
      5. Распаковываем архив System_7.0.1.smi.bin и перекидываем полученные образы в директорию Mac-on-Stick.
      6. Перетаскиваем Install 1.image на иконку Mini vMac. Запустится Mini vMac и начнётся процедура установки системы.
      7. Когда установщик попросит указать диск, на который производить установку системы, перетаскиваем файл hfs24M.DSK на окно эмулятора.
      8. Продолжаем установку как обычно, перетаскивая на окно эмулятора образы инсталляционных дисков, по мере того, как установщик будет их запрашивать.
      9. Когда установка завершится, нажимаем кнопку Restart, и перетаскиваем диск hfs24M.DSK на эмулятор.
      10. Если всё работает, то копируем директорию Mac-on-Stick на флешку.


      Это Mac-on-Stick!
      Figure 2: Mini vMac is up and running

      Установка программ



      Для установки приложений на макинтош, you must make the disk image mountable. To do this, you need the SetFType utility. Unpack it, and drag the hfs24M.DSK image onto the SetFType.dmg icon (make sure that Mini vMac is not running). Once you see the confirmation message, double-click on the hfs24M.DSK image. This mounts it on the Desktop, and you can copy the software you want onto it. While you are at it, you might want to rename the disk to something meaningful like ‘Mini vMac’. Unmount the disk by throwing it into the Trash. Restart Mini vMac by dragging the hfs24M.DSK disk onto the Mini vMac icon. Now you can use the copied applications.

      Это Mac-on-Stick!
      Figure 3: Running Nisus Compact
      Для работы с образом диска в Windows потребуется утилита HFVExplorer (входит в комплект Mac-on-Stick 0.2).

      Создание образа диска



      Если для работы в Mini vMac потребуется диск большего объёма, то можно создать его в терминале Mac OS X или консоли Linux при помощи команды:
      dd if=/dev/zero of=hfs52M.dsk count=106496


      This creates a 52MB disk image, named hfs52M.dsk, in the current directory (count is the number of 512 byte blocks). Before you can mount it using the SetFType utility, you must format it in Mini vMac. Launch Mini vMac, drag the new disk image onto it, press the Initialize button when prompted, and give the new disk a name. Now you can mount the disk image.

      Загрузка Mac-on-Stick



      Если перспектива установки Mac-on-Stick с нуля не впечатляет, то можно скачать работающий комплект через BitTorrent. The package comes with the following bundled applications:
      Title Description
      QuickPop Assign hotkeys to applications, documents, control panels, etc.
      BBEdit Lite One of the most popular text editors for Mac OS
      Tex-Edit Styled feature-rich text editor
      MORE Powerful and flexible outliner
      Excalibur LaTeX-aware standalone spell checker
      Glider Paper plain game
      Texris Tetris clone for two players
      Sokoban Game of Sokoban
      Nisus Compact Powerful word processor
    • Выполнение сценариев при выходе из системы

        Применительно к Windows XP.

        Можно, конечно, как и советуют на разных форумах, создать файл quit.cmd, в котором написать все необходимые сценарии, поставить в конце выполнение shutdown и запускать его каждый раз чтобы выключить ПК. Можно и так, но мне более элегантным видится вариант с групповыми политиками
        Читать дальше →
      • Вредная привычка

          Интересно, а кто-нибудь ещё, найдя в интернете интересную статью или просмотрев понравившийся линч у Лебедева, тратит несколько секунд на поиск хаброплюса?
          British Blog Directory
        • Оценка знаний PHP по мнению mamba

            Получил оценку выше нуля, хотя PHP забыл напрочь :-) Впрочем, так же встречаются вопросы и по Linux, и по Subversion, и по MySQL. Комплексный тест получился :-)


            Пройти тест

            Там что-то про «приведи работника и получи 500$» написано, потому отмазка:
            1. Я не зарегистрирован в Mamba.
            2. Я не имею материальной заинтересованности в чьём-либо трудоустройстве.
            3. Я просто неплохо поразвлёкся, проходя тест :-) Чего и остальным желаю.
            Читать дальше →
          • Если кому нужно поднять карму, уже можно не писать в комментариях

              Пока будут пульки — буду плюсомётить :-)
              Всё равно это глупость несусветная…

              Upd:
              Всё, заминусовали и отняли плюсомёт :-D
              Единственное только, не покидает головы мысль, что я случайно подставил тех, кого хотел проплюсовать. Знал бы — предложил бы стучаться в ICQ :-)
            • Сокращение уровня вложенности

                Иногда от посторонних людей достаются большие процедуры, от которых появляется большая головная боль.
                Например, когда мне досталась на переработку километровая процедура 1С. В целом, она выглядела
                впечатляюще
              • T-SQL, String split

                  CREATE FUNCTION split
                  (
                          @string nvarchar(4000),
                          @delimiter char(1)
                  )
                  RETURNS
                  @splitted TABLE
                  (
                          Value nvarchar(4000)
                  )
                  AS
                  BEGIN
                          DECLARE
                  @a SMALLINT
                          DECLARE @b SMALLINT
                          SET @a = charindex(@delimiter, @string)
                          INSERT @splitted VALUES (substring(@string, 1, @a-1))
                          WHILE @a <> 0
                          BEGIN
                                  SET @b = charindex(@delimiter, @string, @a+1)
                                  IF @b <> 0
                                          INSERT @splitted VALUES (substring(@string, @a+1, @b-@a-1))
                                  ELSE
                                          INSERT @splitted VALUES (substring(@string, @a+1, len(@string)-@a))
                                  SET @a = @b
                          END
                          RETURN
                  END
                • Ленивые свойства объекта

                    Возможно, не самый умный экземпляр для линча, но хотелось с чего-нибудь начать)

                    Для красоты кода и удобства написания модулей, реализовал классы по работе с отдельными информационными сущностями. К примеру, такая вещь как язык интерфейса имеет свой ID, и для большинства операций этой информации вполне достаточно. В то же время, возникают редкие ситуации, когда требуется получить дополнительные сведения о нём (RFC-код, к примеру, узнать который можно, обратившись к отдельной таблице или файлу). Не особо задумываясь, поставил инициализацию переменных в конструктор класса… Проблемы начались, когда переехал на машину с тормозящим SQL-сервером (очень полезное занятие, как оказалось) – тестовая машина падала в таймаут при совершенно безобидных операциях. Не комильфо – процессорное время и SQL-соединения хотелось бы использовать более рационально :) Но использовать специальные методы для подгрузки вроде Fill() тоже не особо хотелось. В итоге пришел к наиболее простому (на мой взгляд) решению из доступных
                    Читать дальше →
                  • Линчевание кода

                      Интересно, почему у дизайнеров и иллюстраторов есть линч, а у программистов нету?
                      Хотелось бы иметь возможность восполнить недостаток опыта не только штудированием матчасти, но и возможностью услышать объективную критику специалистов относительно отдельных участков кода и/или реализации того или иного аспекта программной системы. Судя по многим топикам (например, про уменьшение времени загрузки js и css файлов) вопрос ревизии кода является достаточно актуальным…

                      Update: Создан блог – www.habrahabr.ru/blog/code_review
                    • Установка MSSQL Express с полнотекстовым поиском, подключение существующей БД и работа по TCP/IP

                        Вспомнились прыжки с бубном вокруг компьютера, потому решил законспектировать раз и навсегда производимые действия. А-то постоянно что-нибудь забываю…

                        Читать дальше →