Magazyn Programista 4/2014

Ukazało się nowe wydanie magazynu Programista 4/2014, którego tematem przewodnim jest .NET Micro Framework.

Magazyn Programista 4/2014

W numerze:

  • Spring Data JPA – jeszcze prostszy dostęp do bazy danych
  • Nasz własny dodatek do przeglądarki Google Chrome
  • Wzorce komunikacji w Cocoa Objective-C
  • Szybka grafika 2D: w głąb króliczej nory
  • Samouczek MonoGame, część 1: podstawowe koncepcje grafiki 3D
  • Screen-Space Ambient Occlusion – metoda symulowania globalnego oświetlenia przy pomocy techniki postprocessing
  • Biblioteka .NET Micro Framework. Programowanie elektroniki dla programistów C#
  • Jak napisać własny debugger w systemie Windows – część 3
  • Brakujący element Agile. Część 3: Coaching
  • Kierunek biznes
  • Zdobyć flagę… PlaidCTF 2014 – zfs
  • Jak całkowicie odmienić sposób programowania, używając refaktoryzacji (część 8)

Magazyn Programista 02/2014 (21)

Wyszedł nowy numer magazynu Programista 02/2014 (21).

magazyn-programista-02-2014

Spis treści:

  • Interface a implementacja
  • Wstęp do WPF – część 2: Stylowanie kontrolek w WPF
  • ASP.NET SignalR – czyli aplikacje czasu bardzo rzeczywistego. Część 2
  • Java 8 – najbardziej rewolucyjna wersja w historii
  • Początki z językiem Fortran
  • Concepts Lite. Rozszerzenie standardu C++14
  • Jak napisać własny debugger w systemie Windows – część 1
  • Badanie jakości kodu C++
  • Refaktoryzacja testów legacy w kierunku wykonywalnych specyfikacji. Część II: Techniki ułatwiające utrzymanie testów
  • Brakujący element Agile Część 1: Feedback
  • Szczyt za szczytem
  • Ghost in the Shellcode 2014 – Pwn Adventure 2
  • Jak całkowicie odmienić sposób programowania, używając refaktoryzacji (część 6)

Filtr na trolla

Bycie trollem internetowym ma swoje plusy i minusy, można kogoś zbluzgać bez powodu i cieszyć się swoją głupotą, czasami jednak administratorzy stron walczą z trollami stosując wymyślne filtry.

Tak jest lub było w przypadku wykrywania znanego „klaczowego” trolla okupującego swego czasu forum 4programmers, sprytny administrator Adam Boduch postanowił walczyć z twórczością trolla stosując taki oto wymyślny filtr:

<?php

/* ... */

Wrapper\Engine::instance()->atInit(function($engine) {
    $is_troll_z_play = has_troll_cookie();

    if ($_SERVER['REQUEST_METHOD'] === 'POST' && @$_GET['mode'] === 'submit') {
        if (isset($_POST['username']) && isset($_POST['content'])) { // tylko anonimow
            $matches_nick = troll_count_matches($_POST['username'], array(
                '/deus/i'               => 2.0,
                '/klacz/i'              => 2.0,
                '/demonical.?monk/i'    => 2.0
            ));
            $pattern_body = array(
                '/(?<!u)rucha/i'        => 1.0,
                '/klacz/i'              => 1.0,
                '/kutas/i'              => 1.0,
                '/sra/i'                => 1.0,
                '/g(ó|o)wn/i'          => 1.0,
                '/sperm/i'              => 1.0,
                '/ss(a|ie)/i'           => 0.5,
                '/wyli(z|ż)/i'         => 0.5,
                '/stajni/i'             => 0.5,
                '/zoofil/i'             => 0.5
            );
            $matches_body = troll_count_matches($_POST['content'], $pattern_body);

            if (isset($_POST['subject'])) { // nowy temat
                $matches_body += 1.5 * troll_count_matches($_POST['subject'], $pattern_body);
                $matches_body += 1.5 * troll_count_matches($_POST['tag'], $pattern_body);
            }
            if ($matches_nick + $matches_body > 2 || has_troll_cookie()) {
                $is_troll_z_play = true;

                $engine->log('contents.log', array(
                    'username'  => $_POST['username'],
                    'content'   => $_POST['content'],
                    'title'     => @$_POST['title'],
                    'tag'       => @$_POST['tag']
                ));
            }
        }
    }
    if ($is_troll_z_play) {
        define('TROLL_Z_PLAY', true);

        unset($_COOKIE['sid']);
        unset($_COOKIE['temp']);
    }
});

/* ... */

Regularne wyrażenia w połączeniu z systemem punktacji pozwoliły raz na zawsze pozbyć się trolla z forum, a Wam prezentuję to jako znakomity pomysł na wykrywanie tego typu niechcianych treści na stronach.

Magazyn Programista 1/2014

Ukazał się nowy numer miesięcznika Programista 1/2014.

Magazyn Programista 1/2014

W numerze:

  • Wprowadzenie do Entity Framework
  • Jak używać IBM Worklight – część 2
  • Wstęp do WPF – część 1
  • Web Crawling oraz Text Mining przy wykorzystaniu RapidMiner
  • PLY oraz Python, czyli sposób na Lexa oraz Yacca
  • Tworzenie usługi sieciowej opartej o Twisted
  • Automatyczne Testowanie Aplikacji JavaScript na przykładzie aplikacji napisanej w Backbone.JS
  • Zakodowana pomoc
  • Receptury projektowe – niezbędnik początkującego architekta
  • Strefa CTF – 30C3 CTF – cableguy
  • Pozyskaj pracownika albo zgiń!
  • Systemy proste, skomplikowane, złożone i chaotyczne, czyli Cynefin.
  • Programowanie równoległe i asynchroniczne w C# 5.0

Zachęcamy do lektury!

Magazyn Programista 11/2013

Nowy „Programista” jest już dostępny! Ponad 140 stron.

Tematem głównym jest drugi artykuł z serii pt „Bliżej silikonu” skierowanej do osób zainteresowanych sposobem działania systemów komputerowych od podszewki. Tym razem będzie mowa m.in o analizie BIOS API, procesie ładowania jądra Windows i tworzeniu boot loadera dla własnego systemu.

Programista 11/2013 (18)

Ponadto w numerze takie tematy jak:

  • Rzeczywistość rozszerzona w Androidzie
  • Vaadin 7 – naprawdę szybkie tworzenie aplikacji web w Javie
  • Windows 8.1 okiem programisty
  • Wzorce Programowania Gier:  Szkielet Aplikacji
  • oraz wiele, wiele więcej!

Więcej o wydaniu:

http://programistamag.pl/programista-112013-18-spis-tresci/

Akcja „Paragon”

Nowy numer magazynu „Programista” pojawił się już w salonach Empik w całym kraju. Wydawca magazynu serdecznie zaprasza do udziału w zabawie „Paragon”.

Osoby, które prześlą skan zakupu nowego numeru na adres mailowy:

[email protected]

otrzymają dwa dowolnie wybrane numery archiwalne w wersji elektronicznej.

Ponadto wszystkie nadesłane skany „wezmą udział” w losowaniu 3 książkek z oferty wydawnictwa Helion.

Zwycięzcy sami będą mogli wskazać swój tytuł. Akcja „Paragon” trwa do końca roku, a losowanie książek odbędzie się 31 grudnia. Dodatkowo osoby, które prześlą na ww. e-mail skanu zakupu nowego wydnia, otrzymają w PDF pierwszą cześć artykułu z cyklu ” Bliżej silikonu”.

Instrukcje skanujące bity na różne architektury procesorów

Ryg z grupy demoscenowej Farbraush prowadzi technicznego bloga, na którym często porusza zaawansowane tematy programowania grafiki, profilowania algorytów, optymalizacji kodu, tym razem wrzucił krótki wpis prezentujący różne techniki skanowania bitów na różnych platformach:

http://fgiesen.wordpress.com/2013/10/18/bit-scanning-equivalencies/