0 1 2 3 4 ...7 8 9 10 11 ...16 17 18 19 20 21
Ох горкото както би казал Пайпа :)
Аз съм писал библиотеки и фреймуърци бе Рабинка, има ме в кредитите на опенсоса на корпорациЙ :)
Rabin digs out his ancient Linux disk, unearths Evlampi's real name from the digital graveyard, and unleashes the AI to rummage through GitHub
Я да помогнем, Рабиняк, дай малко критика на тоя код :)
module Interface
def self.[](*args)
spec, iid, *ifaces = args.reverse
spec.each { |_name, signature| signature[0].unshift(:pointer) }
Class.new(FFI::Struct) do
const_set(:IID, iid)
vtable = Class.new(FFI::Struct) do
vtable_hash = (ifaces.map { |iface| iface::VTBL::SPEC.to_a } << spec.to_a).flatten(1).to_h
const_set(:SPEC, vtable_hash)
layout(
*self::SPEC.map { |name, signature| [name, callback(*signature)] }.flatten
)
end
const_set(:VTBL, vtable)
layout \
:lpVtbl, :pointer
end
end
end
Що ме изпитваш на С++ ли е, или древния ObjectiveC, не ги знам и не искам да ги знам. Боде ми очите как си кръстил модула, ама айде трая си. Ако те видя тъй да си кръщаваш кода - директно OUT с мръсните кубинки в задника!
Примерен роб без амбиции.
Ща питам кат им станеш личен шофьор, как ще я караш без кола. В СФ нямаш шанс. То и аз мразя да карам там, ама ко да прая, по Ковида забравих как изглежда метро станцията до нас. Ония дни за сефте се качих в селския автобус, зарад мене спряха баш до нас, като чуха, че не съм стъпвал от 5 години в рейса им.
Като тебе, един тъпак, дето се застъпих за него и го взехме за джун. Верно мисли, че съм се запуснал и не уча, дърпа се да им земем парите за препоръка. 2 бона дават по принцип за такова по фирмите, и не ще. А не поема отговорност каквато и да е, няма да му пилят, ако не се сработим.
Мене кашонени мъдрости не са ми приоритет в живота. Ако някой ще има проблем за читава работа, то ще е един де прилича на мангал, и свири гол. Хич не харесват да си мъкнал кашони. Ако пишеше библиотеки нямаше да слушаш коркодила Гена от телефон, на връх Коледа. Аз по него време бях пиян. И ме брули един ветър и мизерии, да си видя аверите по голямо Село.
File | Size | Uploaded | Downloads | MD5 hash |
---|---|---|---|---|
{82789880-4478-49FF-B087-9525BD228DF9}.png | 135758 bytes | 01.02.2025 | 33 | 2bd88c020b60c56d5068478865398aa4 |
Точно така, но корпорациЙто го е копнало щото позволява ползвайки тоя неразбираем код дето само лудо Ламби може да измисли, код на следващо ниво да е разбираем, което всъщност е централна тема в цялото програмиране :)
Профитата пишат поне коментари, на неразбираем код. Какъвто ти не си. И за жунка не ти стигат умения. Затуй слушаш песенки от телефона на баба си.
Само не разбрах как се викат методите
Рабиняк, постоянно отклонявам оферти за бачкане, надявам се да съм учтив, включително за неща дето обективно не мога ама ми викат - не ме интересува кво не можеш бе Ламби, мене квото ми трябва като качества съм те видял ква машина си в магазина :)
Магазина е моята визитка и не ми трябва сиви, изобщо не ми пука кво им харесва на офисните сояджии които впрочем теб НЕ ТЕ ПУСКАТ в офиса въпреки че старателно си къдриш лачено сиви и портфолио :)
Навръх коледа иначе не бях пиян, сепак бях на бачкане пък и бутилката бургундско за пейсе кинта си я разделихме НА ОРЪФАНИЯ СТОЛ с един френд дето има камион и е част от логистична фирма и около коледа жънеха пачките и не смогваше да ги търка в брадата.
Тежък живот братко, не като да си трайнобезработен у Туче :)
Е то няма методи, това е само обвивка около lpVtbl, есенцията на КОМ плюс информация за функциите и параметрите на интерфейса.
После се дефинират класове за КОМ факторита, инстанции и това което наричам com callback, въпреки че не е приетата терминология - имплементация на ком интерфейси.
Впрочем бях задълбал доста и имах обвивки и за разни батшит КОМ извратении като event sinks
тоест само парсва структурата без да вика GetIDsOfNames
Това е кода на корпорациЙто бе Рабинка, в моя има коментари :)
Пък и тоя код е хоби чекия, не съм задължен да се вписвам в нечия идея за 'професионализъм' като си чеша хоби крастата, нищо че е публично, нали?
Или си от онея путьовци дето считат че някой дето за разлика от тях е пуснал код за бес пари по някъв начин им е длъжен :)
За работно магаренце ще те викат. По-дърт от мене си, хамалуването е до време!
Той търка пачки, ти отнесе мрънкане. Примерно на касата имало опашка.
Мене си ми е айляк.
Само парсва структурата и пази информацията за функциите.
Има отделно класове за създаване на ком инстанции и имплементиране на ком интерфейси.
Библиотеката е ценна с това че позволява работа с (и по-важно - ИМПЕЛЕМЕНТИРАНЕ на) IUnknown интерфейси, не IDispatch интерфейсите и GetIDsOfNames дето са създадени с идея да се консумират рънтайм от сякви езици.
Традиционно за да ползваш и имплементираш IUnknown обекти трябва Цъ и компилация, тая библиотека позволява изцяло рънтайм да ползваш (и имплементираш) такива обекти само с руби сорс.
Разбира се гениалния код отдолу са FFI (цъ библиотека) и FFI-Ruby, но магазинерчето сепак има своя скромен принос в тая част касаеща КОМ :)
Интересно живее ли още тоя КОМ освен в някви бекуърд копатабилити глупости
Никое от предложенията не беше свързано с хамалуване, точно обратното - централна тема беше никво хамалуване и поне дабъл на кинтите :)
В твоите делюзии сигурно е било така. В реалността изльокахме бутилката, хапнахме от мезето и после се върнах в магазина и седнах да оправя приключването и отчетите щото него ден бях ИД меринжей, титулярката щасливо дундуркаше внучето на село и сичко на моите крехки програмиски плещи лежеше :)
Радвам се ама като нямаш доходи особено ся кат се приеме еврото да не запече айляка :)
Мда, както и предполагах, НИКОЙ работил с козоеба не иска да го препоръча за колега. Защото после ще го е срам.
А иначе, както обикновено, гнусния мангал пак се чуди как да изкрънка някакви пари без да работи, в случая за препоръка.
Не ползвам джамци (освен в магазина) вече забравих откога, но корпоративния свят (за щастие) е доста инертен а КОМ е централна тема в джамците, сега разбира се е много добре скрит зад модерните езици и фреймуърци но го има.
Тоя код е част от Puppet, сега май са част от Перфорс.
Впрочем КОМ е гениално нещо и има развитие макар и парадоксално - през почти абортираното щърбо чаве JavaScript (здрасти Рабиняк, разкажи ми как плахо уча джаваскрипт :) изкристализираха asm.js, Emscripten а сега и Wasm
0 1 2 3 4 ...7 8 9 10 11 ...16 17 18 19 20 21