The evolution and history of smartphones

I have been answering the question about matte touchscreens on SuperUser and at some point I got completely distracted. As a result I wrote this post, which is meant to be a natural extension to the story told by my answer. It’s based mostly on my memories and experience as an editor of PDA.pl, a Polish site dedicated to mobile technology. It went offline in 2011 when Dawid Gatti, the guy who was running it from the very beginning, decided that it’s time to leave the scene. Big thanks to Dawid who helped me practice my writing skills and share my tech addiction with others! I’d also want to thank everybody who made PDA.pl’s community so great.

Now, back to the track. If you haven’t read my answer yet, you should do it first. This post is a sequel to the story I’ve told there.


HTC Touch P3450 was released the same month the first iPhone was. While iPhone used swiping too, it’s UI was better suited to it because it was developed with finger-based usage in mind. What HTC did was an advanced driver for Windows Mobile 6 that added Cube and global „kinetic scrolling”, ie. scrolling by swiping over scrollable content. Before that, scrolling was only possible with scrollbars that were too thin to be comfortable without stylus. czytaj dalej

 

Jak się robi spam (i co może pójść nie tak)

Jeśli masz czasem okazję poczytać trochę angielskiego spamu, to pewnie zauważyłeś, że często ma on poważne usterki gramatyczne. I nie mam tu na myśli takich usterek, które wynikają z roztargnienia autora czy zmiany koncepcji w połowie pisania komentarza czy maila. Chodzi o problemy takie, jak zastąpienie jakiegoś słowa jego synonimem, który jednak zupełnie nie pasuje do kontekstu zdania.

Jakie jest źródło takich usterek? Spam budowany jest z szablonów, w których dla wybranych słów przewidziane są również ich alternatywy. Dzięki temu spamer może generować bardzo wiele wiadomości, które dla prymitywnego automatu wydają się być całkiem różne, a więc mogą ominąć część filtrów antyspamowych lub znacznie opóźnić moment, w którym zostaną wykryte.

Dowiadujemy się o tym, gdy spamer zapomni zaznaczyć odpowiednią opcję w narzędziu, którego używa do zasypywania skrzynek mailowych i blogowych komentarzy. Wtedy ich właściciel otrzymuje piękną paczkę dostępnych treści komentarza wraz z możliwymi do użycia wariantami tekstu. Na przykład osoba, która upodobała sobie uszczęśliwianie mnie setkami komentarzy miesięcznie korzysta z następującego szablonu:

{
{I have|I’ve} been {surfing|browsing} online more than {three|3|2|4} hours today, yet I never found any interesting article like yours.
{It’s|It is} pretty worth enough for me. {In my opinion|Personally|In my view},
if all {webmasters|site owners|website owners|web
owners} and bloggers made good content as
you did, the {internet|net|web} will be {much more|a lot more} useful than ever before.|
I {couldn’t|could not} {resist|refrain from} commenting.

{Very well|Perfectly|Well|Exceptionally well} written!|
{I will|I’ll} {right away|immediately} {take hold of|grab|clutch|grasp|seize|snatch} your {rss|rss feed} as I {can not|can’t} {in finding|find|to find} your {email|e-mail} subscription {link|hyperlink} or {newsletter|e-newsletter} service.

Do {you have|you’ve} any? {Please|Kindly}
{allow|permit|let} me {realize|recognize|understand|recognise|know} {so that|in
order that} I {may just|may|could} subscribe. Thanks.|
{It is|It’s} {appropriate|perfect|the best} time to make some
plans for the future and {it is|it’s} time to be happy. czytaj dalej

 

CPU kontra FPGA – różnice w podejściu i zasadzie działania

Naskrobałem krótki tekst po angielsku, w którym nakreślam różnicę w używaniu i działaniu układu FPGA w porównaniu z klasycznym procesorem. Nie znalazł się on tam, gdzie miał początkowo trafić, więc umieszczam go tutaj – być może komuś się on jeszcze kiedyś przyda.


FPGAs are a superset of CPUs. It means you can use FPGA like a CPU, but you can’t use CPU as a FPGA in a effective manner. Strictly speaking, FPGAs don’t process any instructions at all and aren’t programmable. A quick summary of comparison:

                     +------------+------------+
                     |    CPU     |    FPGA    |
+--------------------+------------|------------|
|                    |            |            |
| Internal structure | Immutable  | Mutable    |
|                    |            |            |
| Program            | Read from  | Defined by |
|                    | memory     | structure  |
|                    |            |            |
| Input data         | Read from  | Read from  |
|                    | external   | external   |
|                    | sources    | sources    |
|                    |            |            |
+--------------------+------------+------------+

Now, the details. czytaj dalej

 

Cukierki w CSS3

Zrzut ekranu przedstawiający demo.

Kliknij, aby otworzyć demo.

W ramach wakacyjnego robienia czegokolwiek stworzyłem animowany cukierek, korzystając tylko i wyłącznie z CSS oraz podstawowego HTML. Dzięki kilku nowym funkcjom dostępnym w CSS3 udało mi się uzyskać dosyć ciekawy efekt.

Demo nie wykorzystuje obrazków ani JavaScript.

Efekt możesz zobaczyć klikając obrazek po prawej, natomiast poczytać o tym jak go uzyskałem możesz w dziale Projekty.