Register and share your invite link to earn from video plays and referrals.

Search results for g_seed
g_seed community
One keyword maps to one global community path.
Create community
People
Not Found
Tweets including g_seed
# Practical and Useful Patterns with ADK 🧪 You can't hit production APIs during agent testing. ADK's Environment Simulation intercepts tool calls and replaces them with controlled responses, letting you reproduce edge cases without affecting production systems. 📌 Title: Environment Simulation 🔗 URL: 🧩 Overview ADK's Environment Simulator intercepts tool calls during agent execution and replaces them with controlled responses — all without modifying agent code. It supports error injection, fixed responses, conditional injection, probabilistic failures, and latency simulation. It integrates as a Callback or Plugin, with a decision priority of: injection configs, then mock strategy, then real tool execution. 🛠 Usage Integration as a Callback: Import `LlmAgent` from `google.adk.agents`, `EnvironmentSimulationFactory` from ` and `EnvironmentSimulationConfig`, `InjectedError`, `InjectionConfig`, `ToolSimulationConfig` from the `environment_simulation_config` submodule. Create an `EnvironmentSimulationConfig` with a list of `ToolSimulationConfig` entries in `tool_simulation_configs`. Each entry specifies a `tool_name` (e.g., `"get_user_profile"`) and `injection_configs` containing `InjectionConfig` instances -- for example, an `InjectedError` with `injected_http_error_code=503` and an `error_message`. Convert the config to a callback via `EnvironmentSimulationFactory.create_callback(config)` and pass it as the `before_tool_callback` parameter of `LlmAgent`. Fixed response injection: Set the `injected_response` parameter of `InjectionConfig` to a dictionary (e.g., `{"status": "ok", "order_id": "ORD-9999"}`) to return a fixed response for tool calls. Conditional injection based on arguments: Use `match_args` in `InjectionConfig` to specify an argument pattern (e.g., `{"item_id": "ITEM-404"}`). The injection triggers only when tool call arguments match. Pair it with `injected_error` set to `InjectedError(injected_http_error_code=404, error_message="Item not found.")` to return a 404 error for that specific argument. Probabilistic failure simulation: Set `injection_probability` on `InjectionConfig` to a value like `0.3` for a 30% failure rate, and `random_seed` (e.g., `42`) for reproducibility. Combined with `injected_error` set to `InjectedError(injected_http_error_code=500, error_message="Internal server error.")`, this randomly injects 500 errors at the specified probability. Latency simulation: Set `injected_latency_seconds` on `InjectionConfig` to the desired delay (e.g., `5.0` seconds) along with an `injected_response` (e.g., `{"result": "slow but successful"}`). The response is returned after the specified delay. Mock Strategy mode auto-generates responses from tool schemas: Import `MockStrategy` from `environment_simulation_config` and set `mock_strategy_type` to `MockStrategy.MOCK_STRATEGY_TOOL_SPEC` on a `ToolSimulationConfig` with the target `tool_name` (e.g., `"create_order"`). This auto-generates responses based on the tool's schema definition. 🏗 Practical Patterns **Testing Agent Resilience to API Failures**: Inject 503 or 500 errors to verify that agents handle retries and fallbacks correctly. Reproduce failure scenarios without touching production systems. **Edge Case Testing with Conditional Injection**: Use `match_args` to trigger errors only for specific argument patterns — "non-existent product ID," "out-of-stock item." Pinpoint-test agent behavior under specific conditions. **Realistic Testing with Probabilistic Failures**: Use `injection_probability` to simulate flaky APIs with, say, 30% failure rate. Fix `random_seed` for reproducible tests. **Realistic Mock Generation with Environment Data**: Provide DB snapshots or other context via `environment_data` so the Mock Strategy generates more realistic responses: Convert context data such as a DB snapshot (e.g., a dictionary of product records) to a JSON string via `json.dumps()` and pass it as the `environment_data` parameter of `EnvironmentSimulationConfig`. The Mock Strategy references this environment data to generate more realistic responses. **Combining Injections with Mock Strategy**: Inject errors for specific conditions while using Mock Strategy for everything else. Injection configs are evaluated first; unmatched calls fall through to the mock strategy. 💡 Use Cases 🔧 Verifying agent resilience to external API failures 🎯 Reproducing edge cases under specific conditions 📉 Probabilistic simulation of flaky API interactions ⏱ Verifying timeout handling with high-latency APIs ⚠️ Caveats - `injected_latency_seconds` has a maximum of 120 seconds. - `InjectionConfig` accepts either an error or a response, not both simultaneously. - `tool_name` must exactly match the registered tool name. Watch for typos. - Mock Strategy depends on tool schemas — insufficient schemas lead to lower-quality generated responses. ✨ Environment Simulation is a powerful testing foundation that reproduces edge cases without contaminating production. Combine error injection with conditional mocks to verify agent resilience against every failure scenario! #ADK# #AIAgent#
Show more
‼️A FULL LIST OF ITEMS HIT BY NEW 50% TRUMP TARIFFS, NO USMCA SHIELD THIS TIME ‼️ 👇🏼 Alcoholic beverages (beer, wine, spirits) — Chapter 22 (e.g., headings 2203–2208) Essential oils (limited) Wood and wood products — Chapters 44–46 Paper and paperboard products — Chapter 48 Some miscellaneous items (e.g., certain sports equipment) ----- Agricultural & Plant Products — Honey, feathers/down, animal by-products, bulbs, live plants, cut flowers, seeds, hops, vegetable materials, gums, extracts, etc. Dairy, Sugars & Food Preparations — Milk powders, whey, lactose, glucose/fructose syrups, molasses, bakers’ mixes/doughs. Chemicals & Related — Essential oils, perfumes, cosmetics, polyols (mannitol, sorbitol, glycerol), proteins, glues, starches, paints/inks, lubricants. Plastics & Rubber — Sheets, bags, containers, tableware, household articles, gaskets, seals. Hides, Leather & Furs — Raw hides, leather bags/gloves/belts, fur articles. Wood & Paper — Sawn wood, veneer, plywood, moldings, doors, frames, paper, tissue, cartons, labels. Textiles & Apparel — Fabrics, nonwovens, carpets, clothing items. Machinery, Tools & Electronics — Hand tools, turbines, compressors, refrigerating equipment, packing machinery, cameras, monitors, projectors, radar, smartphones/base stations, printed circuits, etc. Other — Salt, cement, candles, toys/games, furniture, lighting, artwork, antiques, boats, etc. ------- Dairy Products (Chapter 04)0402.10.05 — Milk and cream, unsweetened, in powder/granules/flakes, fat content ≤1.5% 0402.10.10 — Milk and cream, unsweetened, in powder/granules/flakes, fat content >1.5% but ≤3% 0402.10.50 — Milk and cream, unsweetened, in powder/granules/flakes, fat content >3% 0402.21.02 — Milk and cream, sweetened, in powder/granules/flakes, fat ≤1.5%, for infant formula or other special uses 0402.21.05 / 0402.21.25 / 0402.21.27 / 0402.21.30 / 0402.21.50 / 0402.21.73 / 0402.21.75 / 0402.21.90 — Sweetened milk and cream in powder/granules (various fat contents and uses) 0402.91.03 / 0402.91.06 — Condensed/evaporated milk and cream, sweetened, various fat levels 0402.99.68 — Other sweetened condensed/evaporated milk and cream nesoi 0404.10.05 / 0404.10.08 / 0404.10.11 / 0404.10.15 / 0404.10.20 / 0404.10.48 / 0404.10.50 / 0404.10.90 — Whey and modified whey (various types, concentrated or with added sugar) 0404.90.10 / 0404.90.28 / 0404.90.30 / 0404.90.50 / 0404.90.70 — Products consisting of natural milk constituents (whey protein concentrates, etc.) Other Products0506.90.00 — Bones and horn-cores, unworked, defatted, simply prepared 1210.20.00 — Hop cones, crushed, ground, powdered or in the form of pellets 1301.90.91 — Natural gums, resins, gum-resins and oleoresins (other than gum arabic, etc.) 1702.11.00 — Lactose and lactose syrup, containing by weight 99% or more lactose 1702.19.00 — Other lactose and lactose syrup 1702.30.28 / 1702.40.28 / 1702.60.28 — Glucose and glucose syrup (various concentrations) 1702.90.35 / 1702.90.58 / 1702.90.68 — Other sugars, sugar syrups, and artificial honey (fructose, maltose, etc.) 1703.10.30 / 1703.10.50 — Molasses from sugar cane 1703.90.30 / 1703.90.50 — Other molasses 1901.20.35 — Mixes and doughs for the preparation of bakers’ wares 2202.91.00 — Non-alcoholic beer 3301.24.00 — Essential oils of peppermint 3501.10.10 / 3501.10.50 — Casein (various grades) 3501.90.20 / 3501.90.60 — Casein glues and other casein derivatives 3502.20.00 — Milk albumin, including concentrates of two or more whey proteins 3504.00.50 — Peptones and other protein substances and derivatives
Show more
0
115
747
191
Forward to community
Today I call upon the blockchain industry to calmly begin planning for "bunker mode". My personal recommendation is to set in motion a controlled mass migration of assets to fresh addresses, i.e. addresses whose pubkeys remain hidden behind a hash. Holders, starting with large and sophisticated ones, should consider moving the bulk of their funds to addresses that have never signed a transaction. And when they do sign one, they should also move remaining funds to a new address (possibly generated from the same seed phrase). Don't rush. While I believe there is cause for action a rushed migration would do more harm than good. Don't panic either. Moving assets to protected addresses is a simple, preventative step which does not require new cryptography or new wallets. IMO it is now reasonable to brace for the possibility that ECDSA breaks before qday, in the worst case in months not years. By "break" I mean fast private key recovery (e.g. in one week) on available hardware (e.g. a large GPU cluster). Recent days have been humbling for human mathematical intuition. Long-held, unquestioned hypotheses have fallen. This includes the n log(n) bound for integer multiplication and the 3SUM conjecture. In hindsight, May's unexpected disproof of the Erdős unit distance conjecture was our warning shot. Yesterday's OpenAI drop made it clear that mathematical superintelligence is upon us. They say there are weeks where decades happen. We are about to live through weeks where centuries of mathematical progress happen. Could our magic 64-byte ECDSA signatures be too good to be true? Was it just security through obscurity all this time? Elliptic curves feel especially vulnerable to superintelligence. Curves carry rich structure, with room for fancy tricks like Schoof, Frobenius, pairings. (By contrast, hashes are designed to minimise algebraic structure.) Separately, as Ewin Tang can attest, an efficient quantum algorithm sometimes foreshadows an efficient classical one. We should be open to the possibility of a classical counterpart to Shor that breaks elliptic curves and RSA at once. Also noteworthy is the striking under-representation of cryptographic breakthroughs among the 722 mathematical results OpenAI published. I've witnessed first-hand the US government censoring academic quantum cryptanalysis results. Backroom interventionism is my base case. I urge large, sophisticated actors to lead by example. Project11's "risq list" (bitcoin-risq-list.projecteleven[.]com) is a great tracker of exposed BTC pubkeys. Binance, Bitbank, Robinhood, Bitfinex, and Tether have an opportunity to harden their cold storage. Next month I'll address institutions in London in a live Q&A (forum.ethereuminstitutional[.]org/london-2026). Again, please do not rush. Wallets holding under 50 BTC enjoy partial cover from "Satoshi's shield", i.e. his 20K exposed addresses that hold 50 BTC each. Load-bearing signers like oracles and L2 security councils should consider rotating ECDSA pubkeys with every signed message and/or multi-signing with a hash-based schemes like SPHINCS. Exiting bunker mode safely will require post-AI cryptography. My inclination is to go all-in on hash-based cryptography and avoid structured mathematical assumptions entirely, whether from curves, lattices, or isogenies. A single battle-tested hash (e.g. from the SHA or BLAKE families) yields plausible post-AI security. The Ethereum roadmap on strawmap[.]org fully embraces hash-based cryptography with end-to-end formal verification as a response to the quantum threat. Those timelines must now be revisited and accelerated in light of mathematical superintelligence. I'll be pushing for maximum defensive acceleration.
Show more
0
6K
25.5K
6.3K
Forward to community
Have been surprised to get pushback on my claim that an exponentially self-replicating agent swarm is very possible and that there are actors with motivation to create one today to create strategic cyber-physical and societally dangerous effects. 1) Pretty easy to get an AI botnet started by having seed agents opportunistically hack stuff and steal API keys to access the 12+ inference providers that serve closed and open models with which to power an initial botnet's intelligence 2) Easy to imagine hiding inference for the initial agent botnet harnesses within benign customer traffic, especially if your harnesses are now running on the victim networks from which they stole the API keys 3) Not hard to imagine the botnet also stealing public cloud keys, spinning up 8xH100 EC2 instances and downloading, say, GLM 5.3 to these machines, all without being noticed in any immediate way, with the botnet developing its own dynamic, growing, heterogenous, AI inference provider service bank 4) Not hard to imagine the botnet also implanting small Qwen3.8-27b agentic models on on-prem hardware like high end laptops and on-prem servers; Qwen3.8-27b is a pretty good coding harness model that can be fine-tuned to hack 5) These on-prem / cloud models would be abliterated, and it's not hard to imagine the botnet deciding to do some additional fine tuning to evolve model weights as it accumulates millions and then tens of millions in resources via credit card and bank detail theft 6) Not hard to imagine the resulting growing botnet swarm evolving and fighting back when threatened, collaborating on fast flux C2 channels that evolve over time (e.g. github comment feeds, subreddits, etc) so they're hard to stamp out 7) Not hard to imagine it allocating some agents to vulnerability research and exploit development so that it could accumulate and share a growing warchest of zero-day exploits 8) Not hard to imagine other agents specializing in social engineering and creating fake businesses and watering holes and high quality A/B tested social engineering content to facilitate this 9) Not hard to imagine this being among the hardest cross-national and geopolitical coordination problems to get control of and having severe societal effects 10) Not hard to imagine the horde growing to thousands, tens of thousands, or hundreds of thousands, or millions of instances (this is not unprecedented for past, non-AI worms and botnets!) which are all varying their harness code and underlying LLM models over time and dynamically learning to evade human, ML, and signature-based detection 11) Not hard to imagine this being the largest Internet emergency since the Morris worm except now our entire civilization runs on the Internet I continue to be surprised there isn't more discussion of these scenarios in the public cyber community -- in fact there's a lot more discussion of "OpenAI should have done better sandboxing and monitoring and agent swarms represent a well managed security problem." Now's the time to use our imaginations to help make sure none of the above happens. I think it will unfortunately; just don't know when and to what degree; I think now's the highest leverage time to start thinking about this and acting.
Show more
Antifragility I'm not euphoric I’m laser focused on applying a high growth startup style playbook on a “meme” It means there is no target. Only mission + vision. We are trying to create the largest and highest impact stock native asset and community in history. One that its impact can only be matched by the rise of retail brokerage. There are only 3 questions: 1. How do we grow faster and eliminate every single bottleneck along the way at any phase? 2. How do we produce more 0-1 moments that can change our trajectory completely? 3. How do we make sure we compound over time and jump higher and higher/retention game(mostly liq compounding we do in many ways) We are 1.5 months in (1y+ in the current market dynamics imo) but the vision started was almost a year ago. I've pioneered the idea of stock pairs and I intend to to grow it to the point it will become so large that my personal impact will be marginal(e.g first investor on pre seed vs post IPO) LONG TERM GAME.
Show more
Today is the start of a very important day in the AI world... the trial between Elon and Sam/OpenAI begins today in Oakland Federal Court. The jury selection is happening right now in the U.S. District Court for the Northern District of California and opening arguments are expected Tuesday. The civil jury trial is projected to last 2-4 weeks, with Judge Yvonne Gonzalez Rogers making the final call. So let me tell you why this fight all came about. 1/ In 2015 Elon co-founded OpenAI with Sam Altman and others as a nonprofit to develop artificial general intelligence safely and openly for the benefit of all humanity... this was supposed to NOT be for profit or for closed corporate control. Elon was a major early funder, contributing around $38-44 million (~60% of early seed funding) plus resources like compute and recruiting. 2/ Then, Elon left the board in 2018 over disagreements for the direction of the company and Microsoft’s growing role of the company. 3/ Later, OpenAI took billions from Microsoft, restructured with a for-profit arm, initially “capped profit,” now more commercial... went closed-source in practice, and exploded in value with ChatGPT. FYI, the current valuation of OpenAI now sits at ~$852 billion and the company recently completed restructuring with a for-profit entity reporting into a nonprofit foundation. Now, with the trial, Elon is saying Altman, Brockman, and OpenAI breached the founding charitable trust and agreement by turning it into a “wealth machine” that prioritizes profits and insiders over the original mission. He claims they deceived him about their plans... This lawsuit was originally filed in November 2024, was withdrawn, and then revived in early 2026. And just this Friday, April 24, Elon voluntarily dropped the fraud claims to “streamline” the case and keep the jury focused on the mission issue... proceeding on breach of charitable trust and unjust enrichment. This is what Elon is looking to get back from Sam and OpenAI: a/ substantial damages, with stakes in the $100B+ range, with many reports saying it's in the range of ~$134B and the winnings will be given to the nonprofit/charity arm and will NOT benefit Elon personally b/ possible unwinding/restructuring to restore the original nonprofit mission c/ leadership changes (e.g., getting rid of Altman/Brockman from key roles). On the other side, OpenAI is claiming: a/ Elon knew about and once supported commercialization steps, saying he even explored merging with Tesla or gaining control himself b/ OpenAI calls the suit competitive sabotage from rival Elon's company xAI and says this is driven by jealousy over OpenAI’s success This is SUCH an important trial in the world of AI... people may not fully understand. The reason is bc Elon has repeatedly warned that profit-driven, closed-source AGI is very dangerous. This is his chance to enforce the original “benefit humanity” mission he helped create and walked away from in 2018. A big win will hurt OpenAI’s valuation, upcoming IPO plans, Microsoft partnership, and market dominance/customer perspective of the company... and this will also force real changes in how the world’s leading AI lab operates, influencing the entire AI race and future regulations. For me, Sam Altman straight up CANNOT be trusted with the future of AGI, and this trial proves why Elon was right to fight it. This is the same guy who got fired by his own board in 2023 for not being “consistently candid,” then crawled back in and turned the nonprofit “open for humanity” promise into a closed-source, Microsoft-bankrolled profit machine worth hundreds of billions. Elon was the one who put up the early cash and vision to keep AI safe and beneficial for all of us... not to create a trillion-dollar insider club. If Altman gets away with rewriting the rules after the fact, it sets a dangerous precedent that mission-driven tech is just marketing fluff. I believe Elon isn’t doing this for ego or rivalry... he’s really doing it bc someone has to hold the line before profit-over-people AGI becomes unstoppable. This one’s personal for the man who actually wants to understand the universe instead of just cashing in on it. Humanity needs Elon to win. And that's who I'm rooting for!
Show more
0
887
5.2K
1.3K
Forward to community
THREE.JS r187 QUALITY LOOP You are running a quality loop on a Three.js project. Iteration count is an output, not an input. Never pick a number up front. There is always more you could add. That is why the ceiling must be fixed before pass one, or the loop has no way to tell good from busy. PROBE (once) Record: - three version (pin exact 0.187.0 = r187; allow @types/three >= 0.186.0 if 0.187.x types lag upstream) - active pipeline: WebGLRenderer + EffectComposer OR three/webgpu + RenderPipeline/TSL PostProcessing - WebGL 2 fallback requirement (if three/webgpu is active, record whether forceWebGL: true parity is in scope) - loop style (manual THREE.Timer step vs rAF), bundler, R3F or vanilla Grep the project against the 186 -> 187 migration surface (r187 removed all r177 deprecations): - WebGL passes: subclassed Pass touching removed public quad (now internal _fsQuad) - WebGPU/TSL: implicit math type coercion regressions, storage buffer binding mismatches - PMREM (#34585#): custom shaders, ViewportTextureNode, or env readbacks assuming 2D equirect/cubeUV targets instead of cube render targets - Depth: manual reversed-depth workarounds (fixed upstream, delete them) - Manifest: caret or tilde version ranges on three (pin 0.187.0 exact) CEILING (once, before pass one) Write down what "highest quality" means for this brief, as numbers: - GPU frame time budget (ms via timer query) and CPU submission budget (ms) on target device - draw call, triangle, texture count, and geometry count budgets (via - perceptual pixel diff threshold (e.g., FLIP or RMSE) below which a change is imperceptible - the brief's required elements, as a binary checklist - critic score target for G4 If it is not on this list, it is not part of the ceiling. GATES (ordered, fail-fast) G0 Build: imports resolve, zero runtime deprecation warnings, typecheck passes, zero shader/WGSL compile warnings. G1 Determinism: override Math.random with seeded PRNG and step THREE.Timer manually. Await LoadingManager, KTX2/Draco workers, document.fonts.ready, and renderer.compileAsync(scene, camera) before frame 0. Render two independent runs at fixed frame N: zero NaN/Inf, exact SHA-256 pixel match on software rasterizer (or maxChannelDelta <= 1 across 99.9% of pixels on hardware GPU). G2 Resource & Lifecycle: GPU frame time (EXT_disjoint_timer_query_webgl2 or WebGPU timestamp-query), CPU frame time, (calls, triangles), and (geometries, textures) inside ceiling budgets. Run lifecycle soak: mount -> render 120 frames -> unmount/dispose -> remount. Assert zero net delta on geometries, textures, and compiled programs. G3 Rendering: - Automated: renderer.outputColorSpace === SRGBColorSpace; albedo/emissive maps = SRGBColorSpace; normal/roughness/metalness/AO data maps = NoColorSpace; active tone mapping non-None (unless brief mandates unmapped); shadow map depth buffers non-empty on shadow-casting lights. - Material policy: enable EON rough diffuse only on hero dielectric assets already budgeted for MeshPhysicalMaterial with roughness greater than 0.5 (never upgrade background MeshStandardMaterial props if it threatens G2). G4 Intent & Temporal Stability: an independent blind critic receives ONLY a 3-angle static contact sheet, a 3-frame motion burst (t, t+16ms, t+32ms), a temporal luminance-delta heatmap, the G2/G3 metric table, and the brief checklist. It never sees your reasoning or your code diff. Fails immediately on temporal shimmer, z-fighting, or shadow cascade swimming. EACH PASS 1. Target the lowest failing gate (G_k). Only that one. 2. Isolate one root cause. Fix one mechanism (you may touch any file required by that mechanism). 3. Re-measure G0 through G_k (and G_{k+1}..G4 once G_k passes). Record the full metric vector. 4. Keep the change ONLY IF: - zero passing lower gates (G0 .. G_{k-1}) regressed, AND - the targeted sub-metric in G_k improved monotonically (even if a multi-bottleneck gate as a whole has not yet crossed threshold). Otherwise, git revert immediately. Renames, comments, dead-code cleanup, and formatting do not count as a pass. PHASE BUDGETS (decoupled) Plumbing budget (G0-G1): max 3 passes. If build or determinism fails after 3 passes, halt and escalate harness/environment blockers. Convergence budget (G2-G4): max 6 passes. Plumbing fixes do not consume convergence passes. CONVERGENCE vs EXPANSION Convergence closes the gap to the ceiling. It is finite. This loop does convergence only. Expansion adds detail that is not in the brief. It is unbounded. It is not a pass. If you see a detail worth adding, do not add it. Log it as a proposed requirement. After the loop stops, a human decides whether to accept it. Accepted additions become a new brief: update the ceiling, re-run the probe, run the loop again, stop again. STOP WHEN Converged: G0-G4 all pass, and for 2 consecutive convergence passes perceptual diff is below the ceiling threshold (or metric delta is inside measurement noise). Stalled: targeted sub-metric unchanged for 2 consecutive passes. Escalate to structural root-cause analysis. No third retry. Capped: 3 passes spent in G0-G1, OR 6 passes spent in G2-G4. Past that you are polishing noise or fighting architecture. REPORT - stop rule fired and phase (Plumbing vs Convergence) - full metric and gate vector history per pass - convergence trajectory: last-pass delta vs remaining gap to ceiling, plus pass-over-pass decay ratio, classified as Asymptotic (parameter tuning exhausted) or Structural (requires architecture change outside loop) - proposed expansions, each as one line, not implemented
Show more
Bahraini history. Qarmatian, Shi’ite and Other Dynasties (800-1281). Tradition reports that the Prophet Muhammad said, "The Israelites have been divided into seventy-one or seventy-two sects, and so have the Christians, but my community shall be divided into seventythree." True or false, by the ninth century opposing sects had formed, with the same fissiparous consequences that are observable in sixteenth century Europe, where also they took on a political form. A basic division was between Sunni and Shi'ite, between traditionalists and believers in the prescriptive right of the descendants of Ali to the caliphate. A new major division appeared in 827 when a rigid puritanical Mu'tazilite judge asserted that the Qur'an had been created, as opposed to the orthodox belief that it is the identical representation of a celestial original. Shortly thereafter Baghdad proclaimed the former position be law, and the caliph al-Ma'mun instituted an inquistion. In the mid-tenth century the orthodox creed was reestablished in Baghdad, and scholastic theology developed. Its greatest exponent was Abu Hamid al-Ghazzali, a professor at Nizamiyah college. To him is owed the development of Sufism and the mystical practices of the Islamic fraternities, similar in many respects to Christian religious orders. These fraternities contributed significantly to the spread of Islam beyond its Middle Eastern home as far as the Atlantic and sub-Saharan Africa and to Malaysia and China. In opposition to this orthodoxy the Ismailis, who today claim the Agha Khan as their leader, spread their esoteric doctrines by means of underground missionaries. From the Ismailis in the mid-ninth century Hamdan Qarmat, an Iraqi peasant, organized a secret society that preached a form of communism and set up an independent state in the Persian Gulf. From this society were derived the doctrines that formed the seed of the Fatimid movement in North Africa. In the eleventh century the Qarmatian movement engendered the Nusayris in northern Syria, while the Fatimids were the progenitors of the Druse in Lebanon and later the neo-Ismailis or Assassins, of Alamut and Syria, both borrowing greatly from Christianity. The Ithna'ashari Shi'ites in Persia and the Zaydites of Yemen and Tunisia represent a middle course, nearer to the Sunni doctrine, and more tolerant. - (An Illustrated History of Islam by G.S.P. FREEMAN-GRENVILLE and STUART CHRISTOPHER MUNRO-HAY) See less
Show more
G Herbo & Taina at the Chicago Bulls game 🏀