Solved problems from Thinking in C++ book

W związku z paroma ostatnimi mailami odnośnie języka C++ a dokładniej rozwiązań zadań z Thinking in C++:

 
“Dzień dobry Panie Tomaszu,

Jestem początkującym programistą i jestem teraz w trakcie czytania/rozwiązywania zadań z książki Thinking in C++ Bruce’a Eckela. Mam problem z pewnym zadaniem, więc postanowiłem poszukać rozwiązania w sieci, tak trafiłem na Pańską stronę oraz githuba, jednak nie znalazłem ma tam rozwiązań. Wspominał Pan kiedyś, że rozwiąże i udostępni rozwiązania z tej właśnie książki.
Rozumiem oczywiście, że było to blisko 5 lat temu, jeśli jednak ma Pan te zadania i mógłby je udostępnić, wszystkie lub kilka wybranych byłbym bardzo wdzięczny. Sam mam teraz problem z zadaniem 16z rozdziału 4.”
“Witam czy będą rozwiązania do TIC++ ?? Gdyż chce porównać rozwiązania ze swoimi, a niektóre zadania po prostu mnie przerastają. Na forum w trafiłem po przez stronę: http://objectmix.com/c/39078-bruce-eckels-thinking-c-annotated-solution-guide.html
Pozdrawiam Krystian”
 
 
Chciałbym napisać że w każdy weekend będę udostępniać 1-2 zadania z tej książki zaczynając od najprostszych, z samego początku książki zadań, link do strony to: https://waszczyk.com/ticpp-solutions/.
 
Zorganizowałem również newsletter (dla każdego kto chce dostawać rozwiązanie na maila, adres to http://mailing.waszczyk.com/?p=subscribe) przy rejestracji proszę zaznaczyć mailing o nazwie “Weekly Solutions to Thinking in C++, Bruce Eckel” jak sama nazwa wskazuję będzie to jedna wiadomość na tydzień- najprawdopodobniej weekendami.
 
For Englisch speakers: When you are interested in receiving every week solutions from Thinking in C++, Bruce Eckel please look at https://waszczyk.com/ticpp-solutions/ or you can subscribe to my newsletter here: http://mailing.waszczyk.com/?p=subscribe, please choose “Weekly Solutions to Thinking in C++, Bruce Eckel” (one email per week).
 
Continue Reading

What is a magic number, and why is it bad?

[java]
public class Foo {
public void setPassword(String password) {
// don’t do this
if (password.length() > 7) {
throw new InvalidArgumentException(“password”);
}
}
}
[/java]
[java]
public class Foo {
public static final int MAX_PASSWORD_SIZE = 7;
public void setPassword(String password) {
if (password.length() > MAX_PASSWORD_SIZE) {
throw new InvalidArgumentException(“password”);
}
}
}
[/java]
It improves readability of the code and it’s easier to maintain. Imagine the case where I set the size of the password field in the GUI. If I use a magic number, whenever the max size changes, I have to change in two code locations. If I forget one, this will lead to inconsistencies.
The JDK is full of examples like in Integer, Character and Math classes.
PS.: Static analysis tools like FindBugs and PMD detects the use of magic numbers in your code and suggests the refactoring. more

Continue Reading

Rynek pracy w Polsce i sytuacja gospodarcza oraz przyszłość

 

Dzisiaj czytając codzienne wiadomości natknąłem się na bardzo interesujący artykuł: http://wyborcza.pl/magazyn/1,140070,16452059,Jerzy_Hausner__Dokad_idziemy_.html nagrania youtube jakie znajdziemy w nim to: 

 

 

 

Raport o którym mowa znajduje się tutaj pod następującym linkiem: http://www.mpips.gov.pl/gfx/mpips/userfiles/_public/1_NOWA%20STRONA/Aktualnosci/seniorzy/badania%20aktywne%20starzenie/pl_2030_wyzwania_rozwojowe.pdf zwłaszcza zachęcam do przeczytania sekcji o długości czasie wykonywania pracy oraz zmiany modelu funkcjonowania Państwa w kwestii emerytur. 

 

Jest również parę cytatów (mogą lekko się różnić):

 

"Jeśli praca jest dla nas wartością to inne rzeczy przyjdą same, będą takie sytuacje że w ten czy inny sposób nam to przyniesie"

 

Cooperation and competition "To jest totalny idiotyzm i nagradza się na podstawie ilości punktów to jak my mamy zbudować elementy współpracy" jak to rozwiązać ? To jest pytanie "Ale edukacja nie kończy się na szkole podstawowej czy liceum" "Nie umiem zorganizować pracy w grupach- ja przyznaję się do porażki w tej dziedzinie"

 

"Nauka znalazła się trochę w impasie i nagle zgubiła to co dla AS było"

 

"To co jest wspólnotowe w Polsce zostało bardzo osłabione"

 

"Jeśli nie zaczniemy myśleć o drodze, szkole to nie będziemy dalej się rozwijać"

 

"Ja się staję dzięki pracy" "Robię co lubię, lubię co robię"

 

"Studia to czas na rozwój, im więcej w siebie włożycie tym więcej będziecie mieli do dania"

 

Ciekaw jestem czy w telewizji była mowa o tym raporcie ? 

 

EDIT: Nie mogłem się powstrzymać przed przeklejeniem tego fragmentu:

 

"Polska chwali się tym, że eksportuje na potęgę, wysyłamy za granicę masę nowoczesnych towarów. Pan w raporcie ostrzega, że mamy "eksport o niskiej wartości dodanej". Co to znaczy? 

 

– Żeby coś wyprodukować – np. samochód, bo to jeden z naszych hitów eksportowych – najpierw musi być jakaś idea, pomysł, który przekształca się w projekt, potem są różnego rodzaju części składowe, wreszcie jest montowanie, a na końcu dystrybucja i marketing. I największą wartość dodaną, czyli największy zwrot z poniesionych nakładów, uzyskuje się w pierwszej fazie tego łańcucha i w ostatniej. Najmniej opłacalny jest środek, czyli montowanie."

 

Continue Reading

Kilka dobrych rad dla koderów..

 

Książki godne polecenia:

 

  1. “Clean Code: A Handbook of Agile Software Craftsmanship” – Robert C. Martin
  2. “Growing Object-Oriented Software, Guided by Tests” – Steve Freeman
  3. “Agile. Programowanie zwinne: zasady, wzorce i praktyki zwinnego wytwarzania oprogramowania w C#” – Robert C. Martin, Micah Martin
  4. “Head First Design Patterns”, Elisabeth Freeman, Eric Freeman, Bert Bates, Kathy Sierra, Elisabeth Robson
  5. “The Art of Unit Testing: With Examples in .Net” – Roy Osherove
  6. “Test Driven Development: By Example” – Kent Back
  7. “Refactoring: Improving the Design of Existing Code” – Martin Fowler, Kent Beck, John Brant
  8. “Agile Testing: A Practical Guide for Testers and Agile Teams” – Lisa Crispin
  9. “Managing the Testing Process: Practical Tools and Techniques for Managing Hardware and Software Testing” – Rex Black
  10. “Fundamental Concepts for the Software Quality Engineer” – Taz Daughtrey
  11. “Practical Guide to Software Quality Management (Artech House Computing Library)” – John W. Horch
  12. “Lessons Learned in Software Testing: A Context-Driven Approach” – Cem Kaner, James Bach, Bret Pettichord
  13. “Software Test Automation” – Mark Fewster, Dorothy Graham
  14. “The Psychology of Computer Programming” – Gerald M. Weinberg
  15. “Elements of User Experience” – J.J. Garrett
  16. “The Tangled Web” – Michał Zalewski

 

Technologie, które warto znać:

 

  • Java + scala
  • C# i .NET
  • Java Script
  • HTML 5
  • Selenium
  • WebAI
  • Cloud Computing

 

Blogi i portale, które warto śledzić:

 

 

Inne:

 

 

Dobre rady:

 

  • zbuduj portfolio swoich projektów (pokaż kod źródłowy, testy automatyczne, komentarze)
  • zacznij pracę zawodową w trakcie studiów
  • czytaj techniczne książki ale głównie praktykuj
  • improve your english skills constantly…und Deutsch..
Continue Reading

Angular.js z DevMeetings.com

 

Startujemy z kursem online z #AngularJS!
Zapraszamy na http://xplatform.org/ – rusza wersja beta.

Po rejestracji na xplatform lub zalogowaniu przez G+ / FB uzyskujecie dostep do pierwszych 3 odcinkow kursu. Kolejne 25 odcinkow bedziemy udostepniac w najblizszych dniach – od expressions, przez dyrektywy po formularze z walidacja.

Xplatform oraz kurs Angulara sa w fazie beta – liczymy na wyrozumialosc i czekamy na Wasze komentarze. Platforme ciagle rozwijamy, pracujemy nad lepszym dzwiekiem, nad ciekawsza dramaturgia tutoriali, nad microtaskami, itp.

Zapraszamy na http://xplatform.org/

Continue Reading

What is Liquibase ? – tutorial from scratch

 

Liquibase http://www.liquibase.org/ is a great open source tool database-independent for tracking, managing and applying schema changes. All changes to the database are stored in xml-files, each changeSet is identified by a combination "id" and "author" tag as well as the name of the file itself. A list of all applied changes is stored in each database which is consulted on all database updates to determine what new changes need to be applied. As a result, there is no database version number but this approach allows it to work in environments with multiple developers and code branches.

 

! ! !  Automatically creates DatabaseChangeLog Table and DatabaseChangeLogLock Table when you first execute a changeLog File. ! ! ! 

 

What we shoud have:

0. JDK 7

1. Java IDE – Eclipse/IDEA etc.

2. Maven

3. Example project

 

 

Screenshot at 11-39-21 Screenshot at 11-37-44

now i have created an empty Maven project. Now i have to configure pom.xml file- the source code is on github repository: https://github.com/TomaszWaszczyk/liquibase-tutorial-quickstart

 

We should remember that Liquibase is able to create first changelog file, how i have done it:

Screenshot at 16-07-42

 

now in the project's directory we run the following commands: (it depends on what we want to do)

 

[c]
clean compile db:create
clean compile db:schema
clean compile db:update
clean compile liquibase:update -Dliquibase.contexts=dev
clean compile liquibase:dropAll liquibase:update -Dliquibase.contexts=dev
[/c]

 

In this we have configured Liquibase, now in order to change a database we can create new so called changeSet and run update command. Full repository with source code you can find here: https://github.com/TomaszWaszczyk/liquibase-tutorial-quickstart

Continue Reading