fernandocejas.com Report : Visit Site


  • Ranking Alexa Global: # 347,757,Alexa Ranking in Brazil is # 32,287

    Server:cloudflare...

    The main IP address: 104.31.68.121,Your server Singapore,Singapore ISP:CloudFlare Inc.  TLD:com CountryCode:SG

    The description :welcome! i’m fernando cejas, developer advocate @ibm. @soundcloud alumni. in this blog, you will find content related to software engineering. all views, posts and opinions shared are my own....

    This report updates in 01-Jul-2018

Created Date:2011-10-17
Changed Date:2017-03-07

Technical data of the fernandocejas.com


Geo IP provides you such as latitude, longitude and ISP (Internet Service Provider) etc. informations. Our GeoIP service found where is host fernandocejas.com. Currently, hosted in Singapore and its service provider is CloudFlare Inc. .

Latitude: 1.2896699905396
Longitude: 103.85006713867
Country: Singapore (SG)
City: Singapore
Region: Singapore
ISP: CloudFlare Inc.

HTTP Header Analysis


HTTP Header information is a part of HTTP protocol that a user's browser sends to called cloudflare containing the details of what the browser wants and will accept back from the web server.

Expect-CT:max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
Content-Encoding:gzip
Transfer-Encoding:chunked
X-GitHub-Request-Id:4F15:5C20:A8D45B:EC7CDF:5B388F73
Expires:Sun, 01 Jul 2018 08:33:15 GMT
Vary:Accept-Encoding
Server:cloudflare
Last-Modified:Fri, 11 May 2018 08:43:49 GMT
Connection:keep-alive
Cache-Control:max-age=600
Date:Sun, 01 Jul 2018 08:23:15 GMT
Access-Control-Allow-Origin:*
Content-Type:text/html; charset=utf-8
CF-RAY:4337783359099260-EWR

DNS

soa:etta.ns.cloudflare.com. dns.cloudflare.com. 2028103097 10000 2400 604800 3600
ns:etta.ns.cloudflare.com.
kai.ns.cloudflare.com.
ipv4:IP:104.31.68.121
ASN:13335
OWNER:CLOUDFLARENET - Cloudflare, Inc., US
Country:US
IP:104.31.69.121
ASN:13335
OWNER:CLOUDFLARENET - Cloudflare, Inc., US
Country:US
ipv6:2400:cb00:2048:1::681f:4479//13335//CLOUDFLARENET - Cloudflare, Inc., US//US
2400:cb00:2048:1::681f:4579//13335//CLOUDFLARENET - Cloudflare, Inc., US//US

HtmlToText

{} | welcome! i'm , developer advocate @ibm. @soundcloud alumni. in this blog, you will find content related to software engineering. all views, posts and opinions shared are my own. github twitter speaker deck linkedin blog posts architecting android...reloaded » may 7, 2018 moving forward... from soundcloud to ibm. » december 1, 2017 smooth your migration to kotlin » october 20, 2017 android testing with kotlin » february 3, 2017 clean architecture: dynamic parameters in use cases » december 24, 2016 android: dagger 1 and 2 living together » august 3, 2016 how to use optional values on java and android » february 20, 2016 debugging rxjava on android » november 5, 2015 architecting android...the evolution » july 18, 2015 tasting dagger 2 on android » april 11, 2015 rxjava observable tranformation: concatmap() vs flatmap() » january 11, 2015 architecting android...the clean way? » september 3, 2014 aspect oriented programming in android » august 3, 2014 unit testing asynchronous methods with mockito » april 8, 2014 nfc on android » september 4, 2013 architecting android...reloaded 07 may 2018 after a long time i decided to write again about architecture on android applications. the reason? mainly feedaback from the community and lessons learned. but even though a lot has been said since the early days when clean architecture became popular in mobile development, there is always room for improvement and evolution. in order to get started and get things easier, i will assume you have already read these old but still valid blog posts: architecting android…the clean way? architecting android…the evolution. based on the above articles clean architecture example, there is a clear evolution in the codebase, especially because nowadays with applications being key at a business level, more than ever, there is a need to scale, modularize and organize teams around mobile development (mainly due to its complexity). thus, the idea is to come up with an ( elegant? ) solution which will make our life easier in terms of: problem solving. scalability. modularization. testability. independence of frameworks, ui and databases. this is the big picture, which should look familiar if you have been using clean architecture in your android applications. our scenario a simple movies android application (any similarities with reality is a mere coincidence). written in kotlin: not much to say other than that we want to leverage a modern language's features like inmutability, conciseness, functional programming, etc. with the following flow: where we have 3 main use cases: get a list of movies. show details for an specific clicked movie. play a movie. as usual, the source code is available on github. general architecture the general principle is to use a basic 3 tiers architecture. the good thing about it, is that it is very easy to understand and many people are familir with it. so we will break down our solution into layers in order to respect the dependency rule ( where dependencies flow in one direction: check above the rounded clean architecture graph): nothing new here if we keep in mind my previous posts, but do not stop reading yet. let's dive deeper and go piece by piece for a better understanding. domain layer: functional use cases a use case is an intention, in other words, something we want to do in our application, one of our main players. and its main responsibility is to orchestrate our domain logic and its connection with both ui and data layers. by using the power of kotlin and its treatment of functions as first class citizens (more coming up shortly), we have in our framework a usecase abstraction, which acts as a contract for all the use cases in our application. abstract class usecase < out type , in params > where type : any { abstract suspend fun run ( params: params ): either < failure , type > fun execute ( onresult: ( either < failure , type >) -> unit , params: params ) { val job = async ( commonpool ) { run ( params ) } launch ( ui ) { onresult . invoke ( job . await ()) } } } what is going on here? we have an abstract class which takes 2 generic parameters: <out type> : a return type which is the result of the executed use case. <in params> : a parameters class which will be consumed inside the run() function in case we need extra data for our use case. the execute() function is where all the magic happens: we pass a "onresult" function as a parameter which takes an either<failure, type> and returns unit (in the error handling section i will extend the explanation for either<l, r> , so be patient please :)). the good thing is that the caller of the usecase is actually establishing the desired behaviour by passing this inmutable function (onresult), thus, avoiding any internal exposure or side effects if we were passing objects (one of the benefits of fp, more coming up). also, by using kotlin coroutines we invoke the passed "onresult" function in a different thread, so from this point on, we are safe to write our code in a synchronous fashion. the result will be posted on the android main ui thread. abstract suspend fun run(params: params) is what we have to override when extending the usecase<out type, in params> abstraction, so for instance, this is how our getmovies use case looks like: class getmovies @inject constructor ( private val moviesrepository: moviesrepository ) : usecase < list < movie >, none >() { override suspend fun run ( params: none ) = moviesrepository . movies () } in this example we are delegating movies retrieval to a repository. easy right? ui layer: from mvp to mvvm the model-view-viewmodel pattern (mvvm) provides a clean separation of concerns between user interface and domain logic. it has 3 main components: the model, the view, and the view model. there are relationships between them, although each serves a distinct and separate role: at the highest level, the view "knows about" the view model, and the view model "knows about" the model, but the model is unaware of the view model, and the view model is unaware of the view. the view model isolates the view from the model classes and allows the model to evolve independently of the view. at implementation level, in our example, mvvm is accomplished by the usage of architecture components , which its main advantage is to handle configuration changes when the screen rotates, something that has given us many headaches as android developers (i guess you know what i'm talking about). disclaimer: that does not mean we have to no longer care about lifecycles, but it is way easier. a comment on mvp (model view presenter) from previous example: i found tricky to avoid leaks due to activities and fragments being recreated so i used a poor man solution: retain fragments. however, i ran into these sort of situations anyway. this is the reason why i decided to go and give a try to mvvm. let’s see what changed with mvvm from previous sample and how it works: fragments act as views, where all the logic related to displaying data on the screen happens. fragments also know about viewmodels, they actually subscribe to viewmodels. viewmodels contain livedata objects and references to usecases. usecases update livedata which react to those changes and send notifications to viewmodels. viewmodels talk to subscribed fragments in order to update the ui. in order to see all these pieces working together, let's see some code. viewmodel containing livedata and updating by calling usecase.execute() function: class moviesviewmodel @inject constructor ( private val getmovies: getmovies ) : baseviewmodel () { var movies: mutablelivedata < list < movieview >> = mutablelivedata () fun loadmovies () = getmovies . execute ({ it . either (:: handlefailure , :: handlemovielist ) }, none ()) private fun handlemovielist ( movies: list < movie >) { this . movies . value = movies . map { movieview ( it . id , it . poster ) } } } fr

URL analysis for fernandocejas.com


https://fernandocejas.com/2016/08/03/android-dagger-1-and-2-living-together/
https://fernandocejas.com/2017/02/03/android-testing-with-kotlin/
https://fernandocejas.com/2016/02/20/how-to-use-optional-on-android-and-java/
http://fernandocejas.com/2015/07/18/architecting-android-the-evolution/
https://fernandocejas.com/2015/04/11/tasting-dagger-2-on-android/
https://fernandocejas.com/2017/10/20/smooth-your-migration-to-kotlin/
https://fernandocejas.com/2014/04/08/unit-testing-asynchronous-methods-with-mockito/
https://fernandocejas.com/2016/12/24/clean-architecture-dynamic-parameters-in-use-cases/
https://fernandocejas.com/2015/01/11/rxjava-observable-tranformation-concatmap-vs-flatmap/
http://fernandocejas.com/2014/09/03/architecting-android-the-clean-way/
https://fernandocejas.com/2015/07/18/architecting-android-the-evolution/
https://fernandocejas.com/2017/12/01/moving-forward-from-sc-to-ibm/
https://fernandocejas.com/2015/04/11/tasting-dagger-2-on-android/
https://fernandocejas.com/2016/12/24/clean-architecture-dynamic-parameters-in-use-cases/
https://fernandocejas.com/2018/05/07/architecting-android-reloaded/

Whois Information


Whois is a protocol that is access to registering information. You can reach when the website was registered, when it will be expire, what is contact details of the site with the following informations. In a nutshell, it includes these informations;

Domain Name: FERNANDOCEJAS.COM
Registry Domain ID: 1682556022_DOMAIN_COM-VRSN
Registrar WHOIS Server: whois.PublicDomainRegistry.com
Registrar URL: http://www.publicdomainregistry.com
Updated Date: 2017-03-07T09:36:50Z
Creation Date: 2011-10-17T11:53:09Z
Registry Expiry Date: 2018-10-17T11:53:09Z
Registrar: PDR Ltd. d/b/a PublicDomainRegistry.com
Registrar IANA ID: 303
Registrar Abuse Contact Email: [email protected]
Registrar Abuse Contact Phone: +1.2013775952
Domain Status: ok https://icann.org/epp#ok
Name Server: ETTA.NS.CLOUDFLARE.COM
Name Server: KAI.NS.CLOUDFLARE.COM
DNSSEC: unsigned
URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/
>>> Last update of whois database: 2017-09-30T19:34:07Z <<<

For more information on Whois status codes, please visit https://icann.org/epp

NOTICE: The expiration date displayed in this record is the date the
registrar's sponsorship of the domain name registration in the registry is
currently set to expire. This date does not necessarily reflect the expiration
date of the domain name registrant's agreement with the sponsoring
registrar. Users may consult the sponsoring registrar's Whois database to
view the registrar's reported date of expiration for this registration.

TERMS OF USE: You are not authorized to access or query our Whois
database through the use of electronic processes that are high-volume and
automated except as reasonably necessary to register domain names or
modify existing registrations; the Data in VeriSign Global Registry
Services' ("VeriSign") Whois database is provided by VeriSign for
information purposes only, and to assist persons in obtaining information
about or related to a domain name registration record. VeriSign does not
guarantee its accuracy. By submitting a Whois query, you agree to abide
by the following terms of use: You agree that you may use this Data only
for lawful purposes and that under no circumstances will you use this Data
to: (1) allow, enable, or otherwise support the transmission of mass
unsolicited, commercial advertising or solicitations via e-mail, telephone,
or facsimile; or (2) enable high volume, automated, electronic processes
that apply to VeriSign (or its computer systems). The compilation,
repackaging, dissemination or other use of this Data is expressly
prohibited without the prior written consent of VeriSign. You agree not to
use electronic processes that are automated and high-volume to access or
query the Whois database except as reasonably necessary to register
domain names or modify existing registrations. VeriSign reserves the right
to restrict your access to the Whois database in its sole discretion to ensure
operational stability. VeriSign may restrict or terminate your access to the
Whois database for failure to abide by these terms of use. VeriSign
reserves the right to modify these terms at any time.

The Registry database contains ONLY .COM, .NET, .EDU domains and
Registrars.

  REGISTRAR PDR Ltd. d/b/a PublicDomainRegistry.com

SERVERS

  SERVER com.whois-servers.net

  ARGS domain =fernandocejas.com

  PORT 43

  TYPE domain

DOMAIN

  NAME fernandocejas.com

  CHANGED 2017-03-07

  CREATED 2011-10-17

STATUS
ok https://icann.org/epp#ok

NSERVER

  ETTA.NS.CLOUDFLARE.COM 173.245.58.156

  KAI.NS.CLOUDFLARE.COM 173.245.59.188

  REGISTERED yes

Go to top

Mistakes


The following list shows you to spelling mistakes possible of the internet users for the website searched .

  • www.ufernandocejas.com
  • www.7fernandocejas.com
  • www.hfernandocejas.com
  • www.kfernandocejas.com
  • www.jfernandocejas.com
  • www.ifernandocejas.com
  • www.8fernandocejas.com
  • www.yfernandocejas.com
  • www.fernandocejasebc.com
  • www.fernandocejasebc.com
  • www.fernandocejas3bc.com
  • www.fernandocejaswbc.com
  • www.fernandocejassbc.com
  • www.fernandocejas#bc.com
  • www.fernandocejasdbc.com
  • www.fernandocejasfbc.com
  • www.fernandocejas&bc.com
  • www.fernandocejasrbc.com
  • www.urlw4ebc.com
  • www.fernandocejas4bc.com
  • www.fernandocejasc.com
  • www.fernandocejasbc.com
  • www.fernandocejasvc.com
  • www.fernandocejasvbc.com
  • www.fernandocejasvc.com
  • www.fernandocejas c.com
  • www.fernandocejas bc.com
  • www.fernandocejas c.com
  • www.fernandocejasgc.com
  • www.fernandocejasgbc.com
  • www.fernandocejasgc.com
  • www.fernandocejasjc.com
  • www.fernandocejasjbc.com
  • www.fernandocejasjc.com
  • www.fernandocejasnc.com
  • www.fernandocejasnbc.com
  • www.fernandocejasnc.com
  • www.fernandocejashc.com
  • www.fernandocejashbc.com
  • www.fernandocejashc.com
  • www.fernandocejas.com
  • www.fernandocejasc.com
  • www.fernandocejasx.com
  • www.fernandocejasxc.com
  • www.fernandocejasx.com
  • www.fernandocejasf.com
  • www.fernandocejasfc.com
  • www.fernandocejasf.com
  • www.fernandocejasv.com
  • www.fernandocejasvc.com
  • www.fernandocejasv.com
  • www.fernandocejasd.com
  • www.fernandocejasdc.com
  • www.fernandocejasd.com
  • www.fernandocejascb.com
  • www.fernandocejascom
  • www.fernandocejas..com
  • www.fernandocejas/com
  • www.fernandocejas/.com
  • www.fernandocejas./com
  • www.fernandocejasncom
  • www.fernandocejasn.com
  • www.fernandocejas.ncom
  • www.fernandocejas;com
  • www.fernandocejas;.com
  • www.fernandocejas.;com
  • www.fernandocejaslcom
  • www.fernandocejasl.com
  • www.fernandocejas.lcom
  • www.fernandocejas com
  • www.fernandocejas .com
  • www.fernandocejas. com
  • www.fernandocejas,com
  • www.fernandocejas,.com
  • www.fernandocejas.,com
  • www.fernandocejasmcom
  • www.fernandocejasm.com
  • www.fernandocejas.mcom
  • www.fernandocejas.ccom
  • www.fernandocejas.om
  • www.fernandocejas.ccom
  • www.fernandocejas.xom
  • www.fernandocejas.xcom
  • www.fernandocejas.cxom
  • www.fernandocejas.fom
  • www.fernandocejas.fcom
  • www.fernandocejas.cfom
  • www.fernandocejas.vom
  • www.fernandocejas.vcom
  • www.fernandocejas.cvom
  • www.fernandocejas.dom
  • www.fernandocejas.dcom
  • www.fernandocejas.cdom
  • www.fernandocejasc.om
  • www.fernandocejas.cm
  • www.fernandocejas.coom
  • www.fernandocejas.cpm
  • www.fernandocejas.cpom
  • www.fernandocejas.copm
  • www.fernandocejas.cim
  • www.fernandocejas.ciom
  • www.fernandocejas.coim
  • www.fernandocejas.ckm
  • www.fernandocejas.ckom
  • www.fernandocejas.cokm
  • www.fernandocejas.clm
  • www.fernandocejas.clom
  • www.fernandocejas.colm
  • www.fernandocejas.c0m
  • www.fernandocejas.c0om
  • www.fernandocejas.co0m
  • www.fernandocejas.c:m
  • www.fernandocejas.c:om
  • www.fernandocejas.co:m
  • www.fernandocejas.c9m
  • www.fernandocejas.c9om
  • www.fernandocejas.co9m
  • www.fernandocejas.ocm
  • www.fernandocejas.co
  • fernandocejas.comm
  • www.fernandocejas.con
  • www.fernandocejas.conm
  • fernandocejas.comn
  • www.fernandocejas.col
  • www.fernandocejas.colm
  • fernandocejas.coml
  • www.fernandocejas.co
  • www.fernandocejas.co m
  • fernandocejas.com
  • www.fernandocejas.cok
  • www.fernandocejas.cokm
  • fernandocejas.comk
  • www.fernandocejas.co,
  • www.fernandocejas.co,m
  • fernandocejas.com,
  • www.fernandocejas.coj
  • www.fernandocejas.cojm
  • fernandocejas.comj
  • www.fernandocejas.cmo
Show All Mistakes Hide All Mistakes