• Как полностью отключить Защитник Windows на Windows 10
    0
    Для того чтобы ноутбук работал, а не обогревал комнату стопроцентной загрузкой процессора.
  • Заблуждения начинающих C# разработчиков. Пытаемся ответить на стандартные вопросы
    0
    Кто, абстрактный класс? Он его не реализует. А вот реализуют ли его наследники финализатор я знать не могу: это вопрос к тому, кто его будет имплементить, или уже заимплементил. Однако в моём случае он ссылается на PatternLayout, который тоже не SafeHandle.
  • Заблуждения начинающих C# разработчиков. Пытаемся ответить на стандартные вопросы
    0
    Угу, только чаще всего для логирования используют что-нибудь вроде log4net, а для логирования пишут что-то типа Logger.Warn(«object not disposed»).
    А логгер этот не простой, а «золотой» — использует
    abstract class LoggerWrapperImpl {}
    в качестве таргета для строчек лога. Это нифига не наследник SafeHandle — вполне может уже прибит в момент работы финализатора.
  • Заблуждения начинающих C# разработчиков. Пытаемся ответить на стандартные вопросы
    +1
    Это черевато непредсказуемыми падениями: порядок вызова финализаторов недетерминирован, равно как и порядок убийства объектов. Закрываешь окно приложения, а оно тебе НА! CurrentDomain_UnhandledException.
    Чтобы гарантировать, что Dispose() таки вызвали, нужно тесты писать.
  • Заблуждения начинающих C# разработчиков. Пытаемся ответить на стандартные вопросы
    0
    Это не проблема фрэймворка — это проблема кода приложения. Многие фрэймворки требуют обращения к UI'ным объектам только в UI'ном потоке, просто потому что STAThread — тяжкое наследие COM'а. Во многих фрэймворках и библиотеках есть Invoke() и BeginInvoke()
  • Заблуждения начинающих C# разработчиков. Пытаемся ответить на стандартные вопросы
    0
    Тут даже не про тонкую оптимизацию речь. Такие знания наиболее полезны, когда от пользователей повалили дампы с жалобами на «повисшую» софтиную. Раскопать, кто же наинвочил в UI'ный поток, без знания о сборке мусора практически невозможно, особенно если QA не может воспроизвести проблему, а напрямую отдебажить не представляется возможным ввиду объёма кода и кол-ва потоков.
  • Изначально неработоспособен: как выжить с ноутом на Windows 10 и 32-гиговым накопителем
    +1
    А мне апдейты каждую неделю приносят проблемы: каждую неделю студия и Windbg качают символы и каждую неделю не достаёт какой-нибудь части сорцов.
  • Как мы сделали движок и игру на нем за полтора года
    +2
    >Но мне сложенее всего понять, как можно играть в шутер на мобилке! Во-первых, управление: при самом продуманном варианте все это выглядит каким-то страданием до чувства отвращения. Во-вторых, размер дисплея.

    Ага, поддерживаю.
    Я когда-то плотно в Q3 Arena играл. В свете этого, шутер на мобилке для меня — что-то вроде параолимпиады, т.е. соревнования инвалидов-колясочников по бегу на дистанции с препятствиями. Там, где игрок с мышкой и клавиатурой делает 2 прицеливания в секунду (во время движения смещает точку прицела), инвалид на пацьцетыкательном девайсе пытается пройти из точки А в точку Б.
    Для неверующих вот тут, с 38-й секунды показано как это делается (2 и больше прицельных выстрела в секунду) youtu.be/cRV0tclxXMQ
  • Почему ['1', '7', '11'].map(parseInt) возвращает [1, NaN, 3] в Javascript?
    0
    >А как это делается, извините? Ну вот представьте себе: вы закрыли таску «добавить иконку в профиль пользователя». А через неделю открыли другую «в сводной таблице нет информации и количестве покупателей, купивших товар».

    Не, не так. У нас взмах крыла бабочки к взрыву сверхновой не приводит. Такие таски чаще всего переоткрываются с «у части пользователей неверная иконка, или её нет», или «в логах NullReferenceException». Происходит это потому, что иконки/картинки/подсказки часто зависят от локали пользователя или от его организации. Т.е., например, в базовой версии c культурой en-us всё хорошо, а в кастомизированной с испанской локалью — нет. Или «шаг вперёд — шаг назад иконка пропадает».
  • Почему ['1', '7', '11'].map(parseInt) возвращает [1, NaN, 3] в Javascript?
    0
    Десять тасков, где 9 — следствие криво закрытой первой, — это неверный подход. Правильный подход — переоткрывать таску до тех пор, либо пока фича не будет работать, либо пока нерадивого «менеджера» не уволят.
    У нас переоткрывают. Логика простая: высокому начальству не интересно сколько тасок закрыто. Интересно какие фичи реализованы, и что пойдёт в текущий релиз (например, что будет в release notes).

    Количество тасок — это очковтирательство.
  • Почему ['1', '7', '11'].map(parseInt) возвращает [1, NaN, 3] в Javascript?
    +1
    >javascript язык с динамическими типами, по этому надо всегда понимать какая сигнатура метода будет вызывана и с какими аргументами…
    ужс!
    Я уже настолько привык, что такие вещи мне помогает контролировать компилятор, что сейчас для меня это уже дико.
    У нас туда даже пройдя ревью, и цепкие лапы QA к клиентам баги попадают, а если ещё и вот такое стрелять будет… Нет, спасибо: в жизни и так достаточно сложностей, а моё внимание и память не безграничны. И вообще, в отличие от языков курильщика, компилятор здорового человека не позволяет себе ногу отстрелить, по крайней мере не таким примитивным способом.
    Я вот об этом:
            static void Main(string[] args)
            {
                //WARNING - CS0642 : Возможно ошибочный пустой оператор
                for (long i = 0; i < int.MaxValue; i++);{}
    
                double a, b, c; //WARNING -CS0168
                a = b = 1; //WARNING -  CS0219
    
               var dsf = new int[] {1, 2, 3};
               //ERROR CS1661: Невозможно преобразовать "лямбда-выражение" к типу делегата "System.Func<int,int,double>",
               //поскольку типы параметров не совпадают с типами параметров делегата
    
               //ERROR CS1661: Невозможно преобразовать "лямбда-выражение" к типу делегата "System.Func<int,int,double>",
               //поскольку типы параметров не совпадают с типами параметров делегата
              Enumerable.Select<int, double>( dsf, ( double p1, double p2) => { return p1 * p2;});
            }
    
  • Apple блокирует возможность независимого ремонта новых моделей MacBook
    +2
    В штатах официальные СЦ тоже далеко не всегда в пешей доступности. Основная же проблема тут в том, что мелочный ремонт у них часто стоит как новый ноут.
  • Как мы корпоративно от винды убегали
    +1
    Мой опыт подсказывает, что наоборот. Пока у меня была возможность играться, я едва-едва сводил концы с концами. Только потом захотелось своё жильё и немного больше уверенности в завтрашнем дне — необходимость впахивать стала осознанной. А неудачная попытка уйти в свободное плаванье показала, что «свобода» может быть хуже рабства.
  • Как мы корпоративно от винды убегали
    –2
    Может и соответствует. Только хватит ли main?
    Кстати, под какой именно лицензией оно там?
  • Как мы корпоративно от винды убегали
    0
    >>Некоторые совсем сильные парни пишут в vim, говорят там есть плагины со всем что может понадобиться.

    Писать даже я могу в блокноте, даже в командной строке. И компилировать из под неё же. Сложности начинаются, когда нужно раскопать багу и поправить багу в мегатонне говнокода, доставшегося в наследство. Для этого нужны продвинутые возможности навигации по коду, статический анализатор (который, например, подскажет, что «override» забыли), и хорошие возможности для рефакторинга.
  • Как мы корпоративно от винды убегали
    0
    Извини за любопытство, но что вы там такое регулярно разворачиваете? Что бывает нужно развернуть и что сложно обосновать?
    Я постоянно, каждый день пишу код, что-то тестирую, что-то дебажу, но за последние больше чем 2 года я поставил ровно одну копию 2008R2. Т.е. даже не я, а мы (мой «маленький отдел»).
  • Как мы корпоративно от винды убегали
    0
    Open Source != бесплатное.
    Половина содержимого дистрибутивов либо доступны для бесплатного использования только в некоммерческих целях, либо под вирусной лицензией. Почитайте что это (вирусная лицензия) на досуге. Если же вам плевать, и вы никаких исходников открывать не собираетесь, и платить за подписку не хотите, то какая вам разница что пиратить? Что Windows, хоть Linux…
  • Как мы корпоративно от винды убегали
    +1
    >… очень хотелось приобщиться к молодежному течению…
    ==Поиграться за счёт работодателя (в рабочее время).

    Очень весело живёте, господа: вас не терзают вопросами типа «когда будет готово!???», «почему опять регрешены полезли, и баги по 15 раз переоткрываются?», похоже нет дебага на неделю с разбором дампов, нет ежедневных отчётов. Подозреваю, что даже окна на улицу в офисе есть, и в них иногда солнце светит.
    Если же я ошибаюсь, и вокруг такой же трэш как и везде, но вы сидите и занимаетесь тем, что лично вам интересно, то возникает вопрос: сколько вы получаете?
  • Приводим данные и код в порядок: оптимизация и память, часть 1
    0
    Человек не сможет оптимизировать на ассемблере лучше компилятора.

    Какое категоричное заявление!
    А ничего, что люди, писавшие компилятор решали общую задачу, которая значительно сложнее чем те частные случаи, которые стоит писать на ассемблере? Не приходило в голову, что вылизать до идеала (например, с помощью того же Intel VTune Amplifier'а) 100 — 150 строк значительно проще, чем написать компилятор, который будет генерировать сопоставимый по производительности код?
    Не задумывался на тем что люди вообще делают с помощью Intel VTune? Зачем они его покупают?
  • Шесть подработок для ИТ-специалиста, за которые платят в долларах
    +4
    Какая-то не радужная перспектива из статьи рисуется: либо ты вебер (PHP, JS, NodeJS), либо что-нибудь не айтишное: играй в покер, сдавай жильё, торгуй на eBay.
  • Реализация грида для работы с большими таблицами. Часть 1
    0
    Никак: просто не меняем порядок сортировки при щелчке по заголовкам полей, для которых сортировка не разрешена явным образом.

    Кстати, пользователи плохо воспринимают сложные сортировки. Даже начинающие программисты, до этого не сталкивавшиеся с SQL, с трудом понимают что значит order by A, B, C — они просто не понимают: мы тут по A сортируем, по B, или по C?
    И, кстати, не все знаю что такое составной индекс, и зачем он нужен. Пользователи вашей библиотеки могут даже не догадываться об их существовании.
  • Реализация грида для работы с большими таблицами. Часть 1
    0
    Поэтому функциональности «сортировка столбца грида по щелчку на заголовок» при таком подходе нет и не будет… только выбор из списка заранее предложенных сортировок

    Странное решение.
    Вы вполне можете сортировать при щелчке по заголовку, но не по всем полям. Я, кстати, именно так и сделал.
  • Реализация грида для работы с большими таблицами. Часть 1
    0
    Самостоятельно реализовать курсор. В частном случае это не очень сложно, а в общем эта задача не имеет приемлемого решения.
    К тому же если данные приходят, например, из хранимки, то ODBC'шный курсор ничем не поможет: если это серверный курсор, то вы сожрёте всю память на сервере, а если клиентский, то на клиенте (но перед этим вы сожрёте всю всю ширину сетевого канала).
  • Реализация грида для работы с большими таблицами. Часть 1
    0
    Выдать данные начиная с N-й записи, лимитированной L'ным кол-вом строк. При этом стандартного функционала виндового ScrollBar'а мне было достаточно, и высчитывать самостоятельно индекс начала выборки мне не приходилось.
  • Реализация грида для работы с большими таблицами. Часть 1
    0
    Делал нечто подобное в реальном проекте (ушло в продакшен).
    У меня первый запрос считал кол-во результирующих записей, при скроллинге ListView заполнялся пустыми строками, и через таймаут (в районе полусекунды) отдельный поток подтягивал данные.

    Однако я не считаю хорошей идеей показывать много записей на экране: пользователю это не нужно. Ему нужно знать примерное кол-во записей результирующей выборки, а так же возможность пролистать вниз (до первого элемента), в середину (посмотреть набор записей из середины выборки), и в начало выборки. Вот эти кейсы и надо реализовывать.
  • Почему веб-приложения на мобильных платформах работают медленно
    0
    Пишу под Windows, разницу между dll и exe не вижу в упор: и там и там PE, оба могут собраться из одинаковых объектников. Основное отличие в точке входа: в случае dll это DllMain, а в случае exe это ThreadProc. Наличие/отсутствие таблиц экспорта (exe vs dll) ни на что существенно влиять не может.
    Искренне полагаю, что в случае unix'а или linux'а будет тоже самое: PE от COFF ушёл недалеко.
    Так что же там такого то, что может так смущать компилятор или линкер?
  • Почему мобильные веб-приложения такие медленные?
    0
    Изначально управление памятью будет только ручное.

    А не значит ли это, что нас ожидают дырявые браузеры?
  • Каверзные вопросы по C#
    0
    Это для вот таких случаев. Выделять здесь цикл в отдельный метод нельзя — его вызов будет некорректен в любом случае.
                try{
                    myEvent1.Reset();
                    myEvent2.WaitOne();
                   
                    for (;;){
                        for (;;){ goto labelExit;
                        }
                    labelExit:;
                    }
                }
                finally{
                    myEvent1.Set();
                }
    
  • Ошибка 53: шестой iPhone, обнаружив следы нелицензионного ремонта, превращается в кирпич
    –7
    Предыдущий свой телефон я купил примерно 8 лет назад. Думаю, что когда придёт пора покупать следующий, слово Android уже все забудут.

    Никогда не понимал это странное увлечение гаджетами: неужели деньги не на что больше тратить. Вы квартиру себе уже купили, или всё ещё с родителями живёте?
  • Skype начал скрывать IP адреса по умолчанию
    +1
    А зачем ходить по какой-то левой ссылке, тем более от малознакомого человека.
  • Microsoft заставит перейти на Windows 10 владельцев новых микропроцессоров
    0
    Например «Убойное» обновление для XP однажды выходило. Якобы программная ошибка, но чинить отказывались подозрительно долго. Обновление, как ни странно, ломало систему обновления: жрало весь процессор.
  • Графовые базы данных: святой Грааль для разработчиков?
    0
    так как поиск вершины на другом конце ребра это операция O(1), что значительно лучше чем поиск по FK.


    Поиск не по FK и не по графу, а по индексу (если он определён, конечно, для FK), т.е. по структуре данных. Индексов существует великое множество, и для всех их различная сложность поиска и обновления. Ты, говоря об FK, какой индекс имеешь ввиду?
  • Локализация WPF-приложения и мгновенная смена культуры
    +2
    Не думаю, что пользователь, у которого стоит английская локаль, вдруг захочет использовать ваше приложение на русском.


    Зато вполне может быть наоборот: пользователь, например, с русской локалью вполне может захотеть англоязычный интерфейс. Я сам так делаю, т.к. иногда не понимаю некоторых формулировок.
  • Как испечь индейку? Решение есть — квадрокоптер с огнеметом
    +1
    Когда увидел его «развлечение», то вспомнил вот об этом www.youtube.com/watch?v=SrDWzNz01_Y
  • Научиться программировать сложнее, чем кажется
    +8
    >мы ей про google glass говорили тогда.

    Google glass — это маркетинговый boolshit. Для меня всегда было очевидно, что запихать в их форм-фактор невозможно, что на серьёзные вычисления (а особенно графические) нужна парочка энергоблоков АЭС, а не маленькая батарейка, что управлять компьютером силой мысли мало кто не умеет, а других средств управления у этих стекляшек явно не достаточно, что их цена — явное указание на попытку заработать немного лёгких денег, а не захватить рынок.

    Какая там нафиг «дополнительная реальность»?! Там тупо негде разместить электронику!
    У меня в те годы в компе стояла не далеко не самая дорогая и не самая крутая видеокарта, так для её установки пришлось изуродовать старый корпус — она тупо не помещалась в него. А зимой я её как печку использовал: подставлял замёрзшие руки под горячий поток воздуха, выходящий из корпуса, с ужасом представляя её тепловую мощность. Фикус тут в том, что её производительности не хватило бы на «виртуальную реальность», а очков бы для «дополнительной реальности» не хватило бы тем более.

    Вы, господа, очень любите эти маркетинговые цацки. Очень похоже, что это происходит от того, что не отделяете зёрна от плевел, поэтому никогда не поймёте: модные фишки приходят и уходят, а таким вещам как ассемблер уже больше полувека, и они никуда не уйдут, так же C, так же как Реляционная теория, так же как Теория графов и вся дискретка вместе взятая…
  • Мастер-класс Бориса Вольфсона. Основы Agile
    0
    На первом месте стендапы. В России, даже если компания полностью зафейлила внедрение, использование и адаптацию Agile, обычно все равно остаются стендапы. Если у вас не получается их использовать, значит, у вас совсем не организованная команда. Практика простая: каждый день в определенное время команда собирается и синхронизирует свою деятельность.


    Прочитав вот это родил несколько вопросов по Agile.

    Допустим, есть 6 команд по 5 человек, которые работают над разными частями продукта.
    Это порождает вопросы:
    1) Когда и кем должны быть согласованы интерфейсы их модулей? Поясню: зело сомнительно, что собрав в одной комнате тридцать человек можно заставить их о чём-то договориться.

    2) Когда проводится интеграционное тестирование?

    3) Кто фиксит глобальные косяки продукта, выявленные на этапе интеграционного тестирования или внедрения?
    По последнему вопросу: каждая группа будет валить друг на друга, не желая рефакторить или переделывать свою часть кода. Как из этой ситуации выйти?

    Последний вопрос: когда и кем определяются задачи для групп и зоны их ответственности?
    Повторюсь: 30 и более разработчиков в одной комнате — балаган и ничего более.

    Если масштабировать этот процесс на 200 — 250 человек, то как вообще быть..?
  • SQLi по прежнему в строю
    +2
    Ныне существующие инструменты позволяют полностью обезопасится от SQL инъекций, при этом они не делают код сложнее. Поэтому за найденную уязвимость нужно просто увольнять.
  • Пирату нужно набрать 200 000 просмотров на YouTube, или ему грозит огромный штраф
    –3
    Я не рассовываю ломаный софт по файлопомойкам, и не создаю раздач на трэкерах.
  • Пирату нужно набрать 200 000 просмотров на YouTube, или ему грозит огромный штраф
    0
    Будучи студентом тулзы писал «нехорошие», тогда и появился вот такой ник.
  • Пирату нужно набрать 200 000 просмотров на YouTube, или ему грозит огромный штраф
    –7
    На счёт того, что «брат от этого квартиры лишился»

    Читай внимательнее, не надо перевирать мои слова. Я не про брата говорил.

    Написано же, что не зарабатывал — he did it for the lulz.

    Это с его слов что ли? Файлоопомойки не платят за скачивание контента?