#datastack
Explore tagged Tumblr posts
vaultsixtynine · 11 months ago
Text
the crowdstrike thing is funny (locally to me) because my coworkers were just about to get it set up on a government-work-related datastack and now they're just this emoji 😱 in the it group chat
8 notes · View notes
sfaccountant · 2 years ago
Text
The Moon Mages are a persisting mystery among the 38th Company.
Nopony outside the Lunar Guard seems to know where they came from. They seem like ordinary unicorns at a glance, with ordinary origins. The mares locked in the halls under Nightwatch can tell you what towns they are from, where they went to school, who their parents are, and furnish substantial proof to verify their claims. Yet nopony else from these places - including, disturbingly, the alleged parents - remember them.
To ask the ponies in the halls of Canterlot Castle about the Moon Mages inevitably provokes either confusion or suspicious glares, and either response is inevitably followed by a brisk dismissal.
To ask the lords of Ferrous Dominus about them will yield more practical information: The Moon Mages are powerful psykers. They are prisoners who were given over to the fleet from Equestria. No details were given as to what crime was committed, and the Iron Warriors are not the sort to pry into such trifles. Their historical and unit profiles in the noosphere datastacks are nearly blank, possessing only their name, age, origin town, and a wargear registry.
The only other information given is that the Moon Mages are not to be allowed to leave their prison under Nightwatch without an armed escort. The Company is less than religious about this particular security measure, but the rest of the Lunar Guard is not. To the Lords of Chaos they are little more than unusually powerful slaves; sometimes they are hurled into battle with the bat ponies, but most of the time the Moon Mages conduct endless research and give lessons to younger unicorns, raising a new generation of battle sorcerers for Chaos to exploit.
The Lunar Guard will not explain the presence of these tragic(?) spellcasters. They seem to simultaneously detest their presence and hold a curious respect for them. Some thestrals bemoan their imprisonment and harsh treatment, but none of them dare oppose it, and none will describe their crimes to outsiders. Princess Luna herself dismisses such questions with a dark grimace and a look of mild regret.
To ask the Moon Mages themselves is the true fool's errand. Most of them seem mad to one degree or another, and they don't have the bearings of prisoners. Why do they not break out and flee? Where does their power come from? Why are there no stallions among their kind?
No answers are forthcoming. They cannot be cajoled or purchased. The Moon Mages don't seem to seek knowledge, or redemption, or even the acceptance of their fellow equine. They are a strange secret hidden within the depths of the fortress-factory, waiting in the dark for the next order and the next kill.
Tumblr media
Penubra Shard, by Cotton Candy Pone
6 notes · View notes
randomimperialcitizen · 4 months ago
Text
That’s three centuries of datastacks that they refuses to delete. Hoarding their secrets and knowledge from anyone who might wish to steal them. Despite the fact much of it is useless minutiae of their own life.
Snail-like techpriest (friend's idea)
Tumblr media
I think this guy is like a powercell, this giant thing stores motive force and he has to drag it around slowly
486 notes · View notes
someengineering · 2 years ago
Text
youtube
Episode 15: Why Data Observability Needs Data Criticality | Some Engineering Podcast
In this episode, we interview Kevin Hu, co-founder and CEO at Metaplane. Metaplane offers data observability for the modern data stack. Kevin calls Metaplane the "Datadog for data," in reference to observability for microservices and cloud-native stacks.
0 notes
castellankurze · 3 years ago
Text
The Leagues of Votann Are Coming – But What Actually Is a Votann?
Tumblr media
A secretive people in a galaxy full of mortal threats, the Kin do not discuss the nature of the Votann with outsiders – by sacred custom and sensible caution. The word is used freely enough, but no-one beyond the Leagues has any clue what it refers to.
There’s good reason for this reticence – if the secrets of the Votann were ever revealed to the galaxy at large, the uneasy peace between the Leagues and the Imperium of Man would quickly crumble.
Why? The Votann are Ancestor Cores – super-cogitators, gestalt repositories of inherited wisdom and knowledge. Each League has its own Votann, central to its way of life, and no Kin would hesitate to lay down their lives to protect it – these venerable cogitators are as sacred to the Kin as gods are to the more spiritual races. That’s the sort of thing the Adeptus Mechanicus has strong opinions on.
Within these self-organising datastacks and quantum infocores is held all the information a people might need to survive among the stars – weapon specifications, military theory, genealogical data, science, philosophy, and even Standard Template Constructs. There is an unimaginable wealth of lore buried in each Votann, which cannot be allowed to fall into the more superstitious hands of outsiders.
Of course, the 41st Millennium being what it is, not all is well among the Votann – it turns out that even machines of near-limitless power can eventually run out of memory. Whoever first created these marvels did not design them for tens of thousands of years of constant operation, and the sheer weight of data they are forced to compute has begun to slow them down.
Some have developed idiosyncrasies – what might even be termed “personalities”. When once the Kin would have received an answer to a tough question in a matter of moments, as the 41st Millennium comes to a close, some Votann can take decades – or even centuries – to deliver the same solution. Day by day, year by year, the Ancestor Cores become more eccentric and mercurial.
https://www.warhammer-community.com/2022/04/22/the-leagues-of-votann-are-coming-but-what-actually-is-a-votann/
294 notes · View notes
transmechanicus · 6 years ago
Text
Looking at the Primaris Repulsor and the Skorpius Dunerider it’s clear Cawl’s only concept of a transport is just saved in his datastacks as “Lesser Tank.jpg”
23 notes · View notes
questlation · 3 years ago
Text
LUMIQ raises USD 5.5 million in Series A funding to drive expansion across international financial services and insurance markets
LUMIQ raises USD 5.5 million in Series A funding to drive expansion across international financial services and insurance markets
NOIDA, India and MUMBAI, India, Oct. 31, 2022 /PRNewswire/ — LUMIQ has raised Rs 44.1 crore or $5.5 million in its Series A round led by existing investor Info Edge Ventures. In 2022, this is the 1st round of investment for the Data and Analytics company which builds datastack products and solutions, with a pure Financial Services and Insurance (FSI) focus. In this round, Info Edge Ventures…
Tumblr media
View On WordPress
0 notes
craigbrownphd-blog-blog · 3 years ago
Text
Tumblr media
#ICYDK: Webinar Series -The rise of the Modern DataStack and the Modern Data Quality Platform https://www.datasciencecentral.com/webinar-series-the-rise-of-the-modern-datastack-and-the-modern-data-quality-platform/?utm_source=dlvr.it&utm_medium=tumblr
0 notes
sparrowsarus · 4 years ago
Text
The datastack I need that took four days to make is corrupted:))) I hate everything :)))
0 notes
scoundrelstars · 7 years ago
Text
The Price of Ink, Part 4
The low growl of the engine echoed strangely along the walls and off into the darkness. They’d been driving for almost an hour down a series of winding subways and rail tunnels that had been used to ferry workers out into the mining pits. Now, illuminated only by the floodlights of their vehicle, the tracks were empty.
Inside the Taurox, things were quiet. The Hellbats sat watching the shadows cast by the floodlights. Reddy and Abel sat with their eyes glued to their wristcog dataslates which showed live pict-feeds from the pair of servo-skulls that roved in front of and behind them. They cast about with auspex readers, scanning the darkness for things unseen. They were moving closer and closer to the heart of Scarist Hive and the odds of them going undetected were shrinking by the moment.
Naemi concentrated on the map in her head, seeing more than what the dataslate on her arm could show her. They were close to the Archives now, barely blocks away from city center. She was amazed they’d made it this far without encountering any of the deranged cultists that had taken over the hive. By all accounts, they had swarmed up from the underhive and taken control of every major building, system, and office in the city. Perhaps none remained down here. The Archives was on the surface, however, and a lump formed in her throat at the thought of facing down those killers.
She shook herself mentally and steeled herself. They’d have to get there first.
“It should just be up there,” she said in a whisper.
“Lights ahead,” said Sergeant Alcoin.
“Abel?” said Sorn.
“Yessir.”
With two fingers, Sorn punched runes on his wristcog and brought the view from Abel’s servo-skull onto the bulkhead pict-screen. It hovered high in the tunnel, creeping along ahead of them. The tunnel widened out into a large railway loading area for people and cargo that would have gone down to the mining pits. Only a few of the vapor lamps were still on, but the pools of light revealed the grand vaults of the Archives stop, where countless scribes would bring their daily tabulations and recordings to be stored at the end of each shift.
“I don’t see anyone.”
“That’s what I’m worried about. We haven’t seen hide nor hair of any of those tunnel scuttlers. Makes me nervous,” said Sorn.
“Think the Hallowed Starborn cult is big on reading?” asked Naemi. Her voice was strained, but the Hellbats chuckled around her.
“No I don’t, professor. All right, Caissy, bring us in. Aime, look alive on those guns.”
The Taurox pulled into the train station and up onto the equipment loading ramp, its treads biting into the fractured tile and ruined mosaic floor. They came to a stop and opened the back hatch, piling out with guns ready. Caissy and Aime stayed aboard, covering the Hellbats’ advance with the heavy guns.
Water dripped from pipes in the vaulted ceilings, lending the loading platform an echoing, spectral quality. Naemi was squarely in the middle of the formation, protected by Scions on either side and a slab of armoured vehicle at her back. She still wasn’t used to the carapace armor she’d been fitted with, but it wasn’t as uncomfortable as it looked and she found that her movement was mostly unrestricted. They slunk quickly to the grand staircase that led to the surface. Wrought iron gates had been reinforced with heaps of scrap metal welded together across them to form an impassable wall much like they had encountered on the surface.
“We’re blocked, sir,” said Reddy over the vox, “should we blow it?”
“Maybe not,” said Naemi, searching her memory, “there’s another way, I think.”
She broke away to the side of the main pedway where she followed a pair of tramrails sunk into the floor. They led to a loading ramp that was closed off with two heavy blast doors and big enough to move mining equipment on and off of the trains that would depart from the platform. A freight elevator. And it went up to a storage garage on the surface, adjacent to the Archives. This was their way up. She found the control panel under a pool of light cast by one of the few remaining lamps that shone.
“Can you get it working?” said Sorn, coming up next to her. He made a series of hand motions to the other Hellbats and they fanned out around them, taking covering angles, some facing the elevator and others the approaches.
“We’ll see, won’t we?”
She pulled her Logos icon from underneath her chestplate and turned it over. From the back, she unspooled a fine interface lead that she plugged into the elevator call panel. The solar icon around the stylized tome lit with green light as the cipher-gheist inside did its work. With the scrape of metal on metal, the doors to the freight elevator ground open and glowglobes flickered on inside, revealing a platform big enough to hold a full dump-loader.
Satisfied that nothing was going to jump out at them, Sorn motioned the Taurox forward. With a low grumble, it moved up the loading ramp and onto the elevator. Aime rotated top turret to face back the way they’d come. The brake lights cast a sullen red glow out into the darkness. The Hellbats followed their vehicle up the ramp and took defensive positions along the outer edges of the lift platform. Naemi unplugged her icon and followed.
The doors slid closed with the push of a control rune and the platform lurched upward.
They were dumped out into the storage garage meant for the Archives adepts, mine-boss vehicles, and materiel destined for the railway below. A quick jog up the ramps brought them to ground level where the garage connected to the Archives. They stopped in front of the doorway that led to the building next to them.
“Caissy, Aime. Stay here with the Taurox and keep our getaway secure.” Acknowledges came back from the two troopers and Sorn continued. “We’ll be in an out before anyone knows we’ve been there.”
Naemi followed the Hellbats through an archway that led to the Archives’ main foyer, using her icon’s cipher-gheist to get them through the biomantic scanners and lockouts.
The main hall of the Archives was a soaring edifice of rib-vaulted stone and stained glass, but its grandeur was despoiled by looting and vandalism. Scrivener’s desks were overturned and staved in, the tall tome-stacks had been pushed over, scattering books, dataslates, and mnesis-tapes all over. The great stained glass windows that had once shown the full glory of the Administratum were smashed and huge sack-cloth banners painted with the Starborn’s heretical symbols hung in their place.
“Spread out. Search pattern delta-tertius,” came Sorn’s order, “I feel like a whiskerfish in a river full of swampcats.”
The two servo-skulls that accompanied them zoomed ahead, their auspex scanners searching the darkness for threats unseen. The Mercier boys followed close behind, disappearing into the ruined stacks, their hot-shot lasguns held at the ready. Lufleur hefted her own weapon, a heat-scarred meltagun, and moved quietly for a soldier of her size.
It was eerily quiet amid the stacks. The musty smell of old paper and books made it through the omnishield mask that covered Naemi’s face. It almost comforted her. It was familiar, yet sinister, reminding her of the scriptorum back on Terra, but tainted by the smell of smoke and fresh aero-paint.
Her vox crackled in her ear. “Found something.”
They passed into the great narthex where the High Archivist would have watched over the entrance to the data-crypts, the repository for the planet’s most sensitive and important knowledge. Abel and Reddy were already there, standing over the cracked marble desk and a mound of blue cloth. As she drew near, Naemi realized it was the High Archivist’s corpse. Blood had seeped out onto the white stone floors and dried to a dark brown.
“Been here for a week, maybe?” said Abel.
“Went down fighting,” said his brother, pointing to the huge chunks blasted out of the stone desk.
Naemi stared down at the High Archivist’s body and swayed. Dead eyes stared up from a slack-jawed face.  She felt bile rise in her throat and had to look away. She felt a hand on her arm.
Sorn steered her away from the corpse and towards the data-crypt’s doors. “Come on, professor. The quicker we can get into those data-crypts, the faster we can get out of here.”
“Right,” she said, swallowing hard and unspooling her Logos icon’s interface lead once more.
The back wall of the narthex was dominated by a heavy vault door. A gene-scanner and voiceprint analyzer would have to be passed for the High Archivist’s key to be accepted, but Naemi wouldn’t need to go to such lengths. She prised the front panel off of the crypt’s access cogitator, mouthed a quick apology to any red priests who might be watching, and connected her icon to a data port hidden within. Once again, her Logos icon glowed green as the cipher-gheist went to work.
Runes and tech-script scrawled along the pict-screen as the panel went haywire. A loud clunk echoed through the Archive as the data-crypt’s maglocks disengaged and retracted. Lufleur hauled on the huge door and it swung open, revealing a cavernous structure built of ceramite-reinforced steel and it stretched back into the darkness. Rows of glowglobes clicked on in succession, flooding the data-crypt with clinical, white light. Towers of datastacks and mnemono-matrices rose from the floor, lights winking across their surfaces in dizzying patterns. Along the outer walls, bookshelves containing musty scrolls, tomes, and volumes were neatly organized. It seemed that the Hallowed Starborn hadn’t managed to get into vault. Naemi’s heart leaped at the prospect of the Iterator Soldatta’s greatest work still being intact.
“Neatly done, professor,” said Sorn, coming to stand next to her.
“There’s still power, which is better than I’d hoped,” she said, stepping over the threshold, “The stasis vault should still be functioning. We might even find Soldatta’s work undamaged!”
“Let’s have ourselves a look,” drawled the colonel. He motioned quickly with one hand and Leger and Monpremier bustled in with their equipment. Out of their packs, they brought out black plastic boxes with retractable cables. The two troopers went to work connecting them to the stacks’ dataports, flipping the small switches on their boxes. Small red lights blinked as their exhaust fans revved up with an electric whine.
Naemi started to speak, but remembered the colonel’s face the last time she asked what he would do with the data he was taking from Scarist’s vaults. She decided not to press the issue. Hopefully, she’d be well out of this Emperor-forsaken subsector before it came back to bite her. She affected to not see them and push on deeper into the data-crypt.
The two of them proceeded towards the far end of the chamber where a glass panel separated a section of the vault off from the rest. Arcane machinery hummed around it, projecting a stasis field to keep the contents within protected from the ravages of time. At the center of the stasis chamber, atop a small plinth, Naemi could see the object of her quest. The Rise of Empire, Iterator Soldatta’s greatest work, was a tome the size of a paving stone and engraved with the head of an eagle over crossed thunderbolts.
Naemi began to manipulate the stasis controls though her Logos icon. She could have shut the entire chamber down and retrieved the book, but there was a chance that the Archives might survive the Imperial assault on Scarist and she wanted to keep the accumulated knowledge of the planet safe within the time-warping fields. The entire data-crypt was hardened against attack and she would give it good odds to survive even an orbital lance strike. By adjusting the edges of the field generators in a precise way, she could open a path through the stasis chamber and retrieve the Iterator’s tome without disturbing the rest of the precious objects inside.
The vox channel came alive and she could hear Reddy’s voice whispering, “I’ve got movement out here, chief.”
“Visual?”
“I’ve got mining vehicles and groundcars pullin’ up to the front of the building. They’re packed to burstin’ with some of the meanest characters I ever did see. I think they know we’re here.”
“Pull back to the crypt, we’re almost out of here,” voxed Sorn before giving her a serious look, “Wrap it up, boys. Time for us to go! You too, professor. If you’re gonna grab this thing, it’s got to be now.”
2 notes · View notes
psychic-readingonline · 6 years ago
Text
Psychic Quirk
Contents
Rescue endangered frogs
Bulbapedia psychic revelation definition
Strong ….
French psychic events aura
Quirk called psychic materialization. aiming
Chief Librarian Varro Tigurius of the Ultramarines in combat. Varro Tigurius is the Chief Librarian of the Ultramarines Chapter of the Space Marines.As a psyker, Tigurius has always stood apart from his Battle-Brothers.Even to the company Captains of the Ultramarines he is a figure of mystery, possessed of a knowledge that goes beyond the towering datastacks and myriad scrolls of the Chapter’s …
Mar 3, 2018 … The Psychic. 'Thought's. Flashbacks. Izuku Midoriya was a child when he got his quirk. Izuku Midoriya was a child when his dad said he didn't …
Island of Haste (Japanese: ときのしま Island of Time) is the twelfth zone in Pokémon Battle Trozei, available after clearing Stage 4 of Mountain of Order.. The special quirk in these stages is that everything happens in double time, making things much faster than usual. In all stages, Pokémon appear in the center above columns 3 and 4 unless otherwise noted.
Kissing Frogs is a fun contemporary romance that’s a modern spin of The Frog Prince fairytale. The main character, Jess, finds out she’s failing biology and must travel to Panama with her school’s conservation club to help rescue endangered frogs.
Psychic Meaning In Chinese Psychic Terrain bulbapedia psychic revelation definition Help support psychic revelation by getting our complete Tarot definitions in ebook (pdf) form and browse at your leisure. Available in both upright only and  … psychic numbing defined psychic numbing is a tendency for individuals or societies to withdraw attention from past …. A general definition of psychic Psychic Twins You Tube Terry and Linda Jamison, known internationally as “The Psychic Twins,” are the most documented psychics in history, with an unrivaled track record of over 2,… May 26, 2011  · The Shining movie clips: http://j.mp/1CPAvTw BUY THE MOVIE: http://bit.ly/2cb9VRg Don’t miss the HOTTEST NEW TRAILERS: http://bit.ly/1u2y6pr CLIP DESCRIPTION: While … Are you looking for the best quotes
Oct 25, 2017 … However, all the most notable examples of a quirk having a direct ….. can't be physically manifested, these would be psychic quirks and the like; …
Psycho Drama Definition Psychodrama definition is – an extemporized dramatization designed to afford catharsis and social relearning for one or more of the participants from whose life  … Nov 25, 2010 … The original form of group psychotherapy is psychodrama. Jacob Levy Moreno, the man who developed psychodrama, also coined the phrases … Read this before you take the
I try to make a run for it, but his quirk is too strong …. Sure, the psychic type is defying gravity, but a space rocket also defies gravity when it gets …
Psychic Source Advisors Become a psychic source advisor: If you want to share your gifts with others in … Psychic Type Edm A pioneer in the field of spiritual emergence, Paul Levy is a wounded healer in private practice, assisting others who are also awakening to the dreamlike nature of reality. Psychic Detective Near Me Psychic Ace blue eyes Psychic Type Edm A pioneer in the field of spiritual emergence, Paul Levy is a wounded healer in private practice, assisting others who are also awakening to the dreamlike nature of reality. Psychic Detective Near Me Psychic Ace blue eyes duel Links Psychic Meaning In french psychic events aura Psychic Near Me Best Aura Psychic. Hello, and thank Psychic Corrosion Deck Psychic Meaning In Chinese Psychic Terrain Bulbapedia Psychic Revelation Definition Help support psychic revelation by getting our complete Tarot definitions in ebook (pdf) form and browse at your leisure. Available in both upright only and  … psychic numbing defined psychic numbing is a tendency for individuals or societies to withdraw attention from past …. A
She possesses an emitter-type quirk called psychic materialization. aiming for the top, she tends to judges other people and being harsh to them because she …
The official category page for all Emitter-class quirks.
0 notes
mbaljeetsingh · 7 years ago
Text
10 Node Frameworks to Use in 2019
Introduction
More developers have switched to using JavaScript to build more applications, especially for the web. This has brought about an exponential growth in the usage of frameworks built specifically for the JavaScript community to facilitate quick prototyping and building of awesome projects.
When Node.js was introduced to the tech community in 2009 as a tool for building scalable server-side web applications, it came with a lot of benefits which includes but not limited to the usage of event-driven non-blocking input/output model, single-threaded asynchronous programming amongst others.
The fact that, as a developer, you can easily use the same language both for the client-side and server-side scripting easily increased the quick adoption and rapid the usage of Node.
Over the years, a lot of experienced JavaScript developers have built quite a number of impressive frameworks to easily get started with Node.js when developing web applications.
As we look into 2019, I will list some of the most popular Node.js frameworks that you should consider using for building web applications irrespective of the size.
What is a Node framework?
A Node.js framework is just some abstract design, built out of Node.js, that embodies the control flow of the given framework’s design. So it is almost like the skeleton of a program whereby the customised codes you write kind of makes up as the meat that completes the program.
So for every Node.js function, there would be some generic implementation unique to the framework which would then require the user to follow the lead of the framework by adding more codes to define its use case.
Benefits of Node frameworks
Node.js frameworks are mostly used because of their productivity, scalability and speed, making them one of the first choice for building enterprise applications for companies.
Node.js allows you to write the same language for both your front-end and backend, saving you the stress of learning a new language for some simple implementation, and also helping you maintain the same coding pattern all through.
By using a framework, you can work with a set of tools, guidelines, and recommended practices that help you save time. It also can help solidify the code standards across a team of developers.
Selecting a Node Framework
Selecting a framework can be a bit tricky and subjective to its use case. This is because we choose based on a particular feature we like. Ranging from the weight of the framework on the application, speed, simplicity, learning curve, flexibility and configuration, use case or maybe even popularity in some cases, GitHub stars.
Next, lets take a deep dive into the objective of this post and go through the list of Node.js frameworks that will help boost your productivity when building JavaScript applications, especially on the server-side.
Stars aren't everything so we'll be organizing by what we've seen to be popular on Scotch.io.
1. AdonisJs [GitHub Stars: 5,053]
AdonisJsis a Node.js framework. From the official documentation, "AdonisJs is a Node.js MVC framework that runs on all major operating systems. It offers a stable ecosystem to write a server-side web application so that you can focus on business needs over finalising which package to choose or not."
Adonis is billed as the Laravel of Node. Simplicity and a focus on getting things done.
"We're big fans of Laravel's approach (Scotch is built on Laravel) so when we saw those same principles come to the Node side, we were very excited." - Chris Sevilleja
Why AdonisJS?
AdonisJs has a support for an ORM is made with SQL-databases in mind (PostgreSQL). It creates efficient SQL-queries and is based on active record idea. Its query builder is easy to learn and allows us to build simple queries quickly.
AdonisJs has good support for No-SQL database like MongoDB too. It's MVC structure is quite similar to Laravel, so if you've been using Laravel for web development, AdonisJs will be a walk in the park.
To get started easily check out this comprehensive article by Chimezie here on scotch.io.
2. Express.js [GitHub Stars: 41,036]
Express.js is a fast, non-opinionated, minimalist web framework for Node.js. It is simply a technology built on Node.js which behaves like a middleware to help manage our servers and routes. Looking at the asynchronous nature of Node.js and the fact that Express.js was built on node, the ability to build a light-weight application that can process more than a single request seamlessly actually depends on the serving capability of technologies like express.
It’s robust API allows users to configure routes to send/receive requests between the front-end and the database (acting as a HTTP server framework). A good advantage with express is how it supports a lot of other packages and other template engines such as Pug, Mustache, EJS and a lot more.
Some of the numerous advantages of Express.js includes:
Almost the standard for Node.js web middleware
Fully customisable
Low learning curve
Majorly focused on browsers, making templating and rendering an almost out of the box feature.
Express.js has shown, over time, that it’s popularity is worth the hype with its easy to use methods and functions. It is probably the most popular Node.js framework available for the JavaScript community on GitHub with over 41,000 stars [Github stars: 41,036].
Looking at this framework and all it’s exciting abilities, I do not see it going away anytime soon.
3. Meteor.js [GitHub Stars: 40,490]
The Meteor docs defines meteor as a full-stack JavaScript platform for developing modern web and mobile applications. It’s major advantage is it’s realtime update. As changes are made to the web app, it automatically updates the template with the latest changes.
The Node.js framework makes development quite very simplified by providing a platform for the entire tier of the application to be in the same language; JavaScript. Making it function just as efficient in both the server and client side.
Meteor stands the capability of serving large projects like reaction commerce( known to be one of the largest and most popular e-commerce open source projects).
The most fascinating aspect of the Meteor framework is the very rich and organised documentation/large community it has, helping users learn fast by reaching out and getting their hands dirty with projects, very fast.
With the fact that meteor is leveraging on the Facebook GraphQL datastack to come up with meteor Apollo, as far back as 2016, only indicates that they have good plans and a visionary perception of what the future holds for data, how it is managed and how it flows. If there is any list of Node.js frameworks to watch out for, I would probably be arrested if I did not add Meteor to that list.
4. Nest.js [GitHub Stars: 10,128]
NestJs is a framework built with Node.js, It is used for building efficient, scalable Node.js server-side applications. Nest uses progressive JavaScript and is written with TypeScript. Being built with TypeScript means that Nest comes with strong typing and combines elements of OOP(Object Oriented Programming), FP(Functional Programming) and FRP(Functional Reactive Programming).
Nest also makes use of Express, It provides an out of the box application architecture which allows for the effortless creation of highly testable, scalable, loosely coupled, and easily maintainable applications.
Nest CLI can be used to generate nest.js applications with a lot of features out of the box. According to the information on the website, one can contact the nest community of developers behind the nest framework to find out more about expertise consulting, on-site enterprise support, trainings, and private sessions. Isn’t that cool? Well I guess it is, and I also think this also should make it into the list of Node.js frameworks to look out for in 2019.
5. Sails.js [GitHub Stars: 19,887]
According to the official site, Sails is another Node.js framework used to build custom enterprise-grade Node.js apps. It boasts of being the most popular MVC Node.js framework with the support for modern apps requirements. The APIs are data-driven, with a scalable service oriented architecture.
Let us take a closer look at what they mean here. Sails bundles an ORM, waterlines, that makes compatibility possible with almost all databases, going as far as providing a huge number of community projects. Some of its officially supported adapters include MYSQL, Mongo, PostgreSQL, Redis, and even Local Disk.
Looking at the backend, Just by running an installation command, `sails generate api bookstore` for instance, sails blows your mind by providing you some basic blueprints, without you writing any codes at all.
This command provides you endpoints to CRUD bookstore. You think that is all right, check this out: Sails is also compatible with almost all frontend technologies ranging from React, Angular, Backbone, iOS/objective C, Android/java, windows phone and probably even some technologies yet to be created. For this one, 2019 it is! summarised features include:
Many automated generators.
Requires no additional routing
Great frontend compatibility with other frontend technologies.
Transparent support for Websockets.
Enables faster build of REST API.
Compatible with almost all database, thanks to its waterline ORM.
6. Koa.js [GitHub Stars: 23,902]
Referred to as the next generation web framework for Node.js(according to the website), Koa was created by the same team that created Express.js, making it seem like it would pick up from where express left off. Koa is unique in the fact that it uses some really cool ECMAScript(ES6) methods that have not even landed in some browsers yet, it allows you to work without callbacks, while also providing you with an immense increase in error handling. it requires a Node.js version of at least 0.11 or higher.
According to the website, Koa does not bundle any middleware within core, meaning the middlewares are more cascaded/streamlined, and every line of code is quite elegant and granular, thereby allowing you to structure the parts however you want(component-based middlewares). This makes the framework to have more control over configurations and handling.
Koa became futureproof owing to the fact that it could actually ditch the holy grail of asynchronous functionality: callbacks.
Some key features include:
Ditched callbacks hell
Component-based building blocks
Cascading middlewares
Quite modular
Efficient error handling
This is definitely a framework for the future and I am almost beginning to see that if an article for frameworks to lookout for in the year 2020 comes out, it would still probably make the list.
7. LoopBack.js [GitHub Stars: 11,985]
LoopBack is another Node.js framework with an easy-to-use CLI and a dynamic API explorer. It allows you to create your models based on your schema or dynamic models in the absence of a schema. It is compatible with a good number of REST services and a wide variety of databases including MySQL, Oracle, MongoDB, Postgres and so on.
It has the ability to allow a user build a server API that maps to another server, almost like creating an API that is a proxy for another API. It’s support for native mobile and browser SDKs for clients like Android/Java, iOS, Browser javaScript(Angular).
Key features:
Quickly create dynamic end-to-end REST APIs.
Connect devices and browsers to data and services.
Use Android, iOS, and AngularJS SDKs to easily create client apps.
Add-on components for file management, 3rd-party login, and OAuth2.
Runs on-premises or in the cloud
Most of these details were collected from their Website/documentation which I found very exciting to go through and even try to get a basic setup up, Indicating that they have a well structured documentation and a community distributed across different media( StrongLoop blog, LoopBack Google Group, LoopBack Gitter channel ). For instance, the Loopback blog provides lots of tutorials and use cases on how to leverage the use of the technology in different ways.
Amongst some of its powerful users are Go Daddy, Flight Office, Bank of America(Meryll Linch), Symantec, Intellum, ShoppinPal and so on.
8. Hapi.js [GitHub Stars: 10,371]
Just like ExpressJs, the common hapi.js(supported by Walmart Labs) is a Node.js framework that helps serve data by intermediating between the server side and client. It is quite a good substitute for Express(they both have their unique features).
Hapi is a configuration-driven pattern, traditionally modeled to control web server operations. A unique feature it has is the ability to create a server on a specific IP, with features like the ‘onPreHandler’, we can do something with a request before it is completed by intercepting it and doing some pre-processing on the request.
Considering it’s ‘handler’ function where we can call a route and still pass some configurations while making the requests, just to get the function to do something specified in the configuration. This handler, from what we see, acts like a pseudo-middleware.
Let us look at some key features that make hapiJs promising:
There is a deeper control over request handling.
Detailed API reference and a good support for document generation
Has more functions for building web servers
Configuration-based approach to some sub-middlewares(pseudo-middlewares)
Provides the availability of caching, Authentication, and input validation.
Has a plugin-based architecture for scaling.
Provides you with really good enterprise plugins like the joi, yar, catbox, boom, tv, travelogue, and so on.
HapiJs might not be as popular [github stars: 10,371] as Express but it has some good backing up and it seems to be gaining some grounds too. It does not seem like it is slowing down its mark and relevance anytime soon.
9. Derby.js [4,350]
According to the Derby.js site, it is a full stack Node.js framework for writing modern web applications. Derby has been around a little while, quite long enough to have proven itself to hop into 2019 and rock some chords. Let’s see what we have here.
DerbyJs provides you with seamless data synchronisation between your server and client with an automatic conflict resolution powered by ShareDB's operational transformation of JSON and text. It permits you the opportunity to add customised codes to build highly efficient web applications.
10. Total.js [Github stars: 3,853]
Total.js boast of being a very fast development Node.js framework, that requires little maintenance, with a good performance and a seamless scaling transition. It shows some promise by giving some insight on their website, where they ask for visitors willing to contribute to the growth of the framework. So far the Total.js team has spent some time trying to get more premium sponsors to join them. This is another indication that they have plans to expand and should be checked out for more growth in the nearest future to come.
Total.js has some really beautiful versions like the Total.js Eshop, which contains a user interface optimized for mobile devices, and downloadable by all premium members. The Eshop is one of the best Node.js e-commerce system. This is because of its many versions of unique content management system(CMS).
Conclusion
If there is anything we can pick from this article, I can bet you must have noticed before now that picking a framework is based on what you actually want to achieve with it.
The Node.js frameworks above have purely shown us that whatever framework we are going for, there is an open and welcoming community out there solving issues and ready to aid you with learning the basics of that particular framework, which a is vital factor to look out for amongst lots more other factors like GitHub contributions, stars, issues and so on. Just for the fun of it, you can find a lot more of Node.js frameworks here.
Please note that all the Node.js framework highlighted in this post were selected based on popularity in the JavaScript community, usage and personal opinion.
Do you know of any other awesome Node.js framework that you feel its worthy of being added to the list? please feel free to mention it in the comment section below.
I do hope you find this post very helpful. Happy coding.
via Scotch https://ift.tt/2Q1WcRA
0 notes
risysir · 7 years ago
Text
/* * Tune-In Core * * This file contains Tune-In core functions * * @package Tune-In * @category Core * @author Epexa * @link https://onplayer.net/ */
/* * --------------------------------------------------------------------------------------------------------------------- * Defining main background variables * --------------------------------------------------------------------------------------------------------------------- */ var i = 0, words = 0, audio = [], volume = 0; current = 0, debug = false, // make this true if you want to debug state = 'ready', // curent playing state (playing OR paused) reloaded = [], datastack = [], textstack = '', google_tts = 'http://translate.google.com/translate_tts?ie=UTF-8&total=1&idx=100&textlen=100&prev=input&tl=', options = JSON.parse(localStorage.getItem("options")); /* * --------------------------------------------------------------------------------------------------------------------- * Get current version * --------------------------------------------------------------------------------------------------------------------- */ function getVersion() {    var details = chrome.app.getDetails();    return details.version; }
/* * --------------------------------------------------------------------------------------------------------------------- * Set default options * --------------------------------------------------------------------------------------------------------------------- */ (function(){ if(options == null || options.version === undefined || options.version != getVersion()) // notify users for version update { voice = (options != null && options.voice !== undefined) ? options.voice : 'Tune-In';
vupdate = (options == null ? "installed" : "updated");
  options = { voice: voice,            version: getVersion(),     volume: 0.5, rate: 1.0, pitch: 1.0, enqueue: false, context: true, speechinput : false, hotkeys:"ctrl + shift + 83" // Ctrl+Shift+S default kb shortcut }
localStorage.setItem("options", JSON.stringify(options)); options = JSON.parse(localStorage.getItem("options"));
if(vupdate == 'installed') { chrome.tabs.create // open options page after instalation ( { url: chrome.extension.getURL('options.html?'+vupdate) } ); } } volume = options.volume; })();
/* * --------------------------------------------------------------------------------------------------------------------- * This function is called onload in the popup code * --------------------------------------------------------------------------------------------------------------------- */ function getSelection() {    // Injects the content script into the current opened tab and all iframes    chrome.tabs.executeScript    (        null,        {file: 'js/get_selection.js', allFrames: true}    ); };
/* * --------------------------------------------------------------------------------------------------------------------- * Play audio * --------------------------------------------------------------------------------------------------------------------- */ function playAudio(channel,data,first,firstdata) { current = channel; nextchannel = channel ? 0 : 1; if(first) { audio[channel].src = firstdata; } audio[channel].play(); setVolume(volume); preloadAudio(nextchannel,data); words--; updateNumber(words); if(debug) console.log('Play channel: '+channel); }
/* * --------------------------------------------------------------------------------------------------------------------- * Preloading next audio so the pause between 2 sentences is minimal * --------------------------------------------------------------------------------------------------------------------- */ function preloadAudio(channel,data) { if(data.search(/&q=undefined/i) == -1) // removing undefined bug :) { if(debug) console.log('Preloading audio in channel: '+channel); datastack[channel] = data; audio[channel].src = data; audio[channel].preload = true; reloaded[channel] = 1; } }
/* * --------------------------------------------------------------------------------------------------------------------- * Playback functions for controlling audio * --------------------------------------------------------------------------------------------------------------------- */ function pauseAudio() // Pause Audio { state = 'paused'; if(options.voice == 'SpeakIt!') { audio[current].pause(); // pause current audio channel if(debug) console.log('Audio channel: '+current+' was paused.'); } }
function resumeAudio() // resume paused audio { options = JSON.parse(localStorage.getItem("options")); //must fix! if(options.voice == 'SpeakIt!') { if(audio[current] !== undefined) // stupid bug but i'll fix that :) { state = 'playing'; audio[current].play(); // resume paused audio channel if(debug) console.log('Audio channel: '+current+' was resumed.'); } } else { chrome.tts.isSpeaking(function(tts_state) { if(tts_state) { chrome.tts.stop(); } else { TTS_Speak(textstack,false); } }); } }
function replayAudio() // replay audio { options = JSON.parse(localStorage.getItem("options")); //must fix if(options.voice == 'SpeakIt!') { speak(filterText(textstack)); } else { TTS_Speak(textstack,false); } }
function setVolume(value) // set volume { if(audio[0] !== undefined) { audio[0].volume = parseFloat(value); // Set volume on bouth channels audio[1].volume = parseFloat(value); volume = parseFloat(value); } if(debug) console.log('Volume is set to'+parseFloat(value)+'%'); }
function showReplay() // shows replay button in popup.html { state = 'replay'; //current = undefined; var popups = chrome.extension.getViews({type: "popup"}); if (popups.length != 0) { var popup = popups[0]; popup.sendState(state); } else { state = 'ready'; } }
function sendDuration(channel) // Send audio duration to popup.html { var popups = chrome.extension.getViews({type: "popup"}); if (popups.length != 0) { var popup = popups[0]; popup.displayProgress(audio[channel].duration); if(debug) console.log('Duration of audio in channel '+channel+' was sent. It is: '+audio[channel].duration+' seconds'); } }
function nowPlaying() //Display current audio state { var popups = chrome.extension.getViews({type: "popup"}); if (popups.length != 0) { var popup = popups[0]; popup.sendState(state); } }
function getState() //Return current audio state { return state; }
/* * --------------------------------------------------------------------------------------------------------------------- * Error handling functions * --------------------------------------------------------------------------------------------------------------------- */ function handleError(channel) { console.log('Error in channel: '+channel); reloadAudio(channel); }
function reloadAudio(channel) { if(reloaded[channel] <= 3) { console.log('Reloading channel: '+channel); audio[channel].src = datastack[channel]; audio[channel].preload = true; reloaded[channel]++; } else { readingProblems(); } }
function readingProblems() // displays reading problems notification in popup { pauseAudio(); var popups = chrome.extension.getViews({type: "popup"}); if (popups.length != 0) { var popup = popups[0]; popup.showError(); } }
/* * --------------------------------------------------------------------------------------------------------------------- * On context menu click function * --------------------------------------------------------------------------------------------------------------------- */ function contextMenu(selection) { options = JSON.parse(localStorage.getItem("options")); //must fix if(state != 'playing') { if(state == 'ready') { if(options.voice == 'SpeakIt!') { speak(filterText(selection.selectionText.toString())); } else { TTS_Speak(selection.selectionText.toString(),true); } textstack = selection.selectionText.toString(); } else { resumeAudio(); } } else { pauseAudio(); } }
/* * --------------------------------------------------------------------------------------------------------------------- * Create context Menu * --------------------------------------------------------------------------------------------------------------------- */ if(options.context) { chrome.contextMenus.removeAll(); chrome.contextMenus.create({"title": "Tune-In", "contexts":["selection"],"onclick": contextMenu}); }
/* * --------------------------------------------------------------------------------------------------------------------- * Perform the callback when a request is received from the content script * --------------------------------------------------------------------------------------------------------------------- */ chrome.extension.onRequest.addListener(function(request, sender, sendResponse) { options = JSON.parse(localStorage.getItem("options")); // must fix if(request.method === undefined) { if(request.text != undefined) { text = filterText(request.text); // get selected and formated text if(state == 'playing') { var popups = chrome.extension.getViews({type: "popup"}); if (popups.length == 0) { pauseAudio(); } } else { if(options.voice == 'SpeakIt!') { if(state == 'paused') { resumeAudio(); } else { if(text.length && text[0] != '') { nowPlaying(); speak(text); } } } else { if(text.length && text[0] != '') { state = 'playing'; TTS_Speak(request.text,true); } } } textstack = request.text; } } else { sendResponse({options: JSON.parse(localStorage.getItem("options"))}); } });
/* * --------------------------------------------------------------------------------------------------------------------- * Tune-In core function - Use It Wisely :) :) * --------------------------------------------------------------------------------------------------------------------- */ function speak(text) {    chrome.tabs.detectLanguage(null,function(lang) //detect page language { options = JSON.parse(localStorage.getItem("options")); i = 0; //reseting global variables current = 0;
state = 'playing';
popups = chrome.extension.getViews({type: "popup"}); if (popups.length != 0) {
var popup = popups[0]; popup.sendState(state); }
url = google_tts+lang+'&q='; // assemble full url for Google Network TTS API
words = text.length; audio = new Array(); audio[0] = new Audio(); // defining two new audo objects each time audio[1] = new Audio(); playAudio(i,url+text[i+1],1,url+text[i]); // Start first audio //Audio event listeners audio[0].addEventListener("ended", function() { ++i; if(i < text.length) { playAudio(1,url+text[i+1],0,''); } else { showReplay(); } }, true); audio[1].addEventListener("ended", function() { ++i; if(i < text.length) { playAudio(0,url+text[i+1],0,''); } else { showReplay(); } }, true); //Send audio duration when audio start to playing audio[0].addEventListener("playing", function() { sendDuration(0); }); audio[1].addEventListener("playing", function() { sendDuration(1); }); //On audio load error caused by Google bot protection audio[0].addEventListener("error", function() { handleError(0); }); audio[1].addEventListener("error", function() { handleError(1); }); //On audio load error caused by Google bot protection audio[0].addEventListener("staled", function() { handleError(0); }); audio[1].addEventListener("staled", function() { handleError(1); }); }); }
/* * --------------------------------------------------------------------------------------------------------------------- *  Speak with new TTS Chrome API * --------------------------------------------------------------------------------------------------------------------- */ function TTS_Speak(utterance,rp_state) { options = JSON.parse(localStorage.getItem("options")); if(debug) console.log(utterance); if(rp_state) { nowPlaying(); }
state = 'playing'; chrome.tts.speak ( utterance, { voiceName: options.voice, enqueue: Boolean(options.enqueue),    rate: parseFloat(options.rate), pitch: parseFloat(options.pitch), volume: parseFloat(options.volume), onEvent: function(event) { if(debug) console.log('Event '+event.type+' at position '+event.charIndex); if (event.type == 'end') { showReplay(); } } } ); }
/* * --------------------------------------------------------------------------------------------------------------------- *  Function for filtering text from "bad" characters and preppare text for Google Text to Speech API * --------------------------------------------------------------------------------------------------------------------- */ function split(string,maxlength) {    var result = [];    (function(string)    {        var index = string.substring(maxlength).indexOf(" ");        if( index == -1 ) return string ? result.push(string.split(' ').join('+')) : null;        result.push( string.substring(0, index + maxlength+1).trim().split(' ').join('+'));        arguments.callee.call(window, string.substring(index + maxlength+1));    })(string);       return result; }
function beautify(string) {    return string.replace(/([+.,])$/, '').replace(/^([+.,])/, ''); }
function filterText(text) {    var j = 0,    str = [],    tmpstr =[],    maxlength = 90, // Max length of one sentence this is Google's fault :)    badchars = ["+","#","@","-","<",">","\n","!","?",":","&",'"',"  ","。"],    replaces = [" plus "," sharp "," at ","","","","",".",".","."," and "," "," ","."];    for(var i in badchars) // replacing bad chars    {     text = text.split(badchars[i]).join(replaces[i]);    }
   str = text.split(/([.,!?:])/i); // this is where magic happens :) :)    for(var i in str) //join and group sentences    {        if(tmpstr[j] === undefined) {            tmpstr[j] = ''; }        if((tmpstr[j]+str[i]).length < maxlength)        {            tmpstr[j] = tmpstr[j]+str[i].split(' ').join('+');        }        else        {            tmpstr[j] = beautify(tmpstr[j]);                        if(str[i].length < maxlength)            {                j++;                tmpstr[j]=beautify(str[i].split(' ').join('+'));            }            else            {                sstr = split(str[i],maxlength);                for(x in sstr)                {                    j++;                    tmpstr[j] = beautify(sstr[x]);                }            }        }    }    return tmpstr.filter(String); }
/* * --------------------------------------------------------------------------------------------------------------------- *  Tune-In basic TTS engine functions * --------------------------------------------------------------------------------------------------------------------- */ var speakListener = function(utterance, options, sendTtsEvent) {    // sendTtsEvent({'event_type': 'start', 'charIndex': 0}) nowPlaying(); speak(filterText(utterance));    //sendTtsEvent({'event_type': 'end', 'charIndex': utterance.length}) };
var stopListener = function() {  pauseAudio(); };
function log(error) { if(debug) console.log(error); }
function reload() { updateNumber(0); window.location.reload(); }
/* * --------------------------------------------------------------------------------------------------------------------- *  Add listeners and register SpeakIt as TTS engine * --------------------------------------------------------------------------------------------------------------------- */ chrome.ttsEngine.onSpeak.addListener(speakListener); chrome.ttsEngine.onStop.addListener(stopListener);
0 notes
squillowords · 8 years ago
Text
Clearance Codes
I wrote this to get clearance codes for the guild, but it turns out they didn’t need my story. However, I like how it turned out.
Folly paced around the casual lounge. The tv was on low, the voices of the Imperial News Network a low hum against the sound of Folly’s footsteps.
Where was Kebiin? It wasn’t like him to be late. Folly resisted the urge to chew on his nails, a habit he hadn’t done since he had left the Ascendancy. Instead he pulled out a stylus and began to spin it between his fingers.
What if something had happened to the man? This wasn’t ‘just an agent’ he was sending out. This was a friend, a mentor. A friend and mentor who did good work, but a friend and mentor nonetheless.
He perked up when he sensed the man’s presence drawing nearer to the halfway house.
Getting into the Regulator’s hideout was easy. Scrambling the cameras, lifting a guard’s keycard, all a part of The Game. Kebiin had never thought he would have been back on a job. Yet… here he was.
Folly met the man on the taxi pad. Kebiin was a few inches shorter than the young Lord. He was hooded in dark clothes and a faceless mask of black and bronze durasteel. Two, pale lights blinked where eyes should have been. There was a pistol strapped to his thigh, but Folly knew that was more for show. Kebiin’s specialty was cortosis knives.
The agent jumped out of the taxi and poked at his shoulder before noticing the younger man.
“Where were you!” Folly demanded, striding over to the agent. Kebiin blinked at him and tilted his head. Folly didn’t give him a chance to respond and barreled on. “Nar Shadaa isn’t that much of a maze!”
The locked room that held All Things Important was easy enough to enter. Kebiin had been lucky enough to run into a higher ranking officer. Since masked people were all too common around the in the underbelly of Nar Shadaa, the officer hadn’t thought too much of the agent when they bumped shoulders. Kebiin took the blow to the head and the insults, bowing and raising his hands in apology as the man grumbled and turned away.
The agent shook his head in sympathy as he walked away. That officer was going to have a rough day when he realized what he was missing.
“Do you have it?!” Folly asked eagerly. Kebiin blinked at him again before walking around the sith and heading into his halfway house. Folly groaned and followed him.
He had kept all of his resources, the computer spike was still top of the line; untraceable. Slicing in and finding the access codes was a simple matter.
Being thorough, Kebiin pulled multiple clearance codes. Folly’s crowd could decide which one to use. He had to wait for copies to be uploaded to his datastack.
Kebiin had stopped next to the fish tank and pulled out a litmus strip. Folly sighed as he watched the man check the acidity of the water.
“Kebiin!”
The agent pulled the strip out of the water and tilted his head at the color on the paper. The tank needed to be cleaned.
“Kebiin!”
The agent looked up and, with one hand, made a grabbing motion towards the ceiling. ‘How much?’
“How much what?”
Kebiin touched his thumb to his fingers and gestured to his chest. ‘Will you give me?’
Folly wilted. “Kebiiiiiiiiiiiin!”
Kebiin felt the door open before he heard it. He pulled up a random screen to cover up what he was doing. Ooh! Huttball rosters!
“Can I help you?” A voice asked. Kebiin turned around- one glance told him enough. An armored man. No helmet. Scar over an eye. Mercenary probably. The agent shook his head innocently and went back to studying the huttball rosters.
He used to have been called ‘Silver Tongue,’ ‘Spider,’ ‘Doctor,’ ‘Liar.’ Now his lack of voice made all of that more difficult. He would have to work differently to lull the man into a false sense of security. Or lower his guard enough to give an opening to attack.
The mercenary blinked, thrown off by Kebiin’s attitude. He recovered quickly.
“Fixing the huttball teams eh?” The mercenary asked, crossing his arms. Kebiin blinked and dramatically pressed a hand to his chest, as if offended by what the man was insinuating.
Folly sighed in defeat. He knew how stubborn his friend could be. “What do you want?”
‘What are you offering?’
Folly looked around before hitting the agent with his best big-eyed pout. “My love and devotion?”
Kebiin’s shoulders rose and fell in a silent scoff. The faceless mask blinked at Folly impatiently.
‘I already have that.’ He signed.
“Uh… I’ll…. Uh…” Folly looked around the room again. His eyes landed on the fish tank next to the agent. “I’ll clean the tank!”
Kebiin touched his thumbs together and smoothly pushed them out towards Folly. ‘Go on.’
The mercenary was not impressed. If Kebiin could get the man talking…
‘You know, I know someone in one of these teams.’ He signed before gesturing for the mercenary to come over. Kebiin, turned slightly and clicked on a team name. The mercenary, thrown again by being treated as if he were a friend, stepped forward.  He squinted at the names on the computer before turning to eye the agent in disbelief.
Kebiin wasted no time. Moving quickly and with everything he had, he shoved the man away from him. Palms slammed against the mercenary’s chest. The mercenary, not expecting the attack, stumbled backwards. He recovered quickly though, firing a blaster bolt towards the agent.
Kebiin took the hit- better get hit than have the bolt leave a mark somewhere in the room- and dashed forward. He pounced on the mercenary, his weight against his opponent’s chest taking them both to the ground.
They struggled there for a moment until Kebiin was able to send a well-placed jab at the man’s throat, rendering him unconscious. The agent rocked back onto his heels and tilted his head at the man on the ground. Killing him would tell the other Regulators something had gone wrong; that someone else had been here.
Kebiin rose and looked around. This room was secluded. It was out of the way. It was also the perfect place to take a nap and not get noticed. And… with the cameras not working- the perfect time to do it too.
He dragged the man to a corner and arranged his body to make it look as if he had settled down for a sleep. The Regulators were known for strictly enforcing their rules. The repercussions of sleeping on the job from the higher-ups were more than enough revenge for having attacked the agent.
Kebiin went back to work at the computer. 30 seconds left. Got it!
“Uh… and the snail tank? I’ll clean that too.”
‘Go on.’
“Aaaand I will replace all the alcohol?”
Kebiin nodded. ‘Okay. I want Whyren’s Reserve too.’
“What? That will cost me a fortune!”
Kebiin blinked at Folly before shrugging, wincing slightly as he did so.
Folly sighed. “Alright, alright. I’ll see what I can do.”
Kebiin crossed his arms. He had heard that before. That was a fancy way of saying no. Folly sighed at the man in defeat and huffed off to go make the orders from the house droid.
When he came back, Kebiin was nowhere to be found. On the small table sat the tank cleaning supplies for both tanks and a small, black box. Folly eagerly reached for the box and opened it to reveal his datastack.
With a grin, the Lord pocketed the datastack. The tanks would have to wait. He had to check its content and get it to Darth Bismillah.
Folly found who he was looking for at the Yavin Stronghold. He nearly skipped up to the man and skidded to a halt, waving the datastack eagerly under the Darth’s nose.
“Look!” He half shouted. Bis’s eyes widened in surprise before he frowned in irritation. He plucked the datastack from Folly’s hands with the Force.
“And what is this supposed to be?” Bis asked, hovering the object in question before him, eyeing it curiously.
“Your clearance codes... And oddly enough, huttball rosters. But they’re taken from the Regulators. Seems their ties to the hutts are still paying off.”
Bismillah let the datastack drop into his palm and wrapped his fingers around it. A grin spread across his face. Without another word, he turned and walked away, leaving Folly by himself. Folly rocked onto the balls of his feet, bouncing there as he watched Bis walk away.
“Okay then!” He called after the man. “I’ll see you around!”
Folly looked around awkwardly before sighing. He still had work to do.
0 notes
craigbrownphd-blog-blog · 3 years ago
Text
Tumblr media
#ICYMI: Webinar Series -The rise of the Modern DataStack and the Modern Data Quality Platform https://www.datasciencecentral.com/webinar-series-the-rise-of-the-modern-datastack-and-the-modern-data-quality-platform/?utm_source=dlvr.it&utm_medium=tumblr
0 notes
craigbrownphd-blog-blog · 3 years ago
Text
Tumblr media
Webinar Series -The rise of the Modern DataStack and the Modern Data Quality Platform https://www.datasciencecentral.com/webinar-series-the-rise-of-the-modern-datastack-and-the-modern-data-quality-platform/?utm_source=dlvr.it&utm_medium=tumblr
0 notes