<?xml version="1.0" encoding="UTF-8"?><feed
	xmlns="http://www.w3.org/2005/Atom"
	xmlns:thr="http://purl.org/syndication/thread/1.0"
	xml:lang="en-US"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>
	<title type="text">Aurélien Pelletier</title>
	<subtitle type="text">Web,Open source, Agile, Architecture, Innovation</subtitle>

	<updated>2023-11-10T13:39:51Z</updated>

	<link rel="alternate" type="text/html" href="https://blogpro.toutantic.net" />
	<id>https://blogpro.toutantic.net/feed/atom/</id>
	<link rel="self" type="application/atom+xml" href="https://blogpro.toutantic.net/feed/atom/" />

	<generator uri="https://wordpress.org/" version="6.5.8">WordPress</generator>
	<entry>
		<author>
			<name>Aurélien Pelletier</name>
							<uri>http://blogpro.toutantic.net</uri>
						</author>

		<title type="html"><![CDATA[GPTs are here]]></title>
		<link rel="alternate" type="text/html" href="https://blogpro.toutantic.net/2023/11/10/gpts-are-here/" />

		<id>https://blogpro.toutantic.net/?p=1269</id>
		<updated>2023-11-10T13:39:51Z</updated>
		<published>2023-11-10T13:39:51Z</published>
		<category scheme="https://blogpro.toutantic.net" term="architecture" /><category scheme="https://blogpro.toutantic.net" term="LLM" />
		<summary type="html"><![CDATA[Like many tech enthusiasts, I was impressed by the annoucements openAI made this week and I found myself constantly refreshing https://platform.openai.com/playground in anticipation. Finally, the moment arrived ! One of the biggest needs for generative AI is to be able to inject your own content or &#8220;embed&#8221; it to make the answers more revelants. It [&#8230;]]]></summary>

					<content type="html" xml:base="https://blogpro.toutantic.net/2023/11/10/gpts-are-here/"><![CDATA[
<p>Like many tech enthusiasts, I was impressed by the annoucements openAI made this week and I found myself constantly refreshing <a href="https://platform.openai.com/playground">https://platform.openai.com/playground</a> in anticipation. Finally, the moment arrived !<br><br>One of the biggest needs for generative AI is to be able to inject your own content or &#8220;embed&#8221; it to make the answers more revelants. It was already possible using the openAI APIs, a vectorDB, a bit of langchain and some coding. In fact, many sites were already offering this kind of feature. People are saying openAI just killed all the &#8220;wrapper&#8221; startup around them because it&#8217;s now possible to do just that directly on the openAI platform.<br><br>It took me about 5min to conduct this experiment:<br>For the last 3 years I have been keeping a  logbook of everything I found interesting and learned about. I have uploaded that content to chatGPT and then asked him to tell me what I have learned in the past 3 years.<br><br>If you have a GPTplus account you can play with it here:<br><a href="https://chat.openai.com/g/g-PAKk8wkX0-aurelien-s-digital-twin">https://chat.openai.com/g/g-PAKk8wkX0-aurelien-s-digital-twin</a></p>



<p></p>



<p><br>Here is the result of my conversation with my digital twin</p>



<p><strong>What have you learned in 2021 ?</strong></p>



<p>In 2021, my knowledge base was significantly expanded with insights primarily focused on product management, leadership, and technical strategies. Here are some key learnings from that year:</p>



<ol>
<li><strong>Agile Product Ownership</strong>: Emphasizing the role of a Product Owner in prioritizing tasks and the importance of saying &#8216;no&#8217; to maintain focus on the most critical items.</li>



<li><strong>Key Product KPIs</strong>: Understanding the top product key performance indicators, such as Product Stickiness, Usage, Feature Adoption and Retention, Net Promoter Score (NPS), and others. These KPIs are essential for evaluating the success and impact of a product.</li>



<li><strong>The Boring Architecture for Data Science</strong>: Highlighting the necessity of having developers in data science projects to ensure that the work doesn&#8217;t just stay in theory but is actually implemented in production.</li>



<li><strong>Git and GitHub Best Practices</strong>: Insights into new functionalities in Git, like the &#8220;&#8211;follow-tags&#8221; option for pushing relevant tags with branches, and the use of Git aliases for efficiency. Also, the introduction of GitHub actions for automating workflows.</li>



<li><strong>Node.js Development</strong>: Techniques for making HTTP calls in Node.js, using Axios, and handling maintenance modes in Express applications.</li>



<li><strong>Command Line Efficiency</strong>: Improving command-line usage with history search capabilities, bashrc configurations, and .inputrc settings for a more efficient and productive terminal experience.</li>



<li><strong>Cloud and CI/CD Technologies</strong>: Learning about Google Cloud Run and its functionalities, as well as continuous integration and deployment strategies.</li>



<li><strong>Legal and Licensing</strong>: Gaining knowledge about the ISC License, its implications, and its application in software development.</li>



<li><strong>Wardley Mapping</strong>: Understanding the basics of Wardley Mapping, a technique for strategic planning and situational awareness in business.</li>



<li><strong>E-commerce and SMB Market Automation</strong>: Exploring strategies and technologies for automating small and medium-sized businesses in the e-commerce sector.</li>
</ol>



<p>These learnings reflect a diverse range of topics, covering both technical and managerial aspects, crucial for a well-rounded understanding of the IT and software development landscape.</p>



<p><strong>And in 2022 ?</strong></p>



<p>In 2022, my knowledge further expanded, covering diverse topics in product management, engineering leadership, and strategic IT practices. Here&#8217;s a summary of what I learned:</p>



<ol>
<li><strong>Outcome-Focused Approach in Organizations</strong>: Strategies for persuading companies to adopt an outcome-focused approach instead of a feature-factory mindset. This involves being consistent in communicating goals and employing timeboxes as a healthy forcing function.</li>



<li><strong>Product Prioritization Techniques</strong>: Insights from various sources about effective product prioritization, including the importance of identifying customer value and optimizing workflows.</li>



<li><strong>Project Management and Agile Practices</strong>: Emphasis on products over projects, the significance of team collaboration, and the prioritization of value over effort, aligning with the principles of the FlowCon Manifesto and other agile frameworks.</li>



<li><strong>KPIs for Customer Service</strong>: Understanding key performance indicators for customer service, such as resolution rates, customer satisfaction scores, and Net Promoter Scores.</li>



<li><strong>DSDM Agile Project Framework</strong>: A deep dive into the DSDM methodology, focusing on its eight fundamental principles, the MoSCoW prioritization technique, and benefits like user ownership and meeting true business requirements.</li>



<li><strong>Strategic Thinking and Decision Making</strong>: Exploring strategies blending practical experiences with academic theories. This includes understanding strategies of terrain versus strategies of trajectory and the concept that a viable strategy&#8217;s opposite must also be viable.</li>



<li><strong>Outcome-Based Roadmaps</strong>: Learning about the advantages of outcome-based roadmaps in product development, including improved visibility, team autonomy, and the incorporation of user feedback.</li>



<li><strong>Organizational Transformation</strong>: The emotional aspects of organizational transformation, including addressing the unsustainable status quo, developing a purposeful vision, and aligning KPIs with resources and people.</li>



<li><strong>OKR Methodology</strong>: Detailed insights into Objectives and Key Results (OKRs), focusing on creating ambitious, measurable, and impactful goals.</li>



<li><strong>Tech Audit and Due Diligence</strong>: Understanding the comprehensive process of technical auditing and due diligence, including aspects like technical architecture, team quality, cybersecurity practices, and data practices.</li>



<li><strong>Leadership in Technology and Product Development</strong>: Emphasizing the importance of understanding the customer&#8217;s perspective, creating a continuous workflow, and fostering a culture of continuous improvement.</li>
</ol>



<p>These learnings from 2022 represent a rich tapestry of knowledge, blending technical acumen with strategic insight and leadership skills, essential for navigating the complex and evolving landscape of IT and software development.</p>



<p><strong>And now 2023 ?</strong></p>



<p>In 2023, my learning journey continued, focusing on advanced aspects of IT platforms, cloud computing, data platforms, and generative AI, among others. Here are the key insights:</p>



<ol>
<li><strong>CTO Role and Responsibilities</strong>: Emphasis on building a culture of trust and safety in the technical organization, making strategic decisions collaboratively, and ensuring the development of high-quality products.</li>



<li><strong>Generative AI and Programming</strong>: Insight into the potential impact of AI tools like GPT-3 on programming, highlighting the necessity for clients to clearly articulate their requirements for successful implementation.</li>



<li><strong>Component-Based Development</strong>: Understanding that a significant portion of required components in software development may already exist elsewhere, emphasizing the reusability of code.</li>



<li><strong>Product vs. Engineering Dynamics</strong>: Delving into the interplay between product management and engineering, and how these disciplines interact and influence each other.</li>



<li><strong>Organizational Investment and Product Thinking</strong>: Exploring the concept of funding in organizations, particularly how investment in people and product thinking plays a crucial role.</li>



<li><strong>Theory X and Theory Y in Management</strong>: The contrast between Theory X (an authoritative management style with a pessimistic view of employee motivation) and Theory Y (a more empowering, trust-based approach).</li>



<li><strong>People, Process, Technology Framework</strong>: The significance of balancing these three elements for successful organizational transformation.</li>



<li><strong>ChatGPT in IT Platforms</strong>: Exploring the application of ChatGPT in various aspects of IT platforms and its implications.</li>



<li><strong>Agile and Lean Principles in Tech</strong>: Insights into the application of agile and lean methodologies in the tech sector, particularly in software development and project management.</li>



<li><strong>OKR Guide</strong>: Understanding the structure and implementation of Objectives and Key Results (OKRs), focusing on creating aligned, ambitious, and measurable goals.</li>



<li><strong>Engineering Onboarding and Middle Management</strong>: Strategies for effective onboarding of new engineering directors and the importance of focusing on high-impact areas rather than getting stuck in &#8216;the middle&#8217; of organizational hierarchies.</li>



<li><strong>Digital Product Design and Iteration</strong>: Emphasizing the speed of iteration in digital product design and the importance of launching imperfect products to quickly learn and adapt.</li>
</ol>



<p>These insights from 2023 reflect a deepening of my understanding in IT leadership, strategic planning, and the practical application of AI and agile methodologies in modern technology environments.</p>



<p></p>



<p>It is quite a good summary of my main interests in the past 3 years.<br></p>



<p><strong>There is one thing that LLM can&#8217;t do: it&#8217;s reading our mind. Therefore, knowledge management – capturing thoughts, ideas, problems, solutions, etc. – is going to be key in a world transformed by LLMs.</strong></p>



<p></p>



<p>The other thing he cannot do is read the futur, I asked him <img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p></p>



<p><strong>And in 2024</strong> <strong>?</strong></p>



<p>I do not have any information or documents related to learnings from the year 2024 in my current knowledge base. My knowledge is current up to January 2023, and I haven&#8217;t received updates or documents pertaining to 2024. If you have specific questions or need insights on trends and predictions up to early 2023, I&#8217;d be happy to assist with that information.</p>
]]></content>
		
			</entry>
		<entry>
		<author>
			<name>Aurélien Pelletier</name>
							<uri>http://blogpro.toutantic.net</uri>
						</author>

		<title type="html"><![CDATA[Project, Product and People Management]]></title>
		<link rel="alternate" type="text/html" href="https://blogpro.toutantic.net/2023/10/03/project-product-and-people-management/" />

		<id>https://blogpro.toutantic.net/?p=1258</id>
		<updated>2023-10-06T07:31:44Z</updated>
		<published>2023-10-03T07:01:54Z</published>
		<category scheme="https://blogpro.toutantic.net" term="management" /><category scheme="https://blogpro.toutantic.net" term="product" /><category scheme="https://blogpro.toutantic.net" term="project" />
		<summary type="html"><![CDATA[Project oriented management ? I recently came across a CTO job posting for a growing software company. One requirement surprised me: &#8220;your management is project-oriented.&#8221; This perspective, in my opinion, is outdated. I did not apply for the job, how could you be more wrong ?In today&#8217;s dynamic business landscape, management should be People and [&#8230;]]]></summary>

					<content type="html" xml:base="https://blogpro.toutantic.net/2023/10/03/project-product-and-people-management/"><![CDATA[
<p><strong>Project oriented management ?</strong></p>



<p>I recently came across a CTO job posting for a growing software company. One requirement surprised me: &#8220;your management is project-oriented.&#8221; This perspective, in my opinion, is outdated. I did not apply for the job, how could you be more wrong ?<br>In today&#8217;s dynamic business landscape, management should be People and Product-centric.</p>



<p>Let me explain.</p>



<p><strong>Understanding Management Dynamics</strong></p>



<p>At its core, management is about anticipating and mitigating risks to achieve desired outcomes. The goals set forth shape the risks managed, subsequently influencing an organization&#8217;s culture.</p>



<p><strong>Let’s start with Project Management.</strong></p>



<p>Traditionally, project management revolved around the Cost, Delay, and Scope “iron triangle”. Those KPIs being very quantitative, if you start to fall behind there is very few options to catch-up, the organization will develop a command &amp; control culture and will look like what we call a <a href="https://cutle.fish/blog/12-signs-youre-working-in-a-feature-factory">feature factory</a> with an emphasis on output over outcomes.</p>



<p>While this might seem a bit exaggerated, it&#8217;s a reality in many organizations.</p>



<p><strong>The Agile Shift</strong></p>



<p>Agile project management has transformed the narrative.&nbsp;</p>



<p>The <a href="https://www.atlassian.com/agile/agile-at-scale/agile-iron-triangle">iron triangle has been inverted</a>: scope is now flexible, while delay and cost remain constraints. This pivot is essential to shift the focus from output to outcomes.</p>



<p><a href="https://www.linkedin.com/pulse/ghosts-project-managements-iron-triangle-still-haunt-highsmith-/">Jim Highsmith</a> , in 2009, encapsulated this by emphasizing value and quality over cost,&nbsp; schedule and scope.</p>



<ul>
<li><strong>Value goal</strong>: Build a customer-valued, releasable product, I call this do the right thing</li>



<li><strong>Quality goal</strong>: Build a reliable, adaptable product, I call this do it right</li>
</ul>



<figure class="wp-block-image"><img fetchpriority="high" decoding="async" width="826" height="376" src="https://blogpro.toutantic.net/wp-content/uploads/2023/10/image.png" alt="" class="wp-image-1260" srcset="https://blogpro.toutantic.net/wp-content/uploads/2023/10/image.png 826w, https://blogpro.toutantic.net/wp-content/uploads/2023/10/image-300x137.png 300w, https://blogpro.toutantic.net/wp-content/uploads/2023/10/image-768x350.png 768w, https://blogpro.toutantic.net/wp-content/uploads/2023/10/image-624x284.png 624w" sizes="(max-width: 826px) 100vw, 826px" /></figure>



<p>The mantra is now: <strong>Do the right thing, and do it right</strong> !</p>



<p>Yet, many still cling to the old ways, prioritizing scope, schedule, and budget. I would guess it is because they&#8217;re tangible and easily measurable while value and quality is much more qualitative and harder to evaluate and manage.</p>



<p><strong>Enter Product Management</strong></p>



<p>Product management introduces a holistic approach. While it acknowledges the importance of delivery, the emphasis is on strategy and discovery.</p>



<p>Marty Cagan, in his 2017  hit &#8220;Inspired,&#8221; highlighted <a href="https://www.svpg.com/four-big-risks/">four product risks</a>:</p>



<ul>
<li><strong>Value</strong> risk (whether customers will buy it or users will choose to use it)</li>



<li><strong>Usability</strong> risk (whether users can figure out how to use it)</li>



<li><strong>Feasibility</strong> risk (whether our engineers can build what we need with the time, skills and technology we have)</li>



<li><strong>Business viability</strong> risk (whether this solution also works for the various aspects of our business)</li>
</ul>



<p>Managing those risks means you can’t jump straight into delivery mode, you need a strategy first and to work on some discovery in order to evolve your plan from a Gantt chart to an <a href="https://medium.com/swlh/outcome-based-roadmaps-unleash-the-power-of-a-shared-vision-and-purpose-851401c7aa54">outcome based roadmap</a>.</p>



<p>Now you are managing a Product, not a Project, you are no more a feature factory, you have <a href="https://www.amazon.com/Escaping-Build-Trap-Effective-Management/dp/149197379X">escaped the build trap</a>.</p>



<p>Again, this is hard, managing those risks, working on strategy and discovery&nbsp; requires a lot of interactions and feedback, this is not something you can achieve with yesterday’s best practices.</p>



<p>Which leads us to the evolution of the hardest and most important management of all.</p>



<p><strong>People Management</strong></p>



<p>Pawel Huryn has a good summary of the kind of l<a href="https://huryn.substack.com/i/128727348/what-motivates-us-areas-every-leader-should-know-about">eadership needed to enable Product Management</a></p>



<p>A large part of it is based on Dave Pink 2009 book: “<a href="https://www.danpink.com/books/drive/">Drive: The Surprising Truth About What Motivates Us</a>”</p>



<p>To be motivated people need: <br>&#8211; <strong>Purpose</strong><br>&#8211; <strong>Autonomy</strong><br>&#8211; <strong>Mastery</strong></p>



<p>This is key to motivate people individually but you also want to work on team dynamics, two more ingredients are needed:<br>&#8211; <strong>Trust</strong>: Patrick Lencioni&#8217;s 2002 work, &#8220;<a href="https://www.tablegroup.com/topics-and-resources/teamwork-5-dysfunctions/#5dbook">The Five Dysfunctions of a Team</a>&#8221;&nbsp; is a seminal read on this topic.<br>&#8211; <strong>Psychological Safety</strong>: Google&#8217;s 2014 Aristotle project spotlighted <a href="https://handbook.gitlab.com/handbook/leadership/emotional-intelligence/psychological-safety/"><strong>Psychological Safety</strong></a> as a defining characteristic of high-performing teams.</p>



<p>Modern people management requires <strong>Purpose, Autonomy, Mastery, Trust and Psychological safety</strong>. How do you do that ?&nbsp;</p>



<p><strong>Purpose</strong>: Derived from strategic activities:defining a mission and a vision will ensure alignment while fostering autonomy.</p>



<p><strong>Autonomy</strong>: Empower teams, accept occasional failures, let people choose the how and build psychological safety.</p>



<p><strong>Mastery</strong>: Recognize individual talents, position them for success and train or mentor them when needed. This is a critical management skill.<br><strong><br>Psychological safety</strong>: Showing vulnerability. A manager shows vulnerability by saying in public when he has made an error. It requires a good level of self confidence.&nbsp;</p>



<p><strong>Trust: </strong>Maintain trust by ensuring transparency and consistency in communication. You are allowed to change your mind but make sure you communicate about it. Applying the “<a href="https://www.radicalcandor.com/blog/public-praise-private-criticism/">Praising in Public and Criticizing in Private</a>” rule of thumbs will go a long way in preserving trust.</p>



<p>I will conclude with one management capability that makes it easier to get all of that right.&nbsp;</p>



<p>Management is all about anticipating and mitigating the risks of not achieving a desired outcome. In the case of people management the risks are that people might “<a href="https://www.personio.com/hr-lexicon/quiet-quitting/">quiet quit</a>” and/or your teams don’t perform as well as they could because of a lack of trust and psychological safety.</p>



<p><a href="https://www.forbes.com/sites/tracybrower/2021/09/19/empathy-is-the-most-important-leadership-skill-according-to-research/"><strong>Empathy</strong></a>: the ability to understand and share the feelings of another, is pivotal. It gauges motivation, trust, and psychological safety levels, enabling proactive management.</p>



<p>This article merely scratches the surface. Dive deeper through the provided links and share your thoughts for a richer discussion.</p>
]]></content>
		
			</entry>
		<entry>
		<author>
			<name>Aurélien Pelletier</name>
							<uri>http://blogpro.toutantic.net</uri>
						</author>

		<title type="html"><![CDATA[The problem matters more than the solution]]></title>
		<link rel="alternate" type="text/html" href="https://blogpro.toutantic.net/2023/05/05/the-problem-matters-more-than-the-solution/" />

		<id>https://blogpro.toutantic.net/?p=1246</id>
		<updated>2023-05-05T13:45:43Z</updated>
		<published>2023-05-05T13:45:43Z</published>
		<category scheme="https://blogpro.toutantic.net" term="AI" /><category scheme="https://blogpro.toutantic.net" term="LLM" />
		<summary type="html"><![CDATA[You heard before the quote &#8220;Fall in love with the problem, not the solution&#8221;. Today with the advent of Large Language Model (LLM) like ChatGPT it is not only true but we can prove it. LLM are called Large because they are trained with trillions of words (or tokens) But still it&#8217;s not because an [&#8230;]]]></summary>

					<content type="html" xml:base="https://blogpro.toutantic.net/2023/05/05/the-problem-matters-more-than-the-solution/"><![CDATA[
<p>You heard before the quote &#8220;Fall in love with the problem, not the solution&#8221;.</p>



<p>Today with the advent of Large Language Model (LLM) like ChatGPT it is not only true but we can prove it.<br><br>LLM are called Large because they are trained with trillions of words (or tokens)</p>



<figure class="wp-block-image size-full"><a href="https://twitter.com/ID_AA_Carmack/status/1644400179620065284"><img decoding="async" width="721" height="403" src="https://blogpro.toutantic.net/wp-content/uploads/2023/04/image.png" alt="" class="wp-image-1247" srcset="https://blogpro.toutantic.net/wp-content/uploads/2023/04/image.png 721w, https://blogpro.toutantic.net/wp-content/uploads/2023/04/image-300x168.png 300w, https://blogpro.toutantic.net/wp-content/uploads/2023/04/image-624x349.png 624w" sizes="(max-width: 721px) 100vw, 721px" /></a></figure>



<p>But still it&#8217;s not because an LLM knows everything that he understand anything, or to say it another way <a rel="noreferrer noopener" href="https://becominghuman.ai/why-large-language-models-like-chatgpt-are-bullshit-artists-c4d5bb850852" target="_blank">Large Language Model are bullshit artists</a>.</p>



<p>Therefore if you use ChatGPT to help you with anything you better focus on your  problem and not the solution you might have in mind. He will confirm any bias there is in your solution. If instead you present clearly the problem, guess what ? He already knows the most statistically significant solution. </p>



<p>Let&#8217;s take an example.<br>My photo collection on my computer is a mess, with a lots of duplicates and even some filenames changes. Therefore I asked chatGPT to help with the solution I had in mind:<br><br>&#8220;Write me a bash script to find all the files with the same size but different names in a directory&#8221;</p>



<figure class="wp-block-image size-full"><a href="https://blogpro.toutantic.net/wp-content/uploads/2023/04/image-1.png"><img decoding="async" width="705" height="139" src="https://blogpro.toutantic.net/wp-content/uploads/2023/04/image-1.png" alt="" class="wp-image-1250" srcset="https://blogpro.toutantic.net/wp-content/uploads/2023/04/image-1.png 705w, https://blogpro.toutantic.net/wp-content/uploads/2023/04/image-1-300x59.png 300w, https://blogpro.toutantic.net/wp-content/uploads/2023/04/image-1-624x123.png 624w" sizes="(max-width: 705px) 100vw, 705px" /></a></figure>



<p>10 seconds later here is my script, it&#8217;s working and doing what I wanted.<br><br>But when I looked more closely at the result I am finding some errors. The script is listing as duplicate some files which have the same size, different names but they are not the same picture ! Stupid me ;(<br><br>Let&#8217;s go back to ChatGPT but this time I am going to tell him about my problem not my solution:</p>



<p>&#8220;I want to find all the identical files in my computer&#8221;</p>



<figure class="wp-block-image size-full"><a href="https://blogpro.toutantic.net/wp-content/uploads/2023/04/image-2.png"><img loading="lazy" decoding="async" width="466" height="116" src="https://blogpro.toutantic.net/wp-content/uploads/2023/04/image-2.png" alt="" class="wp-image-1252" srcset="https://blogpro.toutantic.net/wp-content/uploads/2023/04/image-2.png 466w, https://blogpro.toutantic.net/wp-content/uploads/2023/04/image-2-300x75.png 300w" sizes="(max-width: 466px) 100vw, 466px" /></a></figure>



<p>&#8220;To find all identical files in your computer, you can use a duplicate file finder tool, or you can write a script to do it yourself. Here&#8217;s a Python script that uses the hashlib library to find identical files based on their content.&#8221;</p>



<p>First he reminds me that specialized tools exist to do that and then he propose a python script. And guess what, the script is using an md5 hash to find duplicates. A much better solution that what I first asked him to do. </p>
]]></content>
		
			</entry>
		<entry>
		<author>
			<name>Aurélien Pelletier</name>
							<uri>http://blogpro.toutantic.net</uri>
						</author>

		<title type="html"><![CDATA[Google Cloud Platform technical qualification training :  Cloud SQL]]></title>
		<link rel="alternate" type="text/html" href="https://blogpro.toutantic.net/2014/10/28/google-cloud-platform-technical-qualification-training-cloud-sql/" />

		<id>http://blogpro.toutantic.net/?p=1126</id>
		<updated>2014-10-28T20:11:42Z</updated>
		<published>2014-10-28T20:11:42Z</published>
		<category scheme="https://blogpro.toutantic.net" term="architecture" />
		<summary type="html"><![CDATA[Not much to say about Cloud SQL, it is simply a fully managed mysql database version 5.5 and 5.6. Fast connection to App &#38; Compute Engine but accessible from anywhere. (you have to enable the access) Google can manage replication for you. mysql instance are brought up on demand and can go away after 4 [&#8230;]]]></summary>

					<content type="html" xml:base="https://blogpro.toutantic.net/2014/10/28/google-cloud-platform-technical-qualification-training-cloud-sql/"><![CDATA[<p>Not much to say about Cloud SQL, it is simply a fully managed mysql database version 5.5 and 5.6.</p>
<p>Fast connection to App &amp; Compute Engine but accessible from anywhere. (you have to enable the access)</p>
<p>Google can manage replication for you. mysql instance are brought up on demand and can go away after 4 hours of inactivity.</p>
<p>Up to 500 GB per database</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content>
		
			</entry>
		<entry>
		<author>
			<name>Aurélien Pelletier</name>
							<uri>http://blogpro.toutantic.net</uri>
						</author>

		<title type="html"><![CDATA[Google Cloud Platform technical qualification training: App Engine]]></title>
		<link rel="alternate" type="text/html" href="https://blogpro.toutantic.net/2014/10/19/google-cloud-platform-technical-qualification-training-app-engine/" />

		<id>http://blogpro.toutantic.net/?p=1122</id>
		<updated>2016-01-04T19:53:53Z</updated>
		<published>2014-10-19T14:10:56Z</published>
		<category scheme="https://blogpro.toutantic.net" term="google" /><category scheme="https://blogpro.toutantic.net" term="app engine" /><category scheme="https://blogpro.toutantic.net" term="cloud" />
		<summary type="html"><![CDATA[I&#8217;ve just spend the week at the Google office in London to attend the CP300 course. I thought a good way to prepare for the certification exams would be to put down my notes on my blog&#8230; Thanks to Ignacio who was leading the training. The first two days were dedicated to Google App Engine. [&#8230;]]]></summary>

					<content type="html" xml:base="https://blogpro.toutantic.net/2014/10/19/google-cloud-platform-technical-qualification-training-app-engine/"><![CDATA[<p>I&#8217;ve just spend the week at the Google office in London to attend the <a href="http://www.roitraining.com/google-cloud-platform-developer-qualification-workshop-cp300/">CP300 course</a>. I thought a good way to prepare for the certification exams would be to put down my notes on my blog&#8230;</p>
<p>Thanks to <a href="https://plus.google.com/+NachoColoma/posts">Ignacio</a> who was leading the training.</p>
<p>The first two days were dedicated to Google App Engine.<br />
App Engine is all about building scalable, reliable and cost effective web application the Google way, it :</p>
<ul>
<li>Leverages Google CDN to serve static ressources</li>
<li>Use Stateless application server with automatic horizontal scaling</li>
<li>Use a NoSql datastore (you can also connect it to a relationnal database, cloud SQL, if needed)</li>
</ul>
<p>You can configure the way it scales by tweaking pending latency and the number of idle instances. This will impact the performance and the cost of your application.</p>
<p>Instance on Appengine can stop and start frequently, this means you should avoid framework with long start-up time such as Spring or JPA. For depency injection prefer Guice or Dagger (injection is done at compile time)</p>
<p>There is a <a href="https://code.google.com/status/appengine">status console</a> to check if all Google services runs normally. You can also receive notification about downtime by subscribing to <a href="https://groups.google.com/forum/?fromgroups#!forum/google-appengine-downtime-notify">this group</a>.</p>
<p>The App Engine console let you monitor quotas usages, very important, most errors on App Engine append because of quota limitations. Of course you can pay to remove those limits. You set a maximum daily budget to make sure you won&#8217;t suffer from a denied of service attack on your credit card !</p>
<p>You can deploy and run in parallel multiple versions of the same app (blue/green deployment out of the box)</p>
<p>The <a href="https://cloud.google.com/appengine/docs/java/tools/appstats">app stat tool</a> let you analyze performances.</p>
<h1>Authentication &amp; Authorization</h1>
<p>GAE provides a service to handle Authentication &amp; Authorization for you. It will use Google account or an openId provider. You can also integrate GAE with an enterprise SSO solution but it requires a Google Apps for business account.</p>
<p>Authorization to access other google API (calendar, storage, compute, &#8230;) is done with OAuth2.0.<br />
You can try service calls and <a href="https://developers.google.com/oauthplayground/">Oauth2.0 in the playground</a></p>
<h1>The Datastore</h1>
<p>This is the heart of App Engine, you better understand this if you wan&#8217;t your application to run well on App Engine.</p>
<p>The GAE datastore is based on <a href="http://research.google.com/archive/bigtable.html">Google BigTable</a>, it provides strong consistency for single row but eventual consistency for multi row level.<br />
Every row contains an entity of a certain kind. An entity has a key and properties, properties can be multi-valued.</p>
<p>An entity can have a parent to form an entity group (a single entity without parent count as an entity group). Entity group are usefull to force strong consistency when writing data.</p>
<p>Data on bigtable is distributed by key, if you specify the key yourself make sure it is random enough to get a good distribution of content on the underlining hardware and better performance.</p>
<p>The DataStore is optimized for read queries. Datastore always use an index to read data. All indexes are sorted and distributed on multiple machines.<br />
Queries on the datastore are executed as index scan on bigtable =&gt; it&#8217;s very fast (<strong>the query performance scale with the size of the result not the size of the dataset</strong>) but it comes with a few limits:<br />
&#8211; You can&#8217;t query without an index (indexed can be automaticaly created, beware of their size)<br />
&#8211; Queries on multi-valued properties can lead to combinatorial Explosion and big indexes<br />
&#8211; Missing properties is not equal to Null/none<br />
&#8211; Inequality filter (!=) are limited to one property per query (this is because it is implemented as x&lt; AND x&gt; to use one sorted index)<br />
&#8211; no JOIN (use denormalization)<br />
&#8211; no aggregation queries (Group by, sum, having, avg, max, min, &#8230;) (instead use special entities that maintains counts) see <a href="https://cloud.google.com/appengine/articles/sharding_counters">sharding counter pattern</a><br />
&#8211; creating a new index on large set can be long</p>
<p>Indexes are not immediatly updated when writing but ancestor queries force the index update to complete to get strong consistency.</p>
<p>For transaction the datastore use snapshot isolation and optimistic concurrency<br />
Transcation can&#8217;t affect more than 5 entity groups<br />
Can&#8217;t make more than 5 updates per second to an entity group<br />
A transaction can&#8217;t take more than 60 seconds</p>
<h1>Memcache, TaskQueue, Cron</h1>
<p>GAE provides Memcache as a service to improve performance and reduce application cost. A memcache query can be ten times faster than a datastore query. Memcache can be used as a read/Write cache to the datastore</p>
<p>GAE provides a taskQueue service to executed asynchronous work :</p>
<ul>
<li>push queues are managed by App Engine</li>
<li>pull queues are manually managed</li>
</ul>
<p>Tasks can by enqueued in a transaction but will execute outside the transaction<br />
A task is a GET or POST request<br />
GAE execute as many task as possible following the <a href="https://en.wikipedia.org/wiki/Token_bucket">token bucket algorithm</a><br />
there is<br />
&#8211; a bucket size (maximum number of tasks that can be launch at once)<br />
&#8211; a token refresh rate (how fast the bucket replenish)<br />
&#8211; a maximum number of concurrent requeste</p>
<p>If a task failed it will be re-tried according to the retry policy.<br />
There is a 10 minutes execution limit on front-end instance (instead of 1 min for synchronous requests)</p>
<p>GAE also provides a cron service that you can configure in an xml or yaml file.</p>
]]></content>
		
			</entry>
		<entry>
		<author>
			<name>Aurélien Pelletier</name>
							<uri>http://blogpro.toutantic.net</uri>
						</author>

		<title type="html"><![CDATA[My schedule for Google I/O 2014]]></title>
		<link rel="alternate" type="text/html" href="https://blogpro.toutantic.net/2014/06/24/google-io-2014-schedule/" />

		<id>http://blogpro.toutantic.net/?p=1106</id>
		<updated>2014-10-19T14:13:44Z</updated>
		<published>2014-06-24T00:19:32Z</published>
		<category scheme="https://blogpro.toutantic.net" term="google" /><category scheme="https://blogpro.toutantic.net" term="cloud" /><category scheme="https://blogpro.toutantic.net" term="cloud computing" /><category scheme="https://blogpro.toutantic.net" term="docker" /><category scheme="https://blogpro.toutantic.net" term="io14" /><category scheme="https://blogpro.toutantic.net" term="polymer" />
		<summary type="html"><![CDATA[This year Google I/O will be about DDD, have you read the blue book ? Oh wait, sorry, it&#8217;s not about Domain Driven Design but Design, Develop, Distribute. Interesting to see that Google choose to replace the more common &#8220;Run&#8221; theme with a Distribute one. It feels like they are saying don&#8217;t worry anymore about [&#8230;]]]></summary>

					<content type="html" xml:base="https://blogpro.toutantic.net/2014/06/24/google-io-2014-schedule/"><![CDATA[<p>This year Google I/O will be about DDD, have you read <a href="http://www.amazon.com/Domain-Driven-Design-Tackling-Complexity-Software/dp/0321125215">the blue book </a>? Oh wait, sorry, it&#8217;s not about Domain Driven Design but Design, Develop, Distribute. Interesting to see that Google choose to replace the more common &#8220;Run&#8221; theme with a Distribute one. It feels like they are saying don&#8217;t worry anymore about how you will run your application, just use our cloud. But instead think how you will Distribute your mobile application&#8230; on google store of course.</p>
<p>We can expect a lot of announcements and sessions around Android. And a lot more, as you can see in the list of sessions I&#8217;m planning to attend. Can&#8217;t wait to learn more about Docker, Polymer, DevOps and the Google cloud platform !</p>
<h1>Day one June 25</h1>
<ul>
<li><strong>9AM</strong> (18H in Paris) 2 hours of keynote, can&#8217;t miss that !<br />
Announcements, goodies,&#8230;</li>
<li><strong>11AM</strong> <a href="https://www.google.com/events/io/schedule/session/585c7e67-95e6-e311-b297-00155d5066d7">Developer workflow around Docker containers</a><br />
Great one of my favorite subject to get started</li>
<li><strong>12PM</strong> <a href="https://www.google.com/events/io/schedule/session/d2e6b61b-97e6-e311-b297-00155d5066d7">Containers on Google App Engine<br />
</a>Yeah I stay focused on distributing Docker images</li>
<li><strong>1PM</strong>  <a href="https://www.google.com/events/io/schedule/session/de22e147-07b6-e311-8491-00155d5066d7">Polymer and the Web Components revolution<br />
</a>Let&#8217;s switch from container to components</li>
<li><strong>2PM</strong> <a href="https://www.google.com/events/io/schedule/session/b71bb839-35bc-e311-b297-00155d5066d7">Polymer and Web Components change everything you know about Web development</a><br />
And stay focused again !</li>
<li><strong>2PM </strong><a href="https://www.google.com/events/io/schedule/session/743fe228-89c5-e311-b297-00155d5066d7">Zero to hero with Google Cloud Platform</a><br />
Unless I go back the cloud platform</li>
<li><strong>2PM</strong> <a href="https://www.google.com/events/io/schedule/session/5e730d57-99e6-e311-b297-00155d5066d7">Building a Lambda Architecture in 10 minutes with BigQuery, CEP and Docker<br />
</a>Or more docker</li>
<li><strong>3PM</strong> <a href="https://www.google.com/events/io/schedule/session/7b7605ad-99e6-e311-b297-00155d5066d7">Continuous integration with Google Cloud Release Pipelines<br />
</a>Let&#8217;s see how it compares to cloudbees</li>
<li><strong>4PM</strong> <a href="https://www.google.com/events/io/schedule/session/492aed57-d7b9-e311-b297-00155d5066d7">Unlock the next era of UI development with Polymer<br />
</a>yes many sessions about polymer</li>
</ul>
<h1>Day 2 June 26</h1>
<ul>
<li><strong>9AM</strong> <a href="https://www.google.com/events/io/schedule/session/069b8d4a-0de1-e311-b297-00155d5066d7">Building a web app on App Engine<br />
</a>Using the Go langage !</li>
<li><strong>10AM</strong> Devops power tools</li>
<li><strong>10AM</strong> <a href="https://www.google.com/events/io/schedule/session/46e09100-0de1-e311-b297-00155d5066d7">Authentication and third party API</a><br />
Oauth2 early in the morning, is that a good idea ?</li>
<li><strong>11AM</strong> <a href="https://www.google.com/events/io/schedule/session/22e6b6c0-c8b9-e311-b297-00155d5066d7">Upgrading the engine mid-flight: How Google improves its web apps without downtime<br />
</a>Remember <a href="https://www.youtube.com/watch?v=UZq4sZz56qM">this</a></li>
<li><strong>12PM</strong> <a href="https://www.google.com/events/io/schedule/session/b89dca95-f6d9-e311-b297-00155d5066d7">Prototyping with Polymer<br />
</a>More Polymer&#8230;</li>
<li><strong>2PM</strong> <a href="https://www.google.com/events/io/schedule/session/923fe228-89c5-e311-b297-00155d5066d7">Taming your cloud applications with intelligent monitoring</a></li>
<li><strong>3PM</strong> <a href="https://www.google.com/events/io/schedule/session/c9e32eaf-4acb-e311-b297-00155d5066d7">DevOps at the speed of Google</a></li>
<li><strong>4PM</strong> <a href="https://www.google.com/events/io/schedule/session/046787bd-49cb-e311-b297-00155d5066d7">Predicting the future with the Google Cloud Platform</a></li>
</ul>
<h1>Et en attendant&#8230;</h1>
<p>Je me promène<br />
<a href=" https://blogpro.toutantic.net/wp-content/uploads/2014/06/sanFranciscoHouse.jpg"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-1109" src=" https://blogpro.toutantic.net/wp-content/uploads/2014/06/sanFranciscoHouse.jpg" alt="San Francisco House" width="1000" height="723" /></a> <a href=" https://blogpro.toutantic.net/wp-content/uploads/2014/06/sanFranciscoParking.jpg"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-1110" src=" https://blogpro.toutantic.net/wp-content/uploads/2014/06/sanFranciscoParking.jpg" alt="San Francisco Parking" width="1000" height="652" /></a></p>
<p>&nbsp;</p>
]]></content>
		
			</entry>
		<entry>
		<author>
			<name>Aurélien Pelletier</name>
							<uri>http://blogpro.toutantic.net</uri>
						</author>

		<title type="html"><![CDATA[10 ans]]></title>
		<link rel="alternate" type="text/html" href="https://blogpro.toutantic.net/2014/04/03/10-ans/" />

		<id>http://blogpro.toutantic.net/?p=1094</id>
		<updated>2014-06-24T00:31:20Z</updated>
		<published>2014-04-03T15:46:56Z</published>
		<category scheme="https://blogpro.toutantic.net" term="architecture" />
		<summary type="html"><![CDATA[Il y a 10 ans, le 3 avril 2004 j&#8217;ouvrais ce blog. Google n&#8217;était encore qu&#8217;un moteur de recherche performant&#8230; Amazon qu&#8217;un libraire, Face&#8230; FaceQuoi ?? Les téléphones n&#8217;étaient pas smart et Nokia dominait le marché. Il y a 10 ans Google lançait Gmail, un 1ere Avril, 1 Go de stockage gratuit, une application web [&#8230;]]]></summary>

					<content type="html" xml:base="https://blogpro.toutantic.net/2014/04/03/10-ans/"><![CDATA[<p>Il y a 10 ans, le 3 avril 2004 j&#8217;ouvrais ce blog. Google n&#8217;était encore qu&#8217;un moteur de recherche performant&#8230; Amazon qu&#8217;un libraire, Face&#8230; FaceQuoi ?? Les téléphones n&#8217;étaient pas smart et Nokia dominait le marché.</p>
<p>Il y a 10 ans Google lançait Gmail, un 1ere Avril, 1 Go de stockage gratuit, une application web aussi réactive qu&#8217;un client lourd, la bonne blague&#8230; Eh oui Ajax n&#8217;était encore qu&#8217;une marque de détergent. Subversion était un outil acceptable pour gérer les sources, Flex une solution d&#8217;avenir, Struts était en version 1 tout comme Spring, javascript était tout juste bon à ouvrir des pop-ups. Chrome n&#8217;existait pas, IE6 s&#8217;était imposé face à Netscape.</p>
<p>Il y a 10 ans la France votait la <a href="http://fr.wikipedia.org/wiki/Loi_pour_la_confiance_dans_l'%C3%A9conomie_num%C3%A9rique">Loi pour la confiance dans l&#8217;économie numérique</a> et aujourd&#8217;hui il faut <a href="http://www.redressement-productif.gouv.fr/rapport-tariq-krim-developpeurs-atout-pour-france">écrire un rapport pour mettre en valeur les développeurs</a> alors qu&#8217;il y a longtemps que le reste du monde a compris que le <a href="http://online.wsj.com/news/articles/SB10001424053111903480904576512250915629460">logiciel dévore le monde</a>&#8230;</p>
<p>Depuis 10 ans ce ne sont pas les sujets qui manquent, je vais profiter de cet anniversaire pour ranimer ce blog, rendez-vous dans 10 ans.</p>
]]></content>
		
					<link rel="replies" type="text/html" href="https://blogpro.toutantic.net/2014/04/03/10-ans/#comments" thr:count="3" />
			<link rel="replies" type="application/atom+xml" href="https://blogpro.toutantic.net/2014/04/03/10-ans/feed/atom/" thr:count="3" />
			<thr:total>3</thr:total>
			</entry>
		<entry>
		<author>
			<name>Aurélien Pelletier</name>
							<uri>http://blogpro.toutantic.net</uri>
						</author>

		<title type="html"><![CDATA[Des tweets et des plus n°22 &#8211; Et ça sert à quoi ?]]></title>
		<link rel="alternate" type="text/html" href="https://blogpro.toutantic.net/2012/12/09/des-tweets-et-des-plus-n22-et-ca-sert-a-quoi/" />

		<id>http://blogpro.toutantic.net/?p=1069</id>
		<updated>2014-04-01T11:18:49Z</updated>
		<published>2012-12-09T18:40:45Z</published>
		<category scheme="https://blogpro.toutantic.net" term="tweetsANDplus" />
		<summary type="html"><![CDATA[La vérité sur le chiffrage en Sociétés de Services en Logiciels Libres : &#8220;Nous aimons coder. Coder ne nous coûte pas car c&#8217;est notre plaisir. D&#8217;ailleurs, nous codons  gratuitement une bonne partie de notre temps (dans le cadre de nos contributions open sources). Le reste de notre travail, en revanche, nous coûte.&#8221; Stop Using Story Points : [&#8230;]]]></summary>

					<content type="html" xml:base="https://blogpro.toutantic.net/2012/12/09/des-tweets-et-des-plus-n22-et-ca-sert-a-quoi/"><![CDATA[<p><a href="http://charliepoppins.blogspot.fr/2012/07/blog-post.html"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-1078" title="sertAquoi" src=" https://blogpro.toutantic.net/wp-content/uploads/2012/12/sertAquoi.jpg" alt="" width="484" height="640" srcset="https://blogpro.toutantic.net/wp-content/uploads/2012/12/sertAquoi.jpg 484w, https://blogpro.toutantic.net/wp-content/uploads/2012/12/sertAquoi-226x300.jpg 226w" sizes="(max-width: 484px) 100vw, 484px" /></a></p>
<p><a href="http://www.brehault.net/textes/la-verite-sur-le-chiffrage-en-ssll"><strong>La vérité sur le chiffrage en Sociétés de Services en Logiciels Libres</strong></a> : &#8220;Nous aimons coder. Coder ne nous coûte pas car c&#8217;est notre plaisir. D&#8217;ailleurs, nous codons  gratuitement une bonne partie de notre temps (dans le cadre de nos contributions open sources). Le reste de notre travail, en revanche, nous coûte.&#8221;</p>
<p><strong><a href="http://www.industriallogic.com/blog/stop-using-story-points/">Stop Using Story Points</a> </strong>:  &#8220;Like researchers of fast food, we now know that the Agile Happy Meal contains unnatural ingredients that decrease agility and cause process indigestion.&#8221;</p>
<p><strong><a href="http://blog.gardeviance.org/2012/09/whats-my-it-strategy.html">What&#8217;s my IT strategy?</a></strong> : &#8220;Take a company&#8217;s IT strategy [&#8230;] Now remove XXX [&#8230;] What is left, is the IT strategy&#8221;</p>
<p><a href="http://nurkiewicz.blogspot.fr/2012/10/java-features-applicability.html"><strong>Java feature applicatbility</strong></a> : &#8220;I group Java features in three categories: day to day, occasionally and never (frameworks and libraries only). The rule is simple: if you find yourself using given feature more often then suggested, you are probably over-engineering&#8221;</p>
]]></content>
		
			</entry>
		<entry>
		<author>
			<name>Aurélien Pelletier</name>
							<uri>http://blogpro.toutantic.net</uri>
						</author>

		<title type="html"><![CDATA[Des tweets et des plus n°21 &#8211; Good Cheap Fast, pick two]]></title>
		<link rel="alternate" type="text/html" href="https://blogpro.toutantic.net/2012/10/12/des-tweets-et-des-plus-n21-good-cheap-fast-pick-two/" />

		<id>http://blogpro.toutantic.net/?p=1055</id>
		<updated>2012-10-12T15:43:17Z</updated>
		<published>2012-10-12T15:42:55Z</published>
		<category scheme="https://blogpro.toutantic.net" term="tweetsANDplus" />
		<summary type="html"><![CDATA[The Most Important Question : &#8220;Everything involves trade-offs, where benefits must be weighed against their associated costs. Evaluating those trade-offs and choosing according to the needs of the customer is a key responsibility of an architect.&#8221; Learnable programming : &#8220;A programming system has two parts. The environment is installed in on the computer, and the [&#8230;]]]></summary>

					<content type="html" xml:base="https://blogpro.toutantic.net/2012/10/12/des-tweets-et-des-plus-n21-good-cheap-fast-pick-two/"><![CDATA[<p><a href="http://instagram.com/p/M8kwKnr7Jw/"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-1066" title="goodCheapFast" src=" https://blogpro.toutantic.net/wp-content/uploads/2012/10/goodCheapFast.jpg" alt="" width="530" height="438" srcset="https://blogpro.toutantic.net/wp-content/uploads/2012/10/goodCheapFast.jpg 530w, https://blogpro.toutantic.net/wp-content/uploads/2012/10/goodCheapFast-300x247.jpg 300w, https://blogpro.toutantic.net/wp-content/uploads/2012/10/goodCheapFast-363x300.jpg 363w" sizes="(max-width: 530px) 100vw, 530px" /></a></p>
<p><a href="http://genehughson.wordpress.com/2012/07/15/most_important_question/"><strong>The Most Important Question</strong></a> : &#8220;Everything involves trade-offs, where benefits must be weighed against their associated costs. Evaluating those trade-offs and choosing according to the needs of the customer is a key responsibility of an architect.&#8221;</p>
<p><strong><a href="http://worrydream.com/LearnableProgramming/">Learnable programming</a></strong> : &#8220;A programming system has two parts. The environment is installed in on the computer, and the language is installed in the programmer&#8217;s head.&#8221;</p>
<p><a href="http://blog.jgc.org/2012/07/some-things-ive-learnt-about.html"><strong>Some things I&#8217;ve learnt about programming</strong></a>: &#8220;When writing code it&#8217;s sometimes tempting to try stuff to see what works and get a program working without truly understanding what&#8217;s happening.&#8221;</p>
<p><a href="http://tommorris.org/posts/2452"><strong>Dear “API providers”</strong></a>: &#8220;I just want the data on your website in a machine readable format. XML, JSON, RDF, CSV, YAML, I don’t particularly give a fuck.&#8221;</p>
<p>&nbsp;</p>
]]></content>
		
			</entry>
		<entry>
		<author>
			<name>Aurélien Pelletier</name>
							<uri>http://blogpro.toutantic.net</uri>
						</author>

		<title type="html"><![CDATA[Des tweets et des plus n°20 &#8211; The road to hell]]></title>
		<link rel="alternate" type="text/html" href="https://blogpro.toutantic.net/2012/08/05/des-tweets-et-des-plus-n20-the-road-to-hell/" />

		<id>http://blogpro.toutantic.net/?p=1039</id>
		<updated>2012-08-05T11:06:19Z</updated>
		<published>2012-08-05T11:06:19Z</published>
		<category scheme="https://blogpro.toutantic.net" term="tweetsANDplus" />
		<summary type="html"><![CDATA[ OAuth 2.0 and the Road to Hell: &#8220;At the core of the problem is the strong and unbridgeable conflict between the web and the enterprise worlds&#8221; Journey Through The JavaScript MVC Jungle: I want a javascrit framework&#8230; Agile France : Le combat des chefs : avec  Bougetépostix et Testotomatix&#8230; tout un programme. Le changement, c’est (bientôt) maintenant: &#8220;nos organisations privées ou [&#8230;]]]></summary>

					<content type="html" xml:base="https://blogpro.toutantic.net/2012/08/05/des-tweets-et-des-plus-n20-the-road-to-hell/"><![CDATA[<p><a href="http://blog.movereem.nl/JavaScript-sources/"><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-1050" title="javascript-the-good-parts-the-definitive-guide" src=" https://blogpro.toutantic.net/wp-content/uploads/2012/07/javascript-the-good-parts-the-definitive-guide.jpg" alt="" width="600" height="450" srcset="https://blogpro.toutantic.net/wp-content/uploads/2012/07/javascript-the-good-parts-the-definitive-guide.jpg 600w, https://blogpro.toutantic.net/wp-content/uploads/2012/07/javascript-the-good-parts-the-definitive-guide-300x225.jpg 300w, https://blogpro.toutantic.net/wp-content/uploads/2012/07/javascript-the-good-parts-the-definitive-guide-400x300.jpg 400w" sizes="(max-width: 600px) 100vw, 600px" /></a></p>
<p><strong> <a href="http://hueniverse.com/2012/07/oauth-2-0-and-the-road-to-hell/">OAuth 2.0 and the Road to Hell</a></strong>: &#8220;At the core of the problem is the strong and unbridgeable conflict between the <strong>web</strong> and the <strong>enterprise</strong> worlds&#8221;</p>
<p><a href="http://coding.smashingmagazine.com/2012/07/27/journey-through-the-javascript-mvc-jungle/"><strong>Journey Through The JavaScript MVC Jungle</strong></a>: I want a javascrit framework&#8230;</p>
<p><strong><a href="http://www.agilex.fr/2012/06/agile-france-le-combat-des-chefs/">Agile France : Le combat des chefs</a> : </strong>avec  Bougetépostix et Testotomatix&#8230; tout un programme.</p>
<p><strong><a href="http://ppezziardi.wordpress.com/2012/07/09/le-changement-cest-bientot-maintenant/">Le changement, c’est (bientôt) maintenant</a>: </strong>&#8220;nos organisations privées ou publiques, notamment tertiaires, sont orientées vers leur maintien, plus que vers le service à leurs usagers&#8221;</p>
]]></content>
		
					<link rel="replies" type="text/html" href="https://blogpro.toutantic.net/2012/08/05/des-tweets-et-des-plus-n20-the-road-to-hell/#comments" thr:count="1" />
			<link rel="replies" type="application/atom+xml" href="https://blogpro.toutantic.net/2012/08/05/des-tweets-et-des-plus-n20-the-road-to-hell/feed/atom/" thr:count="1" />
			<thr:total>1</thr:total>
			</entry>
	</feed>
