Inżynieria oprogramowania

10
Czy jako autor i właściciel praw autorskich mogę ponownie udzielać licencji na mój kod na podstawie bardziej liberalnej licencji po opublikowaniu go na podstawie bardziej restrykcyjnej licencji?

Powiedzmy, na przykład, że opublikowałem swój kod na licencji GPL. Miesiąc po wydaniu postanawiam, że złe korporacje ( *kaszel *) mogą jednak używać mojego kodu, ponieważ jest tak genialny i wolny od błędów. Czy mogę po prostu zmienić licencję na mój kod lub zablokować sobie prawo do...

10
Quadtree z duplikatami

Wdrażam quadtree. Dla tych, którzy nie znają tej struktury danych, dołączam następujący mały opis: QuadTree jest strukturą danych i jest w płaszczyźnie euklidesowej co za Octree jest w 3-wymiarowej przestrzeni. Częstym zastosowaniem czworokątów jest indeksowanie przestrzenne. Podsumowując,...

10
Wydrukuj następny najmniejszy z 2 ^ i * 5 ^ j gdzie i, j> = 0

Zadano mi to pytanie podczas technicznego przeglądu telefonu i nie zrobiłem tego dobrze. Pytanie zostało zawarte dosłownie poniżej. Generuj {2^i * 5^j | i,j >= 0}posortowaną kolekcję. Ciągłe drukowanie następnej najmniejszej wartości. Przykład: { 1, 2, 4, 5, 8, 10...} „Następny...

10
Czy istnieją ograniczenia techniczne lub funkcje językowe, które uniemożliwiają działanie mojego skryptu Python tak szybko, jak równoważnego programu w C ++?

Jestem długoletnim użytkownikiem Pythona. Kilka lat temu zacząłem uczyć się C ++, aby zobaczyć, co może zaoferować pod względem szybkości. W tym czasie nadal używałbym Pythona jako narzędzia do prototypowania. Wydawało się, że był to dobry system: zwinne programowanie w Pythonie, szybkie wykonanie...

10
Kiedy interfejs API jest uważany za osadzony DSL?

Jaka jest różnica między interfejsem API a osadzonym językiem specyficznym dla domeny (DSL)? Czy to tylko składnia? Rozważ API takie jak OpenGL. Czym to się różni od graficznego DSL? Innymi słowy, jeśli interfejs API jest wystarczająco złożony, czy można go uznać za osadzony...

10
Dlaczego spakowane struktury nie są częścią języka C?

Każdy kompilator C oferuje opcję „spakowania” struktur C (np. __attribute__ ((__packed__))Lub #pragma pack()). Teraz wszyscy wiemy, że pakowanie jest wymagane, jeśli chcemy wysyłać lub przechowywać dane w niezawodny sposób. Musiało to być również wymagane od pierwszych dni języka C. Zastanawiam...

10
Jak ustalić, co powinien otrzymać własny kontroler?

Używam wzorca MVC w mojej aplikacji internetowej zbudowanej z PHP. Zawsze staram się ustalić, czy potrzebuję nowego dedykowanego kontrolera do zestawu działań, czy też powinienem umieścić je w już istniejącym kontrolerze. Czy podczas tworzenia kontrolerów obowiązują dobre zasady? Na przykład...

10
JIT kodu maszynowego i bit wyłączenia wykonania

W jaki sposób generowany w środowisku wykonawczym kod maszynowy (taki jak dane wyjściowe JIT) jest faktycznie wykonywany przez CPU, jeśli CPU / OS ma bit wyłączania wykonywania? O ile mi wiadomo, wiele nowoczesnych procesorów i systemów operacyjnych obsługuje bit NX (w tym Intel i ARM), co...

10
Co stanowi zły przypadek do szybkiego sortowania?

Uczę się o Quicksort i chcę zilustrować różne tablice, na których Quicksort miałoby trudności. Quicksort, o którym myślę, nie ma początkowego losowego tasowania, dzieli 2 partycje i nie oblicza mediany. Do tej pory wymyśliłem trzy przykłady: [1,2,3,4,5,6,7,8,9,10] - when the array is...