• 0
    «Вот как выглядит то, что у нас получилось» (N6)

    А зачем вам такой вывод, как на скриншоте?
    10 приёмов работы в терминале Linux, о которых мало кто знает
  • 0
    Пользуясь случаем, хочу сказать, что Ваша среда разработки для DCPU-16 была самой лучшей и «устанавливала планку».
    Конкурс по программированию: JSDash
  • +3
    … но есть логический анализатор и осциллограф…
    Думаешь, ты знаешь Си?
  • +1
    Ничего себе «фантики». На них можно взять настоящие сервисы AWS (за очень мелким исключением).
    15 штук — это даже как-то очень много…
    Своя компания в США без головной боли
  • +2
    «Для» — вполне математично!
    JavaScript по-русски — pycckuu.js
  • +3
    «Вы также можете указать, что Ваш файл данных сжат с помощью gzip. Если Вы отметите соответствующую опцию в форме отправки решения, то содержимое файла данных будет обработано функцией zlib.gunzipSync перед тем, как попасть в функцию init. Этот вариант удобен тем, что Вам не нужно ни внедрять в код на JS двоичные данные, ни писать самостоятельно стандартный алгоритм распаковки. При этом, конечно, ограничение по размеру касается сжатых данных; после распаковки их размер вполне может превысить 64 КиБ»
    Конкурс по программированию на JS: Классификатор слов
  • +1
    Кстати, если исходить только из подобных соображений, то поступление на прикладную математику и информатику в начале 90-х было бы абсолютно идиотским решением :)
    Junior FPGA Design Engineer: как стать?
  • 0
    Мечте надо следовать.

    Начинающему можно советовать книгу The Elements of Computing Systems: Building a Modern Computer from First Principles (неформальное название From NAND to Tetris) и соответствующий курс на Курсере: Build a Modern Computer from First Principles.

    Там упрощенный (но настоящий) HDL, собственный hardware simulator на Java, средства прогона тестов и так далее. Начинаете с создания базовой логики, сумматоров-мультиплексоров, потом делаете арифметически-логическое устройство, память, в общем, получается настоящий процессор — для которого вы потом пишете ассемблер и так далее.

    Курс клевый, книга легко читается новичком. Курс пока меньше, чем книга — они его только делают.

    Если понравилось, покупаете дешевую FPGA-платку для начинающих типа Papilio Pro с Logic Wing, скачиваете официально бесплатный Xilinx ISE WebPack, и начинаете реализовывать то, что делали в предыдущем курсе, на нем (книга Intro to Spartan FPGA в помощь; правда, там используется предыдущая плата, но поменять нужно будет только некоторые значения). Про Марсоход тоже нельзя не упомянуть.

    Ну а потом уже можно MIPSfpga вместе с упомянутой выше книгой Дэвида и Сары Харрис; сам проект неоднократно упоминался на Хабре.

    И все получится.
    Junior FPGA Design Engineer: как стать?
  • 0
    Что же это такое у меня в Убунту стоит, не dtrace4linux ли?
    Кстати, SystemTap не упомянут. И /proc.
    Более чем 80 средств мониторинга системы Linux
  • +3
    Ты посмеялся над идеей, потом признался, что идею не понял. Прекрасный минус, обоснованный.
    Хеди Ламарр. И в кино обнаженной сняться, и во врага торпедой пульнуть
  • 0
    Приятная ссылка, спасибо!

    (по теме: я бы все-таки поставил в статье ссылку на Hamming Weight)
    Обстоятельно о подсчёте единичных битов
  • 0
    Спасибо! Круто. Я думал, это потом, за бокалом пива придумали маркетологи (хотя какие тогда могли быть маркетологи?)
    Как мы сделали ABBYY FineReader, или история, произошедшая 20 лет назад
  • 0
    Скажите, а кто и как придумал слово «фонтанное преобразование»? Я уже значительно позже понял, что это от слова «фонт» — но в 90-х в КомпьютерПресс это читалось не хуже «фрактального сжатия».
    Как мы сделали ABBYY FineReader, или история, произошедшая 20 лет назад
  • +4
    Беллар в 17 лет увидел японскую реализацию алгоритма LZSS и написал LZEXE, которая стала очень популярной в мире (кстати, тоже публиковалась в Софтпанораме).

    Затем И.Тараненко путем анализа UNLZEXE.C (того самого, by Куризоно, тоже японец) еще раз написал на Си упаковку (информации было мало, приходилось учиться именно так..).

    Скрытый текст
    Представляемая процедура SQUEEZE предназначена для упаковки
    данных. Она была построена на основе анализа пакета упаковки EXE —
    файлов LZEXE, в составе которого находился исходный модуль распаков-
    ки (UNLZEXE), написанный на Си. Поэтому процедура SQUEEZE фактически
    действует по принципу упаковщика LZEXE // Тараненко Игорь 11/03/1991

    … а вскоре Ю.Красильников ее ускорил и сделал версию для упаковки COM-файлов, молча использовав в ней куски из распаковщика LZEXE (откройте в дизассемблере LZEXE и сравните, он ведь упакован «сам собой»).

    … сигнатуры были на месте. Мое предположение – это было сделано вручную для маскировки следов использования компрессора. Зачем было это делать при создании маленького трейнера для сейвов – отдельная загадка.

    Это была защита от детей — чтобы другой ребенок не мог взять hex-редактор и поставить свой копирайт. Ну а поскольку эти «патчилки трех байтов» тоже часто писали дети, им проще было взять PKLITE/LZEXE и убрать сигнатуру, чтобы стандартный анпакер перестал работать.
    Сказ о компрессоре, который можно называть, но не помню, как
  • 0
    Спасибо за библиотеку. А можете что-нибудь сказать, насколько большие ресурсы будут вкладываться в развитие библиотеки в будущем? Наличие globalsign'а как-то успокаивало (хотя и сейчас pki.js в их github-репозитарии).
    ASN1js и PKIjs — год после создания
  • 0
    Попробуйте ассоциировать с шелловской командой cp/scp/mv и так далее. «Откуда» — «куда». Хотя понимаю, сложно избавиться от привычки.
    TIS-100 — паззл про многопоточный ассемблер, который никто не ждал
  • +8
    Любителям ассемблера бесполезно, но мы плюсуем!
    Java байткод «Hello world»
  • 0
    Советую всегда пробовать вывести решение на минимальное количество циклов. Как правило, это невозможно сделать без распараллеливания (которое во многом и придает интерес).
    TIS-100 — паззл про многопоточный ассемблер, который никто не ждал
  • 0
    Я давно закончил университет. Как правильно заполнить анкету, чтобы не врать? Указать edx/coursera, например, где я прохожу курсы?
    Бесплатный учебник электроники, архитектуры компьютера и низкоуровневого программирования на русском языке
  • +3
    Ставлю на Elixir с каким-нибудь очень малоизвестным компилятором в JS.
    Как я нашел лучший в мире язык программирования. Часть 2
  • +2
    По стандарту эти записи эквивалентны.
    Новые экспериментальные операторы Си++
  • +9
    #include <stdio.h>
    int main(){ int $ = -~-~-~0; while ($ --> 0) putchar($["123"]); }
    
    Новые экспериментальные операторы Си++
  • 0
    Хорошая статья. Заинтересовало это:

    "… специальный кодек, как это было сделано для Dead Space.."

    Там свой кодек? зачем? чем он хорош?
    Разбор форматов: звуковой пакет в Unreal Engine
  • 0
    «Сообщение» — не совсем магическое слово. Например, я могу задать метод, в который будут попадать неизвестные сообщения (с аргументами и т.д.). Таким образом легко сделать объект-прокси.
    Неизвестный Smalltalk
  • +2
    www.seaside.st

    В свое время это было дико инновационно и круто. Но, по-моему, там уже ничего не развивается. Компанию автора купил Твиттер.
    Неизвестный Smalltalk
  • 0
    «Откровенно говоря, портативные программы — некое виндовозное изобретение для скучающих офисных работников»

    Я просто для информации :) 99% программ для Мака распространяются таким образом. Установка сводится к перетаскиванию в папку Applications, удаление — перетаскиванием в корзину.
    FLProg выходит в интернет, и начинает дружбу с пингвинами
  • 0
    GUI-bindings в GNU Smalltalk незрелы, а GUI в Pharo слишком замкнут на себя и неудобен конечному пользователю. Кстати, gnu smalltalk — file based, там даже class browser'a нет, если не ошибаюсь. VisualWorks — нормальный вариант, что в нем плохого?
    FLProg выходит в интернет, и начинает дружбу с пингвинами
  • +1
    Скажем, система виджетов вообще в каждом смоллтоке своя ) Morphic — это Squeak/Pharo, а автор рассказывает про VisualWorks.

    Чтобы коммент был не совсем пустой, оставлю ссылку на amber-lang.net, выглядит мило.
    Неизвестный Smalltalk
  • +1
    Замечу, что в комплекте этой среды дополнительно идет отладочная VM, в которой полно ассертов, логов и т.д., но главное, что она еще собрана с полной отладочной информацией (специально, чтобы разработчик мог нормальный стектрейс представить авторам).

    Понятно, что это означает для исследователя.
    Правим баг без исходных кодов
  • +3
    Да нет, просто никому не нужно (очень хороший язык, но вытеснен в совсем уж узкую нишу)
    Правим баг без исходных кодов
  • +5
    По-моему, вы демонизируете Смоллток :-)

    Посмотрите класс CompiledCode, Compiler, Decompiler, InstructionStream и прочие. Учитывая рефлексию как неотъемлемое свойство смоллтока, можно получить просто огромное количество информации на достаточно низком уровне. В отданном экзешнике многих этих классов, вероятно, не будет (если он умен, чтобы их стрипнуть), но их достаточно, чтобы изучить байткод и вообще организацию компиляции и рантайма. Да, VM там JIT, но делает она native code все-таки из байткода…

    Вот вам и байткод, и декомпиляция байткода средствами самого же Cincom VisualWorks (извините за стиль, слишком давно на нем не писал):

    t := [ :arg | arg*2 ] // в момент присвоения в переменную t, этот блок скомпилировался
    
    t value: 100 // проверяем, что работает
    >> 200
    
    t method bytes // получаем байт-код
    >> #[16 75 168 101]
    
    result := String new writeStream.
    t method printSymbolicOn: result.  // печатаем "дизассемблированный" байткод
    result contents
    >> 'normal CompiledBlock numArgs=1 numTemps=0 frameSize=12
    >>
    >>literals: ()
    >>
    >>1 <10> push local 0
    >>2 <4B> push 2
    >>3 <A8> send *
    >>4 <65> return
    >>'
    
    t method decompiledSource // просим декомпилировать байткод
    >> '[:t1 | t1 * 2]'
    
    // печатаем декомпилированный метод asOrderedCollection класса Collection
    Collection enumerateMethods: [ :class :selector :method | selector asString = 'asOrderedCollection' ifTrue: [ Transcript nextPutAll: method decompiledSource ]]
    ....и т.д.
    
    Правим баг без исходных кодов
  • +8
    Прости меня Бог за ссылку на Пикабу, но уж очень смешно: если не инсценировка, конечно
    Интервью со skype-мошенником
  • 0
    Вам сюда: dangerousthings.com — вживление nfc-чипа в руку
    Что под капотом у динамической магнитной полосы?
  • 0
    О, я мог пропустить письмо, прошу прощения ( Да, OK
    Pebble Time: новые часы с цветным экраном
  • 0
    Уважаемые MadRobots, а вы не планировали поддержать PebbleBits (часами и средствами), чтобы мы в мае оперативно получили поддержку русского?
    Pebble Time: новые часы с цветным экраном
  • 0
    Почитайте ask me anything-сессию с Team Pebble: www.reddit.com/r/IAmA/comments/2x5aj4

    Например, могут появится умные ремешки с NFC, подключающиеся к Pebble. Или иные сенсоры.
    Pebble Time: новые часы с цветным экраном
  • +2
    Да вообще штуковин, которые стоят несусветных денег или отвечают за жизненно важные вещи и имеют при этом разъем USB — слишком много, если оглядеться.

    Понятно, что идея usb-киллера очевидна и реализация примерно понятна, но все же…
    USB killer
  • +22
    Мне кажется, вы заодно должны были разработать и «презерватив» — блок-переходник, через который можно подключать такие «подозрительные» флэшки.

    Еще не понимаю такого количества желающих купить. Ребята, ружье на стене в итоге выстрелит, вам свою карму и совесть совсем не жалко?
    USB killer
  • +2
    Хорошо, будем считать, я вас убедил, что массив — это именно массив, а не что-нибудь ещё. Откуда тогда берётся вся эта путаница между указателями и массивами? Дело в том, что имя массива почти при любых операциях преобразуется в указатель на его нулевой элемент.

    #include <stdio.h>
    int main() {
            char s[] = "Hello, world";
            printf("%c\n", 5[s]);
    };


    Если честно, я вообще не понял смысла Вашей статьи :-) Базовые (а не «тонкие» понятия), но зачем-то настолько усложненные…
    Указатели, ссылки и массивы в C и C++: точки над i
  • +1
    Ну или если какой-то mac-адрес постоянно всплывает в географических координатах, его нужно начать игнорировать.
    Странности в работе Яндекс.Метро: разбор полётов и апдейт приложения