This driver supports the Zyfer GPStarplus receiver.
The receiver has a DB15 port on the back which has input TxD and RxD lines for configuration and control, and a separate TxD line for the once-per-second timestamp.
Additionally, there are BNC connectors on the back for things like PPS and IRIG output.


The easiest way to find your perfect bag!
Here at BagCupid our aim is to help bag shoppers find the perfect bag. There is a sea of handbags and purses out there and though there are many websites offering these items for sale there is none like us. There are websites that allow you to filter but none offer the precision of BagCupid. It doesn’t matter if this is your first handbag or your 150th – we understand how hard it is to shop for handbags online sometimes and we want to make this task easier for you. We designed our website so that it is super easy and quick for you to apply the filters that will help you find the best bag. Simply start typing into the search box and you will see options populated right away. Click on the different tags to narrow down the perfect bag for your needs. You can narrow down your choice by brand, color, style, material, size, handles, straps and type.
Notice the simple design of our website? There are no flashing banners and no annoying advertisements and pop-up screens. We are not into distractions – we are into the business of helping you find the right bag. We want you to leave our website with a conviction that you have chosen the right bag and not with frustration after going through handbag listings one after the other only to be more confused than you were in the first place. So we kept our design, simple and straight to the point. It is all about the handbags here.
Not only does our website offer user friendly filtering but we also have a blog that is packed with informative content. The content on our blog can be helpful with choosing the right bag for an event, setting or based on what you intend to have it carry. Our blog also includes written pieces on various designers and the audience they cater to as well as the kind of line that they carry. Our blog is informative and is updated often with the latest and best information on handbags, their design and manufacture along with trends. No fluff is what we guarantee just clean cut informative pieces.
We have it all. We educate you on handbags and provide the shopping marketplace where you can find the ideal handbag for your needs.
BagCupid is the brainchild of Connie Zoltu; a self-professed handbag fanatic. She is a lover of handbag variety and as such knows the struggles of handbag shopping. She knows just how much specifics matter. In her very own words, she describes BagCupid:
“It's like a dating website but rather than finding a soulmate, you find your dream bag.”


{% extends 'global/base.html' %} {% load i18n %} {% block content %}
{% trans "Thank you so much for taking the time to submit your application to organize the Django Girls workshop in your city. We’re now going to review your application and will get back to you shortly." %}
{% trans "In the meantime, if you want to start planning your workshop, here are few things that can help you:" %}


--- layout: default title: Project H - programming R in Haskell id: home ---
The full power of R's extensive standard library at your fingertips, plus virtually all CRAN packages, which work from Haskell just as they would from R.
Optional type annotations let you leverage the full power of Haskell's type system to program R safely. Region-based memory allocation means precise and predictable memory usage without the dangers: Haskell's type system has your back to statically guarantee the absence of use-after-free bugs.
Zero marshalling language interop, for crossing language boundaries extremely efficiently at runtime. Mapping an R function over a million element container from Haskell is just as fast as from R.
Haskell is a statically typed, purely functional programming language with a state-of-the-art native code compiler.
R is an old but effective programming language sporting one of the most comprehensive sets of libraries for statistical analysis.
HaskellR is an umbrella project bringing together a number of packages for statistical analysis and machine learning in Haskell using R's comprehensive library support. Including:


Architect: Petra Gipp Arkitektur ABand In Praise of Shadows AB
Location: Stockholm, Sweden
Collaborators: Petra Gipp, Katarina Lundeberg, Maria Videgård and Fredric Benesch
Client: Solna Kyrkogårdsförvaltning and Svenska Kyrkan
Contractor: Sundvalls Byggnads AB
Project year: 2011
Project area: 670 sqm
Photographs: Åke E:son Lindman
We see a cemetery as a place which is naturally linked to life. To the development of life through time and through the world, something wandering which suddenly one day can end. A demystified relationship to death makes life easier to live.
Our proposal for a service building at the Ulriksdal Cemetery inserts itself in the rich, magnificent nature of the site. Two volumes at an angle, open up to the northwest and are supplemented with an ancillary building. The volume of the workshop reaches up towards the slope where oak trees grow, pointing in the direction of a future chapel. The long concrete facade with its relief effect, stretches out to form a back drop for the cemetery and separates its tranquility from the activity of the courtyard of the service building.
The service building consists of two different volumes in two different materials, concrete and wood, holding each other. In the meeting between the volumes, the circulation occurs in the form of a cast in place concrete staircase which constitutes the nave between workshops, administration and staff.
This is a place for all faiths and for this reason it addresses the passage from life to death from a humanistic perspective rather than one associated with any particular religion. For the people working at the cemetery with the park, the graves, interment, we want the building to have dignity and provide beautiful spaces as well as carefully balanced light and outlooks from the different functions.
The service building is constructed out of truly sustainable materials which will age naturally and beautifully. The concrete stairs and the floors are cast in place and by choice the traces and defects from the casting process have been left visible. The prefabricated concrete elements of the facade show both their faces, the smooth faces outwards and the more coarse faces inwards. Wood facades and interior walls are built out of long boards of fir, treated with a coat of linseed oil on the exterior but untreated inside the building. Passive, natural ventilation and geothermal heating. The green roof is made of sedum while the detailing is zinc. The inner courtyard facade with its recessed doors and the windows of the administration unit, provide a quiet work space as well as the opportunity to see into the administration building.
The building forms an entryway into the park and cemetery.


I live my life with the intention of maintaining balance. My passion for reading is balanced by playing roller derby. My love for work and intellectual pursuits is balanced through dance classes, biking, and hiking. My love for conversation, board games, going to shows, and social events are balanced through cooking, binge listening to podcasts, and meditation. This balance allows me to maintain a happy and healthy lifestyle that can be contagious.
InterestsImage Recognition, Natural Language Processing
Predictive Analysis, Data Modeling, Data Cleansing, Attribute Selection
Predictive Analytics, Targeted Marketing, Descriptive Analytics, Prescriptive Analytics
Machine Vision, Testing, Mapping, Connected Cars


The following is a song snippet that was pregenerated using the Neural Noise system. You can read more about Neural Noise, or listen to the snippet using the controls below. More information about the song:
Checkpoint: {{checkpoint['name']}} ({{checkpoint['nickname']}})
Temperature: {{song['temperature']}}
The code for this project is open source and lives on Github.


|
Simple Graphics Library
0.9.5
SGL API
|
#include <sgl.h>
Classes | |
| struct | MenuItem |
Public Member Functions | |
| PopupMenu () | |
| virtual | ~PopupMenu () |
| virtual void | add_menu_item (const std::string &item, MenuItemFunction func) |
| virtual void | replace_menu_item (const std::string &old_name, const std::string &new_name, MenuItemFunction func) |
| virtual void | remove_menu_item (const std::string &item) |
| virtual void | execute_handler (int n) |
| virtual void | activate () |
Static Protected Member Functions | |
| static void | process_menu_events (int option) |
Protected Attributes | |
| int | index |
| std::vector< MenuItem > | items |
Implements a popup menu. Each popup menu must be associated with a particular window.
| sgl::PopupMenu::PopupMenu | ( | ) |
Intializes an empty popup menu.
|
virtual |
Destroys a popup menu
|
virtual |
Make this popup menu the active popup for its window.
|
virtual |
Specifies which method to call for a given menu item. Clients ordinarily will use the add_menu_item macro so a messy type cast is no necessary.
| item | a string listed for the menu choice |
| func | a method to call when the user selects the given menu item |
|
virtual |
Invokes the proper handler when the user selects an item in a popup menu. Client ordinarily do not call this method directly, nor do they override it.
| n | an index into the table of handlers maintained by this popup menu |
|
staticprotected |
Calls the proper handler for the user's selection
|
virtual |
Removes a menu item and its associated handler. The current menu item name is supplied.
| item | a string listed for the current menu choice |
|
virtual |
Replaces one menu item and its associated handler with another. The current menu item name is supplied along with the new menu item name and the new handler.
| old_name | a string listed for the current menu choice |
| new_name | a string listed for the replacement menu choice |
| func | the replacement handler for this menu item |
|
protected |
The window associated with this popup menu
|
protected |
Collection of menu items


{% extends 'wildlifecompliance/emails/base_email.html' %} {% block content %} Stock has been transferred to this Licence Return. Please Accept or Decline the transfer.
Licence No: {{licence_no}} Return No: {{return_no}}
If you are currently logged into the Wildlife Licensing System, access this Return using the following link:
{% endblock %}


 In times of immediate danger, they will simply send a part of their essence to another plain to become immortal for a short time.
^a${value} Second(s) Recharge
120 112 104 96 88 80 72 64 60 56 53 50
${value} Second Duration
5
${value}% Damage Absorption
100
Activates when Health drops below ${value}%
25
MaxLevel
8
UltimateLevel
12


Stable OxygenOS 10 based on Android 10 rolls out for the OnePlus 6/6T
by Mishaal RahmanUpdate 1 (11/4/19 @ 5:20 PM ET): The update is now rolling out for the OnePlus 6, and we have the download link.
At the OnePlus 7T Pro launch event, OnePlus announced its Android 10 update roadmap for its 2017 and 2018 smartphones. OnePlus said an Android 10-based OxygenOS 10 Open Beta would roll out later that month, and 9 days later, that indeed happened. The company said the stable update would roll out sometime in November, and on the first day of the new month, the stable update is already rolling out.
OnePlus 6 Forums ||| OnePlus 6T Forums
Multiple users located throughout Europe have reported receiving the update tonight on Reddit and the XDA Forums. Most users getting the update report having the OnePlus 6T, but our friends from the Oxygen Updater team can confirm the update is slowly rolling out for the OnePlus 6 as well.
Here’s the changelog:
OxygenOS 10 Changelog
-
System
- Upgraded to Android 10
- Brand new UI design
- Enhanced location permissions for privacy
- New customization feature in Settings allowing you to choose icon shapes to be displayed in the Quick Settings
-
Full-Screen Gestures
- Added inward swipes from the left or right edge of the screen to go back
- Added a bottom navigation bar to allow switching left or right for recent apps
-
Game Space
- New Game Space feature now joins all your favorite games in one place for easier access and better gaming experience
-
Smart display
- Intelligent info based on specific times, locations and events for Ambient Display (Settings – Display – Ambient Display – Smart Display)
-
Message
- Now possible to block spam by keywords for Message (Messages – Spam – Settings – Blocking settings)
Not mentioned in the changelog is the security patch level. The update brings the October 2019 security patches while the previous stable update had the August 2019 security patch level.
So far, the OnePlus 7 and OnePlus 7 Pro have received updates to Android 10, while the OnePlus 7T and 7T Pro launched with the latest version. The update is planned to roll out in Q1 2020 for the OnePlus 7 Pro 5G and Q2 2020 for the OnePlus 5/5T.
Download Links: OxygenOS 10 for the OnePlus 6/6T
You can download the full OTA zip file for each device from the links below.
Full OTA – OnePlus 6 ||| Full OTA – OnePlus 6T
Users in the comments report that flashing this update works on T-Mobile OnePlus 6T units that have been converted to run international software.
Thanks to XDA Senior Member Some_Random_Username from the Oxygen Updater team for the download links!


Class NoResultCommandWrapper
Largely invisible to the consumer used in some code scenarios to treat commands with results and commands without results as being the same by wrapping a command in this decorator that has a NoResult result
Inheritance
System.Object
NoResultCommandWrapper
Inherited Members
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()
System.Object.ReferenceEquals(System.Object, System.Object)
System.Object.ToString()
Namespace: AzureFromTheTrenches.Commanding.Abstractions.Model
Assembly: AzureFromTheTrenches.Commanding.Abstractions.dll
Syntax
public class NoResultCommandWrapper : ICommand<NoResult>, ICommand
Constructors
| Improve this Doc View SourceNoResultCommandWrapper(ICommand)
Constructor
Declaration
public NoResultCommandWrapper(ICommand command)
Parameters
| Type | Name | Description |
|---|---|---|
| ICommand | command | The underlying command with no result |
Properties
| Improve this Doc View SourceCommand
The underlying (resultless) command
Declaration
public ICommand Command { get; }
Property Value
| Type | Description |
|---|---|
| ICommand |


{% for field in profile_form %}
{% for error in field.errors %}
*{{field.label}}: {{ error|escape }}
{% endfor %}
{% endfor %}
{% for error in profile_form.non_field_errors %}
*{{ error|escape }}
{% endfor %}
{% endif %}
{# Form design is borrowed from "http://www.sanwebe.com/2014/08/css-html-forms-designs" #}
{# Form design is borrowed from "http://www.sanwebe.com/2014/08/css-html-forms-designs" #}


| Link | Description |
| https://training.linuxfoundation.org/training/kubernetes-fundamentals/ | Linux foundation kubernetes course (fundamentals will be not enough to pass the exam) |
| https://www.udemy.com/course/certified-kubernetes-administrator-with-practice-tests/ | Udemy course (probably best comparing price and quality. I bought it for 15 $). Highly recomend it. |
| https://linuxacademy.com/course/cloud-native-certified-kubernetes-administrator-cka/ | Linux Academy CKA course |
| https://cloudyuga.guru/courses/cka-online-self-paced | Just another CKA training course |
| https://www.manning.com/books/kubernetes-in-action | Holy Bible of Kubernetes |
| https://azure.microsoft.com/en-us/resources/kubernetes-up-and-running/ | This one you can get for free |
| https://www.katacoda.com/courses/kubernetes | Interactive browser based kubernetes environment good point to start work with K8S. Contains various scenarios |
| Link | Description |
| https://training.linuxfoundation.org/cncf-certification-candidate-resources/ | Main page for official exam resources |
| https://github.com/cncf/curriculum | Official exam curriculum (might be out of date) |
| https://training.linuxfoundation.org/wp-content/uploads/2020/01/Important-Tips-CKA-CKAD-01.28.2020.pdf | Oficial exam tips (might be out of date) |
| https://training.linuxfoundation.org/wp-content/uploads/2020/01/CKA-CKAD-Candidate-Handbook-v1.8.pdf | Official exam candidate handbook (might be out of date) |
| https://www.cncf.io/certification/cka/ | Exam registration |
| Description | |
| source <(kubectl completion bash) | Enable auto completion for kubectl |
| source <(etcdctl completion bash) | Enable auto completion etcdctl |
| source <(kubeadm completion bash) | Enable auto completion for kubeadm |
| export KUBE_EDITOR="nano | Temporary change default editor for kubernetes. When you will run kubectl edit "resource" "resource name" nano text editor will be used insted of vim |
| kubectl api-versions | List api versions |
| kubectl api-resources | Print the supported API resources on the server |
| kubectl explain | Explain kubernetes resources (Might be very handy during resource definitions files creation) |
| kubectl get pods --all-namespaces --no-headers | wc -l | Count pods |
| https://kubernetes.io/ | Home of Kubernetes Docs. It's allowed to use all docs under kubernetes.io domain during the exam |
| https://kubernetes.io/docs/reference/kubectl/cheatsheet | kubectl Cheat Sheet (Must have) |
| https://discuss.kubernetes.io/ | Kubernetes forum might help to find solution for problem |
| https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands | Quick look on to kubectl commands |
| https://kubernetes.io/docs/reference/kubectl/conventions/ | Recommended usage conventions for kubectl |
| https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.17/ | Information about all available resources, operations, and API groups |
| https://github.com/kubernetes/kubernetes | Allowed to use during exam |
| ETCDCTL_API=3 etcdctl --endpoints https://<IP_ADDRESS>:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/healthcheck-client.crt --key /etc/kubernetes/pki/etcd/healthcheck-client.key snapshot save ./snapshot.db | Backup etcd inside when cluster deployed via kubeadm |
| kubectl taint node node01 hardware=slow:NoSchedule | Taint node with key hardware value=slow effect= NoSchedule. Possible over effects NoExecute, PreferNoSchedule |
| kubectl taint node node01 hardware:NoSchedule- | Remove taint from node |
| kubectl taint nodes master01 node-role.kubernetes.io/master:NoSchedule- | Remove default taint from master node |
| kubectl run --generator=run-pod/v1 test-nslookup --image=busybox:1.28 --rm -it | Creates a pod and run interactive shell. Pod will be deleted as soon as you will exit the shell. Perfect for troubleshooting. |
| kubectl run --generator=run-pod/v1 busybox --image=busybox:1.28 --command -- sleep 3600 | Deploy a busybox pod. Busy box is a small container wich contains a lot of different usefull utilities and they might be very useful for internal cluster troubleshooting tasks. |
| kubectl run --generator=run-pod/v1 nginx --image=nginx | Create an NGINX Pod |
| kubectl run --generator=run-pod/v1 nginx --image=nginx --dry-run -o yaml | Generate POD Manifest YAML file (-o yaml). Don't create it(--dry-run) --export for YAML without cluster specific information |
| kubectl run --generator=deployment/v1beta1 nginx --image=nginx | Create a deployment |
| kubectl run --generator=deployment/v1beta1 nginx --image=nginx --dry-run --replicas=4 -o yaml | Generate Deployment YAML file (-o yaml). Don't create it(--dry-run) with 4 Replicas (--replicas=4) |
| kubectl run --generator=deployment/v1beta1 nginx --image=nginx --dry-run --replicas=4 -o yaml > nginx-deployment.yaml | Save it to a file - (If you need to modify or add some other details before actually creating it) |
| kubectl run --generator=job/v1 | Create a job |
| kubectl expose deployment nginx --port=80 --name=my-nginx-svc --type=Loadbalancer | Create a service that uses an external load balancer and points to a 4 pod deployment running nginx. |
| kubectl expose pod redis --port=6379 --name redis-service --dry-run -o yaml | Create a Service named redis-service of type ClusterIP to expose pod redis on port 6379. This will automatically use the pod's labels as selectors |
| kubectl create service clusterip redis --tcp=6379:6379 --dry-run -o yaml | This will not use the pods labels as selectors, instead it will assume selectors as app=redis. You cannot pass in selectors as an option. So it does not work very well if your pod has a different label set. So generate the file and modify the selectors before creating the service) |
| kubectl expose pod nginx --port=80 --name nginx-service --dry-run -o yaml | Create a Service named nginx of type NodePort to expose pod nginx's port 80 on port 30080 on the nodes:This will automatically use the pod's labels as selectors, but you cannot specify the node port. You have to generate a definition file and then add the node port in manually before creating the service with the pod.) |
| kubectl create service nodeport nginx --tcp=80:80 --node-port=30080 --dry-run -o yaml | This will not use the pods labels as selectors |
| kubectl get pods -o="custom-columns=PODS:.metadata.name,Images:.spec.containers[*]" | List pods and images |
| kubectl exec nginx -i -t bash | Open a bash terminal in a pod |
| kubectl describe pods nginx | grep -ie image -ie name | Grep pod name and image name |
| kubectl exec nginx -i -t -c "container name (optional)"-- bash -il | Execute command in the pod container (double dash is required when you want to provide an argument for command which will be executed inside container) |
| kubectl top (node, pod) | Check Performance |
| kubectl set resources deployment nginx -c=nginx --limits=memory=512Mi | Customize resource definition |
| kubectl set resources deployment nginx -c=nginx --limits=cpu=200m | Customize resource definition |
| echo -n ’mypasswd’, then redirect to base64 --decode | echo -n ’mypasswd’, then redirect to base64 --decode |
| kubectl create secret generic db-user-pass –from-file=./username.txt | Generate secret |
| kubectl cp /tmp/my <some-namespace>/<some-pod>:/tmp/server | Copy local file to pod |
| kubectl cp <some-namespace>/<some-pod>:/tmp/server /tmp/my | Copy pod file to local |
| kubectl get events –sort-by=.metadata.creationTimestamp | List Events sorted by timestamp |
| kubectl edit deployment nginx | Opens the object’s manifest in your default editor. After making changes, saving the file, and exiting the editor, the object is updated. |
| kubectl patch svc $svc_name -p ’{"spec": {"type": "LoadBalancer"}}’ |
Change service type to loadbalancer. Patch command is useful for modifying a single property or a limited number of properties of a resource without having to edit its definition in a text editor |
| kubectl scale --current-replicas=2 --replicas=3 deployment/mysql | Quickly scale deployment to 3 pods if current replica count is 2. This could any controller like replicaset (rs) or replication controller (rc) |
| kubectl apply -f nginx.yaml | Modifies the object by applying property values from a full YAML or JSON file. If the object specified in the YAML/JSON doesn’t exist yet, it’s created. The file needs to contain the full definition of the resource (it can’t include only the fields you want to update, as is the case with kubectl patch). |
| kubectl replace -f nginx-deployment-v2.yaml | Replaces the object with a new one from a YAML/JSON file. In contrast to the apply command, this command requires the object to exist; otherwise it prints an error |
| kubectl set image deployment <deployment-name> <container-name>=new_image:img_version --record | Changes the container image defined in a Pod, ReplicationController’s template, Deployment, DaemonSet, Job, or ReplicaSet. For deployment this will initiate a rolling update according the update strategy (RollingUpdate(default) or Recreate). Current example is for deployment. Remember the --record command-line option you used when creating the Deployment as this will set appropriate versions numebers for your deployments. |
| kubectl rollout undo deployment nginx | Rollback the deployment to the previuos version. undo command can also be used while the rollout process is still in progress to essentially abort the rollout |
| kubectl rollout history deployment nginx | View revision history of deployment. Remember the --record command-line option you used when creating the Deployment |
| kubectl rollout undo deployment nginx --to-revision=1 | Rollback to a specfic deployment revision version |
| kubectl rollout pause deployment nginx | Pause the deployment. Usefull for canary releases - when you replace only one or a small number of old pods with new ones. This way only a small number of users will initially hit the new version |
| kubectl rollout resume deployment nginx | Resume paused deployment. |
| kubectl rolling-update nginx-v1 nginx-v2 --image=nginx:v2 | Perform a rolling update for the replica set. Depricated use deployment rollouts instead. |
| kubectl get pod -v 6,7,8,9 | Debugging mode shows what exactly happens with your request. Higher number means higher verbosity |
| Kubectl auth can-i delete pods | Check for allowed actions |
| Kubectl auth can-i delete pods —as dev-user | Check for allowed permission as another user |
| kubectl logs "pod name here" -n kube-system --all-containers=true --tail 20 | Get logs from pod from all container and show only last 20 lines |
| kubectl logs -p -c ruby web-1 | Return logs of previous terminated ruby container logs from pod web-1 |
| kubectl logs -f -c ruby web-1 | Begin streaming the logs of the ruby container in pod web-1 |
| kubectl logs -f -lapp=nginx --all-containers=true | Begin streaming the logs from all containers in pods defined by label app=nginx |
| kubectl logs --since=1h nginx | Show all logs from pod nginx written in the last hour |
| kubectl logs deployment/nginx -c nginx-1 | Return snapshot logs from container nginx-1 of a deployment named nginx |
| kubectl logs job/hello | Return snapshot logs from first container of a job named hello |
| kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}') | Tip how to run kubectl and pass the result to another kubectl |
| kubectl logs --namespace=kube-system $(kubectl get pods --namespace=kube-system -l k8s-app=kube-dns -o name | head -1) -c kubedns | |
| for p in $(kubectl get pods --namespace=kube-system -l k8s-app=kube-dns -o name); do kubectl logs --namespace=kube-system $p; done | Useful loop to retrieve logs from several pods |
| sudo cp /etc/kubernetes/admin.conf $HOME/ sudo chown $(id -u):$(id -g) $HOME/admin.conf export KUBECONFIG=$HOME/admin.conf |
To manage the Kubernetes cluster, the client configuration and certificates are required. This configuration is created when kubeadm initialises the cluster. The command copies the configuration to the users home directory and sets the environment variable for use with the CLI |
| kubectl get cluster-info | Get General info about cluster |
| docker ps -a | List containers |
| docker logs "container id" --details | View the docker container logs with extra details |
| docker inspect "container id" | Return low-level information on Docker objects |
| journalctl -u docker.service (kubelet.service; kube-proxy, kube-apiserver, kube-controller-manager, kube-scheduler) | View system logs for certain components (in case of kubeadm installation kube-proxy, kube-apiserver, kube-controller-manager, kube-scheduler will be deployed as pods) |
| systemctl status kubelet.service | Check the status of kubelet service unit |
| systemctl enable kubelet.service | Enable kubelet service to start automatically |
| systemctl edit kubelet.service | Edit kubelet service (Typically when you editing service it creates drop-in files in /etc/systemd/system/kubelet.service.d and overrided default directory for service config which is in this case /etc/systemd/system/kubelet.service.d ) |
| systemctl daemon-reload |
After changing systemd service file reload the daemon |
| systemctl restart kubelet.service | After changing systemd service file rereloading the daemon restart the service |
| systemctl enable kubelet systemctl start kubelet |
If service is not started |
| systemctl cat kubelet.service | Show the unit file |
| systemctl show kubelet.service | Show all parameters of the service |
| nslookup my.domain.com (might be useful for solving DNS problems ) | https://www.computerhope.com/unix/unslooku.htm |
| iptables (might be useful for network issues troubleshooting) | https://www.booleanworld.com/depth-guide-iptables-linux-firewall |
| curl http://google.com | Hit web link |
| wget -q --show-progress --https-only --timestamping \ "https://storage.googleapis.com/kubernetes-release/release/v1.15.3/bin/linux/amd64/kube-apiserver" \ "https://storage.googleapis.com/kubernetes-release/release/v1.15.3/bin/linux/amd64/kube-controller-manager" \ "https://storage.googleapis.com/kubernetes-release/release/v1.15.3/bin/linux/amd64/kube-scheduler" \ "https://storage.googleapis.com/kubernetes-release/release/v1.15.3/bin/linux/amd64/kubectl" \ "https://storage.googleapis.com/kubernetes-release/release/v1.15.3/bin/linux/amd64/kubelet" \ "https://storage.googleapis.com/kubernetes-release/release/v1.15.3/bin/linux/amd64/kube-proxy" \ |
Download kubernetes binaries (change version number for your desired) |
| chmod +x kubectl kube-apiserver kube-controller-manager kubelet kube-proxy kube-scheduler | Give executable permissions |
| ip address/link/route list/add | Network configuration utility |
| Ps -aux | grep kubelet | Check the kubelet process |
| scp .\config andrej@master01:.\ | Secure copy file over ssh |
| ETCDCTL_API=3 etcdctl --endpoints=https://[<IP_ADDRESS>]:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt \ --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key \ snapshot save /tmp/snapshot-pre-boot.db |
Backup ETCD |
| ETCDCTL_API=3 etcdctl --endpoints=https://[<IP_ADDRESS>]:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt \ --name=master \ --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key \ --data-dir /var/lib/etcd-from-backup \ --initial-cluster=master=https://<IP_ADDRESS>:2380 \ --initial-cluster-token etcd-cluster-1 \ --initial-advertise-peer-urls=https://<IP_ADDRESS>:2380 \ snapshot restore /tmp/snapshot-pre-boot.db |
Restore ETCD |
| Update --data-dir to use new target location --data-dir=/var/lib/etcd-from-backup Update new initial-cluster-token to specify new cluster --initial-cluster-token=etcd-cluster-1 Update volumes and volume mounts to point to new path |
Post restore task in ETCD config file in case of kubeadm based install edit static pod manifest file |
| openssl req -in mycsr.csr -noout -text | Read the certificate signing request |
| openssl x509 -in mycrt.crt --noout -text | Read the certificate (for example check expire date and etc. ) |
| cat andrej.csr | base64 | tr -d '\n' | Prepare csr data to be added to certificate signing request yaml |
| openssl genrsa -out mykey.key 2048 | openssl genrsa -out ca.key 2048 | Generate a key |
| openssl req -x509 -new -nodes -key ca.key -subj "/CN=${MASTER_IP}" -days 10000 -out ca.crt | According to the ca.key generate a ca.crt (use -days to set the certificate effective time): |
| openssl req -new -key mykey.key -out mycsr.csr -subj "/CN=kube-admin/O=system:masters" | Generate a signing request (example) |
| openssl x509 -req -in mycsr.csr -CA ca.crt -CAkey ca.key \ -CAcreateserial -out server.crt -days 10000 |
Generate/Sign certificate |
| kubectl get pv --sort-by=.spec.capacity.storage -o=custom-columns=NAME:.metadata.name,CAPACITY:.spec.capacity.storage > /opt/outputs/pv-and-capacity-sorted.txt | Sort output and use custom columns |
| kubectl get nodes -o jsonpath='{.items[*].status.addresses[?(@.type=="InternalIP")].address}' | Explore the json loop |
| kubectl exec -ti busybox -- nslookup XXX-XX-XX-XX.mynamespace.pod.cluster.local | nslookup pod in the different namespace |
| kubectl exec -ti busybox -- nslookup myservicename.mynamespace.pod.cluster.local | nslookup service in the different namespace |
| Link | Description | |
| https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/high-availability/ | Official kubernetes docs about kubeadm | |
| https://www.katacoda.com/courses/kubernetes/getting-started-with-kubeadm | Quickly prepare your cluster using interactive browser bases environment | |
| Bootstrapping a cluster with kubeadm might be one of the tasks in CKA exam. Here is the step by step guide how to create a 3 node cluster (1 master (<IP_ADDRESS>) and 2 workers (<IP_ADDRESS> and <IP_ADDRESS>)). Assuming that you already have 3 Ubuntu servers installed and they have initial network config in place. | ||
| Action | Description | Useful Link |
| Run on the all three nodes | ||
| swapoff -a | Disable memory swap on all nodes | https://www.tecmint.com/disable-swap-partition-in-centos-ubuntu/ |
| vi /etc/fstab | Edit fstab by removing or commentin entry for swap | https://www.tecmint.com/disable-swap-partition-in-centos-ubuntu/ |
| sudo apt-get update && apt-get install -y apt-transport-https | Install a package that allows using https as well as http in apt repository sources | |
| curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - |
Add Google repository gpg key | |
| sudo bash -c 'cat <<EOF >/etc/apt/sources.list.d/kubernetes.list deb https://apt.kubernetes.io/ kubernetes-xenial main EOF' |
Add the Kubernetes apt repository | |
| sudo apt-get install -y docker.io kubelet kubeadm kubectl or apt-get install kubelet=1.16.0-00 | Install the required packages (you can review available package version with apt-cache policy "package name here" and specify required version: ) | https://kubernetes.io/docs/setup/production-environment/container-runtimes/#docker |
| sudo apt-mark hold docker.io kubelet kubeadm kubectl |
Disable automatic update for packages which are required for Kubernetes to be up and running | |
| systemctl status kubelet.service | Check status of kubelet it will constantly crash until join to the cluster | |
| systemctl status docker.service | Check status of docker service should up and running | |
| systemctl enable kubelet.service | Enable autostart for kubelet service | |
| systemctl enable docker.service | Enable autostart for docker service | |
| sysctl net.bridge.bridge-nf-call-iptables=1 | Set /proc/sys/net/bridge/bridge-nf-call-iptables to 1 to pass bridged IPv4 traffic to iptables’ chains. This is a requirement for some CNI plugins to work | |
| Run only on the master node | ||
| kubeadm -init or kubeadm init --pod-network-cidr=<IP_ADDRESS>/16 | Initialiaze control plane node (Depending on which CNI plugin you will choose it might be required to define a --pod-network-cidr argument) | |
| mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config |
Prepare a kubeconfig file for current user. Create a kube config folder in your home directory. Copy admin.conf file to newly create folder. Change owner and group | |
| kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')" | Deploy a CNI plugin: Flanel=https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml Weave=kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')" Calico=kubectl apply -f https://docs.projectcalico.org/v3.11/manifests/calico.yaml | |
| kubectl get pods --all-namespaces --watch | Wait till all system pods will be up and running | |
| Optional steps, should be executed on the master node by demand | ||
| kubeadm token list | If output generated after the kubeadm init execution on master node was not saved run this command to retrieve the token | |
| kubeadm token create | By default, tokens expire after 24 hours. If you are joining a node to the cluster after the current token has expired, you can create a new token by running the following command on the | |
| openssl x509 -in /etc/kubernetes/pki/ca.crt -pubkey -noout | openssl pkey -pubin -outform DER | openssl dgst -sha256 | Extract ca cert hash | |
| Run on the worker nodes | ||
| kubeadm join --token <token> <control-plane-host>:<control-plane-port> --discovery-token-ca-cert-hash sha256:<hash> | Run the command that was output by kubeadm init. Standard control plane port is 6443 | |
| Run on the master nodes or where you have config file configured | ||
| kubectl get pods --all-namespace --watch | Wait for all system pods will be up and running | |
| kubectl get nodes | Check for status of nodes all should be ready |
| Log Discription | Path |
| Config folder | /etc/kubernetes/ |
| Certificate files | /etc/kubernetes/pki/ |
| Credentials to API server | /etc/kubernetes/kubelet.conf |
| Superuser credentials | /etc/kubernetes/admin.conf |
| kubectl config file | ~/.kube/config |
| Kubernets (kubelet) working dir | /var/lib/kubelet/ |
| Docker working dir | /var/lib/docker/, /var/log/containers/ |
| Etcd working dir | /var/lib/etcd/ |
| Network cni | /etc/cni/net.d/ |
| Log files | /var/log/pods/ |
| log in worker node | /var/log/kubelet.log, /var/log/kube-proxy.log |
| log in master node | kube-apiserver.log, kube-scheduler.log, kube-controller-manager.log |
| Env | /etc/systemd/system/kubelet.service.d/10-kubeadm.conf |
| Env | export KUBECONFIG=/etc/kubernetes/admin.conf |
| Core dns core files | /etc/core/dns or kubectl get configmap coredns -n kube-system |
| Kubernetes manifests when you deploy cluster with kubeadm | /etc/kubernetes/manifests |
| Service account tokens are mounted under this directory inside the pods | /var/run/secrets/kubernetes.io/serviceaccount/token |
| VIM Text Editor | NANO Text Editor | TMUX Terminal Manager | NETSTAT Network statistics | |||||||
| ShortCut | Description | ShortCut | Description | ShortCut | Description | Command | Description | |||
| i | to edit mode | F6 | Search for text | tmux | start new tmux session with default name "0" | netstat -natu | grep 'ESTABLISHED' | Show Established Connection | |||
| v | to view mode | ALT+U | Undo | tmux ls | list sessions | netstat -an | grep 'LISTEN' | Show Connection in Listen Status | |||
| ESC | to exit edit mode | ALT+E | Redo | Ctrl+b d | reattach from session | netstat -anlp | grep 17369 | Show Port Number used by PID | |||
| :w | to save | ALT+6 | Copy | Ctrl+b x | exit | kill session or pane | netstat -s | Show statistics for all protocols | |||
| :q | to exit | CTRL+K | F 9 | Cut | tmux attach-session -t 0 | back to session (here "0" is session name) | netstat -anlp | grep 80 | Show which process using a particular port | |||
| :wq | to save and exit | CTRL+U | F10 | Uncut/Paste | Ctrl+b % | Split current pane horizontally into two panes | netstat -a | more | Show all info (use more for paged view) | |||
| :q! | discard the changes | CTRL+X | Exit Y for save, N for discard | Ctrl+b " | Split current pane vertically into two panes | netstat -nplt | ||||
| y | to copy text | CTRL+W | Search | Ctrl+b arrow move betwee panes | Move between panes | netstat -anp | grep etcd | ||||
| d | to cut text | ALT+A | Set the mark | Ctrl+B and :setw synchronize-panes | Sync Panes | |||||
| x | remove text | |||||||||
| p | to paste | |||||||||
| u | undo | |||||||||
| r | redo | |||||||||
| :s/string n(for next) | Search | |||||||||
| :s/pattern/replace/ | Search/Replace | |||||||||
| :%s/pattern/replace/ | Search/Replace All |


--- layout: post title: Comment Scorer excerpt: Winner Solution permalink: /Comment-Scorer publish: true comments: true images: - url: /images/commentScorer/1CommentScorerDiagram.png ---
Ponder is a platform for sharing your thoughts, or promoting some personal stuff and everything. Not only that it is also a very good place to check to keep yourself with what is happening around the world. But it has a very strict posting policy, and getting credits for good comments are really. You’re someone who has just started to use Ponder as a new user, you want to predict whether your comment is going to receive a good score or not.
Train Having 45000 comment replies and the test set having 30000 rows of comments.Here Task was to build a model that can predict scores of comments present in the test dataset.
| Column Label | Column Description |
|---|---|
| UID | Unique Id |
| Comment | Reply to a parent comment |
| Date | Comment data |
| parent_commnet | The parent comment to which sarcastic comments are made |
| score | Score on the parent_comment |


--- layout: post title: yfrog image yfrogcom83n4fp uploaded by date: '2010-05-16T11:58:01+01:00' tags: [] tumblr_url: http://backlog.robbevan.com/post/603454374/yfrog-image-yfrogcom83n4fp-uploaded-by ---
Yfrog Image : yfrog.com/83n4fp - Uploaded by issaco


Timothy Cuddeback
Unafffiliated
Athletic Trainer at Children's Hospital Colorado.
Master's degree in Kinesiology and Rehabilitation Science Bachelor's degree in Athletic Training Certified Athletic Trainer Certified Strength and Conditioning Specalist
80228
None
None
None
To create fairness in the election process.
Gerrymandering is a necessary task, it needs to be done impartial and accurately to create a fair playing field for the views of our people. Everyone should matter and if it is not done correctly, it can cost some individuals their voice. To create agreement you need to have the pertinent information for making such decisions as drawing district lines. Subjectiveness should be minimized as much as possible.
While it seems that the evaluators of these applicants are looking for a "diverse" population, I want you to consider that "diverse" doesn't just mean ethnic heritage, color, gender, sexual orientation, but also includes diversity in thinking. I come for the Healthcare industry where data and research drive decision making to promote the best outcomes for patients. We do not look at things and say "well we've always done it this way" and continue to do that. Evidence based practice is the guideline for how we operate. I will use my ability to analytically evaluate the statistics, results, and ask questions that have not been asked before to help create fair and even districting. There is no white, hispanic, asian, black, european, antarctican-american, there are only Americans and that's how the country should be viewed, as Americans. We should not hate because of a difference in background or looks, we should celebrate the diversity that it brings, not in just looks, but in the thinking patterns it brings as well.


I am currently a student in Statistics in Computer Science at McGill University and am expected to graduate in 2023. I am passionate about coding and have an interest for machine learning.
Lifeguard and swimming instructor at the city of Brossard. The responsibilities include, planning and teaching swimming classes, promoting safety at the pool, observing and organizing the activities of swimmers and saving swimmers in distress.
Lifeguard and swimming instructor at the city of Longueuil. The responsibilities include, planning and teaching swimming classes, the upkeep of the pool, promoting safety at the pool, observing and organizing the activities of swimmers and saving swimmers in distress.
GPA: 3.93
Personal project that emulates the typing speed website, that gives the user random quotes and shows the user’s speed in wpm using Java and JavaFx.
View ProjectCleaning and slicing New York’s 411 reports dataset and using the data to create and launch a bokeh server that displays a dashboard with line plots about the monthly average response time to 411 calls in New York.
View ProjectCreating a hash table using open-addressing and linear probing that automatically resizes for which I developed JUnit tests to test the code View Project


--- title: Monday Discussion - What Mega Man Game Is Your Favorite? date: 2017-12-11 00:00:00 Z tags: - mega - man - nintendo - capcom layout: post author: Rajiblaze excerpt_separator: "" description: What's your favorite Mega Man game? ---
With all the news surrounding Mega Man, it’s inevitable to not talk about your favorite Mega Man moments. While Mega Man 2 was my first time into the series, Mega Man 3 happens to be my all-time favorite Mega Man. Because of one thing: Top Man. Yes, I said Top Man.  The fact that it actually works on a boss makes it more epic. It didn’t have the most memorable music or any unique gameplay, but hey. Top Man. Can’t beat that. I know Mega Man 3 isn’t everyone's cup of tea, but what your favorite Mega Man game? What about it that sticks to your memory? This include the Mega Man X games as well. Sound out in the comments!


Simple JMX Web console
Bootstrap JMX Web console
Pure JMX Web console
The login is
admin
and the password is
admin
too.


Christian Kirkeby | WIKISEARCH
Random
Enter a search term to get started or click the 'Random' button to get a random article.


It as an BattleGround game in which 100 plyers can play a game at a time in solo mode or duo or squad mode.
Killing a number of enemies without the player dying in between kills. It has access to various assets.
It is a game similar to PUBG but for lower versions of mobile phones. This has lower graphics.
It is an action first-person shooter set in an open world environment which the player can explore freely.
The Legend of Zelda feature a mixture of puzzles, action, adventure/battle gameplay, and exploration.
It focuses on party-based mechanics, scarcity of resources, and removing "abstractions" to increase realism.
Fallout 4 is an action role-playing game set in an open world environment.
GTA Sanandreas is an adventure game played from either a third-person or first-person perspective.
Red Dead Redemption is a Western-themed adventure game played from a third-person perspective.
It is a first-person shooter game, in which players utilize many different operators from the Rainbow team.
Overkill’s The Walking Dead is a first-person shooter with an emphasis on cooperative gameplay.
FIFA 19 is a football simulation video game developed by EA Vancouver , as part of Electronic Arts'.
Cricket 07 is a cricket simulation computer game developed by HB Studios and published by Electronic Arts.
Asphalt 9: Legends is a 2018 racing video game, developed by Gameloft Barcelona and published by Gameloft.
NBA 2K18 is a basketball simulation video game developed by Visual Concepts and published by 2K Sports.


Dear researchers,
It is our pleasure to call for your participation to this unique conference to share your frontier works with other researchers. We are sure that through this conference, you will find many peers to share ideas and discuss future researchs. We also encourage graduate students, both M.Sc. and Ph.D. students, to submit your thesis works to this conference.
The conference organize plenary lectures, invited lectures, and general contributions. We have five symposia in this conference, that are Bio-prospecting, Computer Science, Nanoscience and Chemistry, Physics and Its Applications, and Geo-Maritime.
The submitted papers will be reviewed by at least two international peer reviewers. The accepted papers will be published in the journal and proceedings, i.e. Biological Research Journal (Pagepress), IEEE Xplore digital library, Materials Science Forum, Indonesian Journal of Chemistry, AIP Conference Proceeding, and Indonesian Journal of Geography. These publishing companies are indexed by Scopus. Those who do not wish to have full paper submission, we can accept extended abstract.
Please let your colleagues know about this conference.
7 September 18 September
Full paper submission deadline
1 September–1O October
Notification of acceptance
5 October
Early bird payment deadline
27–28 October
Conference day
Your paper must be strictly formatted using a Camera Ready Copy (CRC) MS Word or LaTeX according to the template provided each symposia. Figures and tables should be embedded and not supplied separately. Paper template for each symposium can be downloaded in the symposia page.
Submission and registration include payment of fees will be absolutely necessary for attending any of the conference events. To ensure that your submission and registration include payment information will be processed quickly and correctly, the organizers request that you submit using ePaper Management.


| Tag | Name | Req'd | Description |
|---|---|---|---|
| 453 | NoPartyIDs | N | Repeating group below should contain unique combinations of PartyID, PartyIDSource, and PartyRole |
| 448 | PartyID | N | Party identifier/code. See PartyIDSource (447) and PartyRole (452). See "Appendix 6-G - Use of <Parties> Component Block" |
| 452 | PartyRole | N | Identifies the type or role of the PartyID (448) specified. |
| PtysSubGrp | N | ||
| 802 | NoPartySubIDs | N | |
| 523 | PartySubID | N | Sub-identifier (e.g. Clearing Account for PartyRole (452)=Clearing Firm, Locate ID # for PartyRole=Locate/Lending Firm, etc). Not required when using PartyID (448), PartyIDSource (447), and PartyRole. |
| 803 | PartySubIDType | N | Type of PartySubID (523) value 4000+ = Reserved and available for bi-laterally agreed upon user defined values |


Methods
Attributes
| [R] | name | |
| [R] | uri |
Public Class methods
[ show source ]
# File vendor/rails/railties/lib/commands/plugin.rb, line 164 164: def self.find(name) 165: name =~ /\// ? new(name) : Repositories.instance.find_plugin(name) 166: end
[ show source ]
# File vendor/rails/railties/lib/commands/plugin.rb, line 159 159: def initialize(uri, name=nil) 160: @uri = uri 161: guess_name(uri) 162: end
Public Instance methods
[ show source ]
# File vendor/rails/railties/lib/commands/plugin.rb, line 176 176: def git_url? 177: @uri =~ /^git:\/\// || @uri =~ /\.git$/ 178: end
[ show source ]
# File vendor/rails/railties/lib/commands/plugin.rb, line 217 217: def info 218: tmp = "#{rails_env.root}/_tmp_about.yml" 219: if svn_url? 220: cmd = "svn export #{@uri} \"#{rails_env.root}/#{tmp}\"" 221: puts cmd if $verbose 222: system(cmd) 223: end 224: open(svn_url? ? tmp : File.join(@uri, 'about.yml')) do |stream| 225: stream.read 226: end rescue "No about.yml found in #{uri}" 227: ensure 228: FileUtils.rm_rf tmp if svn_url? 229: end
[ show source ]
# File vendor/rails/railties/lib/commands/plugin.rb, line 185 185: def install(method=nil, options = {}) 186: method ||= rails_env.best_install_method? 187: if :http == method 188: method = :export if svn_url? 189: method = :git if git_url? 190: end 191: 192: uninstall if installed? and options[:force] 193: 194: unless installed? 195: send("install_using_#{method}", options) 196: run_install_hook 197: else 198: puts "already installed: #{name} (#{uri}). pass --force to reinstall" 199: end 200: end
[ show source ]
# File vendor/rails/railties/lib/commands/plugin.rb, line 180 180: def installed? 181: File.directory?("#{rails_env.root}/vendor/plugins/#{name}") \ 182: or rails_env.externals.detect{ |name, repo| self.uri == repo } 183: end
[ show source ]
# File vendor/rails/railties/lib/commands/plugin.rb, line 172 172: def svn_url? 173: @uri =~ /svn(?:\+ssh)?:\/\/*/ 174: end
[ show source ]
# File vendor/rails/railties/lib/commands/plugin.rb, line 168 168: def to_s 169: "#{@name.ljust(30)}#{@uri}" 170: end
[ show source ]
# File vendor/rails/railties/lib/commands/plugin.rb, line 202 202: def uninstall 203: path = "#{rails_env.root}/vendor/plugins/#{name}" 204: if File.directory?(path) 205: puts "Removing 'vendor/plugins/#{name}'" if $verbose 206: run_uninstall_hook 207: rm_r path 208: else 209: puts "Plugin doesn't exist: #{path}" 210: end 211: # clean up svn:externals 212: externals = rails_env.externals 213: externals.reject!{|n,u| name == n or name == u} 214: rails_env.externals = externals 215: end


The large genomic data sets used by GIGGLE occupy a large amount of disk space. Could we use compression algorithms to reduce disk space utilization without significantly affecting the runtime?
We used the most common library for data compression in C- zlib. We created a wrapper/interface around the zlib functions for improved usability. We applied compression to the data stored in the data file. In addition to the existing data, we stored the uncompressed sizes in the index file. We added a file header/marker for both index and data files. The file header includes information about the compression method, compression level, and an extra flag reserved for future use. Files without headers from previous versions are assumed to be uncompressed and are read accordingly, thus enabling backward compatibility. We used function pointers to dynamically set the compress/uncompress functions, depending on the compression method mentioned in the file header.
| type | time | user | system |
|---|---|---|---|
| uncompressed | 70.49318158458 | 64.95069978 | 5.52916806 |
| fastlz1 | 89.33131506806 | 82.75897032 | 6.56374108 |
| fastlz2 |<PHONE_NUMBER>156 |<PHONE_NUMBER>6 | 20.595867 |
| zlib0 | 88.7408512163 | 78.20686414 | 10.524262 |
| zlib1 |<PHONE_NUMBER>8396 | 99.16664924 | 8.3172525 |
| zlib3 |<PHONE_NUMBER>4952 |<PHONE_NUMBER>4 | 8.88081164 |
| zlib6 |<PHONE_NUMBER>3288 |<PHONE_NUMBER>2 | 7.40855448 |
| zlib9 |<PHONE_NUMBER>358 | 214.986536 | 11.37603618 |
| type | space |
|---|---|
| uncompressed | 1.452596008 |
| fastlz1 | 0.681222584 |
| fastlz2 | 0.68060137 |
| zlib0 | 1.459414745 |
| zlib1 | 0.433347471 |
| zlib3 | 0.428881416 |
| zlib6 | 0.405332483 |
| zlib9 | 0.40376754 |
| command | mean | stddev | median | user | system | min | max |
|---|---|---|---|---|---|---|---|
| uncompressed | 45.5873693 | 3.959420647 | 44.7290814 | 31.80930286 | 13.75768714 | 40.9441094 | 62.0611574 |
| fastlz1 | 59.18466978 | 5.09236337 | 59.78575998 | 37.83761843 | 21.31594118 | 51.78323798 | 74.08010998 |
| fastlz2 | 56.41575026 | 3.620396294 | 55.79629656 | 37.70584 | 18.697718 | 52.23282456 | 77.13510456 |
| zlib0 | 54.34283227 | 3.636371739 | 53.8785227 | 37.09720143 | 17.08244929 | 49.7197372 | 68.0634982 |
| zlib1 | 74.10076984 | 6.043988274 | 71.65701646 | 55.84351846 | 18.24804923 | 67.48732846 | 92.28525846 |
| zlib3 | 73.39287504 | 4.622238952 | 72.43769124 | 53.72295818 | 19.64546818 | 66.57508224 | 83.36368524 |
| zlib6 | 66.19744482 | 2.242995965 | 65.84001782 | 49.64041217 | 16.5452913 | 63.34766232 | 74.41526232 |
| zlib9 | 67.62356376 | 1.623330847 | 67.41949892 | 52.68799767 | 14.9192093 | 65.11356992 | 71.14124392 |
| command | mean | stddev | median | user | system | min | max |
|---|---|---|---|---|---|---|---|
| uncompressed | 9.189936953 | 0.5627173893 | 9.0503129 | 4.956227092 | 4.23508539 | 8.2692079 | 10.6013019 |
| fastlz1 | 12.98639579 | 1.471285836 | 12.47858378 | 4.174342933 | 8.823754489 | 11.38921178 | 19.59861078 |
| fastlz2 | 12.19613769 | 0.5875847746 | 12.03119652 | 3.905453208 | 8.274995 | 11.21100202 | 13.77797102 |
| zlib0 | 11.95358581 | 0.7256513148 | 11.8664233 | 4.200792825 | 7.762784753 | 10.7087693 | 14.7913433 |
| zlib1 | 12.96278894 | 0.9137541321 | 12.78595442 | 5.075546634 | 7.891110634 | 11.84051342 | 17.86654842 |
| zlib3 | 12.6532173 | 0.64123711 | 12.4734273 | 5.266293897 | 7.37788507 | 11.6403703 | 15.2530783 |
| zlib6 | 12.20321933 | 0.5730424908 | 12.02490832 | 5.261854609 | 6.953686435 | 11.33335482 | 14.26628082 |
| zlib9 | 12.62452388 | 0.5751466442 | 12.48667264 | 5.127496946 | 7.492615961 | 11.60951164 | 14.42773764 |
Note: The time duration values are approximate as they are affected by other applications running in the background.
The disk space usage was reduced by 70-72%, but the time taken for the search queries increased by 25-50%. We can conclude that fastlz2 is the best candidate. Compared to the uncompressed version, it reduced the space by around 53%, increased the search times by only 24% and 33% respectively. The indexing time was roughly 2.2 times, which is fine for a one-time task.
roadmap_sort.tar.gz
file using wget https://s3.amazonaws.com/layerlab/giggle/roadmap/roadmap_sort.tar.gz
disk_store.c
file in the GIGGLE repo,
compression_method
(accepted values- 'z'
for zlib or 'f'
for fastlz)compression_level
(accepted values- 0
to 9
for zlib and 1
or 2
for fastlz)giggle
binary using the make
command in the repository. Make sure the variable $GIGGLE_ROOT
is set.compression_method
and compression_level
. For example, here the name is zlib3
for using zlib with level 3. Replace it with other values.
hyperfine '$GIGGLE_ROOT/bin/giggle index -s -f -i "roadmap_sort/*gz" -o zlib3' --export-csv roadmap_sort_comparisons/index/zlib3.csv -M 1
ls -l zlib3/cache* | awk '{s+=$5;}END{print "zlib3,"s;}' >> roadmap_sort_comparisons/space.csv
hyperfine -w 3 '$GIGGLE_ROOT/bin/giggle search -i zlib3 -q GSM1218850_MB135DMMD.peak.q100.bed.gz' --export-csv roadmap_sort_comparisons/search1/zlib3.csv
hyperfine -w 3 '$GIGGLE_ROOT/bin/giggle search -i zlib3 -r 1:1-1000000' --export-csv roadmap_sort_comparisons/search2/zlib3.csv
roadmap_sort_comparisons
directory.After compressing the files for leaves, currently, the file that takes up the most space is the offset index file- offset_index.dat
. It stores a list of a pair of integers x
and y
where x
is the file ID and y
is the line ID in that file. We need the ability to read a particular position in the compressed file. After exploring various ways to implement compression, we concluded that we should implement block impression.
offset_index.dat
filenum
- the number of file_id_offset_pairs
stored in the filewidth
- the width of each file_id_offset_pair
, currently 96 bits (12B)
file_id_offset_pair
stores the two integers mentioned above
file_id
(x
)offset
(y
)file_id_offset_pairs
In the following diagram, Ryan has explained well how block compression could be implemented for offset_index.dat
.
Block Compression- Ryan Layer
I_10
- which is the offset_id
in the offset_index.dat
file. Instead of storing I_10
, we will store two values- the compressed block offset ID and the line offset ID within that block.I_10
/offset_id
, we will seek compressed file to the compressed block offset ID. We will uncompress the whole block and then seek to the line offset ID.offset_index_compressed.dat
filenum
- the number of file_id_offset_pairs
stored in the filewidth
- the width of each file_id_offset_pair
, currently 96 bits (12B)block_size
- the size of each uncompressed block- same for all blockscompressed_offsets
- the offset of each compressed blockcompressed_data
- the actual compressed blocksWe will create a standalone program called block_compression.c
with the following functionality-
offset_index.dat
to offset_index_compressed.dat
offset_index_compressed.dat
to offset_index.dat
offset_id
from offset_index.dat
offset_id
from offset_index_compressed.dat
We need to write unit tests to make sure the output from 3 and 4 are the same.
mmap
usageoffset_data_append_data
function pointer usage instead of fwrite
OFFSET_INDEX_DATA
macro definition


As much as building software is important, it is perhaps moreso to be able to distribute this to users in a binary form. This has a number of caveats, for example:
Bam tries to resolve much of this for you by way of the Publisher
and Installer
packages, in the default repository.
The Publisher package has three main components:
In BAM v1.2.0, the Publisher package was rewritten in order to avoid a lot of duplication that existing in the previous version. In particular, all the runtime dependencies had to be specified both in the build scripts and the publishing scripts.
From BAM v1.2.0, collation only requires the top-most module to be included, and the scripts will walk its build dependency hierarchy to determine all of its runtime dependents to be included.
Additionally, Publisher now has the concept of a layout, for where modules of particular types (e.g. executables, dynamic libraries, plugins etc) reside by default. There are defaults, but the user is allowed to use their own instead.
The example from the bam-qt repository tests is shown below for BAM v1.2.0 scripts. Compare this with the older script below to see the improved semantics and reduced duplication:
sealed class Qt5Test1Runtime :
Publisher.Collation
{
protected override void
Init()
{
base.Init();
this.SetDefaultMacrosAndMappings(EPublishingType.WindowedApplication);
var appAnchor = this.Include<Qt5Application>(C.Cxx.GUIApplication.ExecutableKey);
var qtPlatformPlugin = this.Find<QtCommon.PlatformPlugin>().First();
(qtPlatformPlugin as Publisher.CollatedObject).SetPublishingDirectory("$(0)/platforms", this.PluginDir);
if (this.BuildEnvironment.Platform.Includes(Bam.Core.EPlatform.OSX))
{
var collatedQtFrameworks = this.Find<QtCommon.CommonFramework>();
collatedQtFrameworks.ToList().ForEach(collatedFramework =>
// must be a public patch in order for the stripping mode to inherit the settings
(collatedFramework as Publisher.CollatedObject).PublicPatch((settings, appliedTo) =>
{
var rsyncSettings = settings as Publisher.IRsyncSettings;
rsyncSettings.Exclusions = (collatedFramework.SourceModule as QtCommon.CommonFramework).PublishingExclusions;
}));
this.IncludeFiles(
this.CreateTokenizedString("$(packagedir)/resources/osx/qt.conf"),
this.Macros["macOSAppBundleResourcesDir"],
appAnchor);
}
else if (this.BuildEnvironment.Platform.Includes(Bam.Core.EPlatform.Linux))
{
this.IncludeFiles(
this.CreateTokenizedString("$(packagedir)/resources/linux/qt.conf"),
this.ExecutableDir,
appAnchor);
}
else if (this.BuildEnvironment.Platform.Includes(Bam.Core.EPlatform.Windows))
{
this.IncludeFiles(
this.CreateTokenizedString("$(packagedir)/resources/windows/qt.conf"),
this.ExecutableDir,
appAnchor);
var app = appAnchor.SourceModule as Qt5Application;
if (this.BuildEnvironment.Configuration != EConfiguration.Debug &&
app.Linker is VisualCCommon.LinkerBase)
{
var runtimeLibrary = Bam.Core.Graph.Instance.PackageMetaData<VisualCCommon.IRuntimeLibraryPathMeta>("VisualC");
this.IncludeFiles(runtimeLibrary.CRuntimePaths(app.BitDepth), this.ExecutableDir, appAnchor);
this.IncludeFiles(runtimeLibrary.CxxRuntimePaths(app.BitDepth), this.ExecutableDir, appAnchor);
}
}
else
{
throw new Bam.Core.Exception("Unknown platform");
}
}
}
[Bam.Core.ConfigurationFilter(Bam.Core.EConfiguration.NotDebug)]
sealed class Qt5Test1DebugSymbols :
Publisher.DebugSymbolCollation
{
protected override void
Init()
{
base.Init();
this.CreateSymbolsFrom<Qt5Test1Runtime>();
}
}
[Bam.Core.ConfigurationFilter(Bam.Core.EConfiguration.NotDebug)]
sealed class Qt5Test1Stripped :
Publisher.StrippedBinaryCollation
{
protected override void
Init()
{
base.Init();
this.StripBinariesFrom<Qt5Test1Runtime, Qt5Test1DebugSymbols>();
}
}
product.app/Contents/MacOSX
. All subsequent files collated are then written relative to that main binary, by specifying options on each file. There is no fixed structure imposed by Bam. This allows for files to be placed next to the main binary, or in subdirectories next to it, or even back up and into other folders, such as collating frameworks for macOS application bundles.
An example of a full set of collation, debug symbols and stripped binaries can be seen below, taken from the bam-qt repository tests, where Qt5Application
is the main program (and thus main binary for collation). On macOS, this creates an application bundle. On Windows, in non-debug configurations, the runtime libraries are included.
sealed class Qt5Test1Runtime :
Publisher.Collation
{
protected override void
Init(
Bam.Core.Module parent)
{
base.Init(parent);
var app = this.Include<Qt5Application>(C.ConsoleApplication.Key, EPublishingType.WindowedApplication);
if (this.BuildEnvironment.Platform.Includes(Bam.Core.EPlatform.OSX))
{
var qtPackage = Bam.Core.Graph.Instance.Packages.First(item => item.Name == "Qt");
var qtVersionSplit = qtPackage.Version.Split('.');
var updateInstallName = (System.Convert.ToInt32(qtVersionSplit[1]) < 5); // < Qt5.5 requires install name updates
this.IncludeFramework<Qt.CoreFramework>("../Frameworks", app, updateInstallName: updateInstallName);
this.IncludeFramework<Qt.WidgetsFramework>("../Frameworks", app, updateInstallName: updateInstallName);
this.IncludeFramework<Qt.GuiFramework>("../Frameworks", app, updateInstallName: updateInstallName);
// required by the platform plugin
this.IncludeFramework<Qt.PrintSupportFramework>("../Frameworks", app, updateInstallName: updateInstallName);
#if D_PACKAGE_QT_5_5_1 || D_PACKAGE_QT_5_6_0
this.IncludeFramework<Qt.DBusFramework>("../Frameworks", app, updateInstallName: updateInstallName);
#endif
this.Include<Qt.PlatformPlugin>(C.Plugin.Key, "../Plugins/qtplugins/platforms", app);
this.IncludeFile(this.CreateTokenizedString("$(packagedir)/resources/osx/qt.conf"), "../Resources", app);
}
else
{
this.Include<Qt.Core>(C.DynamicLibrary.Key, ".", app);
this.Include<Qt.Widgets>(C.DynamicLibrary.Key, ".", app);
this.Include<Qt.Gui>(C.DynamicLibrary.Key, ".", app);
this.Include<QtCommon.ICUIN>(C.DynamicLibrary.Key, ".", app);
this.Include<QtCommon.ICUUC>(C.DynamicLibrary.Key, ".", app);
this.Include<QtCommon.ICUDT>(C.DynamicLibrary.Key, ".", app);
this.IncludeFile(this.CreateTokenizedString("$(packagedir)/resources/qt.conf"), ".", app);
var platformPlugin = this.Include<Qt.PlatformPlugin>(C.Plugin.Key, "qtplugins/platforms", app);
if (this.BuildEnvironment.Platform.Includes(Bam.Core.EPlatform.Linux))
{
this.ChangeRPath(platformPlugin, "$ORIGIN/../..");
this.Include<Qt.DBus>(C.DynamicLibrary.Key, ".", app); // for qxcb plugin
#if D_PACKAGE_QT_5_5_1 || D_PACKAGE_QT_5_6_0
this.Include<Qt.XcbQpa>(C.DynamicLibrary.Key, ".", app);
#endif
}
if (this.BuildEnvironment.Platform.Includes(Bam.Core.EPlatform.Windows) &&
this.BuildEnvironment.Configuration != EConfiguration.Debug &&
(app.SourceModule as Qt5Application).Linker is VisualCCommon.LinkerBase)
{
var visualCRuntimeLibrary = Bam.Core.Graph.Instance.PackageMetaData<VisualCCommon.IRuntimeLibraryPathMeta>("VisualC");
foreach (var libpath in visualCRuntimeLibrary.CRuntimePaths((app.SourceModule as C.CModule).BitDepth))
{
this.IncludeFile(libpath, ".", app);
}
foreach (var libpath in visualCRuntimeLibrary.CxxRuntimePaths((app.SourceModule as C.CModule).BitDepth))
{
this.IncludeFile(libpath, ".", app);
}
}
}
}
}
[Bam.Core.ConfigurationFilter(Bam.Core.EConfiguration.NotDebug)]
sealed class Qt5Test1DebugSymbols :
Publisher.DebugSymbolCollation
{
protected override void
Init(
Bam.Core.Module parent)
{
base.Init(parent);
this.CreateSymbolsFrom<Qt5Test1Runtime>();
}
}
[Bam.Core.ConfigurationFilter(Bam.Core.EConfiguration.NotDebug)]
sealed class Qt5Test1Stripped :
Publisher.StrippedBinaryCollation
{
protected override void
Init(
Bam.Core.Module parent)
{
base.Init(parent);
this.StripBinariesFrom<Qt5Test1Runtime, Qt5Test1DebugSymbols>();
}
}
The result of executing these modules is three directories, with almost identical contents, representing a debuggable standalone distribution, all the debug symbols from the binaries, and a stripped standalone distribution.
If a stripped distribution needs to be debugged, the contents of the debug symbol directory can just be copied on top of it, and the stripped binaries will then work in a debugger (assuming source is available on disk). This is a process that can be repeated post-release, assuming that the exact source state can be reconstructed.
Generating an installer from your standalone distributable is one of the last steps in software development before releasing the software to your users. Bam provides a number of mechanisms on each platform to create an installer. Note that installer generation is only available in Native build mode at this time. It is possible to create an installer from any of the Publishing steps, although most likely you will be interested in the stripped collation primarily, and the debug symbols will be useful to be archived.
Installers supported:
All methods take all the files from the collated module (whichever one you chose) and place the contents into the respective installer. A tar ball from the example above, using the stripped binary collation as the source for the installer, would be
sealed class TarBallInstaller :
Installer.TarBall
{
protected override void
Init()
{
base.Init();
this.SourceFolder<Qt5Test1Stripped>(Publisher.StrippedBinaryCollation.Key);
}
}
Existing functionality provides the minimum requirement for generating usable installers. Future versions of Bam will include more configurability.


Core Features
Responsive
lightgallery.js uses CSS-only approach for resizing images and videos. So it will be extremely flexible, and considerably faster than using the JavaScript approach.
Modular
lightgallery.js comes with a few built in modules, such as thumbnails, full screen, zoom, etc. It is easy to create your own modules, as well as detach modules that you don't want to use.
Touch and Drag
lightgallery.js supports touch and swipe navigation on touchscreen devices, as well as mouse drag for desktops. This allows users to navigate between slides by either swipe or mouse drag.
Super customizable
lightgallery.js comes with a numerous number of options, which allow you to customize the plugin very easily. You can easily customize the look and feel of the gallery by updating SASS variables.
Animated thumbnails
You also have the option to enable animated thumbnails from the settings. otherwise normal thumbnail will be used. You can also make thumbnails automatically load for your YouTube or Vimeo videos.
Youtube vimeo support
lightgallery.js video module allow you to create beautiful youtube/vimeo video galleries. It has lots of features such as automatic play/pause videos, thumbnails, posters and more.
20+ Animations
lightgallery.js uses Hardware-Accelerated CSS3 transitions for faster animation performance. This plugin comes with numerous number of beautiful inbuilt animations.
Dynamic mode
lightgallery.js can be instantaneously launched by programmatically enabling the dynamic option and populating by passing array of objects representing the gallery elements.
Zoom & Fullscreen
You can double-click on the image to see its actual size. Zoom-in and zoom-out controls can be used for changing the zoom values of the image. lightgallery.js supports native html full screen mode as well.
HTML5 videos
lightgallery.js supports all types of HTML5 video formats formats, such as MP4, WebM, Ogg, etc. There is smart integration with custom html5 player videojs
Social sharing
lightgallery.js share plugin allows you to share your images/videos to Twitter, Facebook, Pinterest and Google plus with unique url.
Smart preloading
By default lightgallery.js loads only 3 slides at a time to improve performance. Remaining slides are loaded as you navigate to it. It is customizable in settings.
Responsive images
lightgallery.js lets you to load different images for different viewports. It also supports the html5 srcset attribute for displaying high-resolution images.
Browser History
lightgallery.js hash plugin lets you to provide unique url for each gallery images. lightgallery.js will record slide history and allows you to travel to previous slides via browser back/forward buttons.
lightgallery.js is an open source project from Teamwave. Check teamwave file module to see lightgallery.js in action.
About me
My name is Sachin. I'm a UI/UX designer and web developer from Bangalore, India. I’ve helped some ambitious teams get stuff done. Want to work with me, or just want to say hello? Drop me an email at sachi77n@gmail.com.


Jemimah Rodrigues, Shafali Verma advance in women’s T20I Rankings
Dubai: India batters Jemimah Rodrigues and Shafali Verma have made significant progress in the latest ICC women’s T20I player rankings, after playing stellar roles in a stunning series sweep over the West Indies. Rodrigues has moved up three places to fourth position and teenage sensation Verma has gained 57 slots to reach 30th position.
Rodrigues scored 96 runs including a knock of 50 in the last match on Wednesday whereas hard-hitting opener Verma finished as the highest run-getter and player of the series with 158 runs.
Another India batter to advance is Veda Krishnamurthy, who scored 77 runs including a match-winning 57 in the final match to move from 61st to 49th.
There are now three Indian bowlers in the top five as left-arm spinner Radha Yadav has moved up from fifth to second. Deepti Sharma, who took eight wickets in the series, has retained fourth position while Poonam Yadav is fifth. IANS
Also Read: Smriti Mandhana, Rodrigues help India win ODI series against West Indies
Also Watch: MOU signed between Marwari Hospitals and Delhi’s Sir Ganga Ram Hospital in Guwahati


DCAT_Reader
Documentation du Custom Transformer FME
Description
This Custom Transformer is used to read ESRI GeoHub DCAT server. GeoHub DCAT reader is using two server extractions (a primary and a secondary) to extract a complete set of DCAT metadata for each record. Metadata extracted from the primary server extracttion are prefixed wirh DCAT_P whereas the the metadata extracted from the secondary server extraction are prefixed with DCAT_S. In order to join the metadata from the primary and the secondary extraction both extraction must share a common identifier when no common identifier are found the is no secondary metadata with the prfix DCAT_S.
Note: There is no option to read only one record with a specific identifier.
Input Ports
- Input: One feature to start the extraction of all the records from the GeoHub DCAT server.
Output Ports
- Résultats: All the records read from the GeoHub DCAT server.
Parameters
- GEO_HUB_SERVICE: Name of the DCAT servers to use. Choices are:
- Manitoba GeoHub: To read Manitoba GeoHub;
- Saskatchewan GeoHub: To read Sakatchewan GeoHub;
- Custom GeoHub: To enter specific values of primary and secondary url;
- CUSTOM_PRIMARY: Definition of the primary Geo Hub service. Used when the option Custom GeoHub is selected;
- CUSTOM_SECONDARY: Definition of the seconary Geo Hub service. Used when the option Custom GeoHub is selected. It is possible to leave this field empty, in that case no secondary service will be read and less metadata will be extracted.
Documentation du code DCAT_Reader.py
- class DCAT_Reader.ManageHttpCall[source]
Bases:
object
This class enables the call to DCAT GeoHub servers and the creation of FME features with DCAT information.
To extract all the information the DCAT reader must read into a primary and a secondary server. The results from the DCAT servers are stored in the FME Feature attributes (_response_body_P and _response_body_S). For each FME Feaure the result from the DCAT reading is stored in the FME Feature attribute _status_code and the description of the result code in the attribute _status_code_attribute.
- input(feature)[source]
Main routine call be the FME software
Manage the reading of DCAT server for all the records.
- Parameters
feature (FME Feature object) – FME Feature to process
- Return type
None


OUR COMPANIES
OUR ENTREPRENEURS ARE UNAFRAID TO LEARN AT THE EDGE IN SOME OF THE MOST CHALLENGING CORNERS OF THE COUNTRY.
We seek out the world’s most innovative entrepreneurs who share our commitment to standing with the poor and give them the capital and tools to grow and scale their businesses into long-term, sustainable solutions.
OUR SPECIAL THANKS TO...


Please enter your seed phrase below, as well as a password to secure your data and we will atempt to restore your wallet.


TLDR
TLDR stands for "too long, don't read". But it's too short, isn't it?
A question?
The answer is hidden initially


class 1 lab
home
about us
Heyy What Is Your name ?
How Old are You ?
Are you happy or Sad ??
How you rate my site?


1 write to _cmdletList
System.Management.Automation (1)
engine\Modules\ExportModuleMemberCommand.cs (1)
70
_cmdletList
= value;
3 references to _cmdletList
System.Management.Automation (3)
engine\Modules\ExportModuleMemberCommand.cs (3)
65
return
_cmdletList
;
74
if (
_cmdletList
!= null)
76
foreach (string pattern in
_cmdletList
)


Superawesome Loopsequencer
Bassline
Play / Pause
Start
Stop
1.0
HiHats
Play / Pause
Start
Stop
1.0
Bells+HiHats
Play / Pause
Start
Stop
1.0
Congas
Play / Pause
Start
Stop
1.0
Vocals
Play / Pause
Start
Stop
1.0


SpIRL
Home
Search
Getting started
Schedule
GitHub repository
Scientific Programming IRL
1. The Bash Shell
1.1 Introduction
1.2 Introduction
1.3 Bash Basics
1.4 Permissions
1.5 Profiles
2. Version Control in Git
Powered by
Jupyter Book
Toggle Sidebar


For the convenience of reference, the MHD equations discussed above are
summarized here. The time evolution of the four quantities, namely
,
, , and , are governed respectively by the
following four equations:
(19)
(20)
(21)
(22)
Note that only Eq. (19) involves the resistivity . When , the above system is called ideal MHD equations.


Links to htmls files etc To create html links in a wikifile, just do: Link text For example: slask_sorteras.txt in DOCS folder
To create html links in a wikifile, just do: Link text For example: slask_sorteras.txt in DOCS folder
To create html links in a wikifile, just do:
Link text For example: slask_sorteras.txt in DOCS folder
For example: slask_sorteras.txt in DOCS folder
For example:
slask_sorteras.txt in DOCS folder


Julia Kreger
OpenStack Ironic Core Contributor – Developer Advocate @ IBM
<EMAIL_ADDRESS>–<EMAIL_ADDRESS>Twitter: @ashinclouds – TheJulia @ irc.freenode.net
A little about me!
OpenStack Ironic contributor since early 2015 Author of Bifrost, an Ansible/Ironic based toolkit for deploying machines Misspent past lives in data centers with many physical machines Purple is my favorite bike shed color!
What is OpenStack?
"OpenStack is not a virtualization layer. It is an abstraction layer."
- Daniel Sabbah, former CTO @ IBM
Software and tools to build, operate, and leverage clouds.
OpenStack is comprised of pieces:
Nova - Compute
Neutron - Networking
Ironic - BareMetal
Magnum - Containers
Horizon - Web Management Interface
... and many more!
Ironic projects
ironic
ironic-inspector
ironic-python-agent
ironic-ui
bifrost
molteniron
sushy
virtualbmc
What is a Bare Metal Cloud?
Why Bare Metal?
Cloud Infrasucture
Production Like Environments
High Performance Computing
Memory Requirements
Container Hosts
Regulatory or Compliance
So, lets walk through the typical steps!
Unbox the hardware!
Finish base setup, i.e. add parts.
Configure the Management Controller
Connect all of the cables!
Let burn-in... because of failure rates.
???
Profit!
Wait a second... That looks easy!
Each step can have multiple sub-steps!
Larger organizations have specific processes that can vary endlessly!
Non-technical problems and barriers are everywhere!
A few headaches I've encountered...
Architectural mandates
Wait, is eth2 actually cabled correctly?
You shall use our deployment system
Vlan Tags are manditory?
Change! Hah! Only humans can make changes!
Switch Access? NOPE!
Translation: Here be dragons!
A baremetal cloud is not traditional IT.
It is the union of self-service and raw infrastucture.
It can support traditional IT services, but processes and workflows will be different.
"Do not meddle in the affairs of dragons for you are crunchy and taste good with ketchup" -- source unknown
How to get it right?
First identify your needs, not wants.
Any cloud must be treated as it's own island.
Be prepared to walk through everything at least once!
Plan on inconsistencies in your hardware.
Run up to date software!
Run what the community develops. Not what a vendor packages.
Helpful Hints
Ironic is not intended as a public RESTful API.
Networking!
Ironic expects:
An IP network for cleaning
An IP network for for deploying
The agent to be able to reach ironic's API endpoint
A network for the node to live on after deployment
At least 1 Ethernet MAC address must be registered!
Flat Networks
Multi Teanant Networks
Multi Teanant networking requires switch control
Port Groups/LAGs
Available, but a complex subject...
Don't want OpenStack Neutron?
Okay!
Ironic's network interface uses a plugin model.
Ironic's State Machine
You create nodes in "enroll" state
You decide to "manage" them, making them "manageable"
You "provide" them to make them "available"
While moving to "available", nodes go through "cleaning"
You make a node "active" to deploy a guest image.
You "delete" a node to return them to "available"
While moving to "available", nodes go through "cleaning"


Intro to APIs
Emily Chao(elchao2), Berwin Xie(bxie6)
What is an API?
- Application Programming Interface
- Allows developers to integrate already-existing features into their application
- Saves time, energy, allows for cool data analysis, etc.
- Most often provided by companies or open-source communities
Example uses
- Account creation, login, authentication (i.e. Google Login)
- Social media posting capability (i.e. Tweet, Follow, Like)
- Accessing data from different services (i.e. CUMTD, Weather.com)
- Manipulate different data points between applications (i.e. Google Apps Script)
- Incorporating other features (i.e. Google Maps)
Visual Components and Data Request Endpoints
How to gain access to an API
- OAuth tokens
- Register for API key through developer console
- Maybe it's just an open API! Hooray!
Tutorial!
- Let's use JSFiddle
- Tutorial based on CUMTD API
- Challenge: Use the Open Movie Database API to create a search engine for movies
Ethics of using an API
- Maintaining APIs is expensive
- Many companies will rate-limit requests
- For smaller or more open APIs, be aware of server downtime and other developers using the API - don't send too many requests!
- Different cost models - # requests / day for free tier, capacity costs, etc.


--- layout: post-list category: brewing ---
I spent several years actively homebrewing with my friend Andrew. Blogged a reasonable amount about of it and here's the record.


--- layout: post title: Hidden-in-plain-sight cost of @Transactional date: 2009-10-25 09:49:28.000000000 -07:00 categories: [] tags: [] status: publish type: post published: true ---
This week I discovered why @Transactional(readOnly=true) is not cost free.
The whole concept of read only transaction is platform-dependent and confusing to start with.
A read-only transaction with proxies / aspects will still grab a connection and install it in a thread local to implement the readonly transaction. While this fulfils what you said, it often will not be what you want - it leads to connection pool thrashing if you put in onto a 'hot' method.
In the case I saw this week, we had put the annotation on a cache-backed database-free method in 'sympathy' while adding the annotation for a couple of new write-only api methods. This cache method turned out to be called 14 times per page and thrashed the database pool so much that even with pool retries enabled we were getting pool errors and throughput losses.
So, my current thinking is not to annotate read-only transactions and only annotate the top-level transaction entry points, with proxies around all your Daos to ensure you only get one transaction. And never add annotations in sympathy without a good reason other than 'it can't hurt'. Because maybe it will!


Masked Number Generator
Area Code:
Accepts formats 828
Number to Forward Calls:
Accepts formats +12223334444
Create Masked Number
Masked Number
Forwards to


Quick context and overview:
I have a Bachelor’s degree in Mechanical Engineering and over 5 years experience in the aerospace industry. Why do I mention this? Because I believe where you come from and what previous experiences you’ve had, affect how you view the world and how you interact with it. So for me, I come from a technical background but one where there is not a lot of creativity. Most people don’t know this but, for the most part, airplanes and helicopters are old technology (think 1950’s). Creativity and innovation are not the drivers in this industry. The real drivers are reliability and safety, and what can be more reliable than a design that has been shown to have flown around for more than 50 years with 0 casualties? What this means is that manufacturing processes may change and evolve but the designs are pretty much the same from 60 years ago. I can make a whole post dedicated to things that hold back the aerospace industry but that is a different story for a different time.
Moving on, as an Engineer, I have learned to make systems on which I rely to do my job. Most importantly the whole act of engineering is based on breaking down a task into smaller, more digestible steps. And naturally this approach is something I apply to my experience at BLOC.
So, how has my experience at BLOC been? Overall, really good. Now, mind you, at the time of this post, I am only 12% into the program, so things can still sway one way or the other. But, let’s break it down a little more.
I am on the Software Developer track at a pace of 54 weeks (just over a year). If you wish to learn more about their other courses click here.
The software developer track (SDT) at BLOC, at a pace of 54 weeks, suggests that at least 20 hours of work a week are required. I have found that is the bare minimum. I have had weeks where I spent over 40 hours working through it.
As I have made progress through the program I have had to readjust my strategy to be a successful student. I have spoken to my family about my time commitment and how it is going to take time away from other activities and made sure they are ok with that.
Initially, I quantified my available hours in a day and simply compared it to the amount of hours required by the SDT. Not the best approach. You see, I typically get home from work at 5:30 PM, so I simply thought, ‘well, I will work on BLOC from 6 PM to 10 PM on weekdays (4 hours per day) and 5 hours on saturday and 5 hours on sunday, for a total of 30 hours a week, that should do it.’ Well, in reality, after waking up at 4:45 and commuting for 45 mins and putting in an average of 10 hours of engineering work a day at my job, the quality of work that I am able to put into the program is not the best; I feel tired, hungry and the whole experience becomes a little more frustrating. Furthermore, any sort of hurdle that keeps me up past 11 PM (which are not uncommon) directly affects my sleep. While this may not seem like much, when you are facing 54 weeks of it, the strategy needs to be adjusted.
So what do I do now? I get home, say hi to the family, have a quick bite, set my alarm and take an hour long nap. No checking Facebook, turning on the TV or any other distraction. I typically work on the program from 8 PM to 11:30 PM now. I have found that if I take a nap, even if I am only able to put in 2 hours of work a day, the quality of my work is a lot better and I am able to troubleshoot a little better faster.
The most useful thing I have learned from the people at bloc is that you don’t need to know everything, in fact, don’t even try, because you never will, the information is too vast. Rather, the goal should be to “know enough that you can keep moving forward.” Know where things are for future reference but don’t waste time studying and researching details that are not beneficial to the task at hand.


--- layout: default permalink: "/resume" title: "Résumé" ---
You can also view/download this resume as a beautiful .pdf
file.
Indian Institute of Technology Kanpur 2017 -
2021 (expected)
B.Tech., Electrical Engineering
Relevant Coursework: Machine Learning, Data Structures & Algorithms,
Bioinformatics & Computational Biology, Probability & Statistics, Linear Algebra, Digital
Electronics, Complex Variables
NPS International School Guwahati June 2015
- June 2017
All India Senior School Certificate Examination (AISSCE)
Saint Arnold's School Jan 2010
- June 2015
Madhyamik Pariksha (TBSE)
Computer Vision, Deep Learning, Natural Language Processing, Computational Biology
SCHOLASTIC ACHIEVEMENTSDr. B.R Ambedkar Merit Award 2015
EXPERIENCE
Parallel Computing Lab May
2019 - Dec 2019
Undergraduate Researcher · Advisor: Prof. Preeti Malakar
· Studied the Weather Research Forecast Model (WRF) for weather simulation and attempted
to visualize it
· Refactored VisIt source code to efficiently visualize the WRF output data. VisIt is a
popular software for visualizing weather data, developed by the Lawrence Livermore National
Laboratory, USA
Laboratory of Neural Systems Dec
2019
Software Developer
· Wrote scripts to suggest similar posts on treadwill.org, a platform to help people with
anxiety, depression
· Used tf-idf and Support Vector Machine (SVM) classifier to suggest similar posts based
on content and title
Galaxy Puzzle Hunt 2020 Feb
2020
Independent Project
· Wrote & self-hosted the first online Puzzle Hunt during the annual cultural competition
Galaxy 2020
· More than 100 students from 5 different undergraduate hostels stayed up all night
solving the puzzles
· Used Flask as the framework, PostgreSQL for the database, and self-hosted using Nginx
on Ubuntu 18.04
Machine Learning for Lattice Generation for Physics Jul 2019 - Nov 2019
EE392A: Undergraduate Project · Advisor: Prof. Vipul Arora
· Generated new lattices using Convolutional Neural Nets that corresponded to the
thermodynamic trends as observed in lattices generated using standard Monte Carlo simulation at
lower temperatures
· Generated the train and test datasets & used PyTorch extensively for implementing the
neural nets
Frameworks: PyTorch, TensorFlow, NumPy, SciPy, Flask
COMMUNITY SERVICE & LEADERSHIP


Welcome!
json-everything
is your one-stop shop for all things JSON, powered by .Net's very own JSON models and serializer in the System.Text.Json
namespace.
The libraries contained here are built for speed and designed for usability.
The Libraries
Currently there are seven libraries output by this project:
Json.More.Net
Json.More
JsonPointer.Net provides an implementation of JSON Pointer (RFC 6901) and a variant called Relative JSON Pointer, which is an important component in JSON HyperSchema. NOTE Relative JSON Pointer requires the ability to navigate up toward the root of the JSON structure, which is not supported yet. While this library can model and validate relative pointers, it cannot evaluate them until this functionality is available. JsonSchema
NOTE The remaining optional tests involve ECMA Regular Expressions, big-num support, and some string formats. Builds on top of JsonSchema
Provides an implementation of a vocabulary that defines a way to access instance and external data, a long-sought feature of JSON Schema. Provides an implementation of a vocabulary that defines a new keyword to validate item uniqueness by idenitifying specific data points within the item. JsonPath
JsonPatch
JsonLogic is a .Net implementation of the JsonLogic concept by Jeremy Wadhams.System.Text.Json
but isn't. These include simple value conversion and equality comparisons involving their object model.JsonPointer
JsonSchema
JsonSchema.Net.Generation
JsonSchema.Net.Data
JsonSchema.Net.UniqueKeys
JsonPath
JsonPatch
JsonLogic