Are you over 18 and want to see adult content?
More Annotations
A complete backup of penangscandal.tumblr.com
Are you over 18 and want to see adult content?
A complete backup of aquabynature-shop.com
Are you over 18 and want to see adult content?
A complete backup of indianfoodcary.com
Are you over 18 and want to see adult content?
A complete backup of royalbrothers.com
Are you over 18 and want to see adult content?
A complete backup of mymotherlode.com
Are you over 18 and want to see adult content?
A complete backup of social-celebrity.com
Are you over 18 and want to see adult content?
A complete backup of presentsathome.nl
Are you over 18 and want to see adult content?
Favourite Annotations
A complete backup of themastercleanse.org
Are you over 18 and want to see adult content?
A complete backup of portland-communications.com
Are you over 18 and want to see adult content?
A complete backup of animationarchive.org
Are you over 18 and want to see adult content?
A complete backup of getquotestoday.net
Are you over 18 and want to see adult content?
A complete backup of abelhasabeira.com
Are you over 18 and want to see adult content?
Text
one.
FUNCTOR AND MONAD EXAMPLES IN PLAIN JAVA 6. 7. import java.util.function.Function; interface Functor {. Functor map (Function f); } But mere syntax is not enough to understand what functor is. The only operation that functor provides is map () that takes a function f. This function receives whatever is inside a box, transforms it and wraps the result as-is into aMAP.MERGE()
Map.merge () - One method to rule them all. I don’t often explain a single method in JDK, but when I do, it’s about Map.merge (). Probably the most versatile operation in the key-value universe. And also rather obscure and rarely used. merge () can be explained as follows: it either puts new value under the given key (if absent) orupdates
LISTENABLEFUTURE IN GUAVA ListenableFuture in Guava is an attempt to define consistent API for Future objects to register completion callbacks. With the ability to add callback when Future completes, we can asynchronously and effectively respond to incoming events. If your application is highly concurrent with lots of future objects, I strongly recommend using ListenableFuture whenever you can. ACTIVITI PROCESSES AND EXECUTIONS EXPLAINED Activiti processes and executions explained. January 08, 2011. I was interested in Activiti process engine long before it reached its first stable 5.0 version. Now, when 5.1 was released, I decided to play a bit with this framework, especially paying attention to Spring and JUnit support. But one of the first impediments encountered was the SPRING PITFALLS: PROXYING Bean proxying is an essential and one of the most important infrastructure features provided by Spring. It is so important and low-level that for most of the time we don't even realize that it exists. However transactions, aspect-oriented programming, advanced scoping, @Async support and various other domestic use-cases wouldn'tbe possible
WHICH THREAD EXECUTES COMPLETABLEFUTURE'S TASKS AND CALLBACKS? CompletableFuture is still a relatively fresh concept, despite being introduced almost two years ago (!) in March 2014 with Java 8. But maybe it's good that this class is not so well known since it can be easily abused, especially with regards to threads and thread pools that are involved along the way. ACCESSING CLIPBOARD IN LINUX TERMINAL On a day-to-day basis I am using Ubuntu, which means constantly switching between terminal window and ordinary graphical application like IDE, editors, etc. Often I need to copy a bit of text from IDE to terminal or back. At least in Ubuntu using inconsistent Ctrl + Shift + C (or V) key combination and mouse to select area in terminal is a bitpainful.
CREATING PROTOTYPE SPRING BEANS ON DEMAND USING LOOKUP-METHOD The strength of the Spring Framework is its emphasis on stateless services. Being totally against OOP, this approach has many pragmatic advantages, with low memory consumption, no cost of pooling and multithreaded safety at the top of the list. QUARTZ SCHEDULER MISFIRE INSTRUCTIONS EXPLAINED The scheduler discards misfired executions and waits for the next scheduled time. The total number of trigger executions will be less then configured. Example scenario: at 10:15 two misfired executions are discarded. The scheduler waits for next scheduled time (11 AM) and fires remaining triggers up to 4 PM. TOMASZ NURKIEWICZ AROUND JAVA AND CONCURRENCY March 23, 2020. The idea behind GraphQL is to reduce the number of network round-trips by batching multiple, often unrelated requests, into a single network call. This greatly reduces latency by delivering many pieces of information at once. It’s especially useful when multiple sequential network round-trips can be replaced with a singleone.
FUNCTOR AND MONAD EXAMPLES IN PLAIN JAVA 6. 7. import java.util.function.Function; interface Functor {. Functor map (Function f); } But mere syntax is not enough to understand what functor is. The only operation that functor provides is map () that takes a function f. This function receives whatever is inside a box, transforms it and wraps the result as-is into aMAP.MERGE()
Map.merge () - One method to rule them all. I don’t often explain a single method in JDK, but when I do, it’s about Map.merge (). Probably the most versatile operation in the key-value universe. And also rather obscure and rarely used. merge () can be explained as follows: it either puts new value under the given key (if absent) orupdates
LISTENABLEFUTURE IN GUAVA ListenableFuture in Guava is an attempt to define consistent API for Future objects to register completion callbacks. With the ability to add callback when Future completes, we can asynchronously and effectively respond to incoming events. If your application is highly concurrent with lots of future objects, I strongly recommend using ListenableFuture whenever you can. ACTIVITI PROCESSES AND EXECUTIONS EXPLAINED Activiti processes and executions explained. January 08, 2011. I was interested in Activiti process engine long before it reached its first stable 5.0 version. Now, when 5.1 was released, I decided to play a bit with this framework, especially paying attention to Spring and JUnit support. But one of the first impediments encountered was the SPRING PITFALLS: PROXYING Bean proxying is an essential and one of the most important infrastructure features provided by Spring. It is so important and low-level that for most of the time we don't even realize that it exists. However transactions, aspect-oriented programming, advanced scoping, @Async support and various other domestic use-cases wouldn'tbe possible
WHICH THREAD EXECUTES COMPLETABLEFUTURE'S TASKS AND CALLBACKS? CompletableFuture is still a relatively fresh concept, despite being introduced almost two years ago (!) in March 2014 with Java 8. But maybe it's good that this class is not so well known since it can be easily abused, especially with regards to threads and thread pools that are involved along the way. ACCESSING CLIPBOARD IN LINUX TERMINAL On a day-to-day basis I am using Ubuntu, which means constantly switching between terminal window and ordinary graphical application like IDE, editors, etc. Often I need to copy a bit of text from IDE to terminal or back. At least in Ubuntu using inconsistent Ctrl + Shift + C (or V) key combination and mouse to select area in terminal is a bitpainful.
CREATING PROTOTYPE SPRING BEANS ON DEMAND USING LOOKUP-METHOD The strength of the Spring Framework is its emphasis on stateless services. Being totally against OOP, this approach has many pragmatic advantages, with low memory consumption, no cost of pooling and multithreaded safety at the top of the list. QUARTZ SCHEDULER MISFIRE INSTRUCTIONS EXPLAINED The scheduler discards misfired executions and waits for the next scheduled time. The total number of trigger executions will be less then configured. Example scenario: at 10:15 two misfired executions are discarded. The scheduler waits for next scheduled time (11 AM) and fires remaining triggers up to 4 PM. #43: PUBLIC-KEY CRYPTOGRAPHY: MATH INVENTION THAT Disclaimer: this podcast is not about cryptocurrencies. I despise them. Instead, we’ll talk about asymmetric encryption. One of the most wonderful math discoveries of the 20th century. Before 1970s all cryptographic algorithms were symmetric. This means that the same key must be used to encrypt and decrypt data. That sounds rather obvious. If you encrypt a file with a password, you mustMAP.MERGE()
Map.merge () - One method to rule them all. I don’t often explain a single method in JDK, but when I do, it’s about Map.merge (). Probably the most versatile operation in the key-value universe. And also rather obscure and rarely used. merge () can be explained as follows: it either puts new value under the given key (if absent) orupdates
FALLBACKS ARE OVERRATED Both resilience4j and Hystrix ( R.I.P.) circuit breaker libraries for Java support fallbacks. The idea is dead simple: when an exception occurs, replace it with some pre-configured response. It can either be a constant value or another operation - hopefully, less risky. Fallback is a 10 dollar word for something as simple as a try - catch: SPRING PITFALLS: PROXYING Simplest solution. If DAO implements any interface, Spring will create a Java dynamic proxy implementing that interface(s) and inject it instead of the real class. The real one still exists and the proxy has reference to it, but to the outside world – the proxy is the bean. Now every time you call methods on your DAO, Spring can intercept them, add some AOP magic and call the original method. JAVA 8: DEFINITIVE GUIDE TO COMPLETABLEFUTURE CompletableFuture thenRun (Runnable action); These two methods are typical "final" stages in future pipeline. They allow you to consume future value when it's ready. While thenAccept () provides the final value, thenRun executes Runnable which doesn't even have access tocomputed value.
ACCESSING CLIPBOARD IN LINUX TERMINAL On a day-to-day basis I am using Ubuntu, which means constantly switching between terminal window and ordinary graphical application like IDE, editors, etc. Often I need to copy a bit of text from IDE to terminal or back. At least in Ubuntu using inconsistent Ctrl + Shift + C (or V) key combination and mouse to select area in terminal is a bitpainful.
STATE PATTERN: INTRODUCING DOMAIN-DRIVEN DESIGN State pattern: introducing domain-driven design. September 27, 2009. Some domain objects in many enterprises applications include a concept of state. State has two main characteristics: the behavior of domain object (how it responds to business methods) depends on the state and business methods may change the state forcing the object to behaveDEFERREDRESULT
DeferredResult is a container for possibly not-yet-finished computation that will be available in future. Spring MVC uses it to represent asynchronous computation and take advantage of Servlet 3.0 AsyncContext asynchronous request handling. Just to give a quick impression how it works: QUARTZ SCHEDULER PLUGINS Two main abstractions in Quartz are jobs and triggers. Job is a piece of code that we would like to schedule. Trigger instructs the scheduler when this code should run. CRON (e.g. run every Friday between 9 AM and 5 PM until November) and simple ( run 100 times every 2 hours) triggers are most commonly used. You associate any number oftriggers
CREATING PROTOTYPE SPRING BEANS ON DEMAND USING LOOKUP-METHOD The strength of the Spring Framework is its emphasis on stateless services. Being totally against OOP, this approach has many pragmatic advantages, with low memory consumption, no cost of pooling and multithreaded safety at the top of the list. Skip to main content TOMASZ NURKIEWICZ AROUND JAVA AND CONCURRENCYSearch
SEARCH THIS BLOG
POSTS
SEE HOW GOOGLE IS TRACKING YOUR LOCATION. WITH PYTHON, JUPYTER, PANDAS, GEOPANDAS AND MATPLOTLIBMarch 30, 2020
In sales, you can hear the acronym _ABC: Always Be Closing_. _Closing_
means making a deal with a customer. Last decade gave rise to another acronym _ABCD: Always Be Collecting Data_. We use Google for mail, maps, photos, storage, videos, and much more. We use Twitter to read a stream of consciousness of one President. We use Facebook for messaging and… well, pretty much it. Our parents use it though. We use TikTok… I have no idea what for. Actually, turns out most of the above are useless… Nevermind, the bottom line is: we use them. We use them, and they are free. In XXI-century economy, if you are not paying for the product, you are the product. So, long story short, I wanted to investigate how much Alphabet corporation , the owner of Google, knows about me. Just a tiny fraction, I looked at geolocation history. I never turned off location services because I was valuing comfort over privacy. Bad idea. Download your data In order to download all data Google collected about you, go to takeou…Share
* Get link
* Other Apps
3 comments
Read more
GRAPHQL SERVER IN JAVA: PART III: IMPROVING CONCURRENCYMarch 23, 2020
The idea behind GraphQL is to reduce the number of network round-trips by batching multiple, often unrelated requests, into a single network call. This greatly reduces latency by delivering many pieces of information at once. It’s especially useful when multiple sequential network round-trips can be replaced with a single one. Well, honestly, every web browser does that automatically for us. For example, when we open a website with several images, the browser will send HTTP requests for each image concurrently. Or, to be precise, it will start not more than a certain number of connections to the same host. It’s something between 2 and 8, depending on the browser. The same applies to multiple AJAX/RESTful calls (see fetch() API), which
are concurrent by default with no extra work on a developer’s side. Actually, that’s what _A_ stands for in AJAX1. So, what’s the advantage of GraphQL? If a web browser can make concurrent requests to multiple pieces of data at once already, whybother wit…
Share
* Get link
* Other Apps
Post a Comment
Read more
GRAPHQL SERVER IN JAVA: PART II: UNDERSTANDING RESOLVERSOctober 24, 2019
In part I
we developed a really simple GraphQL server. That solution has a serious flaw: all fields are loaded eagerly on the backend, even if they weren’t requested by the front-end. We sort of accept this situation with RESTful services by not giving clients any choice. RESTful API always returns everything, which implies always loading everything. If, on the other hand, you split RESTful API into multiple smaller resources, you risk N+1 problem and multiple network round trips. GraphQL was specifically designed to address these issues: fetch only required data to avoid extra network traffic as well as unnecessary work on the backendallow fetching as much data as needed by the client in a single request to reduce overall latency RESTful APIs make arbitrary decision how much data to return, therefore can hardly ever fix the aforementioned issues. It’s either over- or under-fetching. OK, that’s theory, but our implementation of GraphQL server doesn’t work this way. It still fetches al…Share
* Get link
* Other Apps
4 comments
Read more
GRAPHQL SERVER IN JAVA: PART I: BASICSOctober 01, 2019
Superficially, there is no reason GraphQL servers are typically written in Node.js. However callbacked-based languages that don’t block waiting for the result turn out to play really well with GraphQL philosophy. Before we dive into details why that’s the case, let us first understand how GraphQL server works underneath and how to implement it correctly. In the second installment we shall split the implementation to lazily load only necessary pieces of information. In the third installment we shall rewrite the server using non-blocking idioms to improve latency and throughput. What is GraphQL First things first, what is GraphQL? I’d say it lies somewhere between REST and SOAP (sic!) It’s a fairly lightweight, JSON protocol that works best for browsers and mobile apps. Just like REST. On the other hand it has a schema, describing valid attributes, operations and payloads. However, unlike SOAP, schema is designed to evolve and we have a great control over the scope of data we’d liketo…
Share
* Get link
* Other Apps
2 comments
Read more
FALLBACKS ARE OVERRATED - ARCHITECTING FOR RESILIENCEJuly 10, 2019
Abstract Fallbacks in circuit breakers replace failure with some pre-configured response so that the scope of the malfunction is limited and hidden from the end user. However, in real life, a naïve fallback is often too simple and either confusing or unacceptable. I suggest a more robust approach to handling failures, compensating for broken transactions in the future. Reading time: 8 minutes. What is a circuit breaker? A circuit breaker is a layer between your code and external dependencies that have a high risk of failure. Every time you call another service, database, or even touch your own disk, there is a possibility of failure. Without circuit breakers such a simple error quickly escalates, bubbling up to your end user. All too often minor dependency brings down a huge system, resulting in 503 HTTP responses or slowness. Circuit breaker discovers raised error levels or elevated response times quickly. Rather than slowing the whole system, it cuts off entire dependency temporari…Share
* Get link
* Other Apps
5 comments
Read more
MAP.MERGE() - ONE METHOD TO RULE THEM ALLMarch 04, 2019
Russian translation available: Map.merge () - метод, чтобы управлять всеми остальными I don’t often explain a single method in JDK, but when I do, it’sabout Map.merge()
.
Probably the most versatile operation in the key-value universe. And also rather obscure and rarely used. merge() can be explained as follows: it either puts new value under the given key (if absent) or updates existing key with a given value (_UPSERT_). Let’s start with the most basic example: counting unique word occurrences. Pre-Java 8 (read: pre-2014!) code was quite messy and the essence was lost in implementation details: var map = new HashMapShare
* Get link
* Other Apps
1 comment
Read more
DESIGNING DATA-INTENSIVE APPLICATIONS: MY FAVOURITE BOOK OF LAST YEARFebruary 25, 2019
Martin Kleppmann, the author of _Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems _ wrote a wonderful, comprehensive book. I consider this to be my most valuable reading of 2018, even though the book is almost 2 years old now. Martin proves that great bestsellers in the programming industry aren’t about shiny new frameworks and buzzwords. _Data-Intensive Applications_ is a solid piece about the fundamentals of computer systems, especially from the data manipulation perspective. This book introduces and explains all topics related to data storage, retrieval and transmission. That doesn’t sound very exciting, does it? However, expect very thorough (600+ pages!) and enjoyable journey through databases, protocols, algorithms and distributed systems. In the FIRST CHAPTER: “_Reliable, Scalable, and Maintainable Applications_” the author describes the environment in which our systems live nowadays. What are the possible failure modes (softwar…Share
* Get link
* Other Apps
3 comments
Read more
RXJAVA VS REACTOR
February 07, 2019
Summary:Stick to whichever library you already have on your CLASSPATH.If you get a choice, Reactor is preferable, RxJava 2.x is still a good alternativeIn case you’re on Android, then RxJava 2.x is your _only_ choice Table of contents:APIType-safetyChecked exceptionsTestingDebuggingSpring supportAndroid developmentMaturitySummary Many people ask me, which library to use in their new projects (if any). Some are concerned that they learned RxJava 1.x and then 2.x came along, and the Reactor. Which one should they use? And some also wonder, what’s with this new java.util.concurrent.Flow?
Let me clarify a few things. First of all, both versions of RxJava and Reactor are quite similar from a functional perspective. If you know 1.x or 2.x, Reactor will be very familiar, though you still have to learn about the differences. Secondly, Flow class (a set of interfaces, to be precise) is part of a reactive streams specification, bundled into JDK. This specification dictates that various reactive …Share
* Get link
* Other Apps
5 comments
Read more
BRUTE-FORCING A SEEMINGLY SIMPLE NUMBER PUZZLESeptember 26, 2018
Something was bothering me for almost two decades. It was a pen and paper game that I learned when I was around 13. The rules are simple: on an empty 10x10 grid (100 squares in total) you put a number _1_ on an arbitrary square. Starting from that square you can move horizontally or vertically jumping over two squares or diagonally jumping over one square. There you can place number _2_. Your task is to reach number _100_, filling all squares. You can not visit already visited squares. Here is an example of a solved game with a reduced 5x5 grid, starting at top-left corner: 12414225162158201310182311471536172212919 On the other hand, if the program makes bad choices, we might get stuck without reaching the perfect score of 25 (on a reduced 5x5 grid): 18291613517141047153619121811 Notice how we got stuck at number 19, unable to move anywhere and fill six remaining gaps. On an original 10x10 grid I never managed to reach the perfect score of _100_. Countless hours wasted at school, of trial and …Share
* Get link
* Other Apps
13 comments
Read more
More posts
NURKIEWICZ AT GMAIL
* Tomasz Nurkiewicz
Warsaw, Poland
Visit profile
ARCHIVE
*
2020 2
*
March 2
*
2019 6
*
October 2
*
July 1
*
March 1
*
February 2
*
2018 10
*
September 2
*
April 1
*
February 2
*
January 5
*
2017 12
*
September 4
*
August 5
*
July 1
*
March 1
*
January 1
*
2016 5
*
October 3
*
August 1
*
June 1
*
2015 23
*
November 1
*
October 2
*
September 1
*
August 1
*
July 7
*
June 4
*
May 1
*
April 2
*
March 1
*
February 3
*
2014 27
*
December 4
*
November 3
*
October 1
*
September 3
*
August 1
*
July 5
*
June 2
*
May 2
*
April 1
*
March 2
*
February 1
*
January 2
*
2013 42
*
December 3
*
November 1
*
October 2
*
September 1
*
August 1
*
July 4
*
June 3
*
May 6
*
April 4
*
March 6
*
February 7
*
January 4
*
2012 30
*
November 7
*
October 6
*
September 3
*
August 1
*
July 1
*
May 3
*
April 5
*
March 1
*
February 2
*
January 1
*
2011 14
*
December 1
*
November 1
*
October 1
*
September 2
*
August 1
*
July 2
*
May 1
*
April 1
*
March 2
*
January 2
*
2010 21
*
December 1
*
October 1
*
September 2
*
August 2
*
July 1
*
May 11
*
March 1
*
January 2
*
2009 26
*
December 2
*
November 1
*
October 3
*
September 4
*
August 4
*
July 2
*
May 4
*
March 2
*
January 4
*
2008 7
*
December 1
*
November 2
*
October 3
*
September 1
Show more Show less
LABELS
* spring60
* scala33
* multithreading23
* rxjava20
* concurrency18
* logging18
* testing16
* java 815
* design patterns14
* CompletableFuture11* akka11
* aop11
* conferences11
* jpa11
* spring mvc11
* functional programming10* groovy10
* HTTP9
* performance9
* review9
* guava8
* reactor8
* clojure7
* ejb7
* intellij idea7
* logback7
* books6
* javascript6
* junit6
* slf4j6
* esb5
* jmx5
* monitoring5
* quartz5
* rest5
* spring boot5
* struts25
* tdd5
* tomcat5
* Hystrix4
* Spock4
* caliper4
* commons4
* servlets4
* web services4
* aspectj3
* backpressure3
* elasticsearch3
* graphql3
* jaxb3
* jms3
* jquery3
* jvm3
* mule3
* stack traces3
* sun3
* transactions3
* 4FinanceIT2
* Graphite2
* Haskell2
* Hazelcast2
* JSON2
* Jackson2
* Netty2
* StAX2
* apache cxf2
* bash2
* benchmarks2
* brainfuck2
* certyfikacja2
* cglib2
* ddd2
* ehcache2
* emoji2
* emojitracker2
* freemarker2
* git2
* gorm2
* h22
* hades2
* hibernate2
* java82
* jolokia2
* maven2
* microservices2
* mongodb2
* nosql2
* redis2
* sse2
* traits2
* wadl2
* warsaw-jug2
* webclient2
* AJAX1
* AngularJS1
* Curator1
* GPX1
* JCrete1
* Java EE1
* Meetup1
* Micrometer1
* RxNetty1
* ScalaCheck1
* ZooKeeper1
* activemq1
* activiti1
* bamboo1
* bezpieczeństwo1
* biology1
* bitcoin1
* bpmn1
* bytecode1
* captcha1
* cassandra1
* coderetreat1
* continuous integration1* deadlock1
* dropwizard1
* dsl1
* eclipselink1
* faas1
* functor1
* game1
* geopandas1
* gps1
* gradle1
* grafana1
* grails1
* hamcrest1
* highcharts1
* httpie1
* java.time1
* javarebel1
* jboss1
* jdbc1
* jfairy1
* jfreechart1
* jmeter1
* jqgrid1
* jqplot1
* jruby1
* jupyter1
* kotlin1
* lazyseq1
* linux1
* log4j1
* logback-feed1
* machine learning1
* matplotlib1
* metrics1
* mockito1
* monad1
* oracle1
* orm1
* pandas1
* perf4j1
* probability1
* puzzles1
* python1
* refactoring1
* scalability1
* scalatest1
* scheduling1
* serverless1
* simulations1
* soapui1
* spring security1
* spring-integration1* spring-js1
* twitter4j1
* webflux1
* wicket1
Show more Show less
Powered by Blogger
Details
Copyright © 2024 ArchiveBay.com. All rights reserved. Terms of Use | Privacy Policy | DMCA | 2021 | Feedback | Advertising | RSS 2.0