Вітаю всіх. У сьогоднішній статті мова піде про те, як можна реалізувати власний високорівневий API в керованому коді для роботи з пристроями друку, від встановлення нового монітора друку в системі і до отримання обробленого драйвером пристрою друку документа з порту принтера.

Як і в минулий раз, стаття буде корисна для ознайомлення розробникам молодшого та середнього ланки. В процесі вивчення матеріалу, Ви дізнаєтеся як можна звертатися до низькорівневим DLL WinAPI в C# з допомогою P/Invoke, як встановити, налаштувати і видалити з системи монітори друку, драйвер принтера, сам пристрій друку, відкрити і зв'язати порт для перенаправлення вхідних даних з пристрою друку на монітор, познайомитеся з ключовими моментами застосування маршалирования. Так само ми на практичному прикладі розберемося, як за допомогою нашого API можна зручно маніпулювати пристроями друку в системі, дізнаємося, як можна перехопити оброблені дані після друку принтера і, наприклад, відправити їх на сервер.

Читати далі →



Андрій Аксьонов ділиться труднощами у підготовці слайдів для доповіді. Це — розшифровка виступу Highload++.



Якщо бачите цей слайд – я не дуже встиг картинки. Прийшов Бунін, переконався, що у нього доповідач не пропав і поставив підлий питання. Ми заздалегідь готуємо конференцію, 1 вересня прийом доповідей. Я теж хотів заздалегідь підготуватися. Вчора в 6 вечора почав малювати слайди для іншого доповіді, а для цього в 11, тому ось так.

Доведеться робити чистий стендап – а слухати вухом, але це, напевно, на краще, тому що можна спокійно тупити в телефон.

Що означає чистий стендап? Ніякого коду абсолютно, я спеціально намагався мінімізувати кількість рядків коду в презентації, правда пара все одно протекла. Ніяких революційних міркувань ні на які теми. Ну і чистий быдлятский гумор.

Можливо це федерально злочин і мене ФСБ замете відразу після того, як я зі сцени вийду. Ризикнемо, заодно познайомлюсь, поїхали.

Про що доповідь?

Читати далі →

Секрет швидкого програмування: не замислюйтесь



Програмувати швидко — це легко! Так вважає інженер-програміст компанії Google, який всі публікації в своєму блозі підписує лаконічним «Макс». Макс також працює головним архітектором, ком'юніті-менеджером і реліз-менеджером в Bugzilla Project. Ми в Alconost вразили і перевели його поради про те, чи як навчитися програмувати з космічною швидкістю.

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

Вони, звичайно, мають рацію в тому, що в умовах стислих термінів розробники, як правило, будуть писати складний код. Втім, дедлайни не повинні призводити до складності. Замість фрази «Цей дедлайн завадив мені написати простий код» можна вимовити рівноцінну: «Я недостатньо швидко програмують, щоб писати просто». Тобто чим швидше ви як програміст — тим менше впливу на якість вашого коду мають дедлайни.

Тепер давайте розберемося, як, власне, стати швидше? Може, це вроджене магічне вміння? Треба бути «розумнішими» інших, щоб бути швидким?

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

Читати далі →

IL2CPP: виклики методів

Це четверта стаття з серії по IL2CPP. У ній ми поговоримо про те, як il2cpp.exe генерує код C++ для викликів методів в керованому коді.


Читати далі →

Програмування очима (і руками ) гуманітарія. Особистий досвід. Трохи філософії

У кожного, напевно, є якась своя улюблена тема в IT, крім повсякденної практичної роботи, що приносить часом лише хліб насущний. Може бути, хто-то у вільний час робить мультфільми або працює над якою-небудь грою, може бути, бере участь у розробці акого-небудь соціального проекту або просто вивчає щось нове, без особливої на те практичної потреби, одним словом — робить щось для себе, так би мовити, для душі.

Читати далі →

Пишіть менше коду, блін

Я не найталановитіший кодер у світі. Правда. Так що я намагаюся писати якомога менше коду. Чим менше коду я пишу, тим менше коду може ламатися, підтримуватися і вимагати пояснень.
А ще я лінивий — мед, та ще й ложкою (я вирішив використовувати у статті аналогією з їжею).
Але, виявляється, що єдиний гарантований спосіб підвищити продуктивність в вебі — це писати менше коду. Минифицировать? Окей. Стискати? Ну, так. Кешувати? Звучить непогано. Взагалі відмовлятися кодити або використовувати чужий код спочатку? А ось тепер — в яблучко! Що є на вході — повинно вийти на виході в тій чи іншій формі, незалежно від того, чи зміг ваш складальник розчинити і переварити це своїми шлунковими соками (я, мабуть, відмовлюся від харчових аналогій).
І це не все. Крім видимих поліпшень продуктивності, де вам потрібно те ж кількість коду, але його спочатку треба розжувати (не зміг втриматися), ви також можете заощадити. Мою провайдера без різниці, посилаю я купу маленьких листів або одне велике: все складається.
У прагненні до зменшення мені найбільше подобається ось що: в кінці залишається тільки те, що реально потрібне, тільки те, що по-справжньому потрібно користувачеві. Величезна фотка якогось чувака, що п'є латте? Викинути. Кнопки соціальних мереж, які подсасывают купу лівого коду і ламають дизайн сторінки? Стусан під зад їм. Ця чортівня на JavaScript, яка перехоплює правий клік і показує кастомное модальне вікно? Виставити на мороз!
Мова йде не тільки про підключення штук, які ламають інтерфейс. Те, як ви пишете свій власний код, теж грає велику роль в прагненні до зменшення коду. Ось кілька порад та ідей. Я писав про них раніше, але в контексті зручності і чуйного дизайну. Просто так виходить, що гнучкий, зручний веб вимагає менше контролю з нашого боку і його складніше зламати.
Читати далі →

З 18 липня новий порядок реєстрації програм для ЕОМ в Роспатенті. Що змінилося?

18 липня 2016 року вступили в силу новий Адміністративний регламент надання адміністративної послуги з державної реєстрації програми для ЕОМ, а також нові Правила реєстрації програм і баз даних. Таким чином, припиняє дію Адміністративний регламент 2008 року. Зрозуміло, що якщо ви з якихось причин реєструєте програми в Роспатенті (навіщо їх реєструвати — ми обговорювали тут раніше), то з 18 липня потрібно користуватися новою формою заяви.



Більший інтерес представляє аналіз нового Регламенту з метою зрозуміти, чи є щось суттєво нове в реєстрації програм, поліпшує або погіршує становище заявників.

Читати далі →

Хороші інстинкти кодувальника в кінцевому підсумку «вдарять вас по зубах»

image

Я написав свої перші кілька рядків коду майже 32 роки тому, коли мені було 6. Я розвинув дуже сильні інстинкти програмування і міг дивитися на будь-яку проблему, відразу знаючи, як її вирішити — просто інтуїтивно.

До того часу, коли я став писати програми, щоб заробляти собі на життя, я відчував себе рок-зіркою. Я знаходив і виправляв помилки швидше, ніж будь-хто з моїх колег. Моя команда віддавала мені самі непомітні і заплутані баги. Вони навіть стали називати мене майстром.

Але інтуїції недостатньо. Я зіткнувся зі стіною. І ніякої інстинкт кодувальника не допомагав мені крізь неї пробитися. Далі Bill Sourour поділиться з нами інформацією про те, як не зупинятися на досягнутому. Кому-то ці міркування, безумовно, здадуться очевидними. Ну, а комусь знадобляться.

Читати далі →

Эдсгер Дейкстра: у пошуках найкоротшого шляху» до усвідомленого програмування

image
Зображення з сайту abv24.com

Один з тих людей, з іменами яких пов'язано перетворення програмування з шаманства в науку, — Эдсгер Дейкстра. Він небезуспішно доводив, що програмування — високе мистецтво та інтелектуальна творчість.

У всіх своїх дослідженнях Дейкстра надає велике значення простоті і витонченості математичних міркувань. При написанні своїх робіт він створив новий стиль наукових і технічних повідомлень, який можна описати як щось середнє між журнальними публікаціями і дружній листуванням.

Програмування – не набір рухів і заклинань, не шаманство, не танці з бубном, а математична дисципліна. А всяка дисципліна, якщо вона претендує на щось більше, ніж на зовнішній ефект, повинна будуватися на міцному фундаменті. Таким фундаментом для Дейкстри є математична логіка, а точніше – числення предикатів.

Зараз це не здається чимось незвичайним, але в 50-ті роки це прозвучало як одкровення. Дейкстра зрозумів і переконливо показав, як теорія може і повинна допомогти практиці.
Читати далі →

Хагелін — геній науково-технічної думки

Легендарний винахідник шифрувальних машин — Борис Цезар Вільгельм Хагелін (1892 -1983).

Не існує додатків зв'язку, де б не були застосовані рішення, розроблені фірмою Crypto AG, яку більш ніж 60 років тому заснував талановитий криптограф Борис Хагелін.



Номенклатура апаратури і програмного забезпечення Crypto AG виключно широка. Відома компанія не тільки шифртехникой для урядового та військового зв'язку. В офісах велика частина щоденного обміну повідомленнями і даними все ще йде по класичним каналах – PSTN/ISDN, аналогової або цифрової телефонії та факсу. Конфіденційність переговорів, факсів та інформації в ноутбуках забезпечується низкою апаратних рішень Crypto AG: PSTN Encryption HC-2203, Secure GSM HC-2423, Fax Ecryption HC-4221, Crypto PC Security HC-6360, Crypto Laptop HC-6835 та іншими. Для військових і цивільних потреб розроблені
Читати далі →