• C, C++ и DotNet decompile — основы реверса. Решение задач на реверсинг с r0от-мi. Часть 1
    0
    Ну и зачем? Ребята из root-me старались, подготавливали материал, а вы делаете «решебник». Смысл то в том что бы побудить людей к исследованию и изучению чего-то нового, а вы убиваете всю интригу.
  • 14 советов по написанию чистого React-кода. Часть 1
    0
    let result
    if (variant === 'h1') result = styles.h1
    else if (variant === 'h2') result = styles.h2
    else if (variant === 'h3') result = styles.h3
    else if (variant === 'h4') result = styles.h4
    else if (variant === 'h5') result = styles.h5
    else if (variant === 'h6') result = styles.h6
    else if (variant === 'title') result = styles.title
    else if (variant === 'subheading') result = styles.subheading

    O_o не делайте так никогда, это пример плохого кода. Используйте switch в подобных конструкциях.

    
    const getStyles = variant => {
      switch (variant) {
        case 'h1':
          return styles.h1
        case 'h2':
          return styles.h2
        default:
          return styles.default
       }
    }
    

    const getStyles = variant => (variant in styles ? styles[variant] : null)


    После подобного и ../../../../../../../../../../, невозможно воспринимать статью всерьёз. Webpack alias, автору для справки.
  • Всегда ли Node.js будет медленнее, чем Golang?
    0
    Делать было нечего дело было вечером. Решил протестировать простые сервера на node.js и golang через ab и JMeter — github.com/Garik-/http-benchmark

    Библиотека µWebSockets.js ab не смог протестировать её, а JMeter показал результаты хуже чем обычный встроенный http на node.js.
    Вы можете склонировать репозиторий и повторить тесты самостоятельно, пишите в issue пожелания и свои результаты.
  • Работа с ЖК индикатором на отладочной плате STM32L-Discovery
    0
    Продублировал на GitHub
  • Парсим мемы в питоне: как обойти серверную блокировку
    0
    Для меня основной критерий — скорость обработки запроса, как у python обстоят дела со скоростью сетевых запросов? Использует ли он неблокирующие сокеты или какие другие механихзмы? Есть ли смысл смотреть в сторону python если мне допустим необходимо обойти 3 000 000 сайтов?
  • Пишем программу для кражи данных с USB-носителя в Windows
    –1
    Писал подобное на winAPI в далеком 2010 году, программа была установлена в компьютерной аудитории и использовалась лаборантами для коллекционирования курсовых, дипломов и недописанных статей, книг преподователей, которые использовали этот компьютер для показа презентаций.

    К сожалению исходников я не нашел (винт приказал долго жить), остались лишь воспоминания в блоге
    Программа висит в памяти и с интервалом в минуту проходится по всем логическим дискам, если это флешка запрашивается ее серийный номер — программа сравнивает записи в реестре о последнем копировании с данной флешки и если прошло больше суток запускается рекурсивная функция копирования. Копирование производится на доступный для записи диск с условием, что на диске достаточно свободного места.
  • «То, чего на белом свете вообще не может быть…»
    0
    Я уж подумал, что кто-то мою статью из блога опубликованную в 2011 «стянул», но нет :)
  • Транзисторный усилитель класса А своими руками
    +2
    Не могли бы вы выложить схему усилителя со всеми вашими советами, про цепь Цобеля, предохранителями и т.д.?

    Какие диоды ставились в мосты (характеристики)? Зачем использовался серебряный припой?
    C3 нужно присоединять к сигнальной земле, т.е. к минусу входа-входа, а все остальные минуса можно отправить на «звезду» возле конденсаторов фильтра.
    — это как и куда? Какие вы использовали разъемы для подключения колонок и входного сигнала?
  • Комментарий из публикации, перенесённой в черновики.
  • Платные подписки и платные контент-услуги сотовых операторов
    0
    Использую интернет модем от этого оператора.

    Несколько дней назад понадобилось скачать схему кассетника ИЖ 303с 1987 года выпуска, в гугле на первых строчках вылез файлообменный сайт. На странице красуется одна кнопка скачать — нажал, редиректы, редиректы — закрыл сразу… приходит СМС — вы подписаны бла бла 20 рублей в день… зашел в кабинет отписался.

    Это ладно я знаю что пахнет не ладным и начал сразу все проверять, а обычные пользователи, которым надо скачать реферат письмо татьяны…

    так что тебе повезло.
  • STM32L-DISCOVERY + FDD
    +4
    Interfacing A Floppy Drive — здесь расписан псевдокод операций чтения и записи
  • C++ и копирование перекрывающихся областей памяти
    0
    просто второй буфер

    Какого размера? Ведь размер получаемых данных заранее не известен (исходя из условия задачи).

    По поводу буферизации чтения записи, это тема отдельного разговора (http://msdn.microsoft.com/en-us/library/windows/desktop/cc644950(v=vs.85).aspx), особенно если дело касается асинхронности.
  • C++ и копирование перекрывающихся областей памяти
    0
    Не знаю специфики задачи, но если есть «бесконечный» буфер, когда не известен размер получаемых/обрабатываемых данных использую временные файлы (temporary file). В системе Windows временный файл, это по сути тот-же MMF, но если его размер превышает размер виртуального адресного пространства, он скидывается на диск. Про *nix не знаю.

    Алгоритм получается такой: получили в буфер пакет, нашли сигнатуру начала и его длину, создали временный файл, записали туда данные, получили в буфер следующий пакет, во временный скинули данные. Пакет закончился, переместили курсор на начала файла, размер нам известен — анализируем. Ну и так как временный файл = память (для ОС Windows) — все работает быстро.
  • C++ и копирование перекрывающихся областей памяти
    +2
    ИМХО для задачи с MPEG использовал бы MMF (memory mapped files), искал бы нужную сигнатуру начала блока в памяти, далее копирование в выделенный или подготовленный буфер, нужного участка, обработка.
    Как то не оптимально сначала копировать, потом искать что нужно было скопировать… Ну это я придираюсь, статья то не об этом.
  • Самый короткий веб-сервер на с++
    0
    Перечитай, «разбираться» != «слепо заучивать»
  • Самый короткий веб-сервер на с++
    +2
    Прочел комментарии, сделал вывод: С++ разработчики более солидарны, чем PHP разработчики.
    Запостил библиотеку для работы с HTTP протоколом, по всем ООП PHP канонам, написанную «just for fun», комментарии: велосипед, есть куча аналогов, чем твой код лучше, «Вроде и все правильно, но есть ощущение хардкода» и т.д. Пост в минусах.

    А у вас, каждый советует, как сделать лучше, ну несколько только уперлись в boost::asio.
    Как по мне. лучше если ты сам знаешь различия, разбираешься в механизмах асинхронного ввода-вывода (epoll, IOCP), чем слепо заучиваешь функциональность готовых библиотек.

    Товарищи, учитесь, развивайтесь, пробуйте и пишите красивые велосипеды!
  • Работа с ЖК индикатором на отладочной плате STM32L-Discovery
    0
  • Текстовый интерфейс, ч.2. Взаимодействие с пользователем
    +2
    ИМХО все это развлечения. Ну захочется тебе написать программу и вместо реализации 80% времени ты затратишь на игры с интерфейсом, а спустя 2 дня «навороченная» программа будет и не нужна вовсе. Мне тем и нравится консольные программы — передал параметры, получил результат, интерфейс я делаю после и только в случае острой необходимости (например, если она предназначена для обывателя, который не разберется с терминалом).
  • Что значит быть junior-разработчиком
    0
    После 4-5 лет работы веб-программистом (скриптовые языки PHP, JS), переключился на прикладное и системное программирование (Си), уволился и нашел интересный проект, клиент серверного приложения. Та же тяга к знаниям азарт интересные задачи :)

    Теперь вот снова занимаюсь веб, но параллельно изучил и реализовал несколько проектов на JAVA под Android, в данный момент изучаю электронику, простые схемы, AVR и PIC микроконтроллеры (благо с ассемблером знаком давно и не по наслышке) есть идеи замутить «умный дом».

    Главное не тормозить и когда «надоело», менять направление своих интересов, помогает для общего развития и расширяет кругозор.
  • Что значит быть junior-разработчиком
    0
    На первом курсе на экзамене по программированию (Pascal, куда без него, лекции я не записывал просто приносил выполненные лабораторные) было 2 теоретических вопроса и одна задача. Из-за того что я больно «умный», на экзамене отвечал 2 билета и на листочке писал листинг 5 задач в нескольких вариантах решения (пока преподу не понравится). В итоге преподаватель выдал следующее на последнюю задачу «подсчитать количество пробелов» (были представлены варианты с различными циклами while. for etc, процедурами рекурсивными) — «пробел можно было записать ASCII кодом, у Вас поверхностные знания предмета» и со злой ухмылкой влепил хор в зачетку (все предыдущие экзамены были на отл).
  • Что значит быть junior-разработчиком
    0
    «Тебе никто ничего не должен» — это жизнь, и чем раньше «студент» поймет эту истину, тем быстрей начнет самостоятельно развиваться.

    К слову начал работать «программистом» в веб-студии с 2005 и тогда мне было лет 16.
  • Что значит быть junior-разработчиком
    0
    «Погоня за идеалами вызывает депрессию и приводит к прокрастинации», хреново когда твои идеи и реализации не находят применения.
    Самый губительный вопрос для junior-а — «А зачем?»…

    В небольшом городе трудно найти задачи, особенно оплачиваемые, ведь семью нужно кормить.
  • 6 советов для создания сложных AJAX сайтов
    0
    Специально поставил тег «новичкам» и хотел еще «сложных» поставить в кавычки… Советы спорные, но лично я бы не советовал «новичкам» начинать с фреймворков. Это тоже самое что начинать учить jQuery не зная JavaScript.

    ИМХО в программировании нужно двигаться от простого к сложному. Если ты можешь написать велосипед, ты сможешь оценить + и — готового решения, которое ты собираешься применить в проекте. В противном случае мы получаем код в котором jQuery используется для вызова alert и человек не понимает что можно сделать быстрей оптимальнее и проще…

    Из мира прикладного программирования встречал я такие примеры когда программа которая показывает окошко «Hello World» тянет за собой 70 мегабайтов библиотек для её запуска (.NET), когда так же программа вписывается в один вызов MessageBox Windows API и занимает в скомпилированном виде 1,3 Кб не теряя функциональности во всех версиях ОС.

  • Публичные свойства, геттеры и сеттеры или магические методы?
    0
    Не хочу переходить, на личности, но зачем спорить? За плечами 8 лет ежедневного кодинга на PHP, сейчас мне этот язык нравится все меньше, в больших проектах «магия» и отсутствие типов иногда влечет за собой печальные последствия (в одном месте возвращает метод boolean в другом void и прочее)… «Мы уверены» — да ты можешь быть уверен, что ТВОЙ код не поменяется. Но если ты работаешь не один над проектом, который постоянно развивается, нельзя быть в чем-то уверенным. Это с родни преждевременной оптимизации, когда ты пишешь код основываясь на фичах текущей версии языка забывая о том, что язык изменяется — меняя свое поведение. Тем самым у тебя получается нечитаемый говнокод, который оптимально работает только с одной версией PHP.

    Пример из жизни «напиши опрос — ну там ставишь один вариант ответа и голосуешь» -> «ну нам бы хотелось что бы было несколько опросов сразу» -> «ну да, но кроме radio должен быть еще выбор нескольких вариантов ответов» -> «а добавьте так что если выбрали один вариант, появляются другие зависимые от него»… Между -> может пройти и месяц и год и неделя… Код изначально нужно проектировать так что бы его можно было легко модифицировать.

    Вариант с магией и огромным switch — плохая практика, во первых он разрастется со временем до такой степени, что понять его через 2 месяца не представится возможным, а заказчику нужно добавить фичу еще вчера…
  • Публичные свойства, геттеры и сеттеры или магические методы?
    +2
    Не нужно забывать о возможных изменениях кода. Допустим $a->bar у нас был когда-то int и мы делали так
    $a->bar = 1;
    switch($a->bar) { case 1: ...
    

    Со временем мы пришли к выводу, что нам нужно изменить int на array $a->bar = array(); и теперь по ВСЕМУ коду, который в своей работе использует класс $a, необходимо вносить изменения.

    Если бы мы использовали get/set то изменения коснулись бы только этих методов класса
    // было
    public function setBar($value) {
       $this->bar = (int) $value;
    }
    
    // стало
    public function setBar($value) {
       $this->bar[] = $value;
    }
    
  • Как ответить запросом на запрос, или Базы данных не для чайников
    +2
    Красота, а что делать программистам из небольших городов, недавно закончивших университет по профессии, из которого вынесли ноль на палочке. Которые хотят учится и развиваться, при этом оставаясь жить в своём родном городе?

    Лично для себя, ради закрепления знаний, думаю получить сертификаты по MySQL и PHP, НО кроме меня эти сертификаты никому не нужны. «Погоня за идеалами вызывает депрессию и приводит к прокрастинации...» вот и получается, что бы жить счастливо нужно занижать свою планку ожиданий от профессии.

    P.S: Стаж веб-программиста 8 лет, пойду дальше двигать баннеры :(
  • Молодая поросль, или Найдите мне компьютерный кружок
    0
    Давным давно, родители запихнули меня в летний лагерь от «Центра Детского и Юношеского Творчества».
    Так вот там были кружки программирования и компьютерного дизайна, и это начале 2000-x. Преподавали нам Pascal, прям как на первом курсе института :)

    Надеюсь что в Уфе есть подобные центры.
  • Для кибердружинников создана своя социальная сеть
    0
    Как я понимаю, что бы быть успешным дружинником, нужно активно просматривать кучу порносайтов в поисках детского порно? Это кем надо быть что бы в свое свободное время рыскать по сети с запросом «школьники бесплатно скачать»? xD
  • Джефф Дин из компании Google — это Чак Норрис нашего времени
    +12
    В свое время со мной в одной группе учился человек по имени Рифат и ник у него был соответствующий RiFAT, что напомнило мне файловую систему FAT32 и понеслись шуточки вроде «на первом курсе Рифата звали РиФАТ16».

    рифат32 передвигает курсор мыши взглядом
    Рифат32 может словами объяснить компилятору то, что он от него хочет
    Рифат32 может голосом воспроизводить 8 битную музыку.
    рифат32 не общается с людьми он давно написал бота совершеннее человека.
    Рифат32 может двигать мышкой за экраном монитора
    Говорят Чак Норрис — первый и единственный неудачный опыт Рифата32 в генной инженерии
    Рифат32 чтобы посмотреть фильмы на ДВД просто проводит по диску пальцем. Просмотр обычно занимает не более трех секунд.
    Рифат32 убивает кликом мышки по аватрке
    Рифат32 настолько крут, что может кликнуть по твоей аватарке, даже находясь на службе в армии!
    Рифат32 может заставить работать Windows95 без сбоев.
  • Google выпустила парсер HTML5 на чистом Си
    –4
    Грядет новая волна поделий начинающих «какеров».
    Ждем высокоскоростные чекеры, кликеры, спаммеры и т.п. :)
  • Как узнать, что ваш PHP сайт был взломан
    +1
    Давно существуют различные системы IDS (Intrusion Detection System) и IPS (Intrusion Prevention System), идея автоматически проводить мониторинг ресурсов не нова. Хотя вряд ли, данная тема, касается веб-разработчиков. Это скорей уже обязанности сис админа, грамотно настроить сервер.

    ИХМО: мне кажется невозможно быть одновременно крутым админом, знающим все плюшки различных конфигураций и крутым веб-разработчиком, знающим различные методы атак на веб приложения и умеющим писать код без дыр. В свое время пытался освоить и одно и другое, но чашу весов перевесило программирование, проще написать надежное приложение, чем мучиться с настройками сервера (ведь это задача хостера, за то мы ему и платим).

    Конечно, личные меры безопасности никто не отменял — не пересылать пароли в открытом виде по IM или почте, не хранить пароли в открытом виде, не сохранять пароли в FTP менеджерах, обозревателях и прочих Total Сommander-ах, не пускать вирусняк на свой рабочий комп (юзать unix и ставить открытое ПО из исходников), использовать TrueCrypt и Git для бекапа данных (у меня крипто-контейнер с проектами лежит в Dropbox, а там репозитории). В общем паранойя по полной и будет счастье :)
  • Как узнать, что ваш PHP сайт был взломан
    +3
    Какая разница нашел он начинающих или профессионалов, если есть проблемы, которые надо решать.
  • Как узнать, что ваш PHP сайт был взломан
    –3
    Это всего лишь примеры, неужели вы думаете, что можно описать все возможные варианты?
    Это как писать книгу о языке программирования и прикладывать к ней архив всех open source проектов доступных в сети.
  • Как узнать, что ваш PHP сайт был взломан
    +1
    Извольте, сударь, скрипт киддисты представляют не малую угрозу.

    На одном корпоративном хостинге, увели пароль от FTP, в итоге злоумышленники поигравшись с веб шеллаами различных мастей, решили запустить кривой скрипт вставки iframe по всему хостингу (который загружали в upload директории). В итоге этот автоматизированный скрипт «какеров» покоцал очень много файлов, в результате чего большинство сайтов на хостинге отвалилось.

    Не стоит надеяться, что лично Вас будут ломать профессионалы с «мышлением», стоит изначально применить проверенные методы, описанные в статье.
  • Как узнать, что ваш PHP сайт был взломан
    +3
    В статье описывается методика поиска, и если ты не разработчик (у тебя нет бэкапа и доступа к git репозиторию), а сторонний человек, которого попросили проверить/исправить сайт, она довольно действенна.

    InSys, что говорить о времени изменения файла, когда на «какерских» форумах обсуждают ".BAT вирусы" и «как отправить POST запрос (Delphi 7)». Говорите eval устарел, значит нужно поделиться знаниями:

    Список функций, которые вызывают callback
    array_filter
    array_map
    array_walk
    array_diff_uassoc
    array_udiff_assoc
    array_udiff_uassoc
    array_intersect_uassoc
    array_diff_ukey
    array_intersect_ukey
    array_reduce
    array_udiff
    uasort
    usort
    array_uintersect_assoc
    array_uintersect_uassoc
    array_uintersect
    array_walk_recursive

    Список функций, которые выполняют PHP код
    create_function
    eval
    assert
    {$name}()
    preg_replace(//e)

    Переменные, которые можно установить через ini_set
    unserialize_callback_func
    assert_callback
    output_handler

    Немного системных функций
    session_set_save_handler
    set_exception_handler
    set_error_handler
    restore_error_handler
    register_shutdown_function
    restore_exception_handler()
    ob_start
    trigger_error
  • Как узнать, что ваш PHP сайт был взломан
    +2
    От LFI не спасет.
  • Простой пример использования библиотеки Volley
    0
    Еще там вроде нет поддержки cookie.
  • Сравнение производительности JS-библиотек
    0
    Приятней смотреть на график, если не затруднит.
  • HttpRequest — библиотека для простой работы с HTTP протоколом
    –2
    За прогрессом трудно угнаться, особенно если проект берет свое начало в 2003 году и им пользуется ~3000 человек, на разных хостинговых площадках.
  • HttpRequest — библиотека для простой работы с HTTP протоколом
    0
    Дескриптор закрывается, когда уничтожается экземпляр класса.
    Я читал здесь статью по поводу открытых дескрипторов и заголовка keep-alive, но лично я придерживаюсь мнения, что "PHP создан, чтобы умирать".