title: Jak zrobić stronę logowania do usługi innej firmy, nie pozwalając im się zalogować?

text: Mamy wyjątkową sytuację (przynajmniej dla mnie, gdy widzę to po raz pierwszy). Mamy formularz internetowy, w którym księgowi mogą wypełniać wnioski i ta część jest załatwiana. Ale po ich zalogowaniu przekierowujemy ich na stronę internetową innej firmy, gdzie potrzebujemy od nich więcej informacji. Proces jest teraz szalony, ponieważ musimy podać dane logowania do naszego konta wszystkim osobom, które się z nami składają. Czy istnieje sposób w PHP lub w jakimkolwiek innym rozwiązaniu, w którym możemy po tym formularzu na naszej stronie automatycznie zalogować się za pomocą naszych informacji do tej witryny strony trzeciej w taki sposób, aby nasze dane uwierzytelniające nie były widoczne dla użytkowników korzystających z usługi?


title: Mój Asp.net MVC działa jak dodo! Wszelkie zalecenia

text: Poniżej znajduje się adres URL mojej witryny, http://www.price-tag.org . Jeśli odwiedzisz dowolny link kategorii, zobaczysz, że działa bardzo wolno. Na przykład, jeśli odwiedzisz http://www.price-tag.org/Store/Section/Computers , zobaczysz opóźnienie przed załadowaniem podkategorii. To dopiero pierwsza faza i właśnie dodałem kilka kategorii do bazy danych i nic więcej. Jeśli to działa na samym początku, co się stanie, gdy zacznę dodawać produkty. Używam podejścia Entity Framework Code-first. Poniżej znajduje się kod jednej z akcji, która pobiera listę kategorii. PriceCompareEntity pe = new PriceCompareEntity(); // // GET: /Store/ public ActionResult Section(string id) { if (!string.IsNullOrEmpty(id)) { var catsAndSub = pe.Categories.Where(cat => cat.Name == id).FirstOrDefault( ); if (catsAndSub == null || catsAndSub.ParentCategoryId != null) { return View("NoSuchRootCat"); } else { ViewBag.Title = catsAndSub.MetaTitle; ViewBag.Description = catsAndSub.MetaDescription; ViewBag.Keywords = catsAndSub.MetaKeywords; return View(catsAndSub); } } else { return View("NoSuchRootCat"); } } Jestem naprawdę zaniepokojony i trochę rozczarowany. Po tylu ciężkiej pracy przez ostatni miesiąc lub dwa wyniki nie są dobre. Jeśli będzie tak wolno, cały mój projekt zatonie. Nie wyobrażam sobie, jak wolno będzie, jeśli dodam kilkaset produktów do strony. Nikt nie będzie zawracał sobie głowy odwiedzaniem strony poświęconej dodo. Czy zrobiłem coś złego w rozwoju? I co mogę zrobić, aby wszystko było dobrze i prosto. Podczas surfowania po sieci natknąłem się na pamięć podręczną sieci i inne rzeczy, ale są one bardzo zaawansowane i wymagają trochę nauki. Poza tym moja strona internetowa nie jest żadnym facebookiem ani SO z milionami użytkowników, więc przejście na ten temat wydaje się być dalekie i zajmie dużo czasu, aby zrobić wszystko. **Aktualizacja** Usunąłem witrynę, więc linki mogą nie pokazywać oryginalnej treści.


title: Czy korzystając z MVVM, należy tworzyć nowe modele widoku, czy zamieniać modele?

text: Powiedz, że mam viewmodel tak: public class EmployeeViewModel { private EmployeeModel _model; kolor tła kolor publiczny { get; ustawić; } public Name { get { return _model.Name; } ustaw { _model.Nazwa = wartość; NotifyPropertyChanged (nazwa); } } } Tak więc ten model widoku wiąże się z widokiem, który wyświetla pracownika. Należy pomyśleć o tym, czy ten model widoku reprezentuje pracownika, czy pracownika „wyświetlanego”. Viewmodel zawiera pewne rzeczy, które są specyficzne dla widoku, na przykład kolor tła. Może być wielu pracowników, ale tylko jeden widok pracownika. Mając to na uwadze, czy podczas zmiany wyświetlanego pracownika ma sens utworzenie nowego modelu EmployeeViewModel i ponowne powiązanie z widokiem, czy po prostu zamiana modelu EmployeeModel. Czy rozróżnienie jest w ogóle ważne, czy jest to kwestia stylu? Zawsze skłaniałem się ku tworzeniu nowych modeli widoków, ale pracuję nad projektem, w którym modele widoków są tworzone raz, a modele są wymieniane. Nie jestem pewien, jak się z tym czuję, chociaż wydaje się, że to działa dobrze.


title: Problem z QT podczas korzystania z Qtablewidget

text: QAplikacja a(argc, argv); Qt_test w; QTableWidget * table = new QTableWidget(&w); table->setRowCount(1); table->setColumnCount(3); table->setGeometry(QRect(30,30,340,140)); QPushButton * btn = nowy QPushButton("btn1"); table->setCellWidget(0,1,btn); // // table->removeRow(0); // tabela->setRowCount(3); table->setCellWidget(0,1,btn); w.pokaż(); zwróć a.exec(); To jest mój kod! i co mnie myli to: tabela jest pusta bez oczekiwanego przycisku!


title: Czy to jest w porządku dla klasy, która tworzy obiekty, aby je delegować?

text: Mam dużą listę elementów komunikacji wewnętrznej; więc zdecydowałem, że jedna klasa utworzy je wszystkie, a następnie deleguje je do innych klas, aby ułatwić dokładniejsze dostrajanie i okablowanie razem. Przez „dokładniejsze dopracowywanie” rozumiem, że komponenty są modyfikowane do stanu końcowego; a przez "okablowanie" rozumiem, że komponenty mają możliwość komunikowania się w określony sposób. Po tym, jak wszystkie są połączone razem, wysyłam wszystkie komponenty do organizatora, aby zostały odpowiednio zorganizowane w GUI. Czytałem gdzieś, że klasa powinna tylko tworzyć obiekty lub ich używać, ale nigdy obu; więc staram się tego przestrzegać, a także ograniczać obowiązki każdej klasy. Ta klasa inicjatora/delegatora wykonuje zarówno inicjowanie, jak i delegowanie, więc **czy powinienem dalej podzielić ją na inicjatora i delegatora?**


title: Zwracanie wyników trwa zbyt długo MySQL

text: Jestem zdezorientowany, dlaczego serwer wykonuje zbyt dużo czasu na wykonanie następującego zapytania: SELECT tbl1.Column1 FROM Table1 AS tbl1 INNER JOIN Table2 AS tbl2 ON tbl2.Column4 = tbl1.Column1 Zwrócenie wyników zajęło około 20 minut. Plik konfiguracyjny MySQL (my.ini) wygląda następująco: [mysql] # KLIENT # port = 3306 socket = X:\wamp\bin\mysql\mysql5.5.8\data\mysql.sock [mysql] # OGÓLNE # użytkownik = mysql default-storage-engine = gniazdo InnoDB = X:\wamp\bin\mysql\mysql5.5.8\data\mysql.sock pid-file = X:\wamp\bin\mysql\mysql5.5.8\data\mysql.pid # MyISAM # key-buffer-size = 32M myisam-recover = FORCE,BACKUP # BEZPIECZEŃSTWO # max-allowed-packet = 16M max-connect-errors = 1000000 # PRZECHOWYWANIE DANYCH # datadir = X:\wamp\bin\mysql\mysql5 .5.8\data\ # REJESTROWANIE BINARNE # log-bin = X:\wamp\bin\mysql\mysql5.5.8\dat a\mysql-bin wygasa-logs-days = 14 sync-binlog = 1 # PAMIĘCI PODRĘCZNE I OGRANICZENIA # tmp-table-size = 32M max-heap-table-size = 32M zapytanie-cache-type = 0 zapytanie-cache-size = 0 max-connections = 500 thread-cache-size = 50 open-files-limit = 65535 table-definition-cache = 4096 table-open-cache = 4096 # INNODB # innodb-log-files-in-group = 2 innodb -log-file-size = 128M innodb-flush-log-at-trx-commit = 1 innodb-file-per-table = 1 innodb-buffer-pool-size = 2G # LOGOWANIE # log-error = X:\wamp \bin\mysql\mysql5.5.8\data\mysql-error.log log-queries-not-using-indexes = 1 slow-query-log = 1 slow-quer y-log-file = X:\wamp\bin\mysql\mysql5.5.8\data\mysql-slow.log Obie tabele mają klucze podstawowe. Pozdrawiam, F. Ahmed


title: Zarządzanie wątkami w Javie z dobrym wzorcem

text: Dziś rano zacząłem pisać minimalny czat przy użyciu gniazda Java i wątków, ale zajęło mi kilka minut, zanim doświadczyłem wielu problemów w zarządzaniu MVC. Obecnie mam 3 klasy: * Main, jest to po prostu główna klasa używana do uruchamiania Control. * ChatController, używam tego do zarządzania klasami Model i View (jest to klasa Controller). * Host, klasa zawierająca atrybut Socket oraz dwa atrybuty Scanner i PrintStream do odczytywania i zapisywania do i z gniazda. Problem polega na tym, która klasa rozciąga się od wątku, aby umożliwić programowi jednoczesne odczytywanie i zapisywanie funkcji. Mój profesor kazał mi rozszerzyć klasę ChatControl (stąd kontroler), ale myślę, że jest to za dużo hardcodingu (a poza tym nie podoba mi się, że metoda/atrybuty odziedziczone z Threada są widoczne z klasy ChatController) . Czy więc poprawne jest rozszerzenie klasy Control z Thread do zarządzania wątkiem, czy też powinienem rozważyć zaimplementowanie innej klasy do zadania tego problemu (lub nawet wypróbowania innych wzorców)? Jeśli potrzebujesz jakiegoś źródła, znajdź je na pastebin.


title: Wyodrębnianie wyrażeń lambda z zapytań linq i czytelność

text: Od czasu do czasu, gdy mam złożoną lambdę, robię coś takiego: Func<SomeObject, bool> equals = o => o.ID == someID && o.Name == someName && IsAdd || ... var mojaLista = Moje Rzeczy.Where(równa się).ToList(); Załóżmy, że logiki równej nie da się uprościć. Czy wyodrębnienie lambdy z zapytania linq poprawia, czy zmniejsza czytelność? Alternatywą jest: var myList = MyThings.Where(o => o.ID == someID && o.Name == someName && IsAdd || ...).ToList();


title: Interfejs programu aplikacji

text: Interfejsy API sieci Web zazwyczaj testujemy ręcznie za pomocą miernika J. Czy można stworzyć oprogramowanie, które będzie automatycznie tworzyło skrypty testowe do testów i przeprowadzało testy? Chcę użyć miernika J na zapleczu jako oprogramowania testowego.


title: Co oznacza w oprogramowaniu termin „Wbudowany”?

text: Tak więc szukam możliwości poszerzenia mojej wiedzy na temat programowania sprzętu wbudowanego i niższego poziomu, jednak za każdym razem, gdy szukam zadań, które wspominają o _"embedded"_, zawsze są to rzeczy wysokiego poziomu. Dla mnie to nie ma sensu. Więc co dokładnie oznacza „wbudowany”? Kiedy myślę o _embedded_, myślę o programowaniu mikrokontrolera niższego poziomu i tym podobnych. Jeśli _embedded_ nie jest właściwym tytułem dla tego, to czego powinienem szukać?


title: Jak pisać testy jednostkowe, gdy jedna poprawka sprawi, że wiele testów zakończy się niepowodzeniem?

text: Mam dwa przypadki testowe do przetestowania poprawki do kodu, który używa niewłaściwych kryteriów wyboru obiektów z kolekcji: 1. Mając jeden obiekt w kolekcji pasujący do złych kryteriów, upewnij się, że żaden obiekt nie jest zwracany. 2. Biorąc pod uwagę dwa obiekty w kolekcji, z których późniejszy spełnia złe kryteria, upewnij się, że wcześniejszy obiekt jest ponownie weryfikowany. W tej chwili oba te testy zakończą się niepowodzeniem. Problem polega na tym, że jak tylko dokonam naprawy, oba testy przejdą. Czy to jest ok? Pomyślałem, że przed napisaniem kodu potrzebujemy _pojedynczego_ nieudanego testu jednostkowego. Nie słyszałem, że przed napisaniem kodu można mieć wiele nieudanych testów jednostkowych.


title: Czy możesz podzielić się wyjaśnieniem lub doświadczeniem, które wyjaśnią Ci, jak używać SQL SELECTS?

text: Programuję już od dawna, jakieś 13 lat (tylko zawodowo od około 4). Poznałem takie rzeczy jak QBasic, Visual Basic, C#, .NET, Java, C, C++, Javascript, JQuery itp. Potrafię poradzić sobie z prawie każdym kodem i dowiedzieć się, co się dzieje lub to naprawić, a także tworzyć nowe rozwiązania. Jednak bez względu na to, jak bardzo się staram, lub ile razy różne osoby z bazy danych próbują mi wyjaśnić rozwiązanie dla SQL lub jak utworzyć zapytanie SQL, które wybiera to, czego chcę, nie wydaje mi się, aby to „dostać” . Chodzi mi o to, że rozumiem, dlaczego nowe lub zmodyfikowane zapytanie, które dla mnie piszą, działa, ale nie mogę tego wystarczająco wciągnąć do głowy, abym mógł to rozgryźć samodzielnie lub napisać własne złożone zapytania. Czy miałeś jakieś doświadczenie lub wyjaśnienie, które usłyszałeś, które dały ci oświecenie na temat SQL? To nie jest pytanie tak lub nie, PROSZĘ o udostępnienie tego!


title: Dlaczego interfejsy nazywane są interfejsami?

text: Z tego, co do tej pory rozumiem, interfejs to lista metod, które muszą zostać zaimplementowane przez każdego, kto chce z niego korzystać. Jeśli tak, to czy nazwanie tego specyfikacją zamiast interfejsu miałoby jakąkolwiek różnicę, czy też jest bardziej wyrafinowane niż specyfikacja?


title: Jak działa „dogfooding”?

text: Słyszałem, że Twitter praktykuje „dogfooding”, co oznacza, że używa własnego interfejsu API dla witryny. Jednak tak naprawdę nie rozumiem, jak to jest prawdą. Kiedy używam Firebuga, widzę, że wszystkie wywołania AJAX są kierowane do jakiegoś adresu URL, takiego jak: https://twitter.com/{username}/{cokolwiek jeszcze}, a nie: https://api.twitter.com/1.1/ statusy/... Jeśli używają różnych adresów URL, w jaki sposób używają własnego API? Myślę, że mam błędne pojęcie o tym, czym jest interfejs API... Ponadto, jak działałoby z OAuth? Czy się uprawomocniają? Jak korzystać z własnego API („dogfood”)?


title: Tworzenie deterministycznych par kluczy w javascript do użytku w szyfrowaniu/odszyfrowywaniu/podpisywania wiadomości

text: Więc szukałem wszędzie i nie byłem w stanie znaleźć niczego z wystarczającymi informacjami, których potrzebuję ... więc w tej chwili jestem trochę zakłopotany tym, co próbuję zrobić, to utworzyć parę kluczy publiczny/prywatny (jak PGP) po utworzeniu konta użytkownika, na podstawie jego hasła i losowego seeda. Klucz publiczny zostałby zapisany na serwerze, a idealnie klucz prywatny nigdy nie byłby widziany przez serwer. Użytkownik może się wtedy zalogować i wysłać wiadomość do innego użytkownika. Zanim wiadomość zostanie wysłana, para kluczy nadawców zostanie ponownie wygenerowana w locie na podstawie ich poświadczeń (i być może monitu o hasło) i wykorzystana do zaszyfrowania wiadomości. Odbiorca użyłby następnie własnego, ponownie wygenerowanego klucza prywatnego, aby odszyfrować wspomnianą wiadomość. Sam serwer nigdy nie powinien widzieć żadnych haseł w postaci zwykłego tekstu, kluczy prywatnych ani czytelnych wiadomości. Trochę nie jestem pewien, jak mogę to zrobić. Iv przyglądałem się PGP, a konkretnie openPGP.js. Głównym problemem, jaki mam, jest możliwość zregenerowania pary kluczy na podstawie określonego materiału siewnego. Wydaje się, że PGP ma losowe wyjście, nawet jeśli dane wejściowe są takie same. Przechowywanie klucza prywatnego w pliku cookie lub w magazynie HTML5 lub czymś innym również nie jest opcją, zbyt zawodną. Czy ktoś może wskazać mi właściwy kierunek?


title: Albo nie jestem pewien, że po prostu nic nie wiem

text: Nazywam się Sael i mam 14 lat. Odkąd miałem 12 lat i dostałem swój pierwszy komputer, od razu zainteresowałem się tworzeniem gier. Więc oczywiście, jak każdy inny, wygooglowałem to, zniechęciłem się i zapomniałem o tym na kilka miesięcy. Kiedy miałem 13 lat postanowiłem kontynuować programowanie i stwierdziłem, że java będzie dla mnie najbardziej odpowiednia. Teraz, po roku, mam podstawową wiedzę na temat javy i tego, jak to działa (po prostu kliknęło od razu jednego dnia). W każdym razie mój problem polega na tym, że wiem, jak mam zrobić prostą grę w mojej głowie, ale jak tylko kliknę przycisk „Nowy projekt” na zaćmieniu, natychmiast się gubię i nie mogę dowiedzieć się, gdzie początek. Nie mogę wiele zrobić bez samouczka obok mnie, ponieważ mój umysł jest od niego tak zależny. A więc oto pytanie: co mogę zrobić, aby przejść przez ten mój problem i czy ktoś z was czuł się tak wcześniej? * przepraszam, jeśli mój angielski jest trochę niepoprawny, hiszpański jest moim głównym językiem* _Wcześniej robiłem mody do Minecrafta_


title: Usługi sieciowe i listy kodów

text: Nasz zespół intensywnie omawia kwestie dotyczące obsługi listy kodów w definicji usługi sieciowej. Celem projektu jest opisanie interfejsu API dostawcy w celu wykonywania zapytań do systemu przy użyciu różnych wartości. Niektóre z nich to katalogi ew. listy kodów. Katalog lub lista kodów to zestaw par klucz-wartość. Istnieją różne systemy (przynajmniej 3) utrzymujące możliwie różne listy kodów. Każdy system powinien implementować API dostawcy, natomiast każdy system może mieć inną listę kodów dla tego samego podmiotu gospodarczego, np. pomyśl o kolorach. Jeden system zna [(1,'czerwony'),(2,'zielony')], a inny [(1,'jasnozielony'),(2,'ciemnozielony'),(3,'czerwony')] itd. Dostęp do różnych implementacji interfejsu API dostawcy będzie hermetyzowany przez usługę zapytań, ale istnieje już jeden kandydat, który może bezpośrednio korzystać z co najmniej jednego interfejsu API dostawcy. Obecne opcje projektowania omawianego API to: 1. Użyj abstrakcyjnej listy kodów w definicji interfejsu: interfejs usługi sieciowej definiuje dobrze znany zestaw list kodów, które mają być używane do wykonywania zapytań i zwracania danych. Każda implementacja dostawcy interfejsu API musi odwzorować wartości żądania i odpowiedzi z tej abstrakcyjnej listy kodów na tę specyficzną dla systemu. 2. pozwól komponentowi zapytania obsłużyć listę kodów: enkapsulująca usługa zapytań zna zestaw list kodów implementacji API każdego dostawcy i zajmuje się mapowaniem danych wejściowych i wyjściowych do list kodów specyficznych dla danego systemu. 3. w ogóle nie używaj list kodów w definicji zapytania: po prostu listy kodów zapytań za pomocą zwykłego ciągu znaków i pozwól implementacji API dostawcy określić właściwą wartość. Może to prowadzić do utraty informacji i prawdopodobnie wielu fałszywych alarmów, ponieważ ciąg wejściowy nie może być mapowany kanonicznie na wartość listy kodów (np. zielony -> jasnozielony lub zielony -> ciemnozielony lub oba) Jakie są twoje doświadczenia ew. rozwiązania takiego problemu? Czy mógłbyś dać jakieś zalecenie?


title: Zminimalizuj bezużyteczne poprawianie aplikacji numerycznej

text: Opracowuję aplikację numeryczną (optymalizator nieliniowy), z milionami pokręteł do podkręcania i podnoszenia. To nie jest moja pierwsza wyprawa w tę dziedzinę, ale tym razem w kodzie jest jeszcze więcej zmiennych i mam napięty harmonogram. Nie chcę tracić czasu na majstrowanie. Dni lub nawet miesiące mogą zostać zmarnowane na dostosowywanie zmiennych, ponowne kompilowanie i ponowne przetwarzanie zestawów danych porównawczych. Uzyskane dane są przeglądane i sprawdzane są miejsca problemów. Program raportuje ogólną jakość rozwiązania, ale znaczenie raportu może z czasem ulec zmianie. (Jednostki liczbowe dla raportu to jedna rzecz, którą próbuję ustalić.) Jednym z głównych problemów jest zorganizowanie plików wynikowych w celu zidentyfikowania każdego z określonymi zmianami w kodzie. Robienie notatek może być uciążliwe, czy istnieje oprogramowanie, które w tym pomoże? Czy istnieją uzgodnione najlepsze praktyki, dzięki którym tego rodzaju cykl rozwoju niezawodnie posuwa się do przodu? Pakiet solwera zbiega się do optymalnego rozwiązania z określeniem mechanicznym, ale zbyt dobrze znam sposób, w jaki nadmiar decyzji projektowych może utrudnić rozwój.


title: Ponowne wykorzystanie kodu open source, który nie określa licencji

text: Tworzę moduł do systemu CMS. Znalazłem kod PHP na github, który trochę działa dla mnie. Autor nie określił jednoznacznie licencji na kod. Skoro jest na github i jest publicznie dostępny, czy mogę użyć kodu w moim module, czy powinienem uzyskać pisemną zgodę autora? Mam zamiar sprzedać swój moduł za niewielką cenę.


title: Dlaczego pomijane są niektóre wersje pomniejszych aktualizacji oprogramowania Java?

text: Aż do około stycznia 2013 r. drobne aktualizacje głównych wersji Javy były zawsze następujące po sobie: 6u30, 6u31, 6u32, 6u33 i tak dalej. To samo dotyczy aktualizacji Java 7. Jednak począwszy od stycznia lub lutego 2013 r. niektóre pomniejsze numeracje wersji zostały pominięte. Spójrz tutaj: http://en.wikipedia.org/wiki/Java_version_history#Java_7_updates Jak widać, drobne aktualizacje to 7u10, 7u11, 7u13, 7u15, 7u17, 7u21, 7u25. Gdzie zniknęły 7u12, 7u14, 7u16 itd.? Czy był jakiś konkretny powód, dla którego zostały pominięte? Jeśli faktycznie były wadliwe i nie można było ich uwolnić, to: * jak to się dzieje, że różnica czasowa między nimi nie jest znacząca? * jak to się stało, że do stycznia/lutego tego roku to się nigdy nie zdarzyło, ale od tego czasu ciągle się dzieje? Próbowałem szukać odpowiedzi na to pytanie, ale nic nie mogłem znaleźć. Pomyślałem więc, że ktoś tutaj może mieć jakąś wskazówkę na ten temat.


title: Klawisze jako atrybuty wywołań ajax

text: Powiedziano mi, że to zły pomysł, aby używać klucza jako atrybutu tagu xml. Uważam, że jest to bardzo przydatne dla ajax, ponieważ mogę po prostu włożyć klucz, którego potrzebuję, w każdy element, który jest klikany, zmieniany lub cokolwiek innego. Widzę, jak to jest zagrożenie bezpieczeństwa, ale używałem tej taktyki tylko w aplikacjach wewnętrznych. W zewnętrznych aplikacjach/witrynach, jaki byłby lepszy sposób na poradzenie sobie z tym. Zakładałbym, że po prostu osadzenie innego unikalnego pola, które nie jest liczbowe. Podstawowy przykład... Mam przycisk, który po naciśnięciu aktualizuje cenę towaru w bazie danych. Następnie za pomocą przycisku JS na naciśnięciu przycisku wziąłbym identyfikator i przekazałbym go kontrolerowi, aby zaktualizować element.


title: najlepszy sposób na szybkie ukrycie stanu poznawczego, gdy po prostu nie możesz uniknąć przerw

text: Nawet nie wiem, czy to pytanie ma sens ... ale pozwól, że pozwolę ci go poszukać... > _**wyobraź sobie ..._** _Jesteś całkowicie pochłonięty jakimś programowaniem > myśl/pomysł/koncepcja, Twój mózg jest w najbardziej aktywnym stanie wymyślając > rozwiązanie problemu, lub jak to ujął Joel Spolsky -- jesteś głęboko w swojej > "strefie" -- I nagle ktoś lub jakieś wydarzenie przerywa twoje zaabsorbowanie -- > coś czego po prostu nie możesz uniknąć, coś, czym musisz się zająć._ > **_... wyobraźnia pełna .. powrót do rzeczywistości_** Coś, co może zaburzyć twoją koncentrację, może być... * jesteś wezwany na pilne spotkanie * twój kod zepsuł codzienną kompilację i twój kolega dzwoni do ciebie * właśnie przypomniałeś sobie coś, co musiałeś zrobić, ale zapomniałeś o tym * twój kolega z drużyny ma ekscytujące wieści do przekazania i nalega, abyś posłuchał * twoja dziewczyna (lub chłopak) ma po prostu przyjdź Teraz załóż, że masz tylko 5-10 minut, zanim **_musisz_** opuścić to, w co byłeś głęboko zaangażowany, i baw się przerywając. Moje pytanie brzmi - jak szybko "zapisać" stan umysłu, w którym byłeś, kiedy nadeszła dywersja. Czy piszesz to w „jakiejś formie” na papierze lub komputerze, czy po prostu jakoś to „zapamiętujesz”. Jak uratować te dokładne myśli w ciągu 5-10 minut, aby później, po powrocie, nadrobić zaległości od „punktu”, który opuściłeś. Często zdarza mi się, że po prostu nie pamiętam dokładnie tych myśli, które myślałem przed uderzeniem - i czuję, że straciłem dobry pomysł lub rozwiązanie problemu. staram się myśleć z mocą wsteczną, starając się dojść do TEN SAMEGO stanu poznawczego, który podekscytował mnie pomysłem - ale frustruję się, nie będąc w stanie "dostać się tam". czy coś takiego ci się przydarzy. jak się z tego „wybudza”? _**\-- AKTUALIZACJA --_** Moją główną troską nie jest kod - to te „abstrakcyjne pomysły”, które nie zostały jeszcze przekonwertowane na kod, które muszę jakoś „zapisać”


title: Klient Żądanie Wyjaśnienie „Korzyści” w ramach opłaty za doradztwo

text: Podałem moją stawkę mojemu klientowi z prostym podziałem zgodnie z żądaniem. Wymieniłem składniki mojej stawki 1) Wynagrodzenie 2) Korzyści 3) Koszty ogólne (podatki, dostawcy itp.) Klient jest w porządku z 1) i 3) Ale chce dalszego podziału 2) Korzyści (w tym wakacje, dni chorobowe, ubezpieczenie itp.) Po prostu używam bardzo konserwatywnej i typowej stawki za świadczenia. Czy ta prośba jest typowa? Jak mam odmówić? Dziękuję


title: Współrzędne ułamkowe i kartezjańskie

text: Mam zestaw współrzędnych ułamkowych. Mam również macierz rotacji, która działa na współrzędnych kartezjańskich. Czy ktoś wie, jak mogę przekonwertować macierz rotacji, aby móc operować na współrzędnych ułamkowych? Współrzędne ułamkowe są funkcjami wektorów bazowych a,b,c odpowiednich alfa, beta, gamma. Poniższy link wyjaśnia, jak wykonywać transformacje współrzędnych. Po prostu nie jestem pewien, jak używać wymienionych macierzy do operowania na macierzy rotacji. http://en.wikipedia.org/wiki/Fractional_coordinates Masz jakieś pomysły? Dziękuję


title: Rozpoczęcie nowego projektu i potrzebujesz pomysłów na obsługę ataków typu phishing/Brute Force ORAZ dostęp do logowania

text: Zaczynam nowy projekt. Główny dostęp z aplikacji po stronie klienta będzie odbywał się za pośrednictwem interfejsu API napisanego w ASP.Net MVC3. Szukam dyskusji na temat tego, jak najlepiej radzić sobie z rejestrowaniem informacji w celu uzyskania dostępu do zabezpieczeń, a także jak radzić sobie z phishingiem i Brute Force. Jeśli chodzi o informacje, chciałbym również kilka pomysłów na to, co należy śledzić, aby pomóc mi zarówno w lepszym ulepszaniu aplikacji w przyszłości, jak i w lepszym wprowadzaniu jej na rynek. Czy ktoś ma jakieś sugestie lub linki?


title: Maksymalny czas trwania projektu dla projektu rozwoju opartego na funkcjach

text: Czy istnieje limit czasu trwania Projektu FDD, gdy projekty te mogą zakończyć się niepowodzeniem z powodu czynników zewnętrznych i wewnętrznych? Na przykład projekty XP powinny być krótkie ze względu na otwartość koncepcji i zależność od osób w zespole oraz brak dokumentacji, która jest podatna na zakłócenia, takie jak utrata członków zespołu i tak dalej.


title: Czy Groovy przestrzega zasady korespondencji Tennenta?

text: Oto interesująca dyskusja na temat zasady korespondencji Tennenta i krótki opis Neala Gaftera: > Zasada nakazuje, że wyrażenie lub stwierdzenie, gdy jest zawinięte w zamknięcie, a następnie natychmiast przywołane, powinno mieć takie samo znaczenie jak przed zawinięty w zamknięcie. Każda zmiana semantyki podczas pakowania > kodu w zamknięciu jest prawdopodobnie błędem języka. Czy język Groovy przestrzega tej zasady?


title: Dlaczego zmienne PHP muszą być poprzedzone znakiem dolara?

text: Rozumiem, że wszystkie zmienne PHP muszą być poprzedzone znakiem dolara (np. `$someValue = 1`), ale dlaczego tak jest? Dlaczego dokonano takiego wyboru projektu? Powodem, dla którego pytam, jest to, że moja dziewczyna zapytała, dlaczego, kiedy wspomniałem, że zmienne PHP muszą zaczynać się od znaku dolara, i zdałem sobie sprawę, że nie mam pojęcia, dlaczego dokonano takiego wyboru składni. Jakieś pomysły?


title: Czy kod jest często generowany z UML?

text: Więc kiedy byłem na uniwersytecie, dowiedziałem się o korzyściach płynących z UML i jego przyszłości w tworzeniu kodu. Ale z mojego doświadczenia w branży odkryłem, że chociaż używamy diagramów — począwszy od diagramów ER, diagramów klas, diagramów stanów, aż po diagramy przepływu pracy — wszystko to służy do celów komunikacyjnych. Oznacza to, że nigdy nie generowałem kodu automatycznie z diagramów, a z punktu widzenia komunikacji staram się, aby moje diagramy były tak proste i łatwe do zrozumienia, jak to tylko możliwe. Ale kiedy patrzę na Visio i Enterprise Architect, wydaje się, że mają wiele różnych typów wykresów, kształtów, obiektów właściwości, z których większości nie używam. Czy ludzie używają UML do robienia bardziej skomplikowanych rzeczy, takich jak generowanie kodu lub bazy danych?


title: Do której warstwy należy ten kod?

text: Kiedy mówię „Wersyjny model danych”, mam na myśli model danych, w którym informacje nigdy nie są tracone: usuwanie nigdy nie niszczy żadnych wierszy, a aktualizacje zawsze powodują wstawienie w innym miejscu, aby zachować poprzedni stan wiersza przed aktualizacją. Jest kilka, o których czytałem i słyszałem od kolegów: 1. Wyzwalacze w bazie danych. Głównym powodem, dla którego nie podoba mi się to podejście, jest to, że jeśli polegasz na wyzwalaczach w celu wymuszenia integralności wersji, aplikacja zostaje powiązana z serwerem bazy danych. Jeśli używasz ORM z różnymi dostawcami (Oracle, MySQL, T-SQL itp.), być może będziesz musiał zmienić niektóre SQL, aby przełączać się między nimi. 2. Dzienniki śledzenia czytelne dla człowieka. W zeszłym roku grałem w Business Analyst przy projekcie z nowym deweloperem, ponieważ jeden z naszych siostrzanych działów został zawalony ważnymi terminami. Nalegała, aby pomimo zebranych wymagań i schematów, które modelowałem, wstawiała procedurę składowaną, która ma być wykonywana przy każdej instrukcji create/update/delete. Ten sproc zapisałby po prostu stare dane jako sformatowany ciąg znaków i zapisałby je w tabeli ERRORS_LOG w bazie danych. Jej celem było pomóc jej w debugowaniu aplikacji na wypadek, gdyby coś poszło nie tak: chciała mieć ślad. 3. Tworzenie siostrzanych tabel. Takie podejście jest jak posiadanie 2 baz danych żyjących w tym samym kontekście. Dla tabeli Person byłaby tabela PersonHistory, dla Product byłaby ProductHistory i tak dalej. Schematy byłyby identyczne i za każdym razem, gdy nastąpiła zmiana w tabeli encji, poprzedni stan byłby wstawiany do ProductHistory. Jeśli masz aplikację, w której chcesz zezwolić użytkownikom na "przywracanie" lub "przywracanie poprzedniej wersji" encji, tylko #3 wydaje się praktycznym rozwiązaniem. Ponieważ jednak każda para (podmiot i jego historia) ma ten sam model/schemat, w rzeczywistości można je łączyć. Dodając właściwości logiczne/bitowe, takie jak IsCurrentVersion i IsDeleted, można podzielić pojedynczą jednostkę na różne stany w klauzuli WHERE. Rozważmy ten przykład #4. Jedną wadą #4 jest to, że tabele bazy danych stają się trudne do odczytania po wybraniu wszystkich wierszy. Wydobywanie danych z serwera db wymagałoby dość szerokiego wykorzystania widoków, co powoduje ten sam problem, co w opcji 1. Patrzenie na wszystkie różne stany razem w tej samej tabeli znacznie utrudnia czytanie. Przy podejściu nr 3 musisz przejrzeć inną tabelę, aby znaleźć poprzednie wersje i usunięcia. Z powodzeniem stosujemy podejście nr 4. Mamy nadtyp RevisableEntity z właściwościami, które wskazują, kiedy dane zostały zmienione, kto je zmienił, czy zostały usunięte, zarchiwizowane lub zmodyfikowane. Aktualizacje następują w wierszach tak samo, jak w normalnych okolicznościach. Jednak w ramach tej samej akcji odpowiednia wstawka jest wykonywana w tym samym zestawie tabeli / encji. Wstawka zawiera te same wartości, co aktualizacja przed aktualizacją. Zaktualizowany wiersz, oprócz wszelkich zmian wprowadzonych przez użytkownika, aktualizuje również właściwości kiedy i kto. Teraz moje pytanie: gdzie należy ten kod? W domenie czy w repozytorium? Istnieją pewne aspekty tego, które są zależne od pamięci, co sugeruje umieszczenie kodu w miejscu, w którym znajduje się sprzężenie ORM. Istnieją jednak inne aspekty, którym warstwy domeny/aplikacji powinny być w stanie ufać. Może podmioty domeny powinny zarządzać własną integralnością rewizyjną, a może powinna istnieć fabryka do koordynowania?


title: Czy prezenter czy widok powinien sortować dane w aplikacji MVP?

text: Typowa aplikacja MVP może mieć metodę View, taką jak: void setDisplayItems(List<DisplayItem> items); Czy prezenter powinien sortować listę elementów, czy jest to zadanie dla widoku? Czuję, że może to być zadanie dla widoku z dwóch powodów: 1. Jeśli było to zadanie dla prezentera, to metody takie jak: void addDisplayItem(DisplayItem item); nie zadziała, ponieważ prezenter nie może wstawić elementu we właściwym miejscu. 2. Widok może oferować różne opcje sortowania, w zależności od wyborów użytkownika. Jednak nie mogę też pozbyć się wrażenia, że jest to zbyt dużo „myślenia” dla Widoku. Czy ktoś może skomentować właściwy wybór dla MVP? Powinienem zauważyć, że zazwyczaj tworzę aplikacje Java oparte na Swingu (w przypadku, gdy pozwala to na bardziej szczegółowe odpowiedzi).


title: Układ plików Pythona do hackowania pakietów do tworzenia stron internetowych

text: Pochodzę z PHP, więc jestem przyzwyczajony do tego, że wszystko jest w jednym miejscu. Chcę zainstalować program Pythona (Zine), abym mógł się na nim włamać. Instrukcje, które znalazłem, instalują go w systemie w wielu folderach. Nie chcę edytować plików, które są zainstalowane w katalogach systemu Linux. Jaki jest sposób pythona na układ katalogu w systemie plików dla programu internetowego, który jest aktywnie rozwijany? czy byłoby to: /web/htdocs/python/modules/app.py czy /web/python/modules/app.py /web/htdocs/ czy /web/python/modules/app.py /web/python/htdocs/


title: Małe projekty wykorzystujące model katedralny: czy open source obniża bezpieczeństwo?

text: Znamy prawo Linusa: > Przy wystarczającej liczbie gałek ocznych wszystkie błędy są płytkie Ogólnie rzecz biorąc, ludzie wydają się mówić, że oprogramowanie open-source jest z tego powodu bezpieczniejsze, **ale**... Istnieje wiele małych projektów OSS z zaledwie 1 lub 2 programistami (model katedralny, opisany przez ESR). Czy w przypadku tych projektów wydanie kodu źródłowego faktycznie obniża bezpieczeństwo? W przypadku projektów takich jak jądro Linuksa istnieją tysiące programistów i prawdopodobnie zostaną wykryte luki w zabezpieczeniach, ale gdy tylko kilka osób przegląda kod źródłowy, jednocześnie pozwalając crackerom (hackerom black hat) zobaczyć również źródło, jest bezpieczeństwo obniżone zamiast zwiększonego? Wiem, że przewagą bezpieczeństwa oprogramowania o zamkniętym kodzie źródłowym nad OSS jest bezpieczeństwo przez ukrywanie, co nie jest dobre (wcale), ale może w pewnym stopniu pomóc, przynajmniej dając tym kilku programistom trochę więcej czasu (bezpieczeństwo przez ukrywanie nie pomaga jeśli, ale kiedy). **EDYTUJ:** Pytanie nie dotyczy tego, czy OSS jest bezpieczniejszy niż oprogramowanie inne niż OSS, ale czy korzyści dla crackerów są większe niż korzyści dla programistów, którzy chcą zapobiec wykorzystaniu luk w zabezpieczeniach.


title: Szkolenie „Jak lepiej kodować”

text: Często rekrutujemy do naszej firmy świeże talenty prosto z uniwersytetów. Podczas gdy ci programiści odbywają wiele szkoleń, myślę, że powinien istnieć program szkoleniowy, który po prostu uczy ich dobrych umiejętności kodowania (uwaga, nie mówię o znajomości frameworka .net). To, czego szukam, to oprogramowanie, które pozwoli mi zautomatyzować niektóre z tych szkoleń. Część, która powinna być zautomatyzowana, to * Tworzenie przypisań kodowania * Automatyczne przesyłanie przydziałów * Automatyczna ocena przesłanego przypisania pod kątem jakości kodu Czy widzieliście kiedyś coś takiego na wolności?


title: Jakie są zalety i wady języka używającego białych znaków w porównaniu z {} do wskazania zakresu?

text: Wydaje się, że istnieje konflikt dotyczący tego, czy lepiej używać spacji, czy tokenów, takich jak nawiasy kwadratowe, aby wskazać zakres. Widziałem wielu chwalących rozwiązanie Pythona dla niespójnego problemu wcięć, ale wielu się z tym nie zgadza: > Każdy język, który ma białe znaki jako tokeny, musi umrzeć. zamieściłem później tę samą odpowiedź: > Byłem anty-białymi znakami jako tokenami, dopóki tego nie spróbowałem. Prawdopodobnie pomogło to, że mój osobisty układ białych przestrzeni prawie pasuje do tego, czego > używa każdy w python-land. Być może dlatego, że jestem trochę minimalistyczny, ale > jeśli i tak zamierzasz robić wcięcia, po co zawracać sobie głowę {}? Widzę jasne argumenty dla każdej strony: użycie spacji: * pomaga zredukować niespójne wcięcia w kodzie * czyści ekran poprzez zastąpienie widocznych tokenów białymi znakami, aby służyły temu samemu celowi przy użyciu tokenów: * znacznie łatwiejsze wycinanie i wklejanie kodu na różnych poziomach ( nie musisz poprawiać wcięcia) * bardziej spójne. Niektóre edytory tekstu wyświetlają odstępy inaczej. * obecnie bardziej popularne. Czy są jakieś punkty, które przegapiłem? Który wolisz? Jakieś mądre słowa po dłuższej pracy z jednym lub drugim? * * * PS. Nienawidzę, gdy języki nie używają tego samego tokena dla każdej struktury kontrolnej. VB jest naprawdę denerwujący ze swoimi instrukcjami `End If` i `End While`, większość innych języków po prostu używa {} do wszystkiego. Ale może to temat na inne pytanie...


title: Kodowanie z laptopem i ekranem zewnętrznym - szyja, plecy, wygoda

text: Chyba nie tylko ja koduję na laptopie + klawiaturze zewnętrznej + ekranie zewnętrznym. Naprawdę nie mogę się zdecydować. **Ilustracja 1**: Umieszczam ekran bezpośrednio przed oczami (w pozycji pionowej) i odsuwam laptopa na bok. Czuję się bardziej komfortowo, ale nie widzę tak dobrego 15-calowego laptopa, który jest teraz całkiem daleko. Czuję się nieużywany. **Ilustracja 2:** Umieszczam laptopa przed sobą i przesuwam zewnętrzny monitor na bok. efektywne wykorzystanie przestrzeni, ale obawiam się, że moja szyja/plecy mogą zacząć boleć, bo muszę często odwracać głowę. Co wolisz? Dobre rady? Poświęcenie zdrowia zdecydowanie nie wchodzi w grę, dlatego się martwię i pytam to głupie pytanie. Dzięki


title: Generowanie tokenów CSRF bez użycia sesji i plików cookie

text: Piszę bibliotekę do generowania i sprawdzania tokenów CSRF. Chciałbym to zrobić bez konieczności używania sesji i/lub plików cookie. To, co wymyśliłem, to: 1. Token wygenerowany na podstawie aktualnego czasu i unikalny identyfikator tokena (unix-timestamp.unique-token-id). 2. Token zostałby następnie zahaszowany przy użyciu metody HMAC. Zwrócona wartość to: hmac-hash.unix-timestamp.unique-token-id. Można to następnie ukryć w formie. 3. Następnie biblioteka przetestuje zwrócony token, wyodrębniając z niego hash HAMC, czas i unikalny identyfikator tokena, a następnie porówna zwrócony hash HAMC z haszem wygenerowanym przy użyciu zwróconego czasu i unikalnego identyfikatora tokena. Dopóki sekret HMAC na serwerze pozostaje tajny, powinien być bezpieczny, czy coś przegapiłem?


title: Moje oprogramowanie jest hostowane na „złej” witrynie. Czy mogę coś z tym zrobić?

text: **Edytuj:** Dzięki za wszystkie odpowiedzi, chłopaki! Myślę, że zamierzam po prostu zamieścić na mojej stronie tekst, który mówi użytkownikom, aby pobierali tylko z podanych linków. Chodzi o to, że istniały pewne legalne i nielegalne strony internetowe, które przechwyciły moje oprogramowanie, więc bezpieczniej byłoby po prostu powiedzieć użytkownikom, aby unikali stron, do których nie mam linków. Wielkie dzięki za wszelką pomoc! **Oryginał:** utworzone przeze mnie oprogramowanie jest hostowane na tak zwanej „złej” witrynie. Trudno to wytłumaczyć, więc podam tylko przykład. Zrobiłem darmowy generator haseł. To, wraz z większością mojego innego BEZPŁATNEGO oprogramowania, jest dostępne na tej stronie. Oto ich opis mojego oprogramowania: Platforma: 7/7 x64/Windows 2K/XP/2003/Vista Rozmiar: 61,6 Mb Licencja: Wersja próbna Typ pliku: .7z Ostatnia aktualizacja: 4 czerwca 2011 r., 15:38 UTC Średnia prędkość pobierania : 6226 Kb/s W zeszłym tygodniu Pobrań: 476 Razem pobrań: 24908 Nie tylko rozmiar jest całkowicie przekrzywiony, to nie jest oprogramowanie próbne, to jest darmowe oprogramowanie. Rzecz w tym, że to nie opis się martwię - to linki do pobrania. Witryna jest witryną oszustwa. Najwyraźniej zawierają linki do „pęknięć” i „genów kluczy”, ale nie tylko samo w sobie jest nielegalne, ale w rzeczywistości zawierają linki do fałszywych witryn pobierania, które dostarczają wirusy i obciążają kartę kredytową. Wystarczy wymienić rzeczy, które są nie tak z tą witryną: twierdzą, że całe oprogramowanie jest płatnym oprogramowaniem, a następnie oferują pobieranie kluczy i pęknięć; podrabiają wszystkie szczegóły dotyczące programu oraz wszelkie recenzje i oceny programu; oni i witryna pobierania, do której prowadzą linki, są prawdopodobnie prowadzone przez tę samą osobę, więc zarabiają na tych kłamstwach. Jestem tylko nastolatkiem, który nie ma środków na podjęcie działań prawnych. Oznacza to, że niestety nie mogę zrobić niczego, co faktycznie przyniesie rezultaty. Chciałbym, aby moje oprogramowanie było pobierane tylko z mojej osobistej strony internetowej. Mam linki do czterech legalnych lokalizacji, w których można pobrać moje oprogramowanie i to wszystko. Zasadniczo, czy mogę coś z tym zrobić? Jak powiedziałem powyżej, nie mogę podjąć działań prawnych, ale czy jest jakiś sposób, aby zniechęcić ruch do tej witryny, umieszczając ją na czarnej liście lub coś takiego? Czy mogę zgłosić roszczenie na MOJEJ stronie internetowej, aby pobierać oprogramowanie tylko z podanych przeze mnie linków? A może powinienem po prostu nie zwracać uwagi? Bo szczerze mówiąc, to trochę drogi wstecz w wynikach Google. Z góry dziękuję.


title: Czy jest jakaś korzyść z obsesji na punkcie kodowania „ładnie wyglądającego”?

text: Czasami spędzam absurdalnie dużo czasu (godziny) męcząc się nad tym, aby kod „ładnie wyglądał”. Chodzi mi o to, żeby wszystko wyglądało symetrycznie. Właściwie szybko przewinę całą klasę, aby zobaczyć, czy coś nie wygląda na „ładne” lub „czyste”. Czy marnuję swój czas? Czy takie zachowanie ma jakąś wartość? Czasami funkcjonalność lub projekt kodu nawet się nie zmieni, po prostu zmienię jego strukturę, aby wyglądał ładniej. Czy po prostu jestem całkowicie OCD, czy jest w tym jakaś korzyść?


title: Strategia testowania dla środowiska produkcyjnego

text: W idealnym świecie deweloperzy i operatorzy pracują razem jako jeden zespół, aby wydać coś na produkcję. Istnieją jednak organizacje z ograniczeniami, dzięki czemu inżynierowie/zespoły wydawnicze są całkowicie odseparowane od zespołów programistycznych/projektowych. To nie tylko dodało kłopotu komunikacyjnego dla wydań, ale także sprawiło, że środowisko produkcyjne było prawie „niewidoczne” dla zespołu projektowego. Do pewnego stopnia istnieje „kryzys zaufania” między zespołem projektowym a wdrożeniowym. Nawet mamy dobre i wiarygodne testy akceptacyjne/funkcjonalne w środowisku UAT, ale po prostu nie jesteśmy pewni, czy proces wdrożenia został wykonany prawidłowo i czy wszystko działa na produkcji dokładnie tak, jak UAT. Jedynym sposobem, w jaki możemy to zweryfikować, są testy na środowisku produkcyjnym. Niektóre proste testy dymu mogą być pomocne w identyfikacji problemów z łącznością. Więc moje pytanie brzmi: jaka jest twoja opinia na temat zastosowania wszystkich testów, które mieliśmy na UAT do produkcji (z konfiguracją wyłączania bitów, których nie chcemy na produkcji, takich jak usuwanie danych itp.) Jeśli zrobiłeś coś podobnego, jak czy odtwarzasz dane w środowisku produkcyjnym bez skażenia ścieżek audytu (jedna oczywista rzecz byłaby oparta na kontach, ale załóżmy, że nie ma segregacji według kont). EDIT: Nie chodziło mi o testowanie środowiska prodowego przez cały czas, ale dopiero zaraz po wdrożeniu. Nie przestaniemy też próbować rozwiązywania problemu od podstaw do relacji dev/op. Ale jednocześnie chciałby zbadać inne możliwości.


title: Ogólne techniki programowania przyspieszające czas kodowania

text: Przygotowuję się do konkursu programistycznego, w którym musimy kodować w C++ i chodzi o wytworzenie działającego kodu w krótkim czasie. Przykładem może być użycie makra, aby uzyskać minimum dwóch wartości int lub użycie memsetów do inicjalizacji tablic (ale powiedziano mi, że nie powinieneś tutaj używać żadnego z nich). Prowadzi to do pytania, jakiego rodzaju techniki kodowania istnieją do wykorzystania w prawdziwej pracy?


title: Nieblokujące problemy z ORM

text: Zadałem pytanie na SO i stwierdziłem, że nie ma nieblokujących ORM-ów dla mojej ulubionej platformy internetowej. Przez brak blokowania rozumiem ORM z obsługą wywołań zwrotnych do asynchronicznego pobierania. ORM będzie dostarczany z wywołaniem zwrotnym lub podobnym do wykonania, gdy dane zostaną odebrane. Chcę go stworzyć, ale mam kilka pytań, które uniemożliwiają mi rozpoczęcie rozwoju: * Jakie problemy można napotkać podczas tworzenia ORM? * Czy obsługa pobierania bez blokowania znacznie zwiększa złożoność ORM? * Dlaczego jest tak mało nieblokujących ORM-ów? **Aktualizacja:** wygląda na to, że muszę poprawić moje pytanie. Posiadamy rozwiązania, które już pozwalają nam odbierać dane w sposób nieblokujący i wierzę, że większość firm korzystających z takich rozwiązań korzysta z surowego SQL. Chcemy stworzyć bardziej ogólne rozwiązanie, które będziemy mogli ponownie wykorzystać w przyszłych projektach. Jakie trudności możemy napotkać? **Aktualizacja 2:** Preferowany język to Python, ale interesują mnie zasady. To pytanie jest właściwie dla mnie, ponieważ przyjrzę się platformom, które mają już nieblokujący ORM.


title: Jak zbudować strukturę danych dla dynamicznego „labiryntu” o nieograniczonej wielkości?

text: Właściwie nie jestem pewien, czy „labirynt” jest właściwym terminem. Zasadniczo użytkownicy zaczynają w jednym „Pokoju”, który ma 4 drzwi (N, S, E i W). Mogą iść w dowolnym kierunku, a każdy kolejny pokój zawiera inny pokój z od 1 do 4 drzwi, które prowadzą do innych pomieszczeń. „Labirynt” ma być nieograniczony i rosnąć w miarę przemieszczania się pomieszczeń. Dostępna jest ograniczona liczba „Pokoi”, jednak dostępna liczba jest dynamiczna i może się zmieniać. Mój problem polega na tym, że nie jestem pewien, jaka jest najlepsza struktura danych dla tego typu wzorca. Najpierw pomyślałem o użyciu tablicy [X][X] obiektów `Room`, ale naprawdę wolałbym tego uniknąć, ponieważ ma rosnąć w dowolnym kierunku i należy budować tylko pokoje, które są „odwiedzane”. Inną myślą było, aby każda klasa `Room` zawierała 4 połączone właściwości `Room` dla N, S, E i W i po prostu łączyła się z poprzednim `Room`, ale problem z tym nie wiem, jak to zrobić określić, czy użytkownik wchodzi do pokoju, w którym sąsiedni pokój jest już „zbudowany” Na przykład --- --- ---------- | | | | Start 5 4 | | | | --- --- --- --- --- --- ---------- --- --- | | | | | | | 1 2 3 | | | | | | --- --- --- --- ---------- Jeśli użytkownik przejdzie z Start > 1 > 2 > 3 > 4 > 5, wtedy `Pokój` #5 musi wiedzieć, że W zawiera pomieszczenie początkowe, S to pomieszczenie nr 2 iw tym przypadku nie powinno być dostępne, a N może być albo nowym `Pomieszczeniem`, albo ścianą (nic). Być może potrzebuję kombinacji tablicy i połączonych pokoi, a może po prostu patrzę na to w niewłaściwy sposób. Czy istnieje lepszy sposób budowania struktury danych dla tego typu „labiryntu”? A może jestem na dobrej drodze z moim obecnym procesem myślowym i brakuje mi tylko kilku informacji? (Jeśli jesteś zainteresowany, projekt jest grą bardzo podobną do Munchkin Quest)


title: sprawdzanie kodu źródłowego / najlepsze praktyki walidacji

text: Poszukuję najlepszych praktyk, które stosują duże organizacje w zakresie ewidencjonowania i walidacji kodu. Obecnie postępujemy zgodnie z następującymi krokami: \- Programista pisze kod \- Programista przeprowadza wstępne testy \- Kod oczekuje teraz na walidację \- Kierownik techniczny sprawdza kod (możliwe błędy, sprawdź, czy przestrzegana jest konwencja kodowania itp.) \- Po zatwierdzeniu przez dział techniczny prowadzić, kod przechodzi w stan kontroli jakości \- Po zatwierdzeniu kontroli jakości kod jest rejestrowany w trunku. Przechodzimy teraz do nowego projektu i szukałem dobrych praktyk, które ułatwiłyby ten proces. Posiadamy oprogramowanie na zamówienie, które utrzymuje status kodu. Dzięki Ali


title: Stos interfejsu użytkownika firmy Microsoft

text: Jestem programistą C#, WPF i chciałbym poznać i zrozumieć stos Microsoft UI. Nie mogłem znaleźć wiele w Internecie. Sądzę, że byłby to ogromny temat i może nie być możliwe do wyjaśnienia tutaj, ale wszelkie sugestie dotyczące czytania online byłyby bardzo mile widziane.


title: SPRING.net Framework i jego popularność

text: Czytałem dokumentację na http://www.springframework.net/. Byłem pod ogromnym wrażeniem tego frameworka, pomimo wymaganej ilości konfiguracji xml. Zastanawiałem się, dlaczego ten framework nie jest w "szumie" . Jakieś niedociągnięcia? Są nawet na bieżąco z CLR 4.


title: Różnica ról między interesariuszem a właścicielem produktu

text: Jaka jest właściwie różnica między rolami ProductOwner a StakeHolder?


title: ClickOnce analogowy

text: Szukam analogu ClickOnce na platformę Windows. Muszę wdrożyć (opublikować) aplikację .NET WinForms (gruby klient) dla systemu N-tier za pośrednictwem sieci Web.


title: Odnośnie prototypu JavaScript i początkowej funkcji konstruktora

text: Przechodzę przez tutorial na temat OOP w JavaScript (javascriptissexy.com używając OOP w JS: Co musisz wiedzieć). Instruktor wyjaśnia wzorzec tworzenia obiektów Konstruktor/Prototyp. Rozumiem, co się dzieje, ale mam palące pytanie, na które nie odpowiada! Zaczynamy tak: function User(name, email) { this.name = name, this.email = email, this.scores = [], this.etc = etc } Rozumiem, a teraz każdy var xxx = new User ("name", "email") będzie miał xxx.name, xxx.email, xxx.scores, itd. Ale teraz nadpisujemy prototyp: User.prototype = { constructor: User; saveScore: function(...){...}, changeEmail: function(...){...}, showNameAndScore: function(...){...} } Teraz każda var xxx = new User( ...) odziedziczy metody saveScore, changeEmail i showNameAndScore. Jestem zupełnie nowy, ale z tego co rozumiem, na początku mogłem zawrzeć te funkcje: function User(...) { this.name = name, this.saveScore = function(...) {...} , ... } Zamiast od razu edytować prototyp. Czekam, aż autor powie mi, że włączamy te funkcje do prototypu, ponieważ będą to dokładne kopie, których użytkownik nie będzie mógł edytować i dlatego wystarczy je zdefiniować tylko raz (w prototypie), a nie za każdym razem Użytkownika. A może po prostu próbuje zademonstrować różne smaki dziedziczenia? Z góry dziękuję!


title: Jak utrzymujesz motywację?

text: Czasami samouczenie się konkretnego języka z książek może sprawić, że poczujesz się znudzony, a nawet zniechęcony do nauki więcej. Jakiego źródła zachęty lub motywacji używałeś podczas nauki programowania?


title: Przepisy dotyczące rozwoju oprogramowania

text: Zastanawiam się, czy istnieją jakieś prawa związane z tworzeniem oprogramowania... Na przykład, co jeśli piszesz kod do cyfrowego rozrusznika serca lub projektujesz inny system, który może mieć głęboki wpływ na czyjeś życie, albo - bycie... Czy istnieją konkretne prawa dotyczące tego rodzaju rzeczy?


title: Wytyczne dotyczące budowy agenta oprogramowania

text: Obecnie studiuję magisterium z informatyki i interesuje mnie praca z agentami oprogramowania i C#. Znalazłem wiele informacji dotyczących aspektów teoretycznych, ale tylko kilka artykułów skupiało się na praktycznych aspektach programowania, takich jak architektura, projektowanie czy implementacja. Czy ktoś mógłby zasugerować jakieś dobre źródło, które mógłbym zbadać? Nie chciałbym „wymyślać koła na nowo”, ale wnieść coś lepszego do obecnego stanu techniki.


title: Przesiewowe wywiady internetowe

text: Natknąłem się na seeikecode.com i zastanowiłem się, jak można go wykorzystać do sesji kodowania na żywo podczas sprawdzania kandydatów do pracy. Na przykład: * E-mail mówiący rozmówcy, czego się spodziewać * Problemy z atrybutami problemów z kodowaniem, które są odpowiednie dla tej konfiguracji * Jak odpowiedzieć na przedstawiony kod * Nagrywanie sesji Co sądzisz na ten temat? Czy takie narzędzia są pomocne, czy też przeszkadzają w ocenie kandydata?


title: Aktualizowanie i organizowanie diagramów klas w rozwijającym się projekcie C++

text: Pracuję nad projektem C++, który jest coraz większy. Dużo zajmuję się UML, więc do tej pory nie było trudno wytłumaczyć swoją pracę współpracownikom. Ostatnio zaimplementowałem wiele nowych funkcji i zrezygnowałem z ręcznego aktualizowania moich diagramów Dia UML. Mój kod jest udokumentowany w Doxygen, ale wygenerowany dokument nie jest tak naprawdę wizualny. Chciałbym tylko, aby moi współpracownicy szybko zrozumieli aktualizacje w moim projekcie klasy. Wydaje się, że Doxygen obsługuje diagramy UML za pomocą Graphviz, ale chciałbym wiedzieć, czy są dostępne inne możliwości i co robicie, aby pokazać swój kod współpracownikom (nie klientom).


title: Jakie są dobre książki związane z JAIN SLEE?

text: Czy mógłbyś polecić jakieś dobre materiały do czytania związane z JAIN SLEE? Lub ogólnie Java w telekomunikacji.


title: Jaka jest najlepsza rada, której można udzielić komuś w tej branży, kto opiera się zmianom?

text: Rozmawiam z kimś znacznie starszym ode mnie, więc nie mam prawa mówić mu, co jest mądre. Pracuje w branży komputerowej, ale opiera się zmianom, a my dyskutujemy o tym, jak jego współpracownicy czerpią przyjemność z nauki nowej technologii, a on po prostu unika jej jak ognia. Szukam może dobrej lektury lub świadectwa, aby wspierać podążanie za trendami i poznawanie nowych technologii, zamiast pozostawać w tyle i trzymać się tego, co wiesz, nawet jeśli jest przestarzałe. Tego rodzaju rzeczy, które może przeczytać ktoś zakochany w BASIC, PASCAL lub na komputerach mainframe, ponieważ nie będą cię słuchać bezpośrednio. Preferowane są artykuły internetowe lub przekonujące, dobrze napisane posty na blogach, ale mile widziane są też dobre książki.


title: Język programowania, kompletność Turinga i maszyna Turinga

text: Mówi się, że język programowania jest kompletnością Turinga, jeśli może z powodzeniem symulować uniwersalną pamięć TM. Weźmy na przykład język programowania funkcjonalnego. W programowaniu funkcjonalnym funkcja ma najwyższy priorytet nad wszystkim. Możesz przekazywać funkcje jak dowolne prymitywy lub obiekty. Nazywa się to funkcją pierwszej klasy. W programowaniu funkcjonalnym twoja funkcja nie powoduje efektu ubocznego, tj. wyprowadza ciągi na ekran, zmienia stan zmiennych poza jej zakresem. Każda funkcja ma kopię własnych obiektów, jeśli obiekty są przekazywane z zewnątrz, a skopiowane obiekty są zwracane, gdy funkcja zakończy swoje zadanie. Każda funkcja napisana wyłącznie stylem funkcjonalnym jest całkowicie niezależna od wszystkiego, co jest poza nią. W ten sposób zmniejsza się złożoność całego systemu. Nazywa się to przejrzystością referencyjną. W programowaniu funkcjonalnym każda funkcja może mieć swoje zmienne lokalne, które zachowują swoje wartości nawet po zakończeniu działania funkcji. Odbywa się to przez garbage collector. Wartość można ponownie wykorzystać przy następnym wywołaniu funkcji. Nazywa się to zapamiętywaniem. Funkcja zwykle powinna rozwiązać tylko jedną rzecz. Powinien modelować tylko jeden algorytm, aby odpowiedzieć na problem. **Czy uważasz, że funkcja w języku funkcjonalnym z powyższymi właściwościami symuluje maszynę Turinga?** * Funkcje (= algorytmy = maszyny Turinga) mogą być przekazywane jako dane wejściowe i zwracane jako dane wyjściowe. TM akceptuje również i symuluje inne TM * Modele zapamiętywania zbioru stanów maszyny Turinga. Zapamiętane zmienne mogą być użyte do określenia stanów TM (tzn. jakie linie wykonać, jakie zachowanie powinna przyjąć w danym stanie ...). Możesz także użyć zapamiętywania do symulacji wewnętrznej pamięci taśmowej. W języku takim jak C/C++, gdy funkcja kończy działanie, tracisz wszystkie jej wewnętrzne dane (chyba że przechowujesz je gdzie indziej poza jej zakresem). * Zbiór symboli to zbiór wszystkich ciągów znaków w języku programowania, który jest wyższy poziom i czytelną dla człowieka wersją kodu maszynowego (opcode) * Stan początkowy to początek funkcji. Jednak w przypadku zapamiętywania stan początkowy może być określony przez zapamiętywanie lub, jeśli chcesz, instrukcję switch/if-else w imperatywnym języku programowania. Ale wtedy nie można * Ostatecznego stanu akceptacji, gdy funkcja zwraca wartość lub odrzuca, jeśli wystąpi wyjątek. Zatem funkcja (= algorytm = TM) jest rozstrzygalna. W przeciwnym razie jest to nierozstrzygnięte. Nie jestem pewien co do tego. Co myślisz? Czy moje myślenie o tym wszystkim jest prawdziwe? Powodem, dla którego wprowadzam funkcję w programowaniu funkcjonalnym, ponieważ myślę, że jest to bliższe idei TM. Jakie masz doświadczenia z innymi językami programowania, które sprawiają, że czujesz ideę TM i ogólnie idee informatyki? Czy możesz określić, jak myślisz?


title: Jak nazywa się ten code-get-together...hackathon, codecamp, codejazz czy?

text: Ostatnio w Danii powstała ta mała subkultura, w której geekowie spotykają się i wspólnie hackują swoje projekty w wolnym czasie. Podstawą jest to, że nie ma sesji, nie ma keynote ani niczego, jest to po prostu spotkanie i uzyskanie czasu w najlepszym czasie na Twój projekt. Możesz bawić się czymkolwiek zechcesz, możesz też siedzieć i pomagać ludziom przez cały dzień… prawie cały dzień otwarty. Mam trochę trudności z określeniem, czy pasuje do którejś z nazw w temacie, ponieważ widzę, że codecamp ma temat, hackathon wydaje się być deweloperami, którzy razem robią duże rozwiązanie ... i cóż, kodjazz nie jest tak naprawdę zdefiniowany nigdzie, ale inny Duńska grupa użytkowników użyła tego terminu.


title: Co to jest funkcja raportowania?

text: Mając do czynienia z aplikacją korporacyjną często słyszałem wymóg „funkcji raportowania”, „uruchamiania raportów”, „generowania raportów” itp. Do czego to się odnosi?


title: Jak sprawdzić, czy użytkownik naprawdę pracuje w firmie, w której się zarejestrował?

text: Buduję stronę internetową, która pozwoli firmom na rejestrowanie się i publikowanie informacji oraz posiada wewnętrzną sieć, ale jaki jest najlepszy sposób na zweryfikowanie, czy osoba wypełniająca formularz rejestracyjny naprawdę należy do firmy, którą deklarują, ponieważ nie chcę, żeby Joe Bloggs zapisał się, mówiąc, że pracuje dla firmy XYZ, kiedy tak naprawdę nie pracuje. Czy jest logiczny sposób na zrobienie tego, czy jest to zadanie niemożliwe?


title: Najlepszy sposób na zorganizowanie repozytorium Git dla Maven

text: Potrzebuję porady, jak ustrukturyzować nasze projekty w Git. Używamy Javy, a naszym narzędziem do budowania jest Maven. Maven zakłada, że ostatecznie wszystkie Twoje projekty mają wspólnego przodka. Maven może być również prawdziwą królową dramatu, gdy sprawy nie są ustawione _dokładnie_ tak, jak fundacja Apache przygotowuje swoje projekty (każdy, kto używa wtyczki do wydania, prawdopodobnie wie, o czym mówię). Chcemy nadrzędnego pom najwyższego poziomu, który kontroluje wersje wtyczek i konfigurację kompilacji (konfiguracja repozytorium, jakie artefakty należy zbudować, konwencje nazewnictwa, wersje wtyczek itp.). Maven chciałby, aby wszystkie nasze projekty IT znajdowały się w podfolderach tego głównego projektu. Oznacza to jedno ogromne repozytorium Git dla organizacji. To sprawi, że środowisko będzie bardzo hałaśliwe. Jeśli istnieją dwa zespoły pracujące nad niepowiązanymi projektami, będą musiały stale pobierać połączenia z drugiego zespołu. Idealnie chciałbym mieć jedno repozytorium na projekt. Ale tego rodzaju koliduje z niezwykle hierarchicznym modelem Mavena, który _wymaga_ by podprojekty były podfolderami. Potrzebuję porady, jak ludzie pogodzili te dwa modele... dziękuję!


title: Czy bardziej sensowne byłoby użycie frameworka do zbudowania witryny handlowej, czy zbudowanie jej od podstaw?

text: Pamiętaj, znam PHP tak, jak nauczyłem się go dla tego konkretnego projektu. Myślałem też o używaniu magento, ale kiedy przez to przeszedłem, zdałem sobie sprawę, że będę musiał nauczyć się ich frameworka. Jestem bardzo przeciwny poświęcaniu więcej czasu na naukę frameworka, zamiast dalszego poszerzania mojej wiedzy o PHP. Wziąłem kurs informatyki, na którym zamiast wykorzystywać już stworzone obiekty i funkcje, musieliśmy je tworzyć, aby dowiedzieć się, jak faktycznie działają. To było niesamowite doświadczenie edukacyjne. Wiem, że wymaga to dużo pracy, głównie ze względu na to, że inni robili podobne rzeczy, ale moje główne dwa powody to: 1. Zbudowałbym tylko to, czego potrzebuję, żadnych dodatkowych funkcji nie robię nie. 2. Miałbym konkretne potrzeby, rzeczy, które i tak musiałbym kodować. Jedyne, czego bym potrzebował, to proste funkcje e-commerce, takie jak uwierzytelnianie użytkownika, strony produktów (użytkownik, administrator), koszyk i oczywiście baza danych. Wszystko inne, czego potrzebuję, byłoby dostosowane do konkretnych potrzeb witryny i sposobu, w jaki będę ją wdrażał. Jeśli to pomoże w zobrazowaniu tego, gdzie jestem, jaka byłaby najlepsza rekomendacja od profesjonalistów. Dziękuję Ci.


title: Jak potwierdzasz potrzebę dokumentacji?

text: Kiedyś pracowałem nad projektem, w którym menedżer, który nie zna technologii, kazał zespołowi spędzać pół godziny na dokumentowaniu tego, co właśnie zrobili, aby ktoś, kto nie znał technologii, mógł ją zrozumieć. Osobiście uważałem, że to ogromne marnotrawstwo, ale nie było sposobu, aby potwierdzić, że to było lub nie było marnotrawstwem. Czy istnieje lekki środek walidacji potrzeby dokumentacji przed zobowiązaniem się do sporządzenia dokumentacji? **Przykład 1:** Załóżmy, że zespół używa samodzielnego oprogramowania bez dostosowywania. Test może publikować opis stanowiska co miesiąc, aby uzyskać dostęp do prawdopodobieństwa znalezienia eksperta w zakresie oprogramowania na akceptowalnym poziomie kosztów. **Przykład 2:** Automatycznie pobieraj zmienne, funkcje itp. z kodu, a dwa tygodnie po napisaniu kodu generuje pytania, które automatycznie oceniają własną wiedzę programistów na temat własnego kodu bez dostępu do kodu. Jeśli programista nie jest w stanie odpowiedzieć na pytania, musi wyjaśnić kod innemu programiście, a on sam decyduje, czy należy stworzyć dokumentację. **Przykład 3:** Innym sposobem byłoby wzięcie prawdopodobieństwa użycia kodu na podstawie analizy środowiska wykonawczego i porównanie go z zmiennością danych wejściowych/wyjściowych i historycznym prawdopodobieństwem zgłoszenia błędów/błędów z tej sekcji kodu i/lub prośby klientów o aktualizację kodu. Szczerze mówiąc, nie wierz, że są to świetne przykłady, ale są raczej próbą przedstawienia ogólnego sedna tego, o co mi chodzi, i że celem jest najbardziej ogólnie użyteczna, prosta metoda do zrobienia tego.


title: Wątpliwości dotyczące wydajności w Javie z Hibernate

text: Załóżmy, że w jakimś projekcie opartym na ORM-ie (powiedzmy Hibernate) próbuję pobrać tylko kilka kolumn, a nie cały obiekt, który może mieć więcej niż 20 atrybutów. Piszę HQL jak `"select attr1, attr2 from Entity"`. Wiem, że nie korzystam z Hibernate, ponieważ otrzymam wynik tylko w postaci Object, a następnie muszę wykonać dla niego jawne rzutowanie. Ale czy będzie to właściwe podejście do osiągnięcia optymalizacji z perspektywy bazy danych, czy też dlatego, że wykonuję jawne rzutowanie, koszt nadal będzie taki sam?


title: Ważne pytania, które należy zadać klientowi na briefingu (tworzenie stron internetowych)

text: Właśnie przenoszę się do freelancingu (moim głównym sektorem będzie projektowanie stron internetowych / tworzenie stron internetowych). Mam kilka projektów dla przyjaciół, a także jeden lub dwa projekty „profesjonalne” w przygotowaniu. Chciałbym wiedzieć, jakie są niektóre z najważniejszych rzeczy, które musisz usłyszeć od swojego klienta przed rozpoczęciem procesu tworzenia jego strony internetowej: Oto kilka przykładów, które mogę przytoczyć: 1. Lista życzeń funkcjonalności strony (formularze kontaktowe / konkretne strony itp.) 2. Czy mają już konto Google Analytics 3. Wszelkie inne elementy śledzące 4. Wcześniejszy kod, który musi zostać zintegrowany 5. Pożądana estetyka witryny 6. Dyskusja na temat SEO Tak, naprawdę chciałbym wiedzieć, co Ty pomyśl, to najważniejsze rzeczy do omówienia i ustalenia od klienta przed rozpoczęciem rozwoju.


title: Czy rotacja programistów w projekcie to dobry czy zły pomysł?

text: Pracuję w małym zespole, który rozpocznie pracę nad nowym dużym projektem z innym małym zespołem. Drugi zespół pracuje obecnie nad starszym systemem, nad którym pracowali od lat. Menedżer zdecydował, że programiści z mojego zespołu będą się zmieniać co kilka miesięcy, aby zastąpić programistów pracujących na starszym systemie. W ten sposób drugi zespół będzie miał szansę pracować nad nowym projektem i lepiej zrozumieć nowy system. **Chcę poznać zalety i wady (jeśli występują) rotacji programistów z projektu co 2-3 miesiące.** Wiem, że to jest podobne pytanie do „Czy rotacja głównego programisty to dobry czy zły pomysł? ”, ale to pytanie dotyczy głównego programisty. To pytanie dotyczy rotacji całego zespołu w ramach projektu i poza nim (kierownictwo technologiczne nowego projektu może być rotowane lub nie - jeszcze nie wiem).


title: Jak naprawić wzór kopiowania/wklejania?

text: Tam, gdzie pracuję, ludzie (konsultanci) czują potrzebę jak najszybszego udostępnienia funkcji. Więc zamiast spędzać zbyt dużo czasu na myśleniu o tym, jak robić rzeczy we właściwy sposób lub dlatego, że nie chcą niczego zepsuć, kod jest kopiowany z różnych modułów i modyfikowany. Nie jest łatwo temu zapobiec, ponieważ baza kodu jest otwarta dla całej firmy. Wiele osób nad tym pracuje. Teraz, gdy bałagan już istnieje, jaki jest najlepszy sposób na usunięcie tych zwolnień bez zbytniego łamania?


title: Najlepszy sposób na skontaktowanie się z firmą Microsoft w sprawie ułatwień dostępu w ich narzędziach programistycznych?

text: Jestem całkowicie niewidomym programistą, który chciałby się nauczyć .net. Wygląda na to, że dodatki Visual Studio express nie są dostępne, ponieważ skrypty dostarczane z Jaws for Widnows, oprogramowanie do czytania ekranu, którego używam, wymaga modelu obiektowego VS, aby udostępnić Visual Studio. Nie jest to dostępne w ekspresowych dodatkach, więc skrypty mogą działać częściowo lub wcale. Żadna z opcji wymienionych w tym pytaniu nie dotyczy mnie i nie chcę wydawać 500 USD lub więcej na zakup profesjonalnego programu Visual Studio, gdy mogę go nigdy nie używać do pracy. Jeśli poświęcę czas na wypróbowanie wersji ekspresowych i napotkam problemy, czy jest jakiś sposób na skontaktowanie się z firmą Microsoft bez utraty moich pytań/opinii w czarnej dziurze?


title: Najlepsze praktyki dotyczące wielu arkuszy stylów

text: Obecnie pracuję nad projektem, który ma jeden duży arkusz stylów na około 20 stron. Arkusz stylów zawiera kilka stylów, które są specyficzne dla określonych stron. Chciałbym podzielić arkusz stylów, aby dla każdej strony był jeden arkusz stylów z jednym głównym arkuszem stylów, który obsługuje wszystko, co ogólne. Powodem, dla którego chcę to zrobić, jest to, aby ludzie mogli pracować na wielu stronach bez martwienia się o to, kto ma wyewidencjonowany duży arkusz stylów (używam TFS). Czy to dobra praktyka?


title: Kompilowalne nowoczesne alternatywy dla C/C++

text: Rozważam napisanie nowego oprogramowania. Wydajność będzie krytyczna, więc obawiam się używania interpretowanego lub języka lub takiego, który używa warstwy emulacji (czytaj java). Co prowadzi mnie do myślenia o użyciu C (lub C++), jednak oba są dość długie w zębie. Nie używałem ich od dawna. Domyślam się, że w ciągu ostatnich 20 lat ktoś powinien był stworzyć coś, co jest dość popularne, przyjemne w kodowaniu i przestrzegane. Jakie są bardziej nowoczesne alternatywy dla C do pisania kodu skompilowanego o wysokiej wydajności? _edytuj w odpowiedzi na komentarze_ Jeśli C++ jest inną bestią niż 15 lat temu, rozważyłbym to, chyba miałem założenie, że ma pewne nieodłączne problemy. Równoległość byłaby ważna, ale prawdopodobnie nie na wielu maszynach. _edytuj po podaniu tiku_ podałeś tik do zxcdw, ale dzięki za wszystko, że c++11 jest warte obejrzenia odpowiedzi.


title: Dlaczego języki nie używają jawnego przeskoku w instrukcjach switch?

text: Czytałem Dlaczego musimy używać `break` w `switch`? i to skłoniło mnie do zastanowienia się, dlaczego niejawne przeskakiwanie jest dozwolone w niektórych językach (takich jak PHP i JavaScript), podczas gdy nie ma wsparcia (AFAIK) dla wyraźnego upadku. To nie jest tak, że trzeba by utworzyć nowe słowo kluczowe, ponieważ „kontynuuj” byłoby całkowicie odpowiednie i rozwiązałoby wszelkie niejasności dotyczące tego, czy autorowi chodziło o to, aby sprawa się nie powiodła. Obecnie obsługiwana forma to: switch (s) { case 1: ... break; przypadek 2: ... //niejednoznaczne, czy zapomniano o przerwie? przypadek 3: ... przerwa; domyślnie: ... przerwa; } Natomiast sensowne byłoby zapisanie tego jako: switch (s) { case 1: ... break; przypadek 2: ... kontynuuj; //jednoznaczne, autor wyraźnie określił przypadek 3: ...przerwa; domyślnie: ... przerwa; } Na potrzeby tego pytania zignorujmy kwestię tego, czy upadki są dobrym stylem kodowania. ### Czy istnieją jakieś języki, które pozwalają na przeskakiwanie i czynią to wyraźnym? ### Czy istnieją jakieś historyczne powody, dla których `switch` zezwala na niejawne przejście zamiast jawnego?


title: Dlaczego książki mówią: „kompilator przydziela miejsce na zmienne w pamięci”?

text: Dlaczego książki mówią: „kompilator przydziela miejsce na zmienne w pamięci”. Czy nie jest to plik wykonywalny, który to robi? Mam na myśli na przykład, jeśli napiszę następujący program, #include <iostream> używając przestrzeni nazw std; int main() { int foo; zwróć 0; } i skompiluj go, i pobierz plik wykonywalny (niech będzie to program.exe), teraz, jeśli uruchomię program.exe, ten plik wykonywalny sam wyda polecenie przydzielenia miejsca na zmienną foo. Czy nie? Proszę wyjaśnij, dlaczego książki ciągle mówią: „kompilator zrobi to… zrób tamto”.


title: Jak 20q. Pracuje?

text: Jak działa aplikacja internetowa http://20q.net? Czy mogę napisać podobny program w mniejszej skali, a jeśli tak to w jaki sposób?


title: Co robisz, gdy użytkownik prosi o funkcję, której nie zaimplementujesz?

text: Co robisz, gdy użytkownik prosi o złożoną funkcję, którą mógłbyś zaimplementować, ale nie zrobisz tego, ponieważ 1) dodaje to niepotrzebnej złożoności innym użytkownikom 2) nie zrobisz tego jako opcję, ponieważ nie chcesz, aby panel ustawień był skomplikowany. Napisałem aplikację na iOS i jest kilku użytkowników, którzy prosili mnie o kilka złożonych funkcji, których nie mogę zrobić z powyższych powodów. Przez większość czasu odpowiadałem im tylko, że „Weźmiemy to pod uwagę”. Wyjaśnienie im, że są w mniejszości, która chce tej funkcji, też nie pomoże. Więc co robisz w takim przypadku?


title: Jak testujesz oprogramowanie wrażliwe na czas?

text: Przez wrażliwy na czas rozumiem na przykład skrypt, który działa tylko raz w miesiącu lub skrypt, który działa nieprzerwanie, ale daje określone wyniki tylko raz w miesiącu. Oczywiście możesz testować jednostki w wielu przypadkach, ale są wyjątki (w moim rozumieniu). Ostatnim przykładem, na który natknąłem się, było skonfigurowanie zadania crona, które będzie uruchamiane przedostatniego dnia każdego miesiąca. Wymagało to użycia skryptu powłoki z zakładką cron, aby uzyskać poprawny dzień miesiąca dla crona, coś takiego: `1 0 [polecenie powłoki] * * [mój skrypt]` Nie byłem zaznajomiony ze skryptem i ogólnie nie znałem skryptów powłoki więc nie miałem dobrego sposobu na przetestowanie tego, poza czekaniem na koniec miesiąca i sprawdzaniem, czy skrypt działa poprawnie (właściwie moim rozwiązaniem było znalezienie współpracownika, który wiedziałby dużo więcej o skryptach cron i shell, niż ja zrobił). Jestem więc ciekaw, czy istnieją jakieś przydatne obejście do testowania skryptów wrażliwych na czas.


title: AngularJS zajmujący się dużymi zbiorami danych (Strategia)

text: Pracuję nad opracowaniem osobistej przeglądarki rejestrowania temperatury w oparciu o moje dane dotyczące curlingu rasppi w interfejsie API mojego serwera WWW. Temperatury są mierzone co 2 sekundy i mogę mieć kilka czujników temperatury wysyłających dane. Nie trzeba dodawać, że będę miał dużo danych do przetworzenia nawet w ciągu godziny. Zaimplementowałem bardzo proste interfejsowe API stronicowania z serwera, więc serwer nie ma limitu czasu i obecnie zwraca dane tylko w 1000 jednostek na wywołanie, a następnie przegląda dane. Wpadłem na pomysł, aby początkowo pokazać powiedzmy ostatnie 20 minut danych z czujnika (lub wszystkich czujników w zależności od wyborów użytkownika), a następnie pozwolić użytkownikowi wybrać inne ramy czasowe, z których mają być wyświetlane dane. Problem pojawia się, gdy chcesz wyświetlić wszystkie czujniki lub dłuższy okres czasu (powiedzmy 24 godziny). Czy istnieje najlepsza praktyka obsługi tak dużej ilości danych? Czy przydałoby się załadować te pierwsze 20 minut do podglądu na żywo, a następnie buforować w pamięci lokalnej mniej więcej w ciągu ostatnich 24 godzin? Nie udało mi się jeszcze znaleźć przyzwoitego pomysłu na to w użyciu, chociaż istnieje wiele sposobów rozwiązania tego problemu. Szukam tylko kilku sugestii, co może zapewnić dobrą równowagę między dobrą wydajnością a brakiem buforowania całego zestawu danych po stronie klienta (ponieważ po tygodniu danych może to być niewykonalne).


title: Ile czasu inwestujesz w odkrywanie nowych technologii?

text: Czasami widzę potencjał w nowej technologii np. AIR (nie nowy, ale nie próbowałem go zbyt często) i bawię się nim. Po pewnym czasie czuję się zainspirowany do wypróbowania z tego nowego osobistego projektu. To właśnie podczas tego projektu czasami znajduję inną "technologię" np. Silverlight bardziej odpowiedni. Może łatwiej jest coś zrobić na tej platformie. Ale jest wiele alternatyw dla takich rzeczy i po pewnym czasie czuję, że zmarnowałem swój czas po prostu próbując „nowej zabawki”, spędzając czas na nauce jej, aby zacząć itp. Tylko po to, aby zdecydować, że podjąłem złą decyzję. Ile czasu zajmuje Ci odkrywanie nowych technologii? A może trzymasz się tego, co już wiesz?


title: Znajdowanie błędów w zadaniach

text: Razem z kolegą prowadzimy tablicę Kanban w 2 miejscach pracy, wprowadzając do zespołu rodzaj zwinnego/chudego procesu scrum-ban. Pomagając nam w przejściu na pracę bardziej zorientowaną na przepływ i ciągłe zwolnienia. Chciałem tylko poprosić cię o radę, że gdy zadanie jest testowane przez partnerów lub testowane przez zespół testowy w dalszej części planszy, co powinno się stać z biletami, w których znaleziono usterkę? Wypróbowaliśmy 2 metody: * Utwórz nowy bilet dla problemu i prześledź go przez tablicę, aż dogoni oryginalny uszkodzony bilet. Następnie przeprowadź ich oboje razem przez planszę. * Przenieś oryginalny bilet z powrotem do „do zrobienia” lub „pracy w toku”. Czy ktoś ma jakieś sugestie dotyczące najlepszych praktyk w tej sytuacji?


title: Ścieżka replikacji

text: Obecnie pracuję nad systemem replikacji, aby zsynchronizować dane między dowolną liczbą serwerów. Niektóre z tych serwerów istnieją w jednym klastrze w jednej sieci LAN. Inni istnieją gdzie indziej na świecie. Zastanawiam się, jakie są zalety/wady różnych ścieżek, którymi wybieramy przepływ replikowanych danych między serwerami? Innymi słowy, jakie są różne strategie równoważenia obciążenia procesu replikacji?


title: Korzystanie z CC Music w moim projekcie

text: Cóż, nie jestem pewien, czy jest to właściwa strona StackExchange, aby o to zapytać, ale ponieważ mogę zaakceptować pytanie dotyczące prawa oprogramowania, myślę, że jest to prawie na temat tutaj. Jeśli używam muzyki Creative Commons do użytku niekomercyjnego w moim projekcie, to w porządku, jeśli mój produkt końcowy jest darmowy. Ale co, jeśli będzie wspierany przez reklamy? Czy uważa się to za wykorzystanie komercyjne? A jeśli robię płatną wersję bez reklam, myślę, że jest to użycie komercyjne. Przykład: używanie tej muzyki jako bgm w grze


title: Wieloplatformowe frameworki i aplikacje o wysokim profilu

text: Byłem ciekaw, jaki wieloplatformowy framework robią twórcy aplikacji o wysokim profilu, takich jak Photoshop, Guitar Pro itp.; posługiwać się. Wszystkie one bezproblemowo integrują się z systemem operacyjnym do tego stopnia, że czasami można założyć, że aplikacja została opracowana wyłącznie dla tego systemu operacyjnego. Programuję w Qt od około roku i o ile wiem, biorąc pod uwagę moją wiedzę i umiejętności z Qt, nie jest możliwa pełna integracja Twojej aplikacji z MAC OS. (np. zobacz mój nierozwiązany problem z Qt i ikoną Docka MAC OS ) Czy wszystkie używają zastrzeżonych, wewnętrznych frameworków? Po prostu brakuje mi niezbędnego 'know-how', aby to osiągnąć z Qt? Czy istnieją lepsze alternatywy dla wielu platform?


title: Korzystanie z aplikacji na stronie internetowej

text: Czy istnieje dobry sposób na uruchomienie aplikacji C# po stronie klienta zamiast JavaScript? Zrobiłem trochę frontendu z JavaScript i backendem C# do tworzenia stron internetowych w starej pracy, ale wkrótce sam jestem zainteresowany hostingiem strony internetowej. Mam aplikację C#, którą chciałbym być open source, ale zanim ludzie zechcą pobrać, chciałbym, aby mogli z niej korzystać. Na podstawowym poziomie jest to prosty edytor tekstu, ale w sednie jest o wiele więcej. Mógłbym napisać to w JavaScript, ale wymagałoby to ode mnie prowadzenia dokumentacji i aktualnych zmian w JavaScript i C# w takim przypadku. Myślałem o stworzeniu panelu AJAX i jakoś załadowaniu mojej aplikacji winform do ramki, ale nie wiem, jak i jakie słowa wygooglować, ponieważ nigdy wcześniej tego nie robiłem, z wyjątkiem AJAX.


title: Frazy kluczowe pokazujące korzyści z certyfikowanego testowania oprogramowania dla „Twojej” firmy?

text: Zastanawiam się, jakie frazy miałyby największy wpływ na kontakt z biznesem, aby poinformować ich, dlaczego powinni testować swoje oprogramowanie. Oczywiście masz łatwe; zmniejszyć koszty/ryzyko, poprawić stabilność/niezawodność/użyteczność. Ale to tylko słowa, jak zamienić je w coś konkretnego, co nawet ludzie żyjący we własnym świecie mogliby dostrzec potencjalną korzyść z testowania oprogramowania. Szukam wspólnych doświadczeń. A jak chciałbyś, aby jako programista podszedł do Ciebie tester oprogramowania? PS: Pomocy! Nie wiem, jak właściwie zadać to pytanie!


title: Jak zapewnić integralność danych (gdy zaangażowany jest system zewnętrzny)

text: Załóżmy, że masz to zadanie w aplikacji, która składa się z dwóch części: 1) Dostarczenie pliku do systemu zewnętrznego (nie pod Twoją kontrolą) 2) Transakcja bazy danych w naszym systemie, z informacją o tym dostarczeniu (co zostało wysłane, kiedy i przez kogo) Jeśli którakolwiek z tych dwóch części ulegnie awarii, stan naszego systemu będzie niespójny. Jeśli plik został wysłany, a baza danych nie ma o nim informacji, jest to błąd. Podobnie, jeśli transfer pliku nie powiódł się, ale informacje w bazie sugerują coś innego, również jest to błąd. Jak podejść do tego zadania, aby zapewnić, że baza danych pozostanie w spójnym stanie po każdej próbie wykonania zadania? Nie mam doświadczenia w _właściwym_ radzeniu sobie z takimi problemami - zawsze mogę zastosować naiwne podejście i udawać, że pisanie do bazy danych nigdy nie zawiedzie. :-) Chciałbym jednak zrobić coś lepszego. Dwie podstawowe odmiany, które tu widzę, pozostawiają coś do życzenia (pseudokod): A: try: commitTransaction() deliveryFile() catch TransactionError: // Nie ma problemu, nigdy nie podjęto próby dostarczenia. catch DeliveryError: // System powie teraz, że została dostarczona, // mimo że tak nie jest. B: try: deliveryFile() commitTransaction() catch TransactionError: // System powie teraz, że nic nie zostało dostarczone, // mimo że tak. catch DeliveryError: // Wystarczająco łatwe w obsłudze: rollbackTransaction() Jestem pewien, że istnieje akceptowalne rozwiązanie tego problemu i że po prostu nie mogę go znaleźć?


title: Czy programowanie jest subkulturą?

text: Przeglądałem ten artykuł: http://en.wikipedia.org/wiki/Subkultura Co mnie skłoniło do myślenia, to programowanie subkultury? Po pewnym czasie zacząłem się nad tym zastanawiać, a jeśli wejdziesz naprawdę w szczegóły, to jest to bardzo złożone i interesujące pytanie. Możesz nawet zadać sobie pytanie, czy (ciężcy) użytkownicy internetu (społeczności) są subkulturą, a programiści kulturą wewnątrz. Myślę, że to może być ciekawa dyskusja, mam nadzieję, że Ci się spodoba! UWAGA: Połączyłem artykuł wiki, ponieważ może to być dobry punkt odniesienia, może możesz oprzeć swoją odpowiedź na propozycji Kena Geldera, aby rozróżnić subkultury. Ale powinno to być trochę więcej niż intuicja. Z góry dziękuję! Trufa


title: Jak długo należy odczekać przed powtórną rozmową kwalifikacyjną w tej samej firmie?

text: Załóżmy, że rekruter skontaktował się z Tobą w sprawie stanowiska w średniej lub dużej firmie, poszedł na rozmowę kwalifikacyjną itp. i poważnie rozważył stanowisko, ale ostatecznie zrezygnowałeś z dołączenia lub zrezygnowali z zatrudnienia Cię w tym konkretnym przypadku. stanowisko, ponieważ pojawił się ktoś bardziej wykwalifikowany. Ale czas mija, twoje okoliczności się zmieniają i zdajesz sobie sprawę, że praca tam może być teraz lepszym pomysłem (lub mają inne wolne stanowiska)... Jak długo powinieneś odczekać przed kolejną rozmową kwalifikacyjną w tej samej firmie?


title: Czy dobrą praktyką jest deklarowanie i ustawianie właściwości w klasach abstrakcyjnych?

text: Używam PHP i projektuję niektóre klasy abstrakcyjne. Mogę deklarować właściwości ze stałymi wartościami w mojej klasie abstrakcyjnej i uzyskiwać do nich dostęp/nadpisywać z dowolnej klasy, która to rozszerza, bez ponownego deklarowania ich w ramach którejkolwiek z klas rozszerzających. Korzyścią z tego jest mniej powtarzalnego pisania, ale wadą jest to, że z biegiem czasu oryginalna struktura/układ tych abstrakcyjnych właściwości zostaje zapomniana i może pozostać tam z domyślnymi wartościami statycznymi lub nawet całkowicie zapomniana (nie używana). Jak to jest obsługiwane w środowiskach profesjonalnych? Zakładam, że zostało to przemyślane wcześniej i albo jest faworyzowane, albo nie? Staram się przestrzegać dobrych zasad OOP, takich jak SOLID, DRY i KISS, ale nie widziałem w nich tego konkretnego problemu. (może przegapiłem to podczas badania?)


title: Przykładowe warunki świadczenia usług dla kontraktowania Agile?

text: Z mojego doświadczenia jako niezależnego programisty, miałem pewne problemy z klientami, którzy nalegają na uzyskanie wyceny ponad marne wymagania. Następnie oczekują, że zajmę się zmianami wymagań, czasami na późnym etapie projektu, i trzymam się tego oszacowania. Ponieważ sam nigdy nie wymyśliłem jakichś TOSów. dostosowany do tej sytuacji, skończyłem związany umową o bardziej ogólnym charakterze, która nieuchronnie stała się niezadowalająca... Język prawniczy nie jest moją mocną stroną, szukałem jakiegoś publicznie wydanego T.O.S. spróbować zaradzić tej sytuacji. Najlepiej byłoby, gdyby pochodziły one ze sprawnego sklepu, w ramach systemu licencjonowania dopuszczającego instrumenty pochodne. Pomogłoby mi to określić podstawy kontraktowe dla zdrowych relacji z klientami, zwłaszcza w przypadku zmian.


title: Jako lider zespołu/menedżer, jakiej roli powinienem szukać po przejściu na Scrum?

text: Moja firma chce zacząć używać Scrum, a w prawdziwym scrumie nie ma miejsca na prawdziwego lidera zespołu (managera). Jaki jest następny krok lidera zespołu deweloperów? Czy powinienem być (głównym) architektem systemowym / liderem technologicznym, czy szukać innej pracy w zarządzaniu? Podoba mi się część dotycząca zarządzania i część techniczna, a celem jest wiceprezes ds. badań i rozwoju/CTO.


title: Czy wymuszone plany rozwoju zawodowego są przydatne?

text: Wiele firm, zwłaszcza większych, ma dla swoich pracowników obowiązkowe plany rozwoju zawodowego. Pracownicy i menedżerowie ustalają spersonalizowany plan rozwoju zawodowego i co jakiś czas śledzą postępy. Czy jako programista uważasz takie PDP za przydatne, czy wypełniasz swoje zobowiązania? Czy jako menedżer uważasz, że takie PDP przynoszą wartość firmie i poprawiają ogólną jakość pracowników? Wydaje się, że dobrzy deweloperzy będą się dalej kształcić i starać się być lepszymi niezależnie od procedur firm, a źli nie. Czy są korzyści z posiadania PDP, czy jest to po prostu coś, co menedżerowie czują, że muszą to zrobić?


title: Licencje typu copyleft — trzeba przypisać?

text: Obecnie oceniam, której licencji użyć w moim następnym projekcie systemu operacyjnego, i sprawy stają się coraz bardziej interesujące po tym, jak zdecydowałem, że naprawdę chcę _zrozumieć_, co oznaczają te licencje. Do tej pory po prostu licencjonowałem wszystko pod MIT, ponieważ lubię MIT, a ich licencja jest ładna i krótka. I prawdopodobnie dlatego, że nie miało to większego znaczenia, ponieważ tylko garstka ludzi faktycznie używała moich produktów. Ale teraz jestem u progu wydania czegoś, co z pewnością będzie używane przez wiele osób, a także będzie podlegało poważnym modyfikacjom, więc chcę wybrać odpowiednią licencję. Z tego co rozumiem, istnieją dwie grupy licencji; Prawa autorskie i copyleft. Teraz czytam (i myślę, żeby zrozumieć) klauzulę MIT i BSD-2/3, ale naprawdę mam problem ze zrozumieniem istoty (L)GPL i tym podobnych. Moim głównym problemem jest; Zawsze chcę być wymieniony w pracach pochodnych mojego projektu. Tak naprawdę nie obchodzi mnie, czy jest używany zastrzeżony, czy darmowy, chcę się tylko upewnić, że każdy, kto czyta kod, widzi „ach, to jest oryginalny autor” (odnosi się do mnie). Czy w licencjach typu copyleft jest klauzula, która zapewnia takie przypisanie? A może można to zrobić tylko przy użyciu liberalnych praw autorskich?


title: Notacja używana w „Perłach projektowania algorytmów funkcjonalnych”

text: Właśnie kupiłem książkę „Perły projektowania algorytmów funkcjonalnych” autorstwa Richarda Birda. Niestety książka nie zawiera żadnej sekcji opisującej używaną notację. Możesz zobaczyć zawartość książki, przechodząc na stronę Amazona i klikając na okładkę książki, aby zajrzeć do środka. http://www.amazon.com/Pearls-Functional-Algorithm-Design-Richard/dp/0521513383 Jeśli ktoś mógłby mi podać imię i/lub odniesienie do zrozumienia użytej notacji. W ten sposób mogłem właściwie przeczytać i zrozumieć algorytmy.


title: Rzeczywiste scenariusze dla metod chronionych

text: Dzisiaj zauważyłem, że w zasadzie nigdy nie używam `chronionych` metod w kodzie C++, ponieważ rzadko odczuwam potrzebę wywoływania niepublicznych metod rodzica. Używam chronionych w Javie we wzorcu metody szablonowej, ale ponieważ możesz przesłonić prywatne metody w C++, nie potrzebuję tam również `protected`. Więc jakie są rzeczywiste scenariusze, w których chciałbym użyć `chronionych` metod w kodzie C++? (Zauważ, że ogólnie nie przepadam za dziedziczeniem implementacji, co może wiele wyjaśnić...)


title: Jakie są podejścia do analizy kosztów i korzyści metodologii rozwoju?

text: Istnieje wiele **praktyk** rozwoju (TDD, ciągła integracja, kodowanie kowbojskie), **zasad** (SOLID, warstwy abstrakcji, KISS) i **procesów** (RUP, Scrum, XP, Waterfall) . Nauczyłem się, że nie możesz ślepo podążać za żadną z tych rzeczy, ale musisz wziąć pod uwagę kontekst i ROI (zwrot z inwestycji). Moje pytanie brzmi: Skąd wiesz, czy uzyskujesz dobry zwrot z inwestycji, stosując określoną metodologię? Metryki, przypuszczenia, doświadczenie? Czy istnieją metody analityczne? A może to tylko pytanie warte milion dolarów w inżynierii oprogramowania, na które nie ma odpowiedzi? Dla wyjaśnienia, kiedy mówię ROI, mam na myśli ogólną wartość biznesową. Nie musi to wykluczać szczęścia programistów — jeśli wszyscy programiści zrezygnują (lub co gorsza: staną się apatyczni) po 6-miesięcznym marszu śmierci, tracisz całe techniczne doświadczenie w organizacji. Jeśli klienci są niezadowoleni, będziesz potrzebować więcej pracowników obsługi klienta lub stracisz interesy.


title: Podejście do projektowania dzienników

text: Wycinanie lasów zawsze było dla mnie koszmarem! Teraz muszę go ponownie zaimplementować dla systemu proxy. W tej aplikacji proxy niektóre systemy proszą system proxy o wywołanie innych usług. To, co muszę zarejestrować, to * Czas żądania * IP żądającego * Parametry żądania w formacie XML * Nazwa żądanej usługi * Metoda żądanej usługi * Czas odpowiedzi * Dane odpowiedzi w formacie XML * Komunikat odpowiedzi (Jeśli wystąpi jakikolwiek wyjątek, zostanie on zarejestrowany jako Komunikat) dołącz dwa wiersze do moich metod: // Log Request Task.Factory.StartNew(() => Logger.Log(RequestParameters.ToXML(),Assembly.GetCallingAssembly().FullName, MethodBase.GetCurrentMethod().Name, DateTime.Now )); // Wywołaj żądaną usługę i uzyskaj odpowiedź // Log Response Task.Factory.StartNew(() => Logger.Log(Response.ToXML(), DateTime.Now)); Chcę również rejestrować transakcje zagnieżdżone. Załóżmy, że transakcja zawiera żądanie i odpowiedź. Transakcja może zawierać wiele innych transakcji wewnętrznych. Kiedy otrzymam żądanie, powinienem zarejestrować transakcję i wstawić żądanie dla niej, później, po otrzymaniu odpowiedzi, powinienem zaktualizować odpowiedź o transakcji. Zwróć uwagę, że staram się przechowywać relację żądania i odpowiedzi w celu lepszego śledzenia. Jak mogę bezpiecznie dodać tę procedurę logowania do metod? Chcę ograniczyć programistom możliwość implementacji tego systemu rejestrowania we wszystkich metodach, wymagane jest coś takiego jak interfejs lub dziedziczenie treści metody. Czy mogę to zrobić według atrybutów? Więc jak?


title: Przeprowadzenie wywiadu dotyczącego analizy wymagań

text: Dlaczego rozmowy kwalifikacyjne nigdy nie przebiegają zgodnie z planem – i jak się do tego przygotować? Poszukuję następującej pomocy odnośnie tego, jak przygotować się do tych wywiadów i na co mogę zwrócić uwagę, aby jak najlepiej je wykorzystać. Mój projekt informacyjny, skupiony wokół raportowania zarządczego w firmie, jest obecnie na etapie definiowania. Wszyscy moi interesariusze to menedżerowie o większym lub mniejszym zakresie. Moje poprzednie dwa wywiady zaplanowałem dość obszernie, ale w obu przypadkach moi rozmówcy poszli w zupełnie innych kierunkach, dając całkiem interesujące wyniki. Całkowicie zignorowałem przygotowany przeze mnie strumień pytań i starałem się dogadać z rozmówcami. Ale zamiast iść w kierunku wspólnej koncepcji, którą można rozwijać, czuję, że dostaję szczegółowe zdjęcia lokalnych wymagań informacyjnych każdej osoby. Jak przeprowadzić wywiad, który pomoże mi zaangażować uczestników i zastanowić się nad wspólnym rozwiązaniem, ale nie hamuje ich własnych przemyśleń, które dostarczają mi ciekawego materiału na temat źródeł danych, formatowania i ścieżek komunikacji?


title: Szukasz niekryptograficznej funkcji skrótu, która zwraca pojedynczy znak

text: Załóżmy, że mam słownik słów ASCII zapisanych wielkimi literami. Chcę również zapisać te słowa w osobnych plikach, aby całkowita liczba słów w każdym pliku była w przybliżeniu taka sama. Po prostu patrząc na słowo, muszę wiedzieć, w którym pliku powinno się znajdować (jeśli w ogóle tam jest). Zduplikowane słowa powinny znaleźć się w tym samym pliku i zastąpić ostatnią. Moją pierwszą próbą rozwiązania tego problemu jest użycie funkcji `object.GetHashCode()` i `.Trim()` .NET, aby uzyskać jeden z „losowych” znaków, które się pojawią. Zadałem tutaj podobne pytanie. Jeśli użyję tylko jednego znaku `object.GetHashCode()`, otrzymałbym znak kodu skrótu A..Z lub 0..9. Jednak zapisanie wyniku GetHashCode na dysku jest nie-nie, więc potrzebuję substytutu. **Pytanie:** Jaki algorytm (lub podzbiór algorytmu) jest odpowiedni do zaszufladkowania „ciągów” do pojedynczego znaku lub zakresu znaków (np. szesnastkowy 0..F oferuje 16 znaków)? **Użycie w świecie rzeczywistym:** użyję tej odpowiedzi, aby zmodyfikować klucz partycji używany w usłudze Azure Table Storage zgodnie z opisem tutaj


title: Odkładanie pytań o oczekiwania płacowe do drugiej rozmowy kwalifikacyjnej

text: Zwykle na pierwszej rozmowie kwalifikacyjnej pytają mnie o oczekiwaną pensję, ale zazwyczaj czuję się nieswojo, omawiając takie szczegóły na wczesnym etapie. Uważam, że zaniżanie wartości może spowodować zaniżanie sprzedaży, podczas gdy zbyt wysokie może stracić szansę na drugą rozmowę kwalifikacyjną. Lubię też zastanowić się nad moimi doświadczeniami z wywiadów, zanim wyrażę swoje oczekiwania. Niedawno zdałem sobie sprawę, że w jednym z wywiadów poprzedziłem swoją pensję uzasadnieniem, przez co wydałem się trochę zdesperowany i niepewny siebie. Czy jest dobry sposób na odłożenie takich pytań do drugiej rozmowy (oczywiście zakładając, że ją otrzymam) bez szkody dla swoich szans lub osłabienia mojej pozycji?


title: Porady dotyczące uzgadniania niezgodnych danych

text: Pozwolę sobie poprzeć moje pytanie krótkim scenariuszem. Piszemy aplikację do planowania posiłków rodzinnych. Będziemy tworzyć codzienne plany z docelowym celem kalorii i posiłkami, aby osiągnąć to dla naszej nuklearnej rodziny. Nasz cel kaloryczny zostanie obliczony dla każdej osoby na podstawie jej atrybutów (płeć, wiek, waga, poziom aktywności). Najprostszym przykładem jest tutaj atrybut wagi. Kiedy Tata (faszystowski nerd, który narzuca to swojej rodzinie) po raz pierwszy używa aplikacji, wrzuca do niej przybliżone wartości dla Córki. Myśli, że ma 5'2" (157 cm) i 125 funtów (56 kg). Następnego dnia mama siada, aby stworzyć menu i spogląda wstecz na to, co zrobił nieudolny tata, cicho wścieka się, że nigdy nie pamięta niczego o rodzinie , i mówi, że wartość naprawdę wynosi 118 funtów! To pierwsze wprowadzenie do niezgody. W tym scenariuszu wydaje się, że mama jest _prawdopodobnie_ bardziej poprawna niż tata. Chociaż obie wartości są tylko przybliżeniem rzeczywistej wartości. Następnego dnia kochanie Córka decyduje się na skorzystanie z programu i widzi swoją wagę na liście. Z próżności, jaką mogła zebrać tylko nastolatka, zmienia wagę na 110 funtów. Później tego samego dnia Mama wraca do domu z wizyty u lekarza, której Córka potrzebowała i stwierdza, że byłoby dobrze. pomysł zaktualizowania wagi córki w programie. Hurra, inna wartość, tym razem 117 funtów. Teraz, jak pogodzić te punkty danych? Błąd pomiaru, zaufanie do stron, stronniczość i wiele więcej – wszystko to dezorientuje dane. W jakimś wyidealizowanym świecie my miałby autorytet wagi jakiegoś rodzaju, pod warunkiem, że g jedynej prawdy. A co z naszym światem? Wisienką na torcie jest to, że ten pojedynczy punkt danych zmienia się w czasie. Jak rozwiązaliście lub zarządzaliście tym konfliktem?


title: Istnieją dwa rodzaje mieszania kolorów: addytywne i subtraktywne. Co powiesz na kolor XOR-ive?

text: Istnieją dwa rodzaje mieszania kolorów: addytywne i subtraktywne. http://en.wikipedia.org/wiki/Color_mixing Czy jest możliwe, aby model mieszania kolorów był wykonywany w XOR?


title: Rozgałęziłem się, czy nie? Jak połączyć 2 gałęzie

text: Jestem zdezorientowany HMS. Dziś stworzyłem gałąź do pracy nad wdrożeniem nowej funkcjonalności. Myślałem, że to rozgałęzienie zakończyło się sukcesem, gdy się pojawiły. ![branches](http://i.stack.imgur.com/0K0rz.png) Jednak chciałbym połączyć nową gałąź funkcji (test interfejsu NGUI) z powrotem do domyślnej gałęzi głównej **ale nie mam opcję, jeśli kliknę prawym przyciskiem myszy na najnowszym zatwierdzeniu.** Plus, widziałem na innych postach, że wykres powinien pokazywać gałęzie o różnych kolorach od miejsca, w którym nastąpiło rozgałęzienie, tak jak w tym np. ![np](http://i.stack.imgur.com/qgGPy.png) Wszystkie porady są doceniane, właśnie odkryłem DVCS i uważam, że jest taki elegancki. T


title: Jakie są podejścia do uczenia się wielu technologii jednocześnie?

text: Chcę nauczyć się wielu technologii. Obecnie posiadam wiedzę na temat rdzenia Java, C i PHP. Chcę poznać podejście, które należy zastosować, aby nauczyć się wielu rzeczy. Wiem, że jeśli znasz podstawowe koncepcje zachowania języka programowania, można się nauczyć dowolnego języka programowania. Chcę wydawać polecenia takim językiem, żebym mógł z nimi rozmawiać. Dużo koduję i surfuję, ale myślę, że istnieje podejście, dzięki któremu możemy komunikować się lub rozmawiać z językiem programowania.


title: Jak radzisz sobie z konfiguracją wdrożenia swoich klientów z grubej przeglądarki (html/javascript/css)?

text: # Pytanie Dla tych z Was, którzy pracują z "grubymi klientami" html/javascript/css, szczególnie tymi, którzy pracują z niektórymi niezależnymi od klienta API serwerami, jak zarządzać konfiguracją środowiska wdrażania? Czy zarządzasz konfiguracją w czasie kompilacji za pomocą kompilacji dla poszczególnych środowisk (np. QA, STAGE itp.), czy też tworzysz wydanie ogólne i polegasz na konfiguracji po stronie serwera? Co sprawdziło się najlepiej w twoim doświadczeniu? # Tło Moja firma ma kilka różnych grubych klientów przeglądarek. Wszyscy klienci mają wspólne atrybuty. * Działają na zwykłym serwerze API, który nie jest świadomy problemów związanych z konkretnym klientem. * Podczas wdrażania są całkowicie statyczne i dostarczane przez Apache bez przetwarzania po stronie serwera. Oznacza to, że każde środowisko wymaga własnej kompilacji wydania (QA, STAGE, UAT, PROD). Przyglądamy się refaktoryzacji naszych klientów, aby uzyskać ogólne wersje kompilacji i polegać na przetwarzaniu po stronie serwera w celu obsługi niezbędnej konfiguracji specyficznej dla klienta. Wydaje się to oczywistym wyborem, ale chciałbym zobaczyć, jak poradzili sobie z tym inni ludzie w tej samej sytuacji.


title: Uruchom zdarzenia domeny po zakończeniu transakcji

text: Próbuję zaimplementować system zdarzeń domeny, który odpala swoje zdarzenia tylko wtedy, gdy skojarzona jednostka pracy zostanie pomyślnie zatwierdzona. Głównym powodem, dla którego chcę to zrobić, jest to, że mam inne podsystemy, które odczytują bazę danych, które oczekują, że te zmiany zostaną wprowadzone podczas obsługi zdarzenia. Nie chcę również, aby programy obsługi zdarzeń wykonywały swoją pracę (wysyłały e-maile itp.), jeśli zatwierdzenie się nie powiedzie. System składa się z wielu aplikacji ASP.NET (WebForms, MVC i WebAPI). public class Order { private Płatność _payment; publiczne int ID { get; zestaw prywatny; } public dziesiętna Kwota { get; zestaw prywatny; } public void PayUsing(IPaymentProcessor processor) { if (_payment != null) { throw new InvalidOperationException( "Nie możesz zapłacić za zamówienie dwa razy"); } // metoda Process może również wywoływać zdarzenia domeny _payment = processor.Process(Amount); // Raise zapisuje zdarzenie w statycznej Queue<T> DomainEvents.Raise(new OrderPaidEvent(this)); } } public class OrderFulfillmentService { private tylko do odczytu IUnitOfWorkFactory _unitOfWorkFactory; prywatny tylko do odczytu IPaymentProcessor _paymentProcessor; public OrderFulfillmentService( IUnitOfWorkFactory unitOfWorkFactory, IPaymentProcessor paymentProcessor) { _unitOfWorkFactory = unitOfWorkFactory; _paymentProcessor = paymentProcessor; } public void Fulfill(int orderId) { using (var unitOfWork = _unitOfWorkFactory.Create()) { var order = unitOfWork.OrdersRepository.GetById(orderId); order.PayUsing(_paymentProcessor); jednostkaPracy.Zatwierdź(); // Chcę, aby zdarzenia były zgłaszane tylko wtedy, gdy Commit się powiedzie } } } W obecnej implementacji jest to problematyczne, ponieważ w tej chwili podnoszenie domeny musi umieścić ją w kolejce, ponieważ nie może zostać uruchomione natychmiast. Kolejka jest statyczna, co powoduje problemy w systemach z wieloma użytkownikami. Nie chcę przypadkowo uruchamiać zdarzeń dla innych użytkowników, co jest zdecydowanym problemem, ponieważ wszyscy użytkownicy mają dostęp do tej samej kolejki. Oto lista rozwiązań, które zbadałem i dlaczego nie zadziałają w moim scenariuszu 1. Posiadaj niestatyczną klasę `DomainRaiser`, która jest przekazywana do metody `PayUsing`. * Przekazywanie `DomainRaiser` jest bardzo trudne do wykonania z obiektów domeny, czasami zdarzenia mogą zostać wywołane przez zmianę właściwości, a przekazywanie tego obiektu jest kłopotliwe. 2. Niech wszystkie jednostki zawierają wyliczenie `Events` odczytywane przez wywołanie `UnitOfWork.Commit`, jak omówiono na http://lostechies.com/jimmybogard/2014/05/13/a-better-domain-events-pattern / * Śledzenie każdej pojedynczej jednostki, która się zmieniła, jest bardzo trudne, przenoszę śledzenie zmian do ORM. To również zaśmieca obiekty domeny. 3. Używanie `HttpContext.Current.Items` do przechowywania zdarzeń specyficznych dla użytkownika * Jest to obecnie najlepsza sugestia, jednak nie jest możliwy test jednostkowy i blokuje moją domenę do korzystania z asp.net, w którym mam plany przyszłość wydania aplikacji komputerowej. Moje pytanie brzmi, jak niezawodnie kolejkować i wysyłać te zdarzenia w środowisku wielu użytkowników, biorąc pod uwagę, że chcę wywoływać zdarzenia tylko wtedy, gdy ogólna jednostka pracy się powiedzie?


title: Alternatywne wzorce tworzenia stron internetowych? (nie MVC)

text: Ostatnio czytałem kilka postów na blogu dotyczących MVC i tego, jak nie pasuje do sieci. Dowiedziałem się o alternatywnych wzorcach, takich jak Architektura RMR. Jestem ciekawy jakich innych wzorców ludzie używają w sieci poza MVC? Ponadto, jeśli istnieje framework, który implementuje wzorzec, zamieść do niego link.