Chciałem sie z wami podzielić kilkoma krótkimi anegdotkami z mojej pracy w IT jako nierób programista ( ) Jak będzie zainteresowanie, to mogę powypisywać kilka ciekawostek pod tagiem #itstostory

Niecały rok temu oddawaliśmy projekt graficzny jednej z aplikacji do oceny przez klienta (nad kodem pracowaliśmy już dobre 3 miesiące, więc było co nieco już działające, natomiast zmiany UI były na porządku dziennym). Na następny dzień
  • 11
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#programowanie #java #spring #webdev

Polecają może mirki coś odnośnie ogólnej architektury aplikacji webowych? Nie musi koniecznie odnosić się do springa, ale byłoby to spore ułatwienia.

Brakuje mi też w sumie takich akademickich podstaw w niektórych sprawach, więc jakby ktoś miał jeszcze coś w stylu "spring/webdev dla debili" to byłoby fajnie.
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@coll: Spoko, mam to samo. Zanim cokolwiek zaczniesz pisać w czymkolwiek, miej jakiś zarys architektury projektu. Przeanalizuj funkcjonalności - może da radę zamiast zwykłej warstwowej arch, zastosować mikroserwisy?
Osobiście uważam, że projekt trzeba zaczynać z mapą funkcjonalności, to analizować/przekształcać w proces (ileś operacji jedna po drugiej), i wtedy szukać części wspólnych :)
  • Odpowiedz
#programowanie #java #intellij

Piszę aplikację w Springu w IntelliJ IDEA. I wyskakuje mi błąd przy deployu (Tomcat):

Error: Exception thrown by the agent : java.rmi.server.ExportException: Port already in use: 1099; nested exception is:

java.net.BindException: Address already in use: JVM_Bind
  • 22
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@mk321: Chyba jakieś googlowe usługi. Spróbuj ustawić port JMX na cokolwiek innego, np. 9099. (Port JMX to port, który wystawia JVM, przez który można się dostać do API instrumentacyjnego - monitoring, zarządzanie, heap dumpy, thread dumpy, etc)
  • Odpowiedz
@nachteil: zamknąłem Chroma i uruchomiłem go ponownie (IDE cały czas włączone) i się uruchamia. Na razie pomogło. Zobaczę potem. I przestawię ten port na jakiś inny (ale na co nie próbowałem to zaraz znowu był zajęty).

Dzięki!
  • Odpowiedz
Witam, mam mały problem z zaczęciem programu, bo średnio z pomysłem, więc #naukaprogramowania

Program w #java - umożliwiający tworzenie kont i logowania. Proste, można znaleźć na YT i innych poradnikach. Program ma zapisywać dane w bazie danych i w razie ewentualności je wyświetlać/zmieniać - zatem tu pierwsze pytanie, czy SQL Server Management Studio się do tego nada? No i drugie pytanie - chciałbym by 2 komputery mogły się
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

No tylko się obawiam, że będę już na etapie ostatnim, a problem będzie wymagał przerobienia całego kodu na nowo.


Jeśli będziesz używał interfejsu, a nie implementacji, to nie będzie. Załóżmy, że masz interfejs UserRepository i metodę w nim void saveUser(User user). Wtedy w swoim kodzie na obiekcie typu UserRepository wołasz saveUser(user) i normalnie rozwijasz projekt. To, czy dane repozytoirium zapisuje coś tylko do pamięciu, czy do pliku, czo potem do bazy -
  • Odpowiedz
Mirki, jak widzicie używanie checked wyjątków w nowych projektach? Jak wiadomo nie są one za bardzo kompatybilne z Java 8, z lambdami, streamami itd. Jakie są ich największe zalety, w projekcie gdzie na końcu wszystkie runtime'owe lądują w jakimś handlerze? Wiadomo, że łatwiej śledzić ścieżkę, no ale gdy w grę wchodzą refleksje to nie zawsze to dużo pomaga. No i jeszcze zasada otwarte/zamknięte, Robert C. Martin approved ( ͡° ͜ʖ
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@baczus: troszkę oftopując jest pewien mroczny trik optymalizacyjny oparty o checked exception (ale to taka bardziej ciekawostka niż coś realnego ;-))

String[] array = new String[]{"a1", "a2", "b1", "b2"};

for(int i=0;;i++) {
  • Odpowiedz
@kubasal: dla ciebie wygodniej, ale dla odpowiadających mniej (bo nie mogą np. skopiować kodu). Poza tym może ktoś będzie miał podobne pytanie, to by znalazł odpowiedź. Jakbyś wkleił na jakieś pastebin, to też byłoby przejrzyście.

Dobrze, że kompilator kompiluje tylko pliki tekstowe, a nie GIFY-y ( ͡° ͜ʖ ͡°)
  • Odpowiedz
Mam w #java uproszczeniu taką sytuację http://pastebin.com/d5xR6RjT
readAudioFile przyjmuje tylko pliki z jednym kanałem audio. W przypadku innego pliku chcę poinformować użytkownika o błędzie. I nie jestem pewny jak to ładnie zrobić.
1. rzucić własnym wyjątkiem WrongNumChannelException, tylko wydaje mi się, że to za mało "wyjątkowa" sytuacja żeby rzucać wyjątek (sugeruję się np. tym http://stackoverflow.com/questions/77127/when-to-throw-an-exception )
2. zwrócić jakoś kod błędu (i np. nazwę pliku), tylko metoda readAudioFile już coś
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@psi-nos: Moim zdaniem wyjątek jest odpowiedni w tej sytuacji. Metoda ma jedno proste zadanie - wczytać podany plik, który jest jednościeżkowym plikiem audio. Spodziewa się poprawnego argumentu, więc sytuacja, w której podany plik nie zawiera spodziewanej zawartości, jest wyjątkowa (nielegalna) z punktu widzenia wywołania tej metody.
Przede wszystkim porzuć myśli o zwracaniu jakichś flag, statusów błędów, czy nulli - skończy się na tym, że po wywołaniu metody będziesz robił dodatkowe
  • Odpowiedz
I tak po wywołaniu metody będzie jeden if


Jeśli potraktować Optionala jako worek z getterem i metodą isPresent, to owszem. Ale Optional bardzo fajnie wpasowuje się w funkcyjne podejście Javy 8, stąd ja napisałbym:

private Optional readAudioFile(File file) {
//
  • Odpowiedz
Elo #java
Piszę sobie prostą gierkę w 2D, wszystkie obiekty na mapie przechowuję w ArrayList. W jaki sposób przechowywać te obiekty aby móc optymalnie sprawdzać kolizje? Póki co sprawdzam każdy obiekt na mapie.
#programowanie #gamedev
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Murki, piszę quicksorta wielowątkowego i mam problem. Otóż mam na razie taki kod: http://pastebin.com/JPqfkyA9
Program po jakimś czasie się zawiesza i nie zwalnia wszystkich semaforów. Wątek główny nie czeka także na skończenie wykonywania obliczeń przez klasę ParallelIntSort.

Tak wygląda dump z wątków, gdy się zacinają: http://pastebin.com/sdEhAYuR

W samym algorytmie już nie mogę doszukać się błędów, może to kwestia złego zrozumienia wątków?
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Dzisiaj w Packtcie za darmo:
Neural Network Programming with Java

Vast quantities of data are produced every second. In this context, neural networks become a powerful technique to extract useful knowledge from large amounts of raw, seemingly unrelated data. One of the most preferred languages for neural network programming is Java as it is easier to write code using it, and most of the most popular neural network packages around already exist
piwniczak - Dzisiaj w Packtcie za darmo:
Neural Network Programming with Java
Vast q...

źródło: comment_t7i4F17lUumE5pBYk3GTtd7N3IWWMvhR.jpg

Pobierz
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Napisałem nowy artykuł. Tym razem o tym, że #javascript to nie to samo co #java :-)
Bezpośredni link: http://piecioshka.pl/blog/2016/12/09/javascript-to-nie-to-samo-co-java.html (4 min czytania)

Link podesłałem obsłudze klienta najpopularniejszej polskiej księgarni.
Cieszyłbym się, gdyby nowi pracownicy (a nawet obecni) przeczytali i nie robili pomyłek w ustawianiu książek na półkach :-)

Artykuł
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@piecioshka: Artykuł typu lanie wody. Kto już trochę siedzi w programowaniu, albo nawet jeżeli zaczyna to dowie się, że to dwa różne języki. Nic nowego się nie dowiedziałem.

Chciałbym kiedyś wejść do księgarni i nie natknąć się na taką sytuację. Miałbym wtedy większe zaufanie, że osoby pracujące w księgarni wiedzą z jakimi książkami mają do czynienia.


To zmień księgarnie, chyba, że jest tak wszędzie i to takie zboczenie pracowników.
Ps.
  • Odpowiedz
Proszę napisz, co konkretnie miałeś na myśli?


@siteman: Całość artykułu. Tematem jest "JavaScrpit to nie to samo co Java" a piszesz o księgarniach czy rekruterach. Księgarni nie ma co winić, a rekruterzy? No cóż.. o tym poniżej. Wiedza o której piszesz nie przyda się ludziom którzy nie programują. Jestem w stanie zaryzykować i stwierdzić, że programistom w dłuższym okresie czasu też nie. Wiedzę zdobywamy w praktyce, bo co z samej teorii
  • Odpowiedz
@Luk_1mex: Ja bym sugerował po prostu zaklepać jakieś podstawowe zadanka z listami - sama koncepcja jest prosta, jak już się to raz napisze i zobaczy, jak te referencje działają, to już nie ma za bardzo co rozkminiać.
  • Odpowiedz
@wytrzzeszcz: To, że coś robiłem nie oznacza, że się na tym znam xD
@Luk_1mex: Wg mnie język programowania nie ma tutaj żadnego znaczenia (no może jedynie tyle tylko jaki jest jego główny paradygmat), trzeba ogarnąć ogólną koncepcję i tłumaczyć na składnię danego języka.
Polecam „Wprowadzenie do algorytmów” Cormena
  • Odpowiedz
Mam małą zagwozdkę. Otóż załóżmy, że mam dwa samochody i osiem kół. Każde koło montuję do jednego samochodu (każdy ma ich max. 4). Chcę, żeby każdy obiekt koło "wiedział" do którego samochodu jest zamontowany, oraz żeby każdy samochód "wiedział" jakie ma koła. Dobrze myślę, że powinienem zrobić to przez kolekcje? #naukaprogramowania #java
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@nachteil: właśnie chodzi mi o to, że chcę tego uniknąć ale pozostawić tą funkcjonalność aby obiekt typu Airport miał świadomość pod jaki obiekt typu Tower podlega (chcę tak zrobić ponieważ podejrzewam że szukanie na żywca konkretnego lotniska we wszystkich spisach lotnisk we wszystkich dostępnych wieżach trochę będzie trwało). Teraz dzięki twojemu hasłu "circular dependency" dowiedziałem się, że mogę znaleźć rozwiązanie we wzorcu Observer. Poczytam, zobaczę czy to to. : )
  • Odpowiedz