All streams
Search
Write a publication
Pull to refresh
-1
0
Сергей Антипов @untyped

User

Send message
Поправимо:
@echo %*
И запуск с параметрами Easter Egg
Так даже функциональность имеется по умолчанию.
Проще надо быть, товарищи!
EasterEgg.bat:
@echo %~n0

А для тех, кто в танке к празднику отношения не имеет, можно в конце pause добавить.
Не за что :)

В конкретно этом случае (т.к. передаёте JPEG), лучше просто использовать Texture2D.FromStream().
Он вообще-то понимает и .jpg и .png.

А вообще лучший (из простых) вариант разбить всю картинку по сетке и передавать только изменившиеся куски.
А с некоторой задержкой (раз N секунд) передавать все.
Ну или (при двустороннем общении), по запросу клиента.
Нда…
Receive_GetData и ConvertToTexture2D это нечто.

1. Преобразуем byte[] в Bitmap.
2. Сохраняем Bitmap в PNG.
3. Загружаем Texture2D из PNG.

… и всё это вместо одного вызова Texture2D.SetData().

В общем-то MS поступили почти так же.
IE9 выйдет немного позже pwn2own, причём с уже закрытыми уязвимостями IE8.
Вообще-то я бы это проблемой не назвал :)
Ага, а ещё стоит обратить внимание на то, что у этой клавы по умолчанию включен режим Office.
У сына такая стоит — каждый раз садясь за неё хочется поубивать этих гениальных инженеров. Причём меееедленно.
Вообще-то это должно зависить от (пардон) текущего выделения.
Если есть выделенный блок — делаем Copy. Нет — делаем Paste.
Paste с заменой не рассматриваем.

Для случая с текстом весьма просто реализуемо программно, с привязкой к одному клавише-сочетанию (а то и просто к одной клавише).
Назваем каким-нибудь «супер-пупер контекстно-зависимым механизмом копирования-вставки» и радуемся жизни.
И git и mercurial куда удобнее svn.
На больших проектах — отпадает проблема «либо коммиты рабочие либо нормальная история изменений».
На маленьких — получаешь локальный репозиторий безо всяких заморочек.

К командной строке привыкаешь за день, если нужно что-то хитрое — 5 минут гугления решают большинство вопросов. Реально за месяц привыкаешь так, что назад уже не потянет. Для тех, кто не может жить без GUI тоже есть из чего выбрать.

Если честно, то только с DVCS привык в каждом проекте использовать контроль версий.
Даже в малюсеньких типа «можно сделать ручками за полчаса, напишу программулю за 15 минут и 15 минут могу честно-заработанно валять дурака». :)

Единственная проблема от перехода — после него будете смотреть на svn/cvs репозитории как на нечто хоть и близкое-знакомое, но какое-то старое и несчастное.
Похоже речь идёт о новом плеере (на Desire HD/Desire Z).
Только надо сразу выработать правило как отбирать ветки для «общей» версии.
В принципе, можно устраивать «голосование» через github'овские issues.
А я бы предложил собирать в bin не одну (основную) сюжетную ветку, а несколько.
В идеале — в конец каждой части добавить ссылки — варианты например «А Вася-то гад» и «Вася — герой».
Это, естественно возможно только для тех форматов, которые поддерживают ссылки (либо сноски).

Таким образом получится «интерактивная книга» :)
Эх, как же мне когда-то не хватало такой статьи :)
Лично мне помогли:
code.google.com/p/apps-for-android/
en.wikipedia.org/wiki/List_of_open_source_Android_applications

Думаю, есть смысл добавить в статью, как источник кода для как-это-делается.
Это не идиотизм, а всего лишь капля в океане того уважения, что эти Люди заслужили.
P.S.: Сливайте сколько угодно, на моём отношении к ним это никак не скажется.
Дело не Ваших ассоциациях, а в восприятии этого слова теми немногими оставшихся, кто пережил ту войну. Для них это не что иное, как очередной плевок.
И судя по написанному, в том числе и от Вас.
Если распределение более-менее ровное (например, ключ это MD5 хеш чего-либо), в качестве хеша для индекса/поиска есть смысл использовать, скажем, первые 3 байта ключа.
Создаём List|Array[0xFFFFFF], содержащий List со ссылками|смещениями элементов.
Вариант с вложенностью — основной List|Array[0xFFFFFF] содержит под-уровни (в зависимости от распределения ключа выбираем либо List либо Array), а они уже либо точное значение (для полного индекса ключа, если памяти не жалко), либо те же List со ссылками|смещениями элементов.

В сжатие данных эта техника называется DirectBytes.
И при всей своей простоте позволяет достичь весьма высокой скорости.
Единственный минус — требования по памяти в случае полного индекса, ну оно и понятно.

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

Если со строками не повезёт и ключ окажется GUID'ным — советую инвертировать его побайтно (задом наперёд переписать то есть). Распределение будет со смещением в начало, а соответсвенно вырастет скорость поиска.

Не за что :)
Если нужно добавление записей дибо изменение ключа — сортировка не вариант.

Я бы использовал для индекса что-нибудь максимально простое, ориентируясь на производительность.
Маппинг «N байт ключа»- «список указателей». Либо вариант со вложенным маппингом.
В зависимости от распределения ключа можно выбрать для маппинга либо List/Array либо Dictionary.
А вот древо я бы поостерёгся использовать, по крайней мере в универсальной реализации.

Кроме того, я бы не грузил все данные в память, а использовал бы memory mapped files.

Кстати, судя по тому, что ключ — строка, в реальном мире его скорее всего можно было бы ужать в более компактное битовое представление.
Блоки массивов по 0xFFFFFF+1 байт

byte b1 = arrays[pointer>>24][pointer & 0xFFFFFF];

Можно обойтись и без сортировки.
Да и затраты на загрузку 1M записей в Вашем варианте всяко будут велики. В «массивном» варианте скорость загрузки выше.
А реализация индекса может быть какой угодно.
habrahabr.ru/blogs/net/114495/#comment_3693953
Лишь бы памяти хватило.
Да и про разбиение уже не раз сказали.

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity