Search
Write a publication
Pull to refresh
17
0.5
Максим @SabMakc

User

Send message

Interactive Fiction или Используй воображение…

Reading time6 min
Views14K
Zork 1Я автор известной в определенных кругах платформы QSP, предназначенной для создания текстовых (sic!) игр.
Столь редкий жанр мало освещен в рунете, поэтому очень хочется исправить ситуацию и вкратце рассказать об интерактивной литературе и QSP в частности.

Это моя первая статья для Хабрасообщества, поэтому прошу сильно не пинать :)

Введение


В наше время «попкорнового» кино и не менее примитивных видеоигр, когда графическая составляющая практически полностью вытесняет шаблонный сюжет, редко какой человек не задумывается о том, чтобы попробовать что-либо другое, то, что позволит ему с интересом провести время. Некоторые, еще не забывшие, что такое книги, возвращаются к ним, а некоторые открывают для себя мир интерактивной литературы, в которой каждый может попробовать себя и в роли главного героя, и в роли создателя своего собственного мира. Достаточно лишь использовать воображение…

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

Динамическая компиляция кода в C#

Reading time5 min
Views33K
Использовать компилятор из кода C# достаточно просто. А вот зачем – это другой вопрос :).

Hello World


Напишем первый простой пример. Создаем консольное приложение и напишем следующий код:
using System;<br>using System.CodeDom.Compiler;<br>using System.Collections.Generic;<br>using Microsoft.CSharp;<br><br>namespace ConsoleCompiler<br>{<br>  internal class Program<br>  {<br>    private static void Main(string[] args)<br>    {<br>      // Source code для компиляции<br>      string source =<br>      @"<br>namespace Foo<br>{<br>  public class Bar<br>  {<br>    static void Main(string[] args)<br>    {<br>      Bar.SayHello();<br>    }<br><br>    public static void SayHello()<br>    {<br>      System.Console.WriteLine(""Hello World"");<br>    }<br>  }<br>}<br>      ";<br><br>      // Настройки компиляции<br>      Dictionary<string, string> providerOptions = new Dictionary<string, string><br>        {<br>          {"CompilerVersion", "v3.5"}<br>        };<br>      CSharpCodeProvider provider = new CSharpCodeProvider(providerOptions);<br><br>      CompilerParameters compilerParams = new CompilerParameters<br>        {OutputAssembly = "D:\\Foo.EXE", GenerateExecutable = true};<br><br>      // Компиляция<br>      CompilerResults results = provider.CompileAssemblyFromSource(compilerParams, source);<br><br>      // Выводим информацию об ошибках<br>      Console.WriteLine("Number of Errors: {0}", results.Errors.Count);<br>      foreach (CompilerError err in results.Errors)<br>      {<br>        Console.WriteLine("ERROR {0}", err.ErrorText);<br>      }<br>    }<br>  }<br>}<br><br>* This source code was highlighted with Source Code Highlighter.

Запускаем и проверяем:
First Sample
Первое, на что стоит обратить внимание – это использование двух пространств имен (namespace):
  • Microsoft.CSharp
  • System.CodeDom.Compiler
В данных классах и содержится ключ к возможности компиляции. В нашем примере мы указываем что компилировать будем под .NET Framework 3.5, а так же указываем что мы хотим получить на выходе – Foo.exe, с возможностью запуска данного приложения.
Читать дальше →

Проект на энтузиазме, часть 1: Люди

Reading time5 min
Views1.4K
Боюсь показаться не оригинальным, статьи про опыт разработки не редкость. Но я бы хотел бы поделится своим опытом и мыслями немного с другой точки зрения и про особый формат совместной работы — когда несколько незнакомых доселе людей делают совместный проект. Пропустив технические препятствия, которых полно в аналогичных статьях, я бы хотел посвятить первую часть рассказа полностью людям. Вторая часть — конкретным цифрам и перспективам проекта (не очень большим), мне нечего скрывать.

Начало

У одного человека есть идея, не сказать, чтобы очень оригинальная, но имеющая новаторское виденье старой проблемы. Ещё он может верстать и делать дизайн. У другого человека есть навыки программирования, есть свободное время и вообще скучновато на постоянке. У другого есть навыки организаторской работы, есть желание принять участие с надеждой на будущие доходы. Есть ещё охуенный иллюстратор, у которого тоже есть свободное время.

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

Все так просто, о чем казалось бы ещё писать. Но вот, в том же посте по поиску соучастников, тоже собралась команда для разработки другого проекта, но они так и не дошли до финала, как мы. Почему? Это я понял по своему опыту, ведь мы тоже были близки к провалу. Этим опытом я и хочу поделиться.
Читать дальше →

Похапе мануал обновился

Reading time1 min
Views1.5K
image

Альтернативный мануал к PHP обновился. Напомню, он хорош для тех PHP-разработчиков, кто привык пользоваться chm-версией справочника, ведь он решает некоторые проблемы:
  • Корректная кодировка русскоязычных разделов
  • Решение проблем с открытием chm-файлов под Линуксом и Макосью

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

В новой версии произошли довольно полезные изменения:
  • К каждому разделу справочника теперь прикреплены полезные комментарии с сайта php.net, которые просили хабраузеры в своё время
  • Добавились быстрые ссылки на конкретные разделы для обмена с друзьями
  • Английская версия мануала обновилась до версии PHP 5.3. На сайте php.net с некоторых пор русская документация отсутствует. Я решил оставить её, зато по дефолту сделал открытие английской версии, в любом случае это настраивается
  • Переезд на новый хостинг и сжатие данных дало прирост в скорости открытия

http://manual.pohape.ru

Пользуйтесь за здоровье, все фючер реквесты приму с удовольствием.

Множественная загрузка файлов из архива с поддержкой RANGE запросов

Reading time2 min
Views1.7K
Иногда бывает полезным не сохранять кучу файлов на каком-либо хостинге, а использовать только один архивный файл. Но возникает проблема доступа к конкретному файлу в архиве. Предлагаю вашему вниманию PHP скрипт, который позволяет загружать часть архивного файла как целый файл. Поддерживается дозагрузка через запросы RANGE. Архив, в данном случае, просто склейка из множества файлов. В настоящий момент скрипт протестирован с менеджером загрузок Flashget.
Читать дальше →

Наиболее полный обзор IM-клиентов популярных протоколов для ПК

Reading time18 min
Views60K
Эх. Наблюдаю я изменения QIP'е, расцвет многих других клиентов, смотрю как захватывает мир Jabber и как АОЛ мечется в поисках партнёра… и вижу я, что большинство это не волнует: как пользовались когда то установленной программой, так и остаются в ней.
Нет, мой топик-обзор не призывает пользоваться какими то особыми новыми клиентами, но он, надеюсь, заставит вас задуматься и выбрать наиболее подходящий. :)
Скорее всего у многих хабровчан уже есть свой любимый клиент, за который они готовы удавить любого «недоброжелателя» :) Прошу холиварщиков удалиться, я здесь просто делаю обзор, провожу черту под текущем положением вещей. Тем же, кому интересно, кто жаждет нового, кому поднадоело уже своё средство общения и прочим интересующимся людям — прошу просмотреть обзор. Будут рассмотрены IM-клиенты имеющие графический пользовательский интерфейс на ПК (Windows и Linux).

Внимание! ~1,5 Мб картинок, и море текста

хочу обзор!
12 ...
59

Information

Rating
3,458-th
Location
Россия
Registered
Activity