?

Log in

No account? Create an account

Entries by category: it

2016-01

чего особенного в предоплате?

интересно вот стало.

почему есть сервисы, которые берут предоплату (например, с доменами и "традиционными" хостингами много таких), и сервисы которые не берут, и пишут что legally не могут? (многие cloud storage, в частности).

в чем разница? нагуглить пока не удалось

2016-01

Как писать на C в 2018

Я тут решил для разнообразия пописать что-то низкоуровневое, но морочиться с тулчейнами не хотелось. Ну и скорость итераций я в последнее время ценю.

В общем, откладываем в сторону gcc, clang и всю эту прочую тормозную братию.

Берем TCC (Tiny C Compiler) от Fabrice Bellard, под винду это choco install tinycc, под другие ОС, наверное, где-то так же, и любой file watcher, я взял nodemon, т.к. он был под рукой уже. Делаем 2 файла:
test.cmd: 
tcc -run app.c < test_input.txt

watch.cmd:
nodemon -e * -w . --exec test.cmd

И любимый текстовый редактор, у меня и Sublime и VS открыты были, благо, в студии сейчас не нужно создавать проекты, можно просто Open Folder.

Вуаля, полсекунды после Ctrl-S, и уже можно смотреть результаты теста. Если оно упало, или если повисло - на следующем сохранении nodemon прибьет child-процессы и перезапустит заново. Большинство хедеров у tcc прямо в дистрибутиве, но в целом даже свалка из Windows SDK собирается и показывает окошко с кнопкой менее чем за секунду.

Жаль, что мне такой пайплайн не пришел в голову в свое время в универе. Прям очень удобно. Век живи, век учись.

This entry was originally posted at https://wizzard.dreamwidth.org/488771.html. It has comment count unavailable comments. Please comment there using OpenID.

2016-01

про макулатуру

Самый длинный договор, который я лично подписывал, содержал 50 с чем-то страниц legalese мелким шрифтом.

Но он таки меркнет и становится бледной тенью, если посмотреть, какое количество макулатуры регламентирует деятельность банков, бирж, трейдеров и прочих участников рынка в США.

То есть, хм, сами тексты вполне себе структурированы и читабельны. Но вот их количество...
У меня пока что эстимэйт в миллионы страниц, но может быть там и больше...

Короче, очень занятная задача для information retrieval и natural language processing, да :)

This entry was originally posted at http://wizzard.dreamwidth.org/484130.html. It has comment count unavailable comments. Please comment there using OpenID.

2016-01

Гит говно

Во, у меня есть свежее репро того, что гит говно :)

Значит, берем папку с тестами к JS транслятору (25к файлов, из них половина заигнорена), передвигаем на уровень выше, коммитим.

Mercurial: 15 секунд
Github for Windows: (гуй ушел в себя еще до нажатия "коммит", пришлось прибить)
Git консольный (msysgit, как я понимаю): уже 10 25 минут как ушел в себя и ничего не происходит. Ест 5% процессора, 92 мб RAM, и всё. Что с ним сделать?

EDIT: Мне стало интересно. Ну что, даже SVN за три минуты закоммитил такой дифф, не говоря уже о всяких Fossil, "а батарейки Дюраселл продолжают работать и работать!"

Пойду что ли Darcs скачаю, про него говорят, он медленный... :-D

EDIT2: Ура, он смог! 40 минут молчания, потом тонна сообщений "LF will be replaced by CRLF", вуаля, готово. Прогрессбар? Не, не слышали.
EDIT3: При этом git mv тех же файлов - меньше секунды. Okay.jpg

This entry was originally posted at http://wizzard.dreamwidth.org/418147.html. It has comment count unavailable comments. Please comment there using OpenID.

2016-01

Почему release process у Git'a - говно, а Mercurial в 100 раз круче

Я давно уже обещал написать, чем Mercurial лучше Git, и наконец-то часть написал.
Продолжая дискуссию об отсутствии commit notification на Гитхабе:

sorcerer_
> Дык пул реквесты - это ишуи и есть.

Тут два нюанса:
1. Я хочу вотчить чужие репозы. Когда туда коммитит один человек - никаких PR он не делает. А когда коммитят многие - то тоже могут не делать, и убедить их изменить их воркфлоу — занятие безнадёжное, да и вообще, кхм, зачем лезть в чужой огород-то.

2. Для PR в свои репозитории: это работает, если процесс разработки централизован, девелоперы сидят в форках, а релизер - на апстриме. Это вполне понятный flow для больших проектов, где есть Core Team и контрибьюторы, но он мне не нравится, т.к.

а) нарушает идею DVCS в плане равенства контрибьюторов
б) подразумевает, что релизеров 1-2, а контрибьюторов куча. Если для корп кастомеров надо поддерживать разные веточки, то типична ситуация когда 4 человека релизят скажем 10 веток, и что тогда? что такое PR? делать 10 апстрим репозиториев и пушать M*N пул реквестов? по-моему, это абсурд.
в) аналогично, очень раздражают попытки гита отслеживать состояния апстримов, перевешивая теги (xxxxx/master и т.д.), т.к. это делает fetch не-идемпотентной операцией.

А понадобился этот костыль им вот почему:

sorcerer_
> за коммиты без пул реквестов - азаза!!

Кто ж в мастер коммитит-то? Коммитить надо в личную feature branch коммиттера, которую потом соответствующий релизер мержит в нужные release branch-и.

Ахнуда, умолчания в Git, когда предполагается rebase'ить коммиты поверх ориджина без создания явной точки мержа, собственно говоря, и провоцируют коммитить в мастер и делать точки мержей неявными. А еще это позволяет сделать orphaned коммиты и вообще по-разному изгавнять репоз, чего не может случиться в Mercurial, т.к. history is sacred.

Известный концепт "все операции в Git выражаются через rebase" - это неправильно.

Я бы даже сделал еще чуть радикальнее, чем в Mercurial сейчас, и по умолчанию при первом коммите, или коммите поверх чужого бранча требовал создавать feature бранч. Это бы позволило
а) seamlessly эволюционировать личный проект в shared
б) решило проблему "люди коммитят в мастер и разводят там гавнище"

Совокупно, релиз-процесс Mercurial, когда все форки равноправны и лейблы веток после того, как все сделали push/fetch, совпадают у всех девелоперов - существенно снижает когнитивную нагрузку и упрощает мержи/релизы. А релиз-процесс Git'a оставляет неприятный осадочек SVN/TFS, и позволяет превратить в месиво как свой репоз, так и апстрим, после чего разбираться по мэйлу/телефону "где чего зафакапилось и как исправлять" - намного сложнее.

Т.е. умолчания в Mercurial покрывают кейсы "личный проект", "b2b проект" (для корп клиентов) "bazaar проект" (децентрализованный, без явного владельца), а умолчания в Git покрывают сугубо "b2c проект" (централизованный).

Мои кейсы, соответственно, гораздо лучше подходят под меркуриал, нежели под гит.

Давайте обсудим, что ли.

This entry was originally posted at http://wizzard.dreamwidth.org/411194.html. It has comment count unavailable comments. Please comment there using OpenID.

photo25

Что делает тупой мудак, которого взяли в Oracle писать VirtualBox? Правильно, лижет себе яйца...

TLDR: Виртуалбоксу пиздец, похоже что это один из core developer'ов. Пора форкать.
Последний адекватный билд - 4.3.12.


У кого есть сертификат с правами подписи драйверов под винду?

Оригинал взят у sporaw в Что делает тупой *удак, которого взяли в Oracle писать VirtualBox? Правильно, лижет себе яйца...
[ Read this in English - Automatic translation to English: Google or Microsoft ]

Что делает тупой *удак, которого взяли в Oracle писать VirtualBox? Правильно, лижет себе яйца...

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

Что это такое? Это проверка подписи, проверка owner'а, проверка секций и проч. у маппируемых библиотек в процессы VirtualBox'а. И... отсечение (rejecting) всего того, что не подходит по принципам тупой башки, выдумавшей эту "супер-идею". Человек, который это придумал - явно плохо знаком с Windows. Не понимает, что таких библиотек - полно. Большинство из них - не подписаны. Часть из них - являются необходимыми на многих компьютерах (взаимодействие как с системным софтом, так и с аппаратным программным обеспечением, через драйвера - реализация всяких функций типа двойных скроллов, специальных hotkeys на ноутбуках и т.п.).

Но нашему супер-герою-мудаку из Oracle все равно. Анально-огородившись на форуме (там реально умные люди писали не раз, что идея - говно, реализация - еще хуже, чем сама идея), VirtualBox уже полгода семимильными шагами следует в мусор.

01 июля 2014 это мудило замержило свой говнокод в основную ветку.
Развитие этого говно-кода длится до сих пор.

Фактически это приводит:
* к немерянным тормозам при каждом запуске любой VM из-за постоянного проверки подписей/соответствия секций файлам и т.п.
* к полной несовместимости с большинством security-софта (антивирусы, сетевые экраны и проч.). * к несовместимости со многими драйверами, требующими usermode-helpers.
* к неработе с кучей софтин, которые делают инжект во все процессы.
* к BSOD'ам. Приводит к невозможности работать с VirtualBox.

Реально НИКАКОЙ защиты это не дает и при желании обходится на раз-два.

Но мудак на то и мудак, что он упертый в своей тупой идее. Раз начал делать, значит доведет свое говно-дело до конца.

Ветка по 4.3.16: https://forums.virtualbox.org/viewtopic.php?f=6&t=63556
Ветка по 4.3.18: https://forums.virtualbox.org/viewtopic.php?f=6&t=64111
Ветка по 4.3.14: https://forums.virtualbox.org/viewtopic.php?f=6&t=62615
(Эта ветка должна называться так: "*удак. Начало")

Весь говнокод сосредточен здесь:
https://www.virtualbox.org/browser/vbox/trunk/src/VBox/HostDrivers/Support/win/

Так засрать VirtualBox всего лишь одной заливкой килограммов говна, которая не имет никакого отношения к сути продукта -- это нужно очень уметь, нужно очень постараться.

Особенно смешно вот подобное говно:

{ SUPHARDNT_ADVERSARY_TRENDMICRO, L"\\SystemRoot\\System32\\drivers\\tmebc64.sys" },
{ SUPHARDNT_ADVERSARY_TRENDMICRO, L"\\SystemRoot\\System32\\drivers\\tmeevw.sys" },
{ SUPHARDNT_ADVERSARY_TRENDMICRO, L"\\SystemRoot\\System32\\drivers\\tmciesc.sys" },
+ { SUPHARDNT_ADVERSARY_TRENDMICRO_SAKFILE, L"\\SystemRoot\\System32\\drivers\\sakfile.sys" }, /* Data Loss Prevention, not officescan. */
+ { SUPHARDNT_ADVERSARY_TRENDMICRO, L"\\SystemRoot\\System32\\drivers\\sakcd.sys" }, /* Data Loss Prevention, not officescan. */
+

Тупой уебок.
Если у кого-то есть возможность - накормите его там говном, пожалуйста.
Урод, который портит нормальный проект своими тупыми идеями и не менее дерьмовыми их реализациями, должен уйти.


2016-01

да что ж за засада такая-то

почти все письма от ми попадают в спам, стоит только попытаться написать людям “я хочу у вас купить то-то”.

при этом домен и айпи ни в одном блеклисте не состоит, вирусни там тоже не водится. но с гмыла письма доходят заметно чаще (не всегда тоже). вайтлист?

засада какая-то, вообщем :/ как с этим бороться? а то телефоны не все пишут, да и не всегда удобно звонить (ночью например…)


2016-01

Как правильно готовить Visual Studio

Disclaimer: Я использую VS в основном для C# и Javascript. Да, там стоят еще плагины на PHP, Fortran, Python и F#, но использую я их намного реже.

1. Расширения

  • Hide Main Menu – скрывает панель меню, как в Explorer, до нажатия ALT. Бережем пространство на экране :)
  • Javascript Parser – показывает дерево элементов JS-файла. Правда, чего не хватает этому расширению – автоскрытия панели на других типах файлов. Впрочем, C# и JS вперемешку в одном проекте все же встречаются редко.
  • JSEnhancements – свертыватель регионов в JS и подсвечиватель парных скобок. Must have. Надо сказать, что эту фичу у VS Team просят уже несколько лет, но они упорно закрывают ее с Won’t fix. Почему – непонятно((
  • Productivity Power Tools. Тут много. Одни Quick Access и Solution Navigator с быстрым поиском чего стоят. Еще, Ctrl+Click для Go To Definition – тоже must-have вещь, которой нету в штатной поставке VS из-за патентных троллей :/
    BEWARE: текущая версия Power Toys крашится, если у вас не-английская локаль и вы пользуетесь Quick Access. Обещали пофиксить. Пофиксили.
  • VS 10x Code Map – то же самое, что и Javascript Parser, только для C# и красивее. Умеет сворачивать и разворачивать куски файла синхронно с превьюшкой. На больших файлах тормозит.

1.1. Еще стоит посмотреть на Image Insertion, Regex Editor и Tangible T4 Editor. Я их ставил, но пока не привык. Поэтому ничего не пишу %)
Color Theme Editor, XAML Intellisense Presenter, Visual Studio Tip Of The Day Start Page, VSCommands 2010 может кому приглянутся.

1.2. Нет, я не использую ReSharper. Иногда, впрочем, ставлю, окучиваю какой-нибудь очередной опенсорс проект до приятного мне вида, потом удаляю. Потому что тормозит :/

2. Сглаживание

Много кто ругался на невыключаемый ClearType в VS2010. Я, в общем, этих людей не понимаю, но все равно, вот расширение, которое позволяет выключить в студии сглаживание шрифтов.

3. Настройка окон (кликабельно)

image

Как-то вот так. Но это по вкусу, конечно же. Для C# место JS Parser’a занимает Code Map, остальное остается так же.
Еще я Error List и Find Results часто выношу на второй монитор.

4. Критика, пожелания, советы? :)


2016-01

Алгебра данных и исчисление мутаций (перевод)

Решил перевести для не-англоговорящих коллег найденное
простое и наглядное введение в ADT.
Комментарии и исправления приветствуются :)

Ссылка на оригинал – в конце поста.


Читать статьюCollapse )