В блоге компании ESET опубликована статистика, собранная на основе анализа данных 450 тысяч аккаунтов, недавно украденных с сайта Yahoo.com. Пользователи продолжают радовать креативностью и ответственным отношением к придумыванию сложных паролей. Безусловный лидер — «123456». Этой секретной комбинацией воспользовалось 1666 пользователей (0.38%). На втором месте с большим отрывом пароль «password», он встречается 788 раз (0.18%). Третье место занимает «welcome» с 436 беззаботными юзерами (0.1%).
Владислав @Wyrdread-only
Архитектор
MSVS Lifehacks, ч.1 — Debugger. Управление пошаговым выполнением
4 мин
3.1KМногие из нас пользуются отладчиком Visual Studio 2010, однако, я могу поспорить, что большинство не в курсе, что у него есть дополнительные недокументированные настройки облегчающие процесс отладки.
В этой статье я расскажу, как избавиться от постоянного попадания внутрь библиотечного кода при пошаговом Step-In выполнении. Это для затравки. Позже я опишу механизм управления представлением типов в отладочных окнах типа locals и watch (все видели, как красиво там отображаются вектора/карты и т.п.?).
Пожалуйста учтите, что основной упор будет сделан на отладку Native кода.
В этой статье я расскажу, как избавиться от постоянного попадания внутрь библиотечного кода при пошаговом Step-In выполнении. Это для затравки. Позже я опишу механизм управления представлением типов в отладочных окнах типа locals и watch (все видели, как красиво там отображаются вектора/карты и т.п.?).
Пожалуйста учтите, что основной упор будет сделан на отладку Native кода.
+29
Коаны о программировании
4 мин
36KОт переводчика: The Codeless Code — сборник побасенок о философии программирования. Побасенки в сборнике разные — некоторые весьма кровожадные, некоторые достаточно хардкорные с технической точки зрения (родной язык автора — Java), но встречаются очень емкие. Представляю вам перевод семи наиболее полюбившихся мне историй, остальные 30+ (новые добавляются каждую неделю) можно найти на сайте.
Три дня и три ночи мастер не появлялся из своей кельи. На четвертый день монахи отправили послушника проведать его.
Мастер был занят созерцанием диаграммы потоков данных. Послушник узнал в ней второстепенную деталь обширной системы, поддержкой которой занимались монахи. Поклонившись, послушник поинтересовался, над чем работает мастер.
Мастер ответил: «Здесь есть изъян, и я размышляю, как лучше его исправить.»
Пустяк
Три дня и три ночи мастер не появлялся из своей кельи. На четвертый день монахи отправили послушника проведать его.
Мастер был занят созерцанием диаграммы потоков данных. Послушник узнал в ней второстепенную деталь обширной системы, поддержкой которой занимались монахи. Поклонившись, послушник поинтересовался, над чем работает мастер.
Мастер ответил: «Здесь есть изъян, и я размышляю, как лучше его исправить.»
+227
Как убрать КАПС из меню Visual Studio 2012 RC
1 мин
12KНедавно была выпущена Visual Studio 2012 RC, в которой, наравне с многочисленными изменениями интерфейса, было представлено главное меню с элементами набранными капсом. Не всем это пришлось по душе (хотя, лично мне нравится, тут можно почитать где и когда применим капс). Ниже представлен способ приведения меню в старое состояние
Для возврата старого меню внесите следующие изменения в реестр Windows:
HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\General\SuppressUppercaseConversion
REG_DWORD value: 1
Скачать новую версию Visual Studio 2012 RC можно по специальному короткому адресу vs11.ru. Приятной разработки!
Для возврата старого меню внесите следующие изменения в реестр Windows:
HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\General\SuppressUppercaseConversion
REG_DWORD value: 1
Скачать новую версию Visual Studio 2012 RC можно по специальному короткому адресу vs11.ru. Приятной разработки!
+41
Вынужденный обход парольной защиты модуля VBA в Excel 2010
2 мин
21KЗдравствуйте, друзья!
Последние дни бился над такой задачей:
Имеется файл .xls, в нем макрос на VBA, защищенный паролем. Файл создается путем экспортирования из программы ГрандСмета и содержит в себе смету, которая должна обрабатываться макросом.
На 32х разрядных версиях — отрабатывает без проблем.
На 64х столкнулся со следующей ошибкой:
Справка Microsoft дает однозначный ответ:
Связывался с Тех.Поддержкой, объяснял причину. Ответ был один:
Тогда я решился самостоятельно править код макроса. Сложность, с которой столкнулся — модуль защищен паролем. О том, как сбросить/изменить пароль не используя специализированное ПО для взлома пароля
Последние дни бился над такой задачей:
Имеется файл .xls, в нем макрос на VBA, защищенный паролем. Файл создается путем экспортирования из программы ГрандСмета и содержит в себе смету, которая должна обрабатываться макросом.
На 32х разрядных версиях — отрабатывает без проблем.
На 64х столкнулся со следующей ошибкой:
Справка Microsoft дает однозначный ответ:
Связывался с Тех.Поддержкой, объяснял причину. Ответ был один:
У нас все работает. Проверяли на 64х разрядных версиях.
Тогда я решился самостоятельно править код макроса. Сложность, с которой столкнулся — модуль защищен паролем. О том, как сбросить/изменить пароль не используя специализированное ПО для взлома пароля
+54
Делиться не всегда полезно: оптимизируем работу с кэш-памятью
7 мин
39K Делиться с ближним своим для нас, божьих тварей, это очень характерно, считается добродетелью, и вообще, как утверждает первоисточник, положительно отражается на карме. Однако в мире, созданном архитекторами микропроцессоров, такое поведение не всегда приводит к хорошим результатам, особенно если это касается разделения памяти между потоками.
Мы все «немного читали» об оптимизации работы с памятью, и у нас отложилось, что полезно, когда «кэш остается горячим», то есть данные, к которым часто обращаются потоки, должны быть компактными и находиться в ближайшем к процессорному ядру кэше. Все так, но когда дело доходит до того, чтобы делиться доступом, потоки становятся злейшими врагами [производительности], а кэш не просто горячий, он аж «горит адским огнем» – такая во круг него разворачивается борьба.
Ниже мы рассмотрим простой, но показательный случай возникновения проблем производительности многопоточных программ, а потом я дам несколько общих рекомендаций, как избежать проблемы потери эффективности вычислений из-за разделения кэша между потоками.
Мы все «немного читали» об оптимизации работы с памятью, и у нас отложилось, что полезно, когда «кэш остается горячим», то есть данные, к которым часто обращаются потоки, должны быть компактными и находиться в ближайшем к процессорному ядру кэше. Все так, но когда дело доходит до того, чтобы делиться доступом, потоки становятся злейшими врагами [производительности], а кэш не просто горячий, он аж «горит адским огнем» – такая во круг него разворачивается борьба.
Ниже мы рассмотрим простой, но показательный случай возникновения проблем производительности многопоточных программ, а потом я дам несколько общих рекомендаций, как избежать проблемы потери эффективности вычислений из-за разделения кэша между потоками.
+64
LINQ to Objects на языке C++
4 мин
16KВсё началось с того, что я в институте и после его окончания писал код на C++ и не знал бед. Но тут в один прекрасный день пришлось писать код под .NET на C#. Сперва немного поплевался, но потом ничего — втянулся. Увидел выгодные отличия от C++: безопасность, строгость и т.д. Также не смог обойти стороной LINQ при работе с коллекциями…
+74
Любителям музыки посвящается, или делаем интернет-радио «по-взрослому»
10 мин
7.9KПриветствую хабрапользователей!
Эта интереснейшая история о том, в чем правовые отличия работы в России Гугла и Яндекса, как можно практически в одиночку делать коммерческий продукт, при этом совершенно не зная Unix-системы, и даже, в общем-то, плохо понимая работу Windows, но очень любя музыку, и как не разориться на рекламе в интернете. Также мы развеем несколько известных мифов по поводу создания и работы своей радиостанции)
Под катом — семь кругов ада и все мои мытарства в мире прекрасного (музыки, разумеется) со всеми подробностями и некоторым количеством фотографий.
Эта интереснейшая история о том, в чем правовые отличия работы в России Гугла и Яндекса, как можно практически в одиночку делать коммерческий продукт, при этом совершенно не зная Unix-системы, и даже, в общем-то, плохо понимая работу Windows, но очень любя музыку, и как не разориться на рекламе в интернете. Также мы развеем несколько известных мифов по поводу создания и работы своей радиостанции)
Под катом — семь кругов ада и все мои мытарства в мире прекрасного (музыки, разумеется) со всеми подробностями и некоторым количеством фотографий.
+49
Почему проекты в IT занимают в 2-3 раза дольше, чем планируется?
3 мин
24KПеревод
Мы с другом решаем пойти в поход от Сан Франциско до Лос Аджелеса, чтобы заскочить в гости к нашим друзьям на Ньюпорт Бич. Посмотрим на карту и примерно прикинем путь по берегу:
Путь займёт около 400 миль, в день мы можем пройти 4 мили в час по десять часов, так что придём мы туда примерно через 10 дней. Мы звоним друзьям и бронируем столик на 6 вечера в воскресенье.
Путь займёт около 400 миль, в день мы можем пройти 4 мили в час по десять часов, так что придём мы туда примерно через 10 дней. Мы звоним друзьям и бронируем столик на 6 вечера в воскресенье.
+246
Взлом с продолжением
4 мин
44KОдно время я работал на free-lance.ru. С утра я обычно мониторил заказы, а после обеда непосредственно работал. Однажды я наткнулся на заказ, сумма за выполнение которого была очень аппетитной. Я сразу отписался по заказу, и буквально через минуту получил ТЗ на проект в личку. Поначалу меня удивила скорость ответа, и то что меня сразу выбрали исполнителем, но с другой стороны такое уже частенько бывало. Файл с ТЗ мне показался странным, в него была встроена ссылка на flash ролик. Проверив файл на вирусы и получив ответ, что угроз не обнаружено, я таки усыпил свою бдительность и щелкнул по ссылке на flash ролик. А щелкать не стоило.
+274
Молодым программистам на заметку: Как правильно писать «Помоги»
3 мин
9.1KТуториал
За те 9 лет, что я занимаюсь программированием, в мою асю пришло несколько сотен просьб о помощи, от менее опытных, начинающих программистов. И вот, когда сегодня, в очередной раз, незнакомый человек попросил помочь ему написать плагин для вордпресс (код которого, честно говоря, я в глаза ни разу не видел), я решил написать небольшой гайд, который бы помог начинающим программистам правильно обращаться за советом к более опытным.
+186
Прокрастинация разрушила мою жизнь!
2 мин
21KПеревод
Топик с Hacker News, под которым мог бы подписаться я и куча людей с Хабра. Сегодня я публикую перевод только вопроса, давайте попробуем посоветовать этому парню, да и всем остальным бедолагам, как найти свет в конце туннеля. Завтра опубликую интересные ответы людей с Hacker News.
Я сижу на Хабре (в оригинале — Хакерньюс) уже около двух лет. Я создал этот топик, так как не знаю, что ещё можно попробовать для решения моей проблемы, а также потому, что здесь сидит куча умных людей.
Мне скоро 30, и я чувствую, что попал в тупик. У меня было много проблем и, к счастью, большинство из них я решил с помощью очень хорошего школьного психолога. Я никогда не ходил в колледж, несколько лет провёл прыгая с одной унылой работы на другую. Сейчас занимаюсь продажами.
Я сам научился программировать на старом Commodore Amiga. С тех пор я изучил много различных языков на нескольких платформах. За эти годы я начал бесчисленное множество проектов — больше, чем могу вспомнить. Проблема в том, что я не закончил ни одного из них. Я либо тратил несколько недель или месяцев на рефакторинг и переписывание кода или, что происходило более часто, закончив писать код, я опускал руки, вместо того, чтобы приступить к дизайну, документированию и отладке. То же самое творится и в других областях моей жизни. Самоделки, планы путешествий, образование, карьера… Всё это запускается, но ничего из этого не завершено.
Я сижу на Хабре (в оригинале — Хакерньюс) уже около двух лет. Я создал этот топик, так как не знаю, что ещё можно попробовать для решения моей проблемы, а также потому, что здесь сидит куча умных людей.
Мне скоро 30, и я чувствую, что попал в тупик. У меня было много проблем и, к счастью, большинство из них я решил с помощью очень хорошего школьного психолога. Я никогда не ходил в колледж, несколько лет провёл прыгая с одной унылой работы на другую. Сейчас занимаюсь продажами.
Я сам научился программировать на старом Commodore Amiga. С тех пор я изучил много различных языков на нескольких платформах. За эти годы я начал бесчисленное множество проектов — больше, чем могу вспомнить. Проблема в том, что я не закончил ни одного из них. Я либо тратил несколько недель или месяцев на рефакторинг и переписывание кода или, что происходило более часто, закончив писать код, я опускал руки, вместо того, чтобы приступить к дизайну, документированию и отладке. То же самое творится и в других областях моей жизни. Самоделки, планы путешествий, образование, карьера… Всё это запускается, но ничего из этого не завершено.
+75
Собрать проект Visual Studio в один файл с помощью ILMerge
3 мин
106KОбычно результатом компиляции проекта является сборка (assembly) проекта, а также его зависимости (Referenced Assemblies). Однако иногда нужно чтобы результатом был один файл единственный файл, независимый от других сборок. Например простая утилита, которую можно будет куда угодно скопировать и она будет работать.
Условно говоря после:
На Хабре уже присутствует решение со встраиванием зависимостей в ресурсы, здесь я покажу как это сделать с помощью ILMerge и Post Build Event в Visual Studio.
Пример
Условно говоря после:
compile App\App.csproj dir App\bin\ReleaseПолучаются:
App.exe dep1.dll dep2.dllНам же нужно лишь один самодостаточный
App.exeТо есть содержащий в себе
dep1.dll
и dep2.dll
На Хабре уже присутствует решение со встраиванием зависимостей в ресурсы, здесь я покажу как это сделать с помощью ILMerge и Post Build Event в Visual Studio.
+39
Регулярные выражения для валидации распространенных видов данных
2 мин
493KДля проверки текстовых полей на валидность обычно используют регулярные выражения. Существует несколько наиболе распространенных видов таких даных, как например номер кредитки, дата в определенном формате и т. д. На сайте html5pattern.com собирается коллекция регулярных выражений для таких данных (там это позиционируется, как возможное содержимое html5-атрибута pattern у inpit-элементов, но эти регулярные выражения можно использовать и для привычной валидации с помощью javascript). Актуальные для российской аудитории примеры, вместе с соответствующими регулярными выражениями вы можете посмотреть под катом.
+61
Работа с Microsoft Kinect в приложениях на C++
58 мин
19KВведение
Совсем недавно Microsoft выпустили beta-версию инструментария для работы с Kinect – Microsoft Research Kinect SDK. В инструментарии доступны заголовочные файлы, библиотека, а также примеры использования в приложениях на C++. Но наличие самого SDK не решает проблему с отсутствием доходчивых примеров и документации. Заметно, что Microsoft больше ориентируется на .NET разработчиков, поэтому, например, на официальном форуме подавляющее большинство топиков связаны с C#, а гуглопоиск при попытке найти какое-либо описание API для Kinect выдает всего несколько ссылок, и те — на официальную документацию.
В этой статье рассматриваются варианты использования Microsoft Kinect, а также упомянутого выше программного инструментария в C++ приложениях и в связке с библиотекой wxWidgets.
+50
CUDA: аспекты производительности при решении типичных задач
7 мин
28KПеред тем как начать переносить реализацию вычислительного алгоритма на видеокарту стоит задуматься — получим ли мы желаемый прирост производительности или только потеряем время. И несмотря на обещания производителей о сотнях GFLOPS, у современного поколения карт есть свои проблемы, о которых лучше знать заранее. Я не буду глубоко уходить в теорию и рассмотрю несколько существенных практических моментов и сформулирую некоторые полезные выводы.
+82
Правило чтения по спирали
6 мин
15KПеревод
Техника, известная как «Чтение по спирали/по часовой стрелке» (“Clockwise/Spiral Rule”) позволяет любому программисту разобрать любое объявление языка Си.
Следуйте этим простым шагам:
Следуйте этим простым шагам:
+119
Визуализация графов. Метод связывания ребер
7 мин
58KИногда полезно представить граф в графической форме, так чтобы была видна структура. Можно привести десятки примеров, где это может пригодиться: визуализация иерархии классов и пакетов исходного кода какой-нибудь программы, визуализация социального графа (тот же Twitter или Facebook) или графа цитирования (какие публикации на кого ссылаются) и т.д. Но вот незадача: количество ребер в графе зачастую настолько велико, что нарисованный граф просто невозможно разобрать. Взгляните на эту картинку:
Это граф зависимостей некой программной системы. Он представляет собой дерево разбиения на пакеты (серые шарики — пакеты, белые — классы), на которое поверх наложены ребра зависимости одних классов от других. Чтобы не рисовать стрелки направления, ребра нарисованы в виде градиентных линий, где зеленый — это начало, а красный — конец ребра. Как видите, граф настолько визуально перегружен, что архитектуру программы невозможно проследить.
Под катом описание метода, решающего эту проблему.
Это граф зависимостей некой программной системы. Он представляет собой дерево разбиения на пакеты (серые шарики — пакеты, белые — классы), на которое поверх наложены ребра зависимости одних классов от других. Чтобы не рисовать стрелки направления, ребра нарисованы в виде градиентных линий, где зеленый — это начало, а красный — конец ребра. Как видите, граф настолько визуально перегружен, что архитектуру программы невозможно проследить.
Под катом описание метода, решающего эту проблему.
+196
Первые шаги для пауэршельшиков
Простой
12 мин
449KТуториал
Привет всем из 2023 года!
Я написал эту статью 12 лет назад. И внезапно — это — моя самая популярная статья. Я так же удивился что люди до сих пор заходят сюда и читают эту статью. Поэтому я решил её обновить. И после прочтения понял, что обновлять ничего не буду.
Да, powershell обновился за последние годы. Теперь он стал Powershell Core, и его можно запускать как на Windows, так и на Linux и MacOS. В скриптах появилось много плюшек, но основная идея осталась той же.
Если вы только начинаете писать на Powershell эта статья для вас. Вам будут даны основные понятия, которые относятся к Powershell в 2023 году, и которые позволят вам погрузиться в эту оболочку с головой.
Приди ко мне брате в Консоль!
— Админ Долгорукий.
Много ярлыков улетело в корзину со времён выхода в свет 2008 Windows. Люди попроще дивились новому синему окошку, которое ребята из Майкрософт зачем-то вставили в свои новые продукты. Люди, которые сидят на блогах и знают программирование начали изучать это окошко.
В итоге к народу начало приходить осознание того, что Майкрософт действительно разработали что-то новое и интересное.
И так, зачем вам это нужно? В основном, программа под названием PowerShell (в дальнейшем PS) предназначена для администраторов и программистов. Она позволяет автоматизировать примерно 99% всех действий в системе. С помощью неё вы можете настраивать удалённые компьютеры, запускать и перезапускать сервисы и производить обслуживание большиства серверных приложений. Как выяснилось, возможности у программы потрясающие.
Конечно же, продвинутые пользователи найдут множество способов использования этого восхитительного синего окошка.
Задача этой статьи проста — показать вам малую долю возможностей PS и дать вам концептуальное понимание предмета. В действительности документации по предмету написано несметное количество, так что я не стремлюсь охватить всё. Я так же ознакомлю вас с набором утилит, которые позволят не вылезать из PS в принципе.
+183
Алгоритм Мамдани в системах нечеткого вывода
10 мин
116KВведение
Так уж повелось, что любую статью о нечеткой логике принято начинать с упоминания имени Лотфи Заде. И я не стану исключением. Дело в том, что этот человек стал не только отцом-основателем целой научной теории, написав в 1965 году фундаментальный труд «Fuzzy Sets», но и проработал различные возможности ее практического применения. Он описал свой подход в 1973 году в тексте «Outline of a New Approach to the Analysis of Complex Systems and Decision Processes» (опубликованном в журнале IEEE Transactions on Systems). Примечательно, что сразу после его выхода одна предприимчивая датская фирма весьма успешно применила изложенные в нем принципы для усовершенствования своей системы управления сложным производственным процессом.
Но при всех заслугах Л. Заде, не менее важный вклад внесли последователи этой теории. Например, английский математик Э. Мамдани (Ebrahim Mamdani). В 1975 году он разработал алгоритм, который был предложен в качестве метода для управления паровым двигателем. Предложенный им алгоритм, основанный на нечетком логическом выводе, позволил избежать чрезмерно большого объема вычислений и был по достоинству оценен специалистами. Этот алгоритм в настоящее время получил наибольшее практическое применение в задачах нечеткого моделирования.
+51
Информация
- В рейтинге
- Не участвует
- Откуда
- London, England - London, Великобритания
- Дата рождения
- Зарегистрирован
- Активность