Haideti sa facem o lista cu proiecte/probleme de tip code kata/interviu/pedagogic.
Eu propun:
O versiune simplificata de React
Versiune simplificata de Redux
Un DI container
Un pachet de autentificare similar passport.js doar pentru oauth
Versiune rudimentare de framework de testare similar cu Jest
3 Likes
razvanp
(Razvan)
aprilie 5, 2020, 12:01pm
2
Un proiect mai vechi de-al meu.
1 Like
horia141
(Horia Coman)
aprilie 5, 2020, 4:20pm
3
Strict pedagogic, pe partea de limbaje de programare: engine RE, interpretor Lisp (sau vreun dialect simplificat), compilator simplu, parsere de mână.
Nu neaparat un katas, dar de prin vremurile facultatii
Modulare in frecventa a unui sir de biti(semnal discret). Codul este in Matlab.
%Tema 1 Prelucrarea semnalelor.(digital signal processing)
%Popescu Ionut Cosmin, 331AC
%modulation of a bit stream using FSK
data = [0 0 1 1 1 0 0 1 1 0 1 0 1 1 0 0 ]; %sirul de biti pe care il vom modula
%stem(data)%reprezentare date.
bit_period = 0.0001;
disp('Mesajul catre transmitatorul FM');%mesage to FM trasmitter
disp(data);
%am reprezentat sirul de biti ca un semnal dreptunghiular
%representation of the bit stream "data" as a rectangular singnal
bit = [];
for n=1 : 1 : length(data)
if data(n) == 1;
a = ones(1, 100);
else data(n) = 0;
a = zeros(1, 100);
end
bit = [bit a];
end
t1 = bit_period / 100 : bit_period/100 : 100 * length(data) * (bit_period/100);
subplot(4,1,1);
plot(t1, bit, 'lineWidth', 3);
grid on;
xlabel('timp');%time
ylabel('amplitudine');%amplitude
title('Datele trimise ca semnal digital');%data as digital signal
%%modularea semnalului
%modulation of signal
bit_rate = 1 / bit_period;
frecv_bit_0 = bit_rate * 8;
frecv_bit_1 = bit_rate * 32;
t2 = bit_period / 99 : bit_period / 99 : bit_period;
b = length(t2);%signal size
signal = [];
for i = 1 : 1 : length(data)
if(data(i) == 1)
y = sin(2 * pi * frecv_bit_0 * t2);
else
y = sin(2 * pi * frecv_bit_1 * t2);
end
signal = [signal, y];
end
t3 = bit_period / 99 : bit_period / 99 : bit_period * length(data);
b1 = length(t3);
subplot(4, 1, 2);
plot(t3, signal);
title('date modulate FM');
%adaugare zgomot peste semnalul modulat
% awgn - add white gaussian noise
noisy_signal = awgn(signal, 1.5);
subplot(4, 1, 3);
plot(noisy_signal);
%demodulare
%demodulation
mn = [];
for n = b : b : length(noisy_signal)
t = bit_period / 99 : bit_period / 99 : bit_period;
y1 = sin(2 * pi * frecv_bit_0 * t2);
y2 = sin(2 * pi * frecv_bit_1 * t2);
c = y1.*noisy_signal((n-(b-1)):n);
c1 = y2.*noisy_signal((n-(b-1)):n);
t4 = bit_period / 99 : bit_period / 99 : bit_period;
z1 = trapz(t4, c); %integrare dupa t4 a semnalelor fm
z2 = trapz(t4, c1);
z3 = round(2 * z1 / bit_period);
z4 = round(2 * z2 / bit_period);
if(z3 > 0.5)%amplitudianea semnalului este 1 %comparatorul
digital_signal = 1;
else (z4 > 0.5)
digital_signal = 0;
end
mn = [mn, digital_signal];
end
disp('Semnalul digital reconstruit');
disp(mn);
%reprezentare informatia binra
%display bitstream as individual bits
bit = [];
for n=1 : 1 : length(data)
if data(n) == 1;
a = ones(1, 100);
else data(n) = 0;
a = zeros(1, 100);
end
bit = [bit a];
end
t1 = bit_period / 100 : bit_period/100 : 100 * length(mn) * (bit_period/100);
subplot(4,1,4);
plot(t1, bit, 'lineWidth', 3);
grid on;
xlabel('timp');
ylabel('amplitudine');
title('Datele receptionate');
isti37
(István F.)
mai 3, 2020, 8:14am
9
Un unit test (mocha/jest) dupa story inainte de a scrie cod. (un todo list, o aplicatie de rating carti/filme)
Un e2e test cu puppeteer/cypress inainte de a avea feature-ul implementat.
Implementarea feature-ului ca sa treaca testele scrise mai sus.
Pe backend un API de autentificare care implementeaza JWT dupa recomandarile OWASP. (necesita cunostiile speciale dar e simplu)
Un client de graphql. (necesita cunostiinte speciale, dar e simplu)
O extensie de chrome pentru a cauta printre tab-uri.
O extensie de VSCode pentru a rula un test de jest la describe/it.
O extensie de VSCode pentru a rula o linie de cod sub cursor.
O extensie de VSCode pentru a gasi functii impure.