• Возможно ли стать ретранслятором в сети Tor, если я за NAT'oм?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Нет, без особой уличной магии по выходу из под NAT. То есть, можно попробовать пробросить соединение на уже открытый порт на выделенном сервере и уже от туда... Правда, зачем такое делать, коли есть выделенный сервер =) Равно как зачем вообще поддерживать луковую сеть? Нет, это конечно всё хорошо и круто, но поверьте - лучше чтобы наоборот её особо не поддерживали.
    Ответ написан
  • Как реализовать мгновенную фильтрацию DataGrid'a, используя многопоточность (WPF)?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Видимо, вы неправильно готовите асинхронные таски. Возможно это поможет.
    Ответ написан
    Комментировать
  • Что нужно знать, чтобы стать хакером?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Ей, хе хей!

    Ну народ, давайте называть вещи своими вещами. Конечно, есть толковый словарик, но нередко он ошибается, так как пытается охватить неохватываемое.

    Хакер - это не тот, кто взламывает, ломает. Ближе всего, конечно, определение, как хулиган. Но тоже не совсем верное. Это скорее безбашенный человек, который не знает слова "невозможно" и пытается докопаться до порой недокапываемого. Но к тому же, он весьма просвещён в области Computer Science (понимает, когда есть смысл, а когда нет смысла вскрывать RSA и подобное). К тому же он далеко не профан в схемотехнике: паяльник держит ровно, мозг может выдать схемку, а руки всё ровно сотворить.

    В общем хакер - это тот парень, кто без ума от компьютерной техники. Конечно, в современном мире это слово искажено, не без успеха небезызвестного Кевина Митника (можете почитать "Искусство обмана" с комментариями Митника).

    Теперь о том, что собственно хакеры делают. Они исследуют. Исследуют новое и, возможно, не очень важное. Но весьма и весьма интересное. Если Вам не интересно, почему виртуалиция кода очень крута и зачем в Windows до сих пор литеральное монтирование дисков, то возможно стезя хакера не Ваша. Научиться этому всему можно, но вряд ли Вам это будет интересно.

    Многие мои знакомые узнавали об устройстве компьютера едва ли не сами, методом проб и ошибок. Запомните это: на границе исследованного этот метод, пожалуй, единственный. Больше ничего нет просто потому что никто ничего не продумал.

    Но. Хакеры ничего не защищают. Они исследуют. Настоящий хакер делает лишь то, что ему нравится, иначе будет мучать депрессия. Хакер не обязательно должен ломать сети. Он вообще не обязательно должен ломать. Но у хакера очень узкая специализация: базовые навыки в IT в общем и невероятные в своей специализации. Это потому, что невозможно достич успеха не концетрируясь на чём-то одном.

    Кевин Митник - хакер информационной безопасности
    Джон Кармак - хакер трёхмерной графики
    Джулиан Ассанж - хакер информационной безопасности
    Линус Торвальдс - хакер just for fun'а

    Есть ещё много реально крутых хакеров. Если Ваш путь - информационная безопасность, то вот небольшой roadway: в первую очередь следует изучить теорию чисел, разобраться в криптографии, потом разобраться в сетевых технологиях (здесь очень много всего: от iptables до сетевых интерфейсов как в софте, так и в железе), наконец потом немного драйверов, userland'а и kerneland'а: как работает ОС, где слабые места. В перерывах кормим себя web'ом: apache, ngix и прочая сетевая утварь; также изучаем багрепорты и те дыры, которые уже были найдены когда-то, пытаемся найти и то, как они были найдены, в каких обстоятельствах.

    Проникаемся всей этой атмосферой. Порой вытворяем безумное. Нет, не пытаясь получить премию Дарвина, скорее пытаемся решить задачу тысячелетия и/или взломать пентагон.
    Ответ написан
    3 комментария
  • SSH, авторизация публичным ключём: ЧЯДНТ?

    Deerenaros
    @Deerenaros Автор вопроса
    Программист, математик, задрот и даже чуть инженер
    ls /home и /home/yuriy вам не понравяться (пару десятков килобайт, хех).

    Впрочем, пара ls'ов есть - всё что надо с правами и вообще, много всего в комментариях к вопросу: TM такой TM что не даёт развернуться и ограничивает 30 или 10 килосимволами (не помню уже), пришлось уменьшать.
    Ответ написан
    Комментировать
  • Почему приложение на C# съедает в 5 раз больше ожидаемого объема памяти?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Ой, ой, страшно.

    Ну сами подумайте, что такое C#? Это CIL. А рантайм CIL'а ой как память сжирает.

    Вообще, это всё к недавнему вопросу здесь о том, что должен знать хороший программист. А знать он должен то, с чем работает. Если бы Вы знали, что C# - это "виртуальный" язык, то есть реальной машины, которая исполняла бы его код не существует. Он компилируется в тот самый CIL, который исполнятся виртуальной машиной. Она же сразу резервирует какую-то память, мегабайт сто-стопятьдесят, дабы быстро расположить в ней вновь создаваемые объекты. К тому же, подгружается несколько весьма больших DLL от которых "стандартно зависит" .NET-приложение.

    Впрочем, и на Си контролировать память не так уж и просто. Как минимум будет пол-метра оверхеда, если не резать ножом. К слову, .NET тоже можно резать ножём, но так же эффективно, как Си, ясное дело, не получиться.
    Ответ написан
    Комментировать
  • Как усовершенствовать ноутбук?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Ничего.

    Но если всё совсем плохо, то первым делом стоит выкинуть всё лишнее, что использует ресурсы. Наилучшим вариантом будет, так это установка archlinux (или gentoo, но это посложнее будет) по мануалу, с натягиванием лёгкого openbox и всего по минимуму. К сожалению, chromium жрёт RAM гигабайтами, так что придётся обойтись каким-нибудь netsurf'ом, ну или что-нибудь более мэйнстримное (читай, красивое) вроде Midori без расширений; в общем, выбор есть. Обязательно настраиваем zram и радуемся вдвое возросшему объёму RAM.

    Теперь более хардварное. Разгон, конечно, стоит сделать. Но без опыта крайне не советую, лучше поискать машинку, которую не жаль - таки процесс может закончится немного печально. Впрочем, в случае разгона повышать кол-во оборотов кулера не то, чтобы не советую, скорее просто не получится. Из более реального разобрать его, почистить от пыли, заменить термопасту. Бюджетные ноутбуки и так работают на пределе своих охлаждающих возможностей и если ОС пишет, что кулер работает на 100%, скорее всего так и есть. Тем более, что увеличив обороты лишь загоните туда больше пыли.

    Теперь о том, на что стоит потратиться. В первую очередь просто меняем RAM. Медленная работа компьютера - верный признак деградации RAM. Она сегодня первая деградирует - у современных CPU огромный запас производительности, тогда как ошибки в памяти заставляют ОС всё чаще глупить и подвисать, а порой и крашиться. Потом, если можно, таки стоит поменять и процессор: zram будет отжирать проценты CPU, так следующий он идёт узким горлышком. HDD можно поменять на SSD, но если S.M.A.R.T. говорит, что всё хорошо, значит всё хорошо: он будет давать свои 50 mbps с миллисекундной задержкой, так что SSD погоды не сделает. Ибо речь не о винде.

    Теперь внимание. Если внезапно, если никак не хотите переходить на линукс, то очень очень зря. Здесь и файловые системы в юзерспейсе, и продуктивная работа, и игры (хотя на этом вряд ли можно будет поиграть). Но теперь, что можно сделать на винде: ещё меньше, чем ничего. Нет, серьёзно. Если с линуксом это кобыла будет доживать свои последние дни, то на винде ей ловить уже почти нечего. Из того, что здесь может помочь, так это только хардвар (замена RAM, CPU, добавление дискретного видео ибо Windows прожорлива на графику): так как ни zram Windows не поддерживает, ни окружение у неё не есть легковесное, ни прочих плюшек, вроде централизованного хранения библиотек (экономия на дисковом кэше). В общем, Windows нормально пашет на серьёзных машинах. Как вариант, можете попробовать Windows XP, которая пусть и не поддерживается более, но она была создана во времена, когда 512 mb RAM - это очень много. Разве только ставьте чистую и ничем более не нагружайте: не надо никаких украшалок и прочих пожирателей памяти. Для интернета всё также советую netsurf и иже с ними.
    Ответ написан
    2 комментария
  • Что умеет MacOS, что не умеет Windows?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    MacOS не то чтобы многое умеет. MacOS - это часть продуманной экосистемы Apple. То есть MacOS, iOS, iTunes и туча софта, которое сделано под эту экосистему. Многие плюются на iTunes, потому что не видели его под MacOS - это совсем другое. Тесная интеграция с finder, который порой буквально мысли читает, невероятные плюшки от интерфейса (Aero нервно курит в сторонке) и общая органичность системы с софтом и хардом позволяет абстрагироваться от этих задач на Windows. Вообще, есть огромное количество дизайнеров и на Windows, зря Вы так, просто (сам замечал) в IT-сообществе MacOS более популярна (причём не только у дизайнеров).

    Ну а так, вот примерный список того, что приходит в голову:
    + MacOS это, собственно, Unix; даже не unix-like, именно Unix. Эволюция того самого unix. Отсюда все вытекающие - технически система куда более органичная, хотя MacOS не столь flexible, сколь Linux-систем, всё таки она куда более гибкая чем тот же Windows. Это и mount (тут же fuse), и лучшая "многопользовательность", и отсутствие графического ядра (ходят слухи, что в Windows таки избавились от встроенной графики в ядро, но коль часто вылетала в BSOD из-за кривых драйверов Win7 смею предположить ложность сих доводов) и прочие плюшки. Да и вообще, в Unix огромное количество функций ядра "выноситься" в user-space (отдельное ПО), что позволяет расширять её невообразимо.
    + Продуманный UI. Нет, серьёзно. Multitouch тачпада реализован на 100%: у меня друг использует Magic Trackpad вместо мышки для моноблока Apple. Хотя здесь более субъективно, на качественном уровне у Apple намного больше фишек и почему-то догадываешься до них едва ли не сам, настолько они органичны и интуитивны.
    + Намного большая стабильность, из-за той же вынесеной в user-space графики и в общем лучшая система обслуживания оборудования (с драйверами тут и проще и тяжелее, проще система, тяжелее в том, что часто их нет и точка).
    + Чисто внешне выше производительность. Забавно, но она ещё и выше из-за вынесеной графики: OpenGL здесь работает во всю, а в user-space он общается напрямую с видео-карточкой... В общем, рисует формочки MacOS быстрее Windows так как путь меньше.
    + Красивее. Действительно, MacOS выглядит шикарно. Отчасти это снова проработанный UI, отчасти это потому что дизайнерам в Apple платят больше... Шучу, но в каждой шутке - доля правды.

    А вообще, вот, хорошее описание "что есть" в MacOS.
    Ответ написан
    Комментировать
  • Как писать и поддерживать сайт?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    А в чём проблемы с локальным проектом? А вообще, git workflow и Heroku вам в помощь.

    В зависимости от стека технологий, запускать сервер на локалхосте можно из cmd.exe с помощью команд, описанных в документации.
    Ответ написан
    Комментировать
  • Как сменить картинку на JavaScript?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    <label id="sun"></label>
    
    <script>
    var sun = Math.floor(1000 * Math.random());
    document.getElementById('sun').innerHTML=("<img src=" + sun + ".png />");
    </script>


    Ваш К.О.
    Ответ написан
    Комментировать
  • Поможет ли история в репозитории в доказательстве авторства?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Смотря в каком праве. Да и шутка ли, но вряд ли Вы используете цифровой ключ ГОСТ 34.10-2012 в качестве метода авторизации, так что... Сомнительно.

    Впрочем, надежда есть. Если кинул заказчик (покупатель лицензии), то в случае внушительной документации (какой-нибудь контракт, договор об отчуждении авторских прав, хоть что-нибудь с печатью и подписью), суд может быть в Вашу пользу даже без VCS, тогда как она лишь даст дополнительный плюс в Вашу пользу).
    Ответ написан
  • Как сервер реагирует на выполнение жирных скриптов ?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Основная проблема будет только с записью. То есть при использовании традиционных SQL можно одним движением руки прострелить себе не то что ноги, но и голову, внезапно обнаружив на себе последствия грязных, фантомных и других чтений.

    В плане производительности, нормальный сервер работает как минимум на процессах (cgi-bin), так что все получат хотя бы поровну. Другими словами - если сервер потащит, то задержки будут (если будут) очень небольшими. Асинхронная магия - основное время CPU ожидает, а не числа дробит, отсюда конвейр сможет эффективнее построить цепочку и так далее.

    Ну и потом. 10 секунд на миллион пользователей. Много. Слишком. Да и про миллион, товарищ, привираете.
    Ответ написан
    4 комментария
  • Какую видиокарту поставить?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Когда же люди научаться пользоваться поиском?
    Ответ написан
    Комментировать
  • Как обойти ограничение точности типа double в C#?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Так. Стойте.

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

    Как вариант, можно использовать BigInteger и хранить запятую отдельным числом, можно тоже BigInteger. По сути - запятая это показатель степени при основании системы исчисления, то есть 10. Арифметика элементарная.

    Есть тысячи реализаций (включая BigRational в C# F#).

    Загружаться они почти все могут из строки, а те кто не могут, сплитим по точке и считаем количество нулей. Но должен предупредить - данный метод может зациклиться и очень на долго.
    Ответ написан
    1 комментарий
  • Как правильно выделить память для массива классов С++?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Оу вэй. Си++ умеет управлять памятью куда более изощрёнными способами, чем Java или C#, так что изучайте стек и кучу, читайте про указатели и динамическое распределение памяти.

    Ваш вопрос сформулирован неправильно. Не совсем понятно, что Вы хотели сделать. Если Вам надо хранить ранее созданный массив кнопок, то передавайте указатель, а перед этим создавайте оператором new:
    class ButtonProcessor{
      private:
        Button *buttons;
      public:
        ButtonProcessor(Button *buttons) {
            this->buttons = buttons;
        }
    };
    /***/
    Button *buttons = new Button[100500];
    ButtonProcessor proc(buttons);
    Ответ написан
  • Где скачать оффлайн документацию по C# от msdn?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    deb3920754b24af9ac5f071cfaab4fd2.png
    Здесь можно всё поставить и хелп будет доступен как часть среды.
    Ответ написан
    Комментировать
  • Как передать данные на 100 метров?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Как вариант пять ZigBee трансмиттеров и такая штука. Хотя по сути это тот же WiFi.

    Если внезапно устройство в прямой видимости, то можно использовать что-то вроде этого.
    Ответ написан
  • Мигание игры с DirectX 6 — в какую сторону рыть?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    На самом деле это чрезвычайно сложно.

    Как вариант, можете попробовать дизасемблировать и в сэндбоксах искать место, что вызывает мигание. Это вариант для труЪ-хакеров.

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

    Намного проще же виртуализировать. Вариантов очень много, от мелкомягкого Windows XP Mode (работает на базе Virtual PC), до встроенных QEMU со скриптами запуска.
    Ответ написан
    Комментировать
  • Почему упала скорость записи на SSD? И скоро ли "накроется" диск?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Была похожая трабла но на гибриде. Да, случай гарантийный. Можете обжаловать решение СЦ даже с угрозой обратиться в суд. Если не поможет и судом не хочется заниматься, то можете провести независимую экспертизу, хоть это и будет стоить рубля, скорее всего меньше, чем сам диск. С этим снова в СЦ, если продолжат упорствовать, то это совсем печальный случай.

    Но вообще, да, диск почти мёртв. Проблема в контроллере. Случай целиком и полностью гарантийный.
    Ответ написан
    Комментировать
  • Как в c# правильно написать такой алгоритм?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    В общем случае никак. Конечно можно соорудить примерно такой зоопарк:
    void tries(params Func<Void> bodies) {
    	try {
    		bodies[0]();
    	} catch {
    		tries(bodies.Skip(1).ToArray());
    	}
    }
    
    // using
    tries( () => {
    		// first try
    	}, () => {
    		// second try if first failed
    	}, () => {
    		// third try if second after first failed
    	} ... )


    Но @gleb_kudr и остальные правы - исключения далеко не лучший способ построения архитектуры приложения и уж точно он не должен быть использован для реализации алгоритма. Хотя исключения сегодня достаточно дёшевы (в C# по мелкомягкой политики мы и так платим за исключения даже не используя их), но алгоритм логичнее делать именно с помощью ветвлений, а не обработок исключений. Единственный use-case который я смог придумать - большое количество различных "одинаковых" ресурсов с различной степенью актуальностью - от сети до просьбы вставить диск. Как-то так. Но всё таки это экзотические ситуации и следует понимать, что исключения - всё таки исключительные ситуации и требоваться они должны редко. Если программа успешно (идеально) отработало, но было брошено сотни исключений - дело плохо.
    Ответ написан
    Комментировать
  • Как посчитать количество цифр после запятой?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    WUT?

    Что требуется? Всегда возвращать четыре, или всё таки игнорировать нули?

    Воспользовавшись здравым смыслом, рискну предположить, что нули игнорируются, тогда с этим соусом.
    Ответ написан