Wednesday, June 23, 2021

MapReduce paper: Chinese version

June 23, 2021

Here is the article. 

I like to read Chinese first, and then go back to read English version paper again. 

首先简单介绍下MapReduce,MapReduce实际上是一种编程模型,主要是用于处理大规模数据集,其实现核心逻辑实际上是跟分治方法是统一的。在这个编程模型下,用户只需要关心两个函数,一个是map函数,用于处理一个键值对,然后生成一个中间键值对的数据集合。另一个是reduce函数,是用来将map产生的中间键值对数据集根据相同中间键来进行合并操作。这种编程模型自然而然的是可以通过在一个集群上进行并行的处理。整个系统需要做的是划分输入数据、调度作业任务与机器、处理机器故障以及管理机器间的通信等等,但是这些问题并不是用户需要操心的,当一个完备的集群方案确定后,用户完全不用去了解并行分布式系统的操作流程,便可以进行最大化利用分布式集群的功能。

一、编程模型

整个计算需要一个键值对数据集输入,同时输出的也是一个键值对数据集。前面也提到,用户在使用MapReduce的时候只需要定义map和reduce函数。map函数会处理输入键值对然后产生一个中间键值对数据集,然后这个编程模型会将所有中间键相同的数据组合起来,并将它们传递给reduce函数。而reduce函数则是接受某个中间键和该键的一个数据集合,他会根据需求去合并这些数据,从而产生一个更小的数据集,通常情况下reduce函数产生0或者1个输出。中间数据是通过迭代的方式来提供给reduce函数的,这样就可以处理内存无法满足的大量数据。

1.1 例程

考虑一个问题,那就是统计大批量文档中每个词语的出现的次数。用户可以按照下面的伪代码完成MapReduce过程:

 

这个map函数会将每个word都填上一个1的词频数发射出去,然后reduce函数将同一个word发射出来的数目加起来。对的,事情就是这么简单!!!

1.2 更多例子

这部分主要是介绍MapReduce可以应用到很多有意思的项目去,比如:

分布式查找:这里面的map函数是当某一行满足提供的匹配,就把改行发射出去,然后reduce函数是一个identity函数,仅仅是将提供的中间数据拷贝到输出。

URL统计:这里面的map函数处理网页请求的日志信息,然后输出(url, 1),然后reduce函数为同样的url的值累加起来,输出(url, total_count)。

网络连接图逆向:这里面的map函数为每一个source网页中的一个target链接输出一个(source, target)对,然后reduce函数对每一个给定的目标url,建立一个list,并输出(target, list(source))。

二、实现

2.1 执行流程

这部分主要讲的是google他们用的一个计算集群,具体的集群机器情况,可以看原文介绍,总结就是普通机器,普通内存,普通网络,普通存储,哈哈,不然怎么显示出威力呢。下图是文中介绍的mapreduce执行流程图,这个就比较重要了:


大体上是这样的,M调用会通过自动将输入数据划分成M份的数据集后在多个机器上分布,这些被切分的小份数据会在不同的机器上并行地被处理。而reduce函数则是根据一个parition函数根据中间键将中间数据分成R份。至于分成数量R和partition函数都是由用户自定义。上图就是一个mapreduce操作的执行的整体流程,当一个mapreduce被执行,需要经过以下步骤:

1)用户程序中的MapReduce库首先将输入文件分成M份,每份大小一般是16到64MB,这个可以由用户可选参数控制,然后便会将程序在集群的机器上拷贝。

2)在程序中,有一个程序比较特别,那就是master程序,其他的程序都是worker程序,worker程序用来接收master分配的任务。根据上面分配可知,一共有M个Map任务和R个reduce任务等待分配,master会选择空闲的worker,然后分配map或者reduce任务给他们。

3)当一个worker接收到一个map任务时,便会读取对应的输入。他会从输入文件中解析出一组键值对,并将每一个键值对依次传给用户自定义的map函数,而map函数输出的中间键值对会被保存到内存中去。

4)周期性地,这些被缓存在内存中的键值对数据会由前面提到parition函数分成R份后写入到本地文件中去。这些被存到本地的键值对数据的地址会被回传给master,之后再由master传递给reduce任务的worker。

5)当一个reduce任务的worker被master告知了这些地址,它便会使用远程程序调用方式从那些map任务的worker机器本地磁盘上读取数据。当一个reduce任务的worker读完了所有的中间数据后,他会根据中间键排序,从而使得具有相同的中间键能够被分到一起去。这个排序过程是需要的,因为有时候可能不同的中间键值对数据会被映射到同一个reduce任务的worker。如果中间键值对数据过大很难在内存张排序,外部排序会被使用。

6)reduce的worker会被已排完序的数据中迭代,对每一个唯一的中间key,worker会将这个key和对应的数据集合传递给用户定义的reduce函数。reduce函数的输出会被添加到最终的一个输出文件中去。

7)当所有的map和reduce任务都完成后,master会唤醒用户程序。此时,执行mapreduce的用户程序会得到一个返回结果。

当成功完成后,mapreduce执行的结果输出会存在R个输出文件中,一般情况下,用户并不需要将这R个输出文件合并成一个文件,这些文件经常会被作为输入文件进行另外一个mapreduce过程,或者其他的分布式程序再次被切分成多个文件。

2.2 master数据结构

从刚才的流程看,master在整个流程中起到了至关重要的作用,不仅需要了解任务的情况,还需要了解worker的情况,以及输入输出的情况,这时候高效的数据结构也就显得很重要了。典型情况下,master会保存若干个数据结果,对每一个map任务和reduce任务,它会保存他们的状态(空闲,进行中,已完成)以及对应的worker机器。master作为map任务中间输出到reduce任务的管道,因此对每一个已完成的map任务,master会保存R份中间数据文件的大小和位置,当map任务不断完成时不断更新。这些信息会不停地添加到执行reduce的worker机器上去。

2.3 容错

其实仔细看前面的流程,我们就会有很多很多的疑问,比如说万一master机器挂了呢,岂不是所有任务都跑不了了?比如说某个机器被分配了任务,然后任务出错了,其实不是任务永远都完成不了了?等等,当然不会!!不过说到这里,正好说明下一件事情,其实MapReduce编程的逻辑没什么可以多说的,就是一个简单的分而治之的思想,但是对于分布式系统来说,最难的根本不是这方面,而是对于多机器情况下,任务分配、资源管理、容错控制、一致性保证,这些才是最最关键的,也是最难的,如果真正做到了补充不漏不丢不冲突的分布式系统,那绝对是一个特别特别牛逼的工作。

这个系统也一样,既然是在成百上千台机器上进行的运算,维护的难度可想而知,因此容错是必须的,但是必须是优雅的容错,什么意思呢,如果出现了问题,一个报警告诉管理员,然后程序员坑次坑次跑去重启任务,重启调度这种就显得很low了,文章说了几个容错的方式,一起了解下:

1)worker失败。master会周期性的ping每个机器,如果一个worker在一定时间内没有回应,master会将该机器标记为failed。这时候,这个机器上的所有已完成map任务都会被标记为空闲状态,这样那些map任务就会被重新调度给其他worker去处理。同样,任何在一个失败机器正在执行的map或者reduce任务也会被重置为空闲状态等待重新调度。可能会有疑问,为神马map任务都完成了还需要重新执行,这是因为已完成map任务的输出是存储在失败机器的本地磁盘上,这时候这些数据在机器有问题以后是不能被访问的;而已完成的reduce则不需要重新执行是因为这些输出已经存到了最终输出文件里面去了。当一个map任务在A机器上执行失败后,在B机器上会重新执行,这时候,master会通知所有正在执行reduce任务的worker这种变更,这样还没有从A机器获取数据的reduce任务会从B机器上获取。

2)master失败。对于master的可能性失败,一种比较简单的方法是周期性的将前述master的数据结构写到磁盘里面去,这样万一master挂了,另一个master会从最后写入的数据中恢复出来。

3)失败出现的语义描述。当用户自定义的map和reduce函数是确定性函数的时候,我们分布式实现产生的结果肯定是与无错误情况下整个程序顺序执行的结果一致。在实际过程中,我们依赖map和reduce任务输出的原子提交来实现这一点。每一个进行中的任务,都会将自己的输出写到一个私有的临时文件中去。在mapreduce操作中,一个reduce任务会写一个这样的文件,一个map任务会写R个这样的文件。当一个map任务完成后,这个worker会给master发送消息,并告知这R个临时文件的名字。如果这时候master收到早已完成map任务的消息,即之前已完成过,会忽略这个消息,否则,他会将这R个文件名存到一个数据结构中去。当一个reduce任务完成后,reduce worker会原子性的将临时文件改成最终输出文件。如果同一个reduce任务在多个机器上执行,多次重命名调用会被执行在同一个输出文件上。我们可以依赖文件系统本身提供的原子重命名操作来保证最终的文件系统只包含一个reduce任务的最终输出。

大多数情况下,我们的map和reduce操作都是确定性的。另外,实际上我们的语法实际上与顺序执行时一致的,这样程序员就很容易去推理他们程序的行为。当map或者reduce操作不是确定性的时候,我们同样提供了差一点但是同样合理的语义方法。在非确定性操作出现的时候,一个特定的reduce任务R1的输出会和另一个reduce任务R1的输出一样(因为执行程序不确定性)。但是,一个不同的reduce任务R2则会跟另一个reduce任务R2不一样了就。

2.4 备份任务

一个比较普遍影响MapReduce操作总体时间的原因是因为有一个"掉队者"出现了:有一个机器在处理剩余的一个map或者reduce任务消耗的时间超过正常范围。这种现象产生的原因可能很多,比如网络,比如磁盘IO,比如有新的其他的任务插进来了,等等。这时候,有一个比较简单的机制来处理这个问题,那就是多一个mapreduce操作快接近结束时,master会给这些剩余正在进行中的任务建立备份任务,这样无论是原先的任务完成还是备份的任务完成都会被标记成任务完成状态。这种机制可能会多侵占些资源,但是效果很好。

三、优化

尽管简单的map和reduce函数已经很好地满足了大部分需求,但是还是有一些优化可以极大的提高效率。

3.1 分类函数

MapReduce的用户指定了他们希望得到的reduce任务输出的个数是R个,数据会通过在中间key上执行分类函数进行划分。一般情况下默认的分类函数是哈希函数,这一函数会得到一个相对比较平衡的划分结果。但是,在某些情况下,对key使用自定义的分类函数来划分数据更加有效。比如说,有时候中间key是url,我们想将连接同一个host的数据放到同一个文件中去,这时候如果我们不是对url进行哈希,而是先提取url中的主机数据,再对主机数据进行hash,这时候才能满足更好的满足我们的需求。

3.2 顺序保证

我们保证在一个给定的分类中,中间键值对数据是按照中间key进行升序排列的。这个顺序保证使得对每一个分类输出一个有序结果非常简单,这对于要求输出结果方便查找等情况非常有用。

3.3 连接函数

在某些情况下,每个map任务产生的中间key数据有大量重复,这时候reduce函数就需要进行相互交互和聚合操作。一个很简单的例子就是词频统计,由于每个词频遵循Zipf分布,每个map任务都会产生成百上千个<the, 1>这种记录。这些记录都会通过网络传递给同一个reduce任务,然后再在reduce函数中进行统计得出结果。这时候,我们就允许用户自定义一个combiner函数,这个函数会在数据传递给reduce任务之前进行局部的合并操作,节省了大量的网络传输。这个combiner函数是在每一个map任务机器上执行的,通常情况下,这个函数与reduce函数是同样的代码。他们两之间的区别在于输出是最终输出文件还是中间数据文件。

其实文中还介绍了其他比如说类型优化,跳跃某些有问题的记录的优化,状态信息统计优化,以及本地执行调试的优化,这些大家都可以自己从文章里面看,只是因为他们的重要性不是那么强,就不在这里详述了。同时文中最后部分介绍了这个模型的功能强大,也给出了很多实际使用的例子,实际上可以了解一点,也再次说明一点,大规模分布式系统的逻辑实际上并不是那么复杂,真正复杂之处在于性能的优化,而优化点设计范围很广,技术要求也就很高了,实际上主要是可以分成几个方面:1)资源管理,磁盘的管理,网络的管理,内存的管理,任务的管理,如果在最大化使用硬件本身的同时最大化使用结果;2)容错的管理,分布式的最佳实践是用户感知不到是分布式工作,这时候就需要分布式系统能够保证数据补充不漏不丢,容错容灾能力是考研分布式系统稳定性很重要的一环;3)数据的一致性,其实mapreduce的一致性要求还不是那么严格,而且前面提到了许多操作是原子性操作的要求,这个要求实际上就是保持数据一致的,真正数据一致性的严格可能还是在文件系统,分布式数据库等等方面,这是一个艰难的问题,同时也是效率与准确之间的取舍。

MapReduce paper: Chinese translation

 摘  要

Mapreduce 是一个能够处理和产生大量数据的级联系统和编程模型。用户编制的map函数处理一个key/value对,并产生一系列的中间key/value对,reduce函数汇聚所有具有相同key的中间value值。很多现实的任务就是用这种方式解决的,这也是本文所要展示的。 

以这种模型编写的程序,于普通机器构成的大型集群系统中协调执行。分时系统负责输入数据的分割,安排这些程序平衡执行于这些设备,协调处理失误,和负责必需的中间设备的通信。这就允许程序员在没有任何并行和分布式系统经验的情况下轻松地利用大型的分布式系统。 

我们MapReduce成果运行于由普通机器构建的大系统中,并且正快速扩展:一个典型的MapReduce计算系统在数以千计的设备系统上处理数T的数据。程序员发现这系统很容易处理:百计的MapReduce程序系统已经实现,并且每天就有有一千个以上MapReduce任务在Google的分布式系统上执行。 

1 概述

在过去的五年,作者和很多其他的Google公司同事完成了百计的处理大量数据,具有特殊目的的计算,如爬行文本,web的访问日志,等等,计算统计各种结论数据,例如反向索引,web文档的各种图形结构表现,每个主机网络爬虫文档数量汇总,每天被请求数量最多查询的集合,等等。通常这些计算不复杂,然而输入数据量巨大,要想在能够接受的合理时间内完成,只有将计算分布运行于成百上千的设备上。如何进行并行计算,如何分发数据,如何处理错误?因需要大量代码解决这些问题使得原本简单的计算变得复杂。

为了解决上述复杂的问题,我们设计一个新的抽象模型,使用这个抽象模型,我们只要表述我们想要执行的简单运算即可,而不必关心并行计算、容错、数据分布、负载均衡等复杂的细节,这些问题都被封装在了一个库里面。设计这个抽象模型的灵感来自Lisp和许多其他函数式语言的Map和Reduce的原语。我们意识到大多数的运算都包含这样的操作:在输入数据的“逻辑”记录上应用Map操作得出一个中间key/value 对集合,然后在所有具有相同key值的value值上应用Reduce操作,从而达到合并中间的数据,得到一个想要的结果的目的。使用MapReduce模型,再结合用户实现的Map和Reduce函数,我们就可以非常容易的实现大规模并行化计算;通过MapReduce模型自带的“再次执行”功能,也提供了初级的容灾实现方案。
这个工作(实现一个MapReduce框架模型)的主要贡献是通过简单的接口来实现自动的并行化和大规模的分布式计算,通过使用MapReduce模型接口实现在大量普通的PC机上高性能计算。
第二部分描述基本的编程模型和一些使用案例。第三部分描述了一个经过裁剪的、适合我们的基于集群的计算环境的MapReduce实现。第四部分描述我们认为在MapReduce编程模型中一些实用的技巧。第五部分对于各种不同的任务,测量我们MapReduce实现的性能。第六部分揭示了在Google内部如何使用MapReduce作为基础重写我们的索引系统产品,包括其它一些使用MapReduce的经验。第七部分讨论相关的和未来的工作。

MapReduce paper: Summary in Chinese

June 23, 2021

Here is the link. 

Here are highlights:

  1. MapReduce的思想,借鉴自函数式编程,框架本身为不懂或不熟悉并行和分布式系统的程序员能够充分利用大型分布式系统提供的资源
  2. 容错、计算本地化、任务粒度划分、任务接近执行完成时的BackupTasks

 这次读这篇MapReduce的时候,不禁连连感慨如此影响深远的算法架构,其本质中所透露出的简单的美。论文作者在开篇就强调MapReduce的思想,借鉴自函数式编程,框架本身为不懂或不熟悉并行和分布式系统的程序员能够充分利用大型分布式系统提供的资源(翻译一下:让Google的工程师们,很容易的利用Google提供的基础(这篇论文着重在计算资源)设施)。我不懂函数式编程,但MapReduce框架所做的工作,就是对常规的外部排序的升级。外部排序,要求把大量的输入数据,划分成小的可以在内存中排序的一个个片段,mapreduce也是如此,只是在排序之前提供了一个接口,让框架的使用者可以通过map对数据做一遍预处理,而框架本身,则代用户完成了划分和排序的工作;外部排序,在一个个小片段完成排序后,使用败者树或是k路归并完成所有片段的排序,而mapreduce则提供了一个reduce函数,让框架使用者用自己提供的reduce函数代替k路归并。 如此一类比,MapReduce就是常规外部排序的升级版本而已。而论文提到的具体实现中遇到的,诸如容错、计算本地化、任务粒度划分、任务接近执行完成时的BackupTasks(没想到合适的中文),则是Google自身在应用这个框架时是做出的能够更优的利用存储计算等资源的工程性的优化,这些,不接触到如Google一样如此真实的用户场景和如此规模的基础设施资源,是无法做到最优化的。


        mapreduce的作者Jeff Dean是位列Google管理层的4个Fellow中的一个,同时也是BigTable的作者,网上有这样一句话评价他:“Google就好像一台和布加迪一样快的航母,Jeff Dean和他的天才同事们还可以设计出来的更好发动机引擎,更大的容量,更快的反应器”。

       在看Google Analytics时,也有一些感想。这东西,是Google收购来的,却在Google加以改进升级后,免费提供给所有的互联网站长使用,本质上,Google是想利用此统计分析软件,在分析流量的同时,能够卖出更多的关键字广告,而互联网又是由无数的小网站构成,每个小网站借此提升自己的流量,对Google也是正面的促进作用。Google是鼓励SEO的,让网络上的资源更加规范化,对Google绝对是利大于弊。整个Google的生态体系构筑在自由与开放的基础之上的,反过来说,任何对这一基础的影响都将从根本上动摇Google这一体系的根基,如现在的Facebook,AppStore。

Google map: Learn more | Google official web page | 10 minutes study

 June 23, 2021

Tips and tricks for the Google Maps app

To save time and simplify your Google Maps experience, check out these lesser-known tools.

Try one of the latest Google Maps features

There are many ways to use Google Maps or explore the world around you. Here’s one feature that people find helpful right now.

Plan trips in the future

On your Android device, you can choose when you want to start driving or when you want to reach your destination. You’ll see a travel time estimate, based on traffic and transit schedules. Try setting a specific travel date or time to find the best route before you leave.

  1. On your Android phone or tablet, open the Google Maps app Maps.
  2. Look up directions to a place.
  3. After you've gotten your directions, at the top, tap More  More and then Set a reminder to leave.
  4. To change your travel dates or times, select Depart at or Arrive by.

Note: If you have more than one destination, you won’t be able to use this feature.

Learn about other helpful Maps features

See what else you can do with Google Maps

Actionable items:

  1. Try to get ideas how local guide is designed in Google map product feature. 
  2. How the feature of local guide is designed in more detail?
  3. Play with local guide and learn more about Google map. 

Bitcoin stocks: Withdraw symptoms | Depression symptoms | Gambling | Article in English - Addiction

 June 23, 2021

Here is the link. 

ex-Google TechLead on the cryptocurrency crash. 💵 Get 2 FREE Stocks on WeBull valued up to $1850 (when you deposit $100): https://act.webull.com/k/S4oOH2yGOtHk... Join ex-Google/ex-Facebook engineers for my coding interview training: https://techinterviewpro.com/

I like to spend 10 minutes to understand better about bitcoin and addiction. Investing is so challenge and behavior finance is such tough topics and people may like to learn more. I just share it with wechat group first. 


Bitcoin stocks: Techlead | share with wechat group | 20 minutes to study

June 23, 2021

Here is the link. 

I like to spend time to learn some basics about bitcoin. I think about digit currency, but bitcoin is different one. I spent one semester to learn introduction to cryptography math course back in 2004. I like the cryptograph algorithms. 



Tuesday, June 22, 2021

Jiangxi province | University admission 2021 | My research of ranking

 











2018 排名前100名 | Top 100 university in China | Ranking | My 20 minutes research

 June 22, 2021

Here is the ranking in 2018. I try to figure out 2021 Jiangxi province 593 ranking. 











593 | Jiangxi province | University admission | My research

 June 22, 2021

Here is the article. 



He xindi | 593 - jiangxi province | University admission | My 20 minutes research

 June 22, 2021

Here is the link. 


Two hours research | He xindi - 593 | University, major | My research

June 22, 2021


Here is the article. 

2021年江西高考理科600分能上什么大学 成绩600分能上的学校有哪些

2021-04-23 11:04:07文/张春军

高考结束就是最大的事情就是填报志愿了,文科理科不同分数选择也大不相同。2021年江西高考理科600分能上什么大学 成绩600分能上的学校有哪些。其实高考600多分可以选择的学校有很多。下面就来为大家分享高考600多分怎么办!!供大家参考!!

1江西高考理科600分能上什么大学名单如下

高校名称所在地录取批次录取线差省市分数线高校平均分
北京理工大学北京本科提前批

595
北京邮电大学北京本科第一批78526(第一批)604
首都医科大学北京本科第一批71526(第一批)597
中国传媒大学北京本科第一批69526(第一批)595
中国政法大学北京本科第一批75526(第一批)601
华北电力大学(北京)北京本科第一批73526(第一批)599
天津医科大学天津本科第一批70526(第一批)596
大连理工大学辽宁本科提前批

605
东北财经大学辽宁本科第一批72526(第一批)598
华东师范大学上海本科提前批

604
上海外国语大学上海本科第一批79526(第一批)605
山东大学山东本科第一批71526(第一批)597
中南财经政法大学湖北本科第一批78526(第一批)604
湖南大学湖南本科第一批70526(第一批)596
中南大学湖南本科第一批73526(第一批)599
暨南大学广东本科第一批71526(第一批)597
四川大学四川本科第一批70526(第一批)596
西南财经大学四川本科第一批77526(第一批)603
南方医科大学广东本科第一批77526(第一批)603

2江西高考理科600分能上什么大学简介

北京理工大学创办于1940年,是中国共产党创办的第一所理工科高校,是新中国成立以来国家历批次重点建设的大学,首批设立研究生院,首批进入国家“211工程”和“985工程”建设行列,现隶属于工业和信息化部。2012年,学校首次进入在全球具有广泛影响力的英国QS世界大学排名“亚洲大学100强”和“世界大学500强”,在入选的19所中国高校中名列第13位。

北京邮电大学是教育部直属、工业和信息化部共建、首批进行“211工程”建设的全国重点大学,是“985优势学科创新平台”项目重点建设高校,是我国信息科技人才的重要培养基地。学校现有西土城路校区、沙河校区、宏福校区和延庆世纪学院校区,在江苏无锡和广东深圳分别设有研究院。全日制本、硕、博学生及留学生近30000名,网络教育在籍学生约50000名。

首都医科大学建校于1960年,是北京市重点高等院校,已故著名泌尿外科专家、两院院士、全国人大常委会副委员长吴阶平教授为首任校长。现任党委书记李明教授,校长吕兆丰教授。学校校本部设有10所学院和1所研究院。

特别说明:以上江西高考理科600分能上什么大学 成绩600分能上的学校有哪些由高三网根据历年各个高校录取分数线收集整理,由于各省份高校分数等信息情况不一样,高三网所提供的所有高校录取分数信息仅供考生及家长参考,敬请考生及家长以权威部门公布的正式信息为准。


USA today | How Does GPS Work on Cell Phones?

June 22, 2021

Here is the article. 

Cell Phones

New-generation cell phones combine many devices into one. When traveling, one of the most convenient of these features is the built-in GPS. When visiting a place that you aren't familiar with, getting lost is a lot harder when you have turn-by-turn directions on your cell phone. Even the cell phones that don't have GPS can use cell tower position and distance to calculate your location. Cell phones function by communicating with towers connected to a base station in a configuration called a "cell." As you move through the cell, the base station monitors your cell phone's signal and transfers it to the nearest tower.

GPS

Cell phones with GPS receivers communicate with units from among the 30 global positioning satellites in the GPS system. The built-in receiver trilaterates your position using data from at least three GPS satellites and the receiver. GPS can determine your location by performing a calculation based on the intersection point of overlapping spheres determined by the satellites and your phone's GPS receiver. In simple terms, trilateration uses the distance between the satellites and the receiver to create overlapping "spheres" that intersect in a circle. The intersection is your location on the ground.

Finding the Way

Using GPS on your cell phone depends on the phone. Some phones use GPS only for 911 emergency calls. Sophisticated phones are able to receive and display location maps to show roads and more, and to give directions. These turn-by-turn programs are mostly JAVA-based and work with your cell provider's database.


Google map: 23 tips and tricks | Reading is cheapest way to learn and invest | 10 minutes to read

June 22, 2021

Here is the article. 

How to use Google Maps: 23 essential tips and tricks

Google IT Automation with Python Professional Certificate

 June 22, 2021

Here is the link. 

It is hard for me to spend 100 hours to work on python as a language. I have so many projects to work on, and one thing is to work on system design. I like to read so many books instead of following others on lectures, and enjoying personal crafting courses. 

Anyway, I still need to start one course on Coursera.org one day, and I like to really challenge myself to learn one course. 

Course content

This beginner-level, six-course certificate, developed by Google, is designed to provide IT professionals with in-demand skills -- including Python, Git, and IT automation -- that can help you advance your career.

Knowing how to write code to solve problems and automate solutions is a crucial skill for anybody in IT. Python, in particular, is now the most in-demand programming language by employers.

This program builds on your IT foundations to help you take your career to the next level. It’s designed to teach you how to program with Python and how to use Python to automate common system administration tasks. You'll also learn to use Git and GitHub, troubleshoot and debug complex problems, and apply automation at scale by using configuration management and the Cloud.

This certificate can be completed in about 6 months and is designed to prepare you for a variety of roles in IT, like more advanced IT Support Specialist or Junior Systems Administrator positions. Upon completion, you can share your information with potential employers, like Walmart, Sprint, Hulu, Bank of America, Google (of course!), and more.

We recommend that you have Python installed on your machine. For some courses, you’ll need a computer where you can install Git or ask your administrator to install it for you.

Monday, June 21, 2021

GTE stock: Colombian riots | two months investment experience | $10,000 US dollars

 June 21, 2021

Introduction

I like to work on investment of a small oil company in Canada called Gran Tierra Energy Inc. (GTE).  I like to be a good learner and also work hard to figure out how to help.

My position





Google I/O 2016 - Keynote

June 21, 2021

Here is the link. 

Watch the entire Google I/O Keynote here. Some highlights include the new messaging app Allo, the Video calling app Duo, the latest in Developer Platform innovation with Firebase, What's new in Android N, Android Wear 2.0 updates, and Android Instant Run.