Delete a live stream.
Insert a YouTube live stream.
list(part, onBehalfOf=None, pageToken=None, maxResults=None, mine=None, id=None)
Browse the YouTube live stream collection.
list_next(previous_request, previous_response)
Retrieves the next page of results.
 Args: id: string, The id parameter specifies the YouTube live stream ID for the resource that is being deleted. (required)
insert(part, body)
Insert a YouTube live stream. Args: part: string, Live stream parts to include in the returned response. Valid values are: id, snippet, cdn, status. (required) body: object, The request body. (required) The object takes the form of: { # A live stream describes a live ingestion point. "status": { # Brief description of the live stream status. # Status of the live stream. "streamStatus": "A String", # The status of the stream. }, "kind": "youtube#liveStream", # The type of this API resource. "cdn": { # Brief description of the live stream cdn settings. # Cdn settings of the live stream. "ingestionType": "A String", # The live stream ingestion type. Allowed values: rtmp, http, multicast. "ingestionInfo": { # Brief description of the live stream cdn settings. # Encapsulates information for ingesting an RTMP or an HTTP stream. "backupIngestionAddress": "A String", # The backup address of the inbound data. "streamName": "A String", # Ingestion stream name. "ingestionAddress": "A String", # The address of the inbound data. }, "multicastIngestionInfo": { # Brief description of the live stream cdn settings. # Encapsulates information for ingesting a multicast stream. "multicastAddress": "A String", # The IP address of the multicast data. }, "format": "A String", # The format of the inbound data. Allowed values: 240p, 360p, 480p, 720p, 1080p, webm_360p, multicast_qcif, multicast_240p, multicast_360p, multicast_480p, multicast_720p, multicast_1080p. }, "snippet": { # Basic details about a live stream, including title and description. # Basic details about the live stream. "channelId": "A String", # Channel publishing the live stream. "description": "A String", # Description of the live stream. "publishedAt": "A String", # Date and time the live stream was published at. "title": "A String", # Title of the live stream. }, "etag": "A String", # The eTag of the stream. "id": "A String", # The unique id of the stream. } Returns: An object of the form: { # A live stream describes a live ingestion point. "status": { # Brief description of the live stream status. # Status of the live stream. "streamStatus": "A String", # The status of the stream. }, "kind": "youtube#liveStream", # The type of this API resource. "cdn": { # Brief description of the live stream cdn settings. # Cdn settings of the live stream. "ingestionType": "A String", # The live stream ingestion type. Allowed values: rtmp, http, multicast. "ingestionInfo": { # Brief description of the live stream cdn settings. # Encapsulates information for ingesting an RTMP or an HTTP stream. "backupIngestionAddress": "A String", # The backup address of the inbound data. "streamName": "A String", # Ingestion stream name. "ingestionAddress": "A String", # The address of the inbound data. }, "multicastIngestionInfo": { # Brief description of the live stream cdn settings. # Encapsulates information for ingesting a multicast stream. "multicastAddress": "A String", # The IP address of the multicast data. }, "format": "A String", # The format of the inbound data. Allowed values: 240p, 360p, 480p, 720p, 1080p, webm_360p, multicast_qcif, multicast_240p, multicast_360p, multicast_480p, multicast_720p, multicast_1080p. }, "snippet": { # Basic details about a live stream, including title and description. # Basic details about the live stream. "channelId": "A String", # Channel publishing the live stream. "description": "A String", # Description of the live stream. "publishedAt": "A String", # Date and time the live stream was published at. "title": "A String", # Title of the live stream. }, "etag": "A String", # The eTag of the stream. "id": "A String", # The unique id of the stream. }
list(part, onBehalfOf=None, pageToken=None, maxResults=None, mine=None, id=None)
Browse the YouTube live stream collection. Args: part: string, Live stream parts to include in the returned response. Valid values are: id, snippet, cdn, status. (required) onBehalfOf: string, ID of the Google+ Page for the channel that the request is to be on behalf of pageToken: string, Token for the page selection. maxResults: integer, Maximum number of results to return mine: boolean, Filter to only live streams owned by authenticated user. id: string, IDs of the live streams to be returned. Returns: An object of the form: { # List of live streams. "nextPageToken": "A String", # The token that can be used as the value of the {@code pageInfo} parameter to retrieve the next page in the result set. "kind": "youtube#liveStreamList", # The type of this API resource. "items": [ # A list of live streams that match the request criteria. { # A live stream describes a live ingestion point. "status": { # Brief description of the live stream status. # Status of the live stream. "streamStatus": "A String", # The status of the stream. }, "kind": "youtube#liveStream", # The type of this API resource. "cdn": { # Brief description of the live stream cdn settings. # Cdn settings of the live stream. "ingestionType": "A String", # The live stream ingestion type. Allowed values: rtmp, http, multicast. "ingestionInfo": { # Brief description of the live stream cdn settings. # Encapsulates information for ingesting an RTMP or an HTTP stream. "backupIngestionAddress": "A String", # The backup address of the inbound data. "streamName": "A String", # Ingestion stream name. "ingestionAddress": "A String", # The address of the inbound data. }, "multicastIngestionInfo": { # Brief description of the live stream cdn settings. # Encapsulates information for ingesting a multicast stream. "multicastAddress": "A String", # The IP address of the multicast data. }, "format": "A String", # The format of the inbound data. Allowed values: 240p, 360p, 480p, 720p, 1080p, webm_360p, multicast_qcif, multicast_240p, multicast_360p, multicast_480p, multicast_720p, multicast_1080p. }, "snippet": { # Basic details about a live stream, including title and description. # Basic details about the live stream. "channelId": "A String", # Channel publishing the live stream. "description": "A String", # Description of the live stream. "publishedAt": "A String", # Date and time the live stream was published at. "title": "A String", # Title of the live stream. }, "etag": "A String", # The eTag of the stream. "id": "A String", # The unique id of the stream. }, ], "etag": "A String", # The eTag of the chart. "prevPageToken": "A String", # The token that can be used as the value of the {@code pageInfo} parameter to retrieve the previous page in the result set. "pageInfo": { # Paging details for lists of resources, including total number of items available and number of resources returned in a single page. # The {@code pageInfo} object encapsulates paging information for the result set. "totalResults": 42, # The total number of results in the result set. "resultsPerPage": 42, # The number of results included in the API response. }, }
list_next(previous_request, previous_response)
Retrieves the next page of results. Args: previous_request: The request for the previous page. (required) previous_response: The response from the request for the previous page. (required) Returns: A request object that you can call 'execute()' on to request the next page. Returns None if there are no more items in the collection.
update(part=None, body)
Update a YouTube live stream. Args: part: string, The part parameter serves two purposes in this operation. It identifies the properties that the write operation will set as well as the properties that the API response will include. The part names that you can include in the parameter value are id, snippet, cdn, status. (required) body: object, The request body. (required) The object takes the form of: { # A live stream describes a live ingestion point. "status": { # Brief description of the live stream status. # Status of the live stream. "streamStatus": "A String", # The status of the stream. }, "kind": "youtube#liveStream", # The type of this API resource. "cdn": { # Brief description of the live stream cdn settings. # Cdn settings of the live stream. "ingestionType": "A String", # The live stream ingestion type. Allowed values: rtmp, http, multicast. "ingestionInfo": { # Brief description of the live stream cdn settings. # Encapsulates information for ingesting an RTMP or an HTTP stream. "backupIngestionAddress": "A String", # The backup address of the inbound data. "streamName": "A String", # Ingestion stream name. "ingestionAddress": "A String", # The address of the inbound data. }, "multicastIngestionInfo": { # Brief description of the live stream cdn settings. # Encapsulates information for ingesting a multicast stream. "multicastAddress": "A String", # The IP address of the multicast data. }, "format": "A String", # The format of the inbound data. Allowed values: 240p, 360p, 480p, 720p, 1080p, webm_360p, multicast_qcif, multicast_240p, multicast_360p, multicast_480p, multicast_720p, multicast_1080p. }, "snippet": { # Basic details about a live stream, including title and description. # Basic details about the live stream. "channelId": "A String", # Channel publishing the live stream. "description": "A String", # Description of the live stream. "publishedAt": "A String", # Date and time the live stream was published at. "title": "A String", # Title of the live stream. }, "etag": "A String", # The eTag of the stream. "id": "A String", # The unique id of the stream. } Returns: An object of the form: { # A live stream describes a live ingestion point. "status": { # Brief description of the live stream status. # Status of the live stream. "streamStatus": "A String", # The status of the stream. }, "kind": "youtube#liveStream", # The type of this API resource. "cdn": { # Brief description of the live stream cdn settings. # Cdn settings of the live stream. "ingestionType": "A String", # The live stream ingestion type. Allowed values: rtmp, http, multicast. "ingestionInfo": { # Brief description of the live stream cdn settings. # Encapsulates information for ingesting an RTMP or an HTTP stream. "backupIngestionAddress": "A String", # The backup address of the inbound data. "streamName": "A String", # Ingestion stream name. "ingestionAddress": "A String", # The address of the inbound data. }, "multicastIngestionInfo": { # Brief description of the live stream cdn settings. # Encapsulates information for ingesting a multicast stream. "multicastAddress": "A String", # The IP address of the multicast data. }, "format": "A String", # The format of the inbound data. Allowed values: 240p, 360p, 480p, 720p, 1080p, webm_360p, multicast_qcif, multicast_240p, multicast_360p, multicast_480p, multicast_720p, multicast_1080p. }, "snippet": { # Basic details about a live stream, including title and description. # Basic details about the live stream. "channelId": "A String", # Channel publishing the live stream. "description": "A String", # Description of the live stream. "publishedAt": "A String", # Date and time the live stream was published at. "title": "A String", # Title of the live stream. }, "etag": "A String", # The eTag of the stream. "id": "A String", # The unique id of the stream. }


Amazon S3 Signature Tester
This is a tool to help figure out why Amazon S3 is responding with InvalidSecurity error messages. It takes two parameters:
- a hex-encoded canonical string, and
- an AWS Secret Access Key.
The hex-encoded canonical string is returned by Amazon S3 in the error document and represents what the server thought you should have used as your canonical string.
Important Security Note: Amazon has always told its AWS customers to never share their AWS Secret Access Key with anyone, especially never type it into an html text field anywhere. There are two secure options here:
- Configure your program to use a fake secret access key (any random string will work), type the same fake secret access key into this form, then compare the results produced by your program and this tool.
- Download this document to your local machine, check the source to ensure that it isn't doing anything evil like mailing your keys to attackers and then run the script from your machine.
When you fill out these two fields and click "Get Signature", the script will respond with three values:
- The first is the decoded canonical string as it should be in your program. Note that we've used "\n" to represent newlines, just as you probably will in your program. Make sure that you are really using newlines in your program, as opposed to a literal '\' followed by a 'n'. In most languages this is done by wrapping the string in double quotes instead of single quotes. You should check that the canonical string in your program matches exactly, as extra spaces or newlines will screw things up.
- The signature that should be used for standard REST authentication and SOAP authentication.
- The urlencoded version of the signature, which is used for REST query string authentication.
If your canonical string matches, but your signature does not, then there is something wrong in the way that you compute the hmac-sha1 hash. Please see the readme file for further instruction.


Encodes text into bytes and decodes bytes into text. Supports ASCII, ISO-8859-1, UTF8, UTF16, and UTF32 and endian/BOM variations.
Enum list of available encodings. Endian and BOM variations are passed in as separate parameters in places where these are used.
| Name | Description |
|---|---|
| UNKNOWN | Encoding is unknown. Used when decoding, but not for encoding. |
| ASCII | The ASCII format (single-byte encoding with 7-bit values) |
| ISO_8859_1 | The ISO-8859-1 encoding (single-byte encoding with 8-bit values) |
| UTF-8 | The UTF-8 format. (variable-length encoding format. Characters are 1-4 bytes. Generally considered standard. |
| UTF-16 | The UTF-16 format. (2-byte format with surrogate pairs) |
| UTF-32 | The UTF-32 format. (4-byte format, each 4-bit integer is the Unicode code point) |
Converts a list of bytes into a string.
| Name | Type | Optional | Description |
|---|---|---|---|
| bytes | list of integers | A list of byte values from 0-255 |
|
| encoding | TextEncoding.TextFormat | Optional | An encoding to decode the bytes. If not specified, auto-detection will be attempted. |
| Type | Description |
|---|---|
| string | The string of the decoded bytes. |
Converts a string into a byte list.
| Name | Type | Optional | Description |
|---|---|---|---|
| value | string | A string to encode into bytes. |
|
| encoding | TextEncoding.TextFormat | The encoding to use for the conversion. |
|
| includeBom | boolean | Optional | Whether or not to include a BOM at the beginning of the byte list. Ignored if the format does not support a BOM. Default value is false when not specified. |
| Type | Description |
|---|---|
| list of integers | A list of byte values from 0 to 255. |
Thrown when there is a problem performing a conversion.


Back Step X of Y
Why are you late with your appeal?
Enter the reasons why you are late appealing to the tribunal. The judge will consider your case. Your appeal fee will not be refunded if your reasons are not accepted.
Help with late appeals
You must provide reasonable grounds for submitting your appeal late. These are usually unforeseen circumstances or events beyond your control which meant you weren't able to meet the appeal deadlines.


Student commits suicide; parents demand action against teacher
by Special CorrespondentA plus one student was found dead in her house here on Sunday.
Police said that the girl identified as Maria Iswarya, 16, daughter of Anthony Karunakaran and Selvi lived in Arockiapuram.
 So, she took the extreme decision to end herself.
The school authorities maintained that the student was absent for two days and the teacher concerned questioned the girl about this, a police officer said after preliminary inquiry.
However, the parents and relatives of Maria Iswarya said that as her grandmother had passed away, she had to take leave.
Under such circumstances, without ascertaining the facts, the manner in which the teacher handled the student, resulted in mental agony.
When the parents were away, Maria Iswarya allegedly hanged herself to death in her house.
Police investigations were on. Meanwhile, for a brief period, the relatives demanded the arrest of the teacher and the school authorities.
Assistance for overcoming suicidal thoughts is available on the State’s health helpline 104 and Sneha’s suicide prevention helpline<PHONE_NUMBER>0.


My Name is Rosemary Litunya.
I am a 3rd-year engineering student.
I am based in Nairobi, Kenya.
2015-2020:Bachelor of science,Electrical and Electronics Engineering, Jomo Kenyatta University Of Agriculture And Technology.
2016:Visual Basics.NET,Technobrain Kenya.
2011-2013:Secondary education, Pangani Girls School.
2018:Attachee at Kenya Electricity Generating Company.
2018: Coach at Technovation Challenge, Safaricom Women In Technology.
2017:Judge at First LEGO League.
2017:Attachee at Kenya Pipeline Company.
The Jomo Kenyatta University of Agriculture and Technology Tech Expo
Technovation Challenge 2018
I have been able to learn the following technologies and programming languages:


Ooops! We couldn't find that.
This is the only page with content so try that for a starter:
https://casino-files.firebaseapp.com/


Featured Story
News companies post headline about creating new websites with powerful UI kits
When creating and developing startups, using a UI kit to bootstrap your companies website can be an extremely efficient way to save time, money, and runway.
Read moreTop Stories
Is the Bootstrap framework the best way to build a mobile responsive website?
Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis. Fusce condimentum nunc ac nisi vulputate fringilla. Donec lacinia congue felis in faucibus.
Read moreIs virtual reality the new UI? Exploring the use of virtual reality and 3D user interfaces for everyday products
Lorem ipsum dolor sit amet consectetur adipisicing elit. Incidunt repellat possimus delectus odit vero! Accusantium, omnis! Amet reiciendis ex numquam. Minus corporis, tempore facere placeat repellat ipsum eaque similique neque.
Read moreHow cats can improve your workflow productivity
Quasi error voluptates, commodi enim voluptate, quisquam vitae temporibus asperiores velit vero aperiam culpa iste eius autem praesentium ducimus similique iusto dolorum.
Read moreOpinion
Tech
Newest tech from 2020 that can improve our quality of life
New technology is always improving the way we live. This year, we've made some major advancements.
Robotics and the future of industry
Machining and tooling systems are improving everday with the help of modern robotics.
Artificial intelligence - should we be worried?
Ever since James Cameron's blockbuster, the discussion about whether AI is safe has been on our minds.
More from TechBusiness
Cottage industries and the passion economy
An old turn of phase states that if you do what you love, you won't work a day in your life. In today's economy, some are pushing that concept to the limit.
Everybody love pizza!
Well, not everybody, but pizza companies are making major moves towards global expansion.
Tax season is here, and you can file for free
Before you go and pay to get your taxes filed, take a look at some of these free options!
More from BusinessHealth
The carnivore diet, what the science says...
It's like having a meat lover's pizza without the bread, cheese, and sauce - but is it healthy?
High intensity workouts and their effect on blood pressure
Working out with more intensity for less time, is it worth the added exhaustion?
An annual review of pathology and disease
This year's statistics are in, and the numbers have a lot to say.
More from HealthGet the latest news
Stay in the loop with the latest stories and breaking headlines!


{% extends "base.html" %} {% block title %}Verification Success{% endblock %} {% block content %}
You've successfully verified your account! Click the link below login to the control panel.


Backend for Open Source Android and iOS Messenger
Estimated reading time: 6 minutes- 1: Introduction
- 2: Android App
- 3: iOS App
- 4: Customizing
- 5: Hosting APIs
- 6: On-Premise Deployment
- 7: Conclusion
Previously, you have used the backend which is already hosted by Mesibo so that you can quickly play with the apps. In this and the next part, we will learn about hosting the entire backend on your infrastructure.
There are two types of backends you may host:
- Backend APIs for administrative tasks. You apps communicate with your backend API for administrative functions like login, contact synchronization, getting profile and group information, etc.
- Real-time Mesibo server which handles real-time messaging, voice and video calls.
In this part, we will describe how to host backend API on your infrastructure. You apps communicate with your backend API for administrative functions like login. For example, when a new user signs-up up with your services, your app will communicate with your backend API for the login and verification. Your backend verifies the new sign-in (say, using username/password, or OTP, etc.). If successful, it saves the user in a database and then registers this user with Mesibo. Mesibo returns a token for this use which you can give it to your app so that your app can communicate in real-time.
Refer, Getting Started guide for for more details.
Prerequisites
Before we dive into setting up the backend for the Messenger apps, please ensure that the following servers are running.
-
A web server with HTTPS and PHP support. Depending on the web server (apache / h2o/ Lighttpd/ Nginx) you are using, the setup varies. In the subsequent examples, we will assume that your hostname is
example.com
and the backend code which you will download soon is accessible via URLhttps://example.com/api.php
-
MySQL server
-
Mesibo API Key and the App token. Refer to First Mesibo App tutorial to learn about how to get API key and App token.
We will also need Facebook Account Kit and Google Maps keys which we registered in the previous part.
Downloading the Backend Source Code
The latest code for the backend is always updated and pushed on messenger-app-backend repository.
There are multiple ways of “downloading” code from GitHub.
Clone the Repository (Recommended)
If you have git installed, this is a recommended approach as you can quickly sync and stay up to date with the latest version. This is also a preferred way of downloading the code if you decide to contribute to the project.
To download, open a terminal and issue following commands:
$ git clone https://github.com/mesibo/messenger-app-backend.git
Download the code as a zip file
You can also download the full backend source code as a zip file. Although simple, the downside of this approach is that you will have to download the full source code every time it is updated on the repository.
Click on the Download
button to start downloading.
Once the download completes, unzip into a folder.
Stay Up-to-date
Whatever approach you take to download the code, it is important to stay up-to-date with the latest changes, new features, fixes etc. Ensure to Star(*) the project on GitHub to get notified whenever the source code is updated.
Setting up the Database
You will need to set up a database so that backend can store various information:
- Users phone number and login token
- Groups, group members, and group admins
- Users contacts for contact synchronizations.
- Google and Apple push notification tokens
The backend uses MySQL as the database. We will not go into details of setting up MySQL server; there are plenty of tutorials on the web if you are not familiar. Once you’ve set up the MySQL server, create a database and the credentials. These credential will be needed by the backend code to access the database.
The next step is to create the database schema using the supplied SQL file mysql-schema.sql
. Run following to create the database schema for the backend.
$ mysql -h <host> -u <username> -p <password> <dbname> < mysql-schema.sql
Push Notifications
The last set of information you need is to enable push notification for Android and iOS. You will need the following credentials:
- Google FCM/GCM Key for Android Push notification.
- Apple VoIP Certificate and passphrase.
Refer to Google FCM and Apple push notification document to get above credentials. Once you get them, you need to configure Push Notification credentials in Mesibo Console by clicking on your App and then in Push Notifications
tab.
Configuring the Backend
We now have all the information to configure and go live with backend on your own servers.
Open config.php
in the backend code and enter all the information we have obtained above, namely:
- MySQL host, database name, username, and password
- Facebook Account Kit AppID, and Secret
- Google Maps key
- Mesibo API Key, and App Token
You will also need to set files_path
and files_tn_path
to valid paths on your server where backend will store the profile pictures.
That’s it! We are now ready to test the backend!
Testing the backend
It’s time now to test the backend. Open https://example.com/api.php
in your browser. It should output
{ "code": "NOOP", "result": "FAIL" }
Above output indicates that the backend appears to be set up correctly. You can further test by opening api.php with some parameters. For example,
https://example.com/api.php?op=login&aktoken=test&appid=com.mesibo.mesiboapplication
this should output like the following
{ "op": "login", "ts":<PHONE_NUMBER>, "error": "BADAKTOKEN", "result": "FAIL" }
Looks fine! The next step is to update the Android and iOS Apps you have built in previous parts with the new backend.
Configure Apps to use the new backend
Edit the following files in the Messenger apps to use the new backend.
Android
- Edit
app/src/main/res/values/strings.xml
and enter your Account Kit APP ID and Client token inFACEBOOK_APP_ID
andACCOUNT_KIT_CLIENT_TOKEN
fields respectively. - In the same file, enter Google map key in the
GOOGLE_MAP_KEY
field. - Edit
SampleApi.java
and changemApiUrl
to reflect the new backend URL.
iOS
- Click on Info.plist and enter your APP ID and Client token in
FacebookAppID
andAccountKitClientToken
fields respectively. You also need to editCFBundleURLSchemes
field to reflect your Facebook APP ID after prefixing with fb. - In the same file, enter Google map key in the
GoogleMapKey
field. - In the same file, enter new backend URL in the
MessengerApiUrl
field.
That’s it. Recompile both the apps and start using it!
You can now see any new user and groups you create in the Mesibo console along with statistics.
Conclusion of part five
In this part, we have learnt about hosting backend API on your own infrastructure. In the next part, we will learn about how to host Mesibo real-time server on your own premise.
open, source, whatsapp, mesibo, ios, backend


Hi, I'm Robert and I'm an Electrical Engineering Junior at UCLA. I love working on robots, electronics, and all kinds of software projects. I've designed and built soccer robots, hand-held gaming devices, line following/ stair climbing robots, sumo robots, maze solving robots, turn-by-turn navigation systems, useful browser extensions, and more!
I am passionate about technology and believe that it has the power to enrich lives and lift communities out of poverty. I strive to learn about the best ways of using engineering to address problems. Working towards this goal, I seek feedback in everything that I do, and commit to being a life long learner.


---
layout: post
title: 1/1/2014 schoolwork
date: '2014-01-02T22:33:00.001-07:00'
author: Jacob .
tags:
- homeschool-journal
modified_time: '2014-01-02T22:33:32.364-07:00'
thumb: https://lh3.googleusercontent.com/-hzXUf8JjLe8/UsREqnIELHI/AAAAAAAAEyE/NnROi-dThpE/s72-c/blogger-image-538437204.jpg
blogger_id: tag:blogger.com,1999:blog-6400085873105072120.post-7931983487922083962
blogger_orig_url: http://www.svlark.com/2014/01/112014-schoolwork.html
---
History: Finished Chapter 13 on the New Kingdom of Egypt and did some related coloring coloring


Get code
Check username
Confirm username
Select your language here,eng by default,can be rus ger br zhs zht.
Create account
{{ errorMessage }}
{{ infoMessage }}
Already have account? Log In


© IEEE Cyber Science and Technology 2019. All rights reserved.
Created and Maintained by the IEEE Cyber Science and Technology 2019 Web Team
Photos are provided by the City of Fukuoka
IEEE Privacy Policy


epfmt
epfmt
epfmt is a command line program for pretty printing EPrint XML. It can also convert EPrint XML to and from EPrint as JSON or as a simplified JSON records for export to RDM.
By default it reads from standard input and writes to standard out.
epfmt EPrint XML (or JSON version) from standard input and pretty prints the result to standard out. You can change output format XML and JSON by using either the ‘-xml’ or ‘-json’ option. The XML representation is based on EPrints 3.x. epfmt does NOT interact with the EPrints API only the the document presented via standard input.
Pretty print EPrint XML as XML.
epfmt < 123.xml
Pretty print from EPrint XML as JSON
epfmt -json < 123.xml
Render EPrint JSON as EPrint XML.
epfmt -xml < 123.json
epfmt will first parse the XML or JSON presented to it and pretty print the output in the desired format requested. If no format option chosen it will pretty print in the same format as input.
epfmt 1.2.4


This is a living archive of projects that I have done, and it is intended to serve mostly
as a repository for all of the images that I have saved in various places that I will
undoubtedly lose at some point. Every image on this page is my own, and unless otherwise
noted all PCBs are my own designs.
Design Review Checklist
I regularly make small mistakes in schematics that, if uncaught, waste time during design reviews. This checklist, designed
to be printed double sided, cut out, and laminated, helps a designer remember the most important checks when laying out a new
design in a hurry. Version 1 is still very rough and I will continue to make changes as I incorporate it into my design workflow.
The back side has several common analog circuits that I reference regularly. These will be better labeled in V2.
A ~$20 instrument that will be capable of diagnosing malaria as shown in
Micromagnetic resonance relaxometry for rapid label-free malaria diagnosis.
My version of the instrument uses a movable magnet assembly so that the larmor frequency of the sample can be tuned to 20MHz. This allows
the clock signal to be generated by a cheap crystal.
The first iteration of the probe PCB was milled on a $200 CNC machine.
I'm currently delivering about 1W using an IRF510 based amplifier.
I built control electronics for a four-dish interferometer being constructed out at the
DSES site in Haswell, Colorado. Part of this was creating two custom 14 bit absolute encoders to hit cost targets.
Remote Monitoring Hardware for Well Pumps - Github Page
I built this for the San Francisco professional chapter of Engineers Without Borders (check them out:
ewb-sft.org).
Solid State Angle of Attack Sensor
This sensor uses an ultrasonic emitter and an array of microphones to calculate windspeed and airflow direction without any moving
parts. By comparing the phase of the recorded signal at each of the microphones, it is possible to calculate the delay or speedup
caused by the moving airmass.
I tested the sensor by fitting it to a car window with cardboard and driving around at different speeds:
The plot shows that the phase change for each mic is correctly correlated with the position of the mic relative to the airflow
direction and the ultrasound emitter. Mic was furthest forward (see first image above), mic 5 was furthest back. Also, the separation
of the phases increases at higher speeds, allowing the sensor to measure airspeed.
Because this is just a prototype, I used a Saleae logic analyzer to capture raw data from each of the mics, and extracted the appropriate
DFT terms using Goertzel's algorithm (see notebook here).
Ground Penetrating SAR for Finding Lunar Lava Tubes
This is my writeup of the work I've done developing a ground penetrating synthetic aperture
radar for the Husky Satellite Lab at UW.
Background
I joined the Husky Satellite Lab (HSL) in 2019, just in time to see the years of hard
work the group had put into Huskysat-1 culminate in a successful deployment from the
ISS. After operating the satellite for several months, we transferred control to Amsat
and all of the older members of the club who had stuck around to see the project through
moved on. After my first year, virtually all of the older members had left, leaving only
a handful of us to choose a new project for the group. Professor Robert Winglee (who sadly
passed away that winter) was our PI at the time, and he strongly encouraged us to develop
technologies that targeted a lunar mission.
I proposed the Ground Penetrating Radar to the group after reading a few articles about lunar
lava tubes. The first is
The structural stability of lunar lava tubes by David M. Blair et al., which uses FEA to
suggest that lava tubes on the moon could be kilometers wide and hundreds of meters tall - large
enough to fit a small city. A second article (
Evidence of large empty lava tubes on the Moon using GRAIL gravity by Loic Chappaz et al.)
found supporting evidence for these large subsurface voids in GRAIL gravimetric data.
Finally,
A multi-frequency radar sounder for lava tubes detection on the Moon: Design, performance
assessment and simulations by Leonardo Carrer, Christopher Gerekos, and Lorenzo Bruzzone"
presented simulations of a radar sounder instrument that would be able to detect most of the possible
lava tube geometries described by Blair's paper. After speaking with both David Blair and Cristopher
Gerekos (who designed the simulator used in the third paper), I thought it would be reasonable to
try to build the instrument that they had described.
Originally, this project had no budget, and I paid for a lot of the equipment out of pocket. After I
was able to demonstrate a working radar, we were granted $2000 by the Washington NASA Space Grant
Consortium, which was presided over by Professor Winglee. These funds covered the hardware cost of
both the GPR itself, as well as the DDS-AWG that we built to test it.
Instrument Principles
Several physical properties of the moon constrain the radar parameters. Lower center frequencies yield
greater penetration depths, and larger bandwidths yield finer resolution. There is, however, a tradeoff
between a lower center frequency and higher bandwidth, because as the fractional bandwidth of the chirp
becomes very large, the whole system becomes harder to match/tune. Because it is not possible to deploy
a large, wideband antenna from a small satellite, other orbital synthetic aperture radars (SAR) like the
LRS, SHARAD, and ALSE use isotropic dipoles for their low frequency experiments; since we would have to do
this as well, we were very concerned about how well we could match the antenna.
We also had to choose an architecture for the radar, with low cost and rapid development taking priority
over long mission duration or even instrument performance - the goal was a technology demonstration and
possible lave tube detection, not a detailed characterization or mapping of any lunar lava tubes. We chose
to use a DDS-based architecture because a DDS gives us unmatched flexibility for our waveform, and because
it allowed us to keep our analog frontend as small as possible (we only obtained access to a VNA halfway
through the project). The GPR is based on the LRS - the DDS generates a windowed chirp that is transmitted,
a T/R switch is flipped, and the echo is amplified and mixed with a second, identical chirp with a known
time offset. This "de-chirp" method allows us to significantly reduce the required analog bandwidth and
sample rate for the receiver, since we can trade vertical coverage (the range of our resulting radargrams
in the nadir direction) for a lower beat frequency from the mixer. This way, we can use chirped signals with
center frequencies above 100MHz, and sample the beat frequency at 100Mhz or less without approaching the
Nyquist rate. It is worth noting that the pulse duration is also traded here - long pulses give lower beat
frequencies, but since the radar is half-duplex, the pulses must be short enough that consecutive pulses do
not overlap.
We choose to use the AD9910 from Analog Devices as the DDS core for the GPR. At $63, we couldn't beat it
for price given the level of integration, and it has a number of very useful features that make it perfect for
our application. First, it has an internal "ramp generator" which can be programmed to sweep amplitude, frequency
or phase while the DDS operates. This gives us a very easy way to generate the variable length chirps with
the desired start and stop frequencies. Additionally, the AD9910 has an internal RAM that can be read out
in order to modulate frequency, phase, or amplitude. By programming the RAM with a Hann window and targeting
amplitude, we can window the chirp while it is generated. Finally, because the Hann window is completely
arbitrary, we can tweak the amplitudes to predistort the chirp, in order to account for the transfer function
of the hardware on the DDS output.
Test Plan and the DDS-AWG
As we made progress toward specifying the radar parameters, specifically the chirp bandwidth (30MHz) and
center frequency (80MHz), we realized that evaluating the instrument on Earth would be extremely difficult.
The first challenge is that there are very few places in Washington or even on Earth that are as dry as the
moon, with targets that look like lave tubes. Terrestrial lava tubes are too small to be detectable with
our system, and there was always going to be the challenge of moving the instrument 50-100km away from the
target to simulate the altitude of a lunar orbit. These challenges, of course, are not insurmountable, and we
put together detailed plans for overcoming them: we could test with higher frequencies and bandwidths on Earth
to resolve smaller features, use high altitude balloons to check our instrument at altitude, and run as many
lab tests as possible to confirm that the radar was behaving as expected. The second problem is that the low
center frequency and high bandwidth of the radar means that the chirp it generates spans an enormous chunk of
the VHF spectrum. Professor Winglee was very against obtaining an experimental license from the FCC, and although
he allowed us to try, the presence of a few military frequency allocations in the band we were interested in
stalled the process almost immediately.
In liu of real-world testing at the system level, I proposed that, in addition to the real-world tests we had
already described, we could use the radar simulator that Chris Gerekos had built for his lava tube paper to
simulate reflections from the moon. This simulator starts with a chirped waveform, and computes the echo by
summing the reflected signals from millions of triangles imported from a user supplied DEM of the lunar surface.
We could generate a chirp with our instrument and record it with a DSO, and then feed this signal into the
simulator. We'd allow the simulator to calculate the reflected chirp, and then we would synthesize it, attenuate
it, and feed it back into the radar after the appropriate delay. Then, we could take the output from the radar
and perform SAR processing on a collection of these rangelines to recover the radargram, which we would
compare to the simulated radargrams in Gerekos' paper.
This idea garnered the support of Professor Winglee and the rest of the satellite lab, but it required us to
obtain or design/build a DDS capable of simulating the rangelines returned by Gerekos' simulator. I spoke to
an engineer at Siglent, and their highest performance AWG could only generate some of the waveforms we are
interested in. We would not be able to afford the kind of instrument that we needed, so I started working on
a design built around the DAC5687 from Texas Instruments. This chip can use an onboard NCO to upconvert input
data at a lower sample rate to a full 500MSps. The rest of the AWG consists only of a CPLD which allows a user
to program a high speed SRAM with waveform data, and a USB-Serial converter from Microchip. The design files
and HDL for this DDS are open source and available on Github.
Bringup
After Professor Winglee passed away, I laid out hardware for the radar and we purchased the boards and components.
This is what it looked like after 8 hours of assembly:
This PCB is designed for development only, so it would not fit in a cubesat form factor and it makes extensive
use of jumper cables.
Progress stalled after I graduated and turned the hardware over to my peers at the Husky Satellite Lab - as I
understand it, the lab was restructured and nobody was available to pick it up. In August 2021, I reached out
and asked if I could have the hardware sent to me so that I could keep working on it, and I mounted the radar,
the DDS, and an STM32 eval board to a sheet of prepreg I had laying around. I wrote a driver for the AD9910
(open source, on Github) that allows the instrument to generate
Hann windowed chirps that match the expected waveform:
Radar Simulator Testing
The first test of the system involves measuring the length of a spool of coaxial cable from Home Depot.
Because we cannot legally transit at the frequencies that the radar is designed to use, an end-to-end test is only possible
if the signal is confined to a cable. I connect the output which would normally feed the PA to one length
of coaxial cable, and I connect the other end of the cable to the antenna connector. The transmit/receive
switch is set to receive, and a switch on the PCB feeds the output of the DDS into a power divider. This
way, half the signal goes through the coaxial cable, and the other half goes directly into the mixer. The
radar generates a chirp from 65 to 95MHz that lasts for 1 millisecond. The raw output of the mixer is shown
below, along with the theoretical result:
The Hann windows are not perfectly congruent - this is something we are investigating. It is likely that
this is an error in the programmed Hann window, but it can be fixed with predistortion in an case. The
measured tie delay can be calculated by taking an FFT, and dividing by the frequency rate of change. The
distance is then just the time delay times the speed of light, taking the velocity factor of the coaxial
cable (0.83 for cheap RG6) into account:
I've zoomed in on the second image to make the length of the coax more obvious. The system's measured length
is within 5m (the range resolution) of the true 152m (500ft) length of the coaxial cable. In these images,
the real system seems to outperform the theoretical calculations, which was bizarre to me. After checking for errors, I realized that this was due to
the filtering that the real signal had. After digitally filtering the theoretical IF, it outperforms the
real system:
Polkadot Mesh Network
I did this project for the embedded systems capstone at UW. I had been toying with the idea
of building a LoRa mesh network for radio stations, and I took the opportunity to build
the hardware I was picturing and to learn a lot about mesh networking by implementing AODV
in embedded C. In our group, I was responsible for the hardware and the mesh networking firmware,
while my group members built a Raspberry Pi based server that allowed a user to interact with the
mesh in real time. All of the hardware and the software that I've created is free to share and use,
and it can be found on Github.
The last photo shows a polkadot board in a 3D printed case with a solar panel. I designed the case
to bolt to a metal post from the hardware store (the ones used to hold trees upright).
Airplane Datalogger
One of my friends was interested in building and flying remote control aircraft, so I made
a device that "hides" between the receiver and the servo motor connectors. The device saves
the PWM duty cycle of each of the six receiver channels to an SD card, so that the position
of each of the control surfaces could be logged over the course of a flight. Additionally, the
datalogger was equipped with a triaxial magnetometer and a six axis IMU.
As of this writing, I am still waiting for them to conduct a successful flight, but I have
faith that they will pull it off, and I'll post any data we get here.
Small Radiosonde
After meeting someone who was studying meteorology, I was fascinated by how dependent weather
prediction is on the tiny number of radiosondes launched by the NWS and other services around
the world twice each day. I wanted to try building a much smaller version, so I did:
\
The lower photo shows one of the radiosonde PCBs next to a Vaisala RS92 for comparison.
This radiosonde is tracked using multilateration, and can measure pressure, temperature, and
humidity with accuracy comparable to a Vaisala radiosonde. It uses a little transceiver IC to
communicate at 433 or 407MHz, and it uses a custom Brokaw bandgap reference temperature sensor
to give high accuracy temperature readings from -100 to 50 degrees centigrade, at a very low cost.
I tried to reach someone at the NWS to talk about it, but our meeting fell through and in the
meantime I convinced myself that this type of radiosonde wasn't the solution - the balloon still has
to carry itself, so a large balloon is still required even for a tiny radiosonde. Additionally, this
radiosonde is not that much cheaper than a Vaisala radiosonde. If I ever get the chance, I really want
to integrate all of the circuitry onto a single IC, which I think would allow the NWS to launch
thousands of them per day at only a few cents per launch.
500 Msps DDS-AWG for Radar Simulation
This project grew out of a need to test a design for an orbital ground penetrating
radar sounder for detecting lava tubes that I designed for the Husky Satellite Lab at
the University of Washington. We are not licensed to transmit on the frequencies used
by the radar sounder, and there are no terrestrial targets with predicted radar
signatures similar to those of lava tubes on the moon. I proposed that we build a
system to synthesize radar returns generated by Chris Gerekos' Coherent Multilayer
simulator, and this is what I built after that proposal was funded.
The DDS uses an Altera Max V CPLD to load an SRAM with data extracted from Gerekos'
simulator. When the system receives a trigger signal, the CPLD reads out the data in
the SRAM at 100Msps into a TI DAC5687 which does all the hard work of numerically
upconverting and synthesizing the signal. The result is a complex 500Msps output with
100MHz of bandwidth which can be used as a test input for our radar setup. All of the IP
that I created for this project is open source, and it can be found at
the UW Cubesat Github Repository.
An example output from the DDS, synthesizing first a square wave and then a sine wave
at baseband.
Radar Demo
This was part of my radar proposal to the NASA Washington Space Grant Consortium (which was funded!).
I used an AD9910 demo board with a custom driver to synthesize chirps that could be transmitted or fed into
a coax delay line. The received signal would be de-chirped, filtered and digitized by the sound card in my
laptop.
The image above shows the radar response to a building on campus at the predicted distance.
Alternative Dev Board
The digital design classes at the University of Washington use the DE1-SoC development kit
from Terasic for all of the lab assignments. Unfortunately, the cost of this board means that
we cannot keep the hardware after finishing the course, so I designed this very low cost
alternative instead. I use the MAX V CPLD, which is fully compatible with the toolchain that
we use in the courses, and all of my labs were able to synthesize and run on the custom hardware.
Sadly, the department administrators explained that by reusing the kits, they only spent $5 per
student per quarter, so my $14.70 alternative was too expensive. However, I still use the
prototype that I built for testing other CPLD projects!
VU Meter/Spectrum Analyzer
An old friend of mine is a musician, so I made them an STM32 based VU Meter that would change
colors depending on the frequencies of the received sound. After sketching out an implementation
that used a lot of VCVS stages, I decided to use a digital implementation instead. A simple
microphone amplifier circuit feeds the raw sound signal to the ADC of an STM32F4, which DMAs a few
milliseconds worth of samples into a buffer and then uses the ARM CMSIS DSP library to take an FFT.
The brightness of the RGB leds around the PCB is set in real time by the coefficients from the FFT.
The VU Meter is powered by a Li-Ion coin cell mounted on the back, which is recharged using the USB-C
port on the bottom. The wires in the photo are for the ST-Link Programmer.
PHAT-2
The Platform for High Altitude Technology 2 (PHAT-2) was a balloon mission developed
by the Husky Satellite Lab, and it was the first project that I was assigned after joining
the club. Unfortunately, a number of factors meant that the structure and software aspects
of the balloon were never finished, but I was able to build and test all of the electronics.
The photos below show the cutdown detector, a langmuir probe controller, the power distribution
board, and the ADCS/IMU board.
The coolest part of the driver electronics is the Pulsed Plasma Thruster (PPT) charger and
igniter. The Advanced Propulsion Laboratory at the University of Washington had a design for
the charger and igniter circuits that required a 4 layer PCB, it required two separate high
voltage flyback converters and it would produce huge surges when it fired. These surges killed
the control electronics for PHAT-1, so I redesigned the charger to provide complete galvanic
isolation between the PPT and the electrical subsystem during firing. I was also able to
eliminate one of the flyback converters and use a 2 layer PCB. It could charge a 100uF bank of
capacitors to 800V in a few hundred milliseconds, and generate 26kV arcs for ignition.
For this project, I also build a langmuir probe controller and frontend, a power distribution
board, and a very simple system for detecting when the flight was terminated by a nichrome wire
cutdown using a single limit switch.
Buried Ice Detection with CPR
The goal of this work was to develop a system that would allow future lunar landers to identify
buried ice deposits with landing radar. I designed, simulated, and built cpol antennas for the
915 MHz ISM band and then used 400lbs of Concrete and a lot of ice to test the ability of
the system to identify buried ice. Unfortunately, the sub wavelength roughness of the aggregate
in the concrete caused really high CPR and all kinds of false positives (I can detect ice when it's
not buried). At least I learned a lot about concrete.
SWR Measurements for the antennas, showing a good match at 915MHz despite being electrically small
I also built a system for automating the CPR measurements using an RF switch controlled by the
FPGA GPIO pins on the LimeSDR. The baluns and the RF switch PCB are mine. Here are the (very inconclusive)
results:
Either the system was nonfunctional (although I did test every component and they performed as expected in
isolation) or the setup was flawed. Concrete is a poor lunar simulant and I was using a very small box with
unrealistically small targets in a very noisy environment.
Sous Vide Controller
I wanted to see how small I could make a controller for a sous vide. This PCB packs a capacitive
power supply (eek!), an ATMega based PID controller and a giant solid state relay, all of which
fits in a 2.5 by 1.25 by 0.5 inch box fit along the cord.
Outlet Energy Monitor
This completely analog PCB attaches to the back of a standard outlet and adjusts the color of an LED mounted in
the switch plate so that you can see how much power the outlet is consuming in real time. I made the PCB
myself with the CNC mills at the University of Washington, and I was in contact with a Chinese manufacturer
of outlets for a while about it until they realized that I was not a real engineer and stopped responding.
Breadboard Power Supply
A lot of the introductory EE courses at the University of Washington require the use of two
9V batteries to power analog circuitry on a breadboard for labs, and the wires would always
fall out of the breadboards. To pass the time during my first week back before courses started
in my sophomore year, I designed a USB powered breadboard PSU that provides quiet dual supplies
that can be adjusted from +-2V to +-15V and gave one to everyone on the electronics team in the
Husky Satellite Lab:
Epaper Clock
Practice with low power modes on the STM32. I made a little clock that told the time in Chinese
on an Epaper display. It is powered with a single CR2032 and I'm very proud of the PCB.
LED Matrix
Lessons learned in high speed PCB layout. To burn some time with a friend, I built a 16 by 160 LED
dot matrix from scratch with 2560 LEDs from LCSC (only $30!). This system is driven by a Raspberry Pi
running some very lazy code which seems to run fine. The characters are read out of a file
listing Shanghai metro stops, rendered in GNU Unifont, converted to numpy arrays and then shifted into
the matrix.
Sadly, I do not have any photos of the panels after they were assembled. There were 16 panels and one
controller PCB that attached to one end and contained a power supply and the mosfets for controlling
the anodes.
UV Mask Sterilizer
At the beginning of the pandemic, my father (who is a doctor) and his colleagues were placing used
medical masks in paper bags and leaving them in a dry room for two days before reusing them. After
the University of Nebraska published a study suggesting that UV light could be used to sterilize
N95 Masks without damaging them, my father asked me if I could replicate the system quickly. The
resulting device was constructed from a duct from Home Depot and two UVC fluorescent lamps from
McMaster-Carr, and it would deliver the required dose to the mask in 7 seconds. The device is
currently at my father's office, and I will add images if I can retrieve it after the pandemic.
Sprinkler Timer
My grandparents needed a system to water their planter boxes when they were away from their apartment,
but without a hose on their balcony, they would need to use a bucket instead. I built a system that could
turn on an aquarium pump for a user-specified amount of time once every 24 hours (my first HDL project!)
and etched a PCB for it. The PCB is potted in 5 minute epoxy for waterproofing, and it used a Xilinx Coolrunner II
CPLD.
LED Cube
My roommate wanted to make an LED cube for his girlfriend, so I built him a driver for it that he could
connect directly to a raspberry pi. We went as far as building the cube, but after the pandemic started
he wasn't able to give it to her.
DAMIC Heater and Ramp Generator
In my first year at the University of Washington, I was an undergraduate research assistant for the DAMIC
collaboration. There, I designed and built a 100 Watt linear (yes, linear) heater controller for keeping
the dark matter detectors at the right temperature during testing. The system was incredibly sensitive to
noise, so no switching components could be used.
Later, I build a ramp generator which would allow a user to program the slew rate of the bias lines that
powered the detector. The ramp generator had to consume absolutely no current when it was on or off, and
the bias voltage had to be able to change between 40 and 200V.
Lamps
I can control my desk lamp with my phone. I also made a high power grow light using some industrial
horticultural LEDs that turns on when the sun is out and turn off when the lights turn off. I also
fixed all of the three way switches in my house.
Off-Grid Potting Shed
I put my solar panel on my parents' potting shed and learned that there's
a lot more to a solar installation than I thought.
The lights are 12VDC and are connected through the charge controller to
the battery, but the inverter connection bypasses the (wimpy) charge controller,
so I needed a better UVLO on the inverter so that the charge controller wouldn't
disconnect the lights if the inverter discharged the battery too far.
I didn't have the patience to wait for the right part, so I made one with
an LM358 and a TL431.
Crazyflie Deployment System
A tiny deployment mechanism for the Crazyflie drone. It worked very well until I added the deployables...
Liquid Cooling for the Raspberry Pi
An excuse to put a raspberry pi in a box of mineral oil. The Raspberry Pi is overclocked and a close friend wrote
a program to plot the CPU temperature over time. The liquid cooling actually worked!
 I've put the rest of the photos that I have here.
My DIY Newtonian reflector
I gave a presentation about hacking the GPIO functionality of an RTL-SDR Dongle at the Society of Amateur Radio
Astronomers (SARA) Conference 2019.
I did some work on making a wall scale capacitive touchscreen at the Makerspace where I worked, before my boss
cancelled the project.
I made a paste extruder for a 3D printer at the makerspace where I worked. The upper photo shows it printing with
royal icing. The entire mechanism is my design, I 3d printed most of the parts and laser cut the gears out of acrylic.
I built an antenna tower and mounted it on my roof. In this photo, it has a 134MHz V dipole for receiving APT from NOAA
weather satellites.
I used the DE1-SoC for one of my digital design courses to build the glue logic and memories for a Z80 microprocessor.
I used this DIY breakout board for the DAC5687 for developing the DDS.
I was interested in making aluminum PCBs, so I designed one that fits on a heatsink and supports a
single temperature sensor IC. When the device is sitting on my desk, I can see my air conditioning
turning on and off, but when I set up a PID loop on an arduino with the peltier module, the PCB
temperature is held relatively constant.
I've designed solar power systems a few times, but none of the had even been built and I wanted to
develop some intuition for how this stuff goes together. I bought the cheapest parts I could find,
and I took the opportunity to have some fun building a completely analog latching relay driver for
the UVLO on the load.
I built an EMC probe using soe RG316 coax and a ferrite bead, using the EEVblog video as a guide. I
printed an enclosure for mine.


--- layout: default title: Enlight description: Enlight is a resource aimed to teach anyone to code through building projects. Hosting a wide variety of tutorials and demos, Enlight provides developers with sample projects and explains how they work. ---


Achilles Shoes
Dashboard
Warehouse
Products
Warehouse places
HR
Departments
Manage users
CRM
New Clients
All Clients
Orders
New Orders
All Orders
Out Sourcing
New Orders
All Orders
Accounting
New Orderss
All Orders
Returneds
Reasons
Returned Products
Username
profile
logout
Profile
Drag & drop or click here
Drag & drop or click here to replace
Remove image
Mahmoud Fahiem
Accounting
Rankings
8,9
User Information
Name:
Mahmoud Fahiem Hashem
Address:
Lorem ipsum dolor sit amet consectetur adipisicing elit.
Phone:
0123456789
Gender:
Male
Select Gender
Male
Female
Departments:
HR
Select Department
HR
Accounting
Username:
m.fahiem
Password:
asdveqwe5549e36q
Generate Password
Uploaded files:
Upload a file:
Contract
CV
Upload
Download
Save
Cancel
Edit Profile


(PECL paradox >= 1.0.0)
px_get_info — Return lots of information about a paradox file
$pxdoc
) : arrayReturns an associated array with lots of information about a paradox file. This array is likely to be extended in the future.
Version of file multiplied by 10, e.g. 70.
Name of table as stored in the file. If the database was created by pxlib, then this will be the name of the file without the extension.
Number of records in this table.
Number of fields in this table.
Number of bytes used for the header. This is usually 0x800.
Number of bytes used for each record. This is the sum of all field sizes (available since version 1.4.2).
This value multiplied by 0x400 is the size of a data block in bytes. The maximum number of records in a datablock is the integer part of (maxtablesize * 0x400 - 8) / recordsize.
The number of data blocks in the file. Each data block contains a certain number of records which depends on the record size and the data block size (maxtablesize). Data blocks may not necessarily be completely filled.
Number of fields used for the primary index. The fields do always start with field number 1.
The DOS codepage which was used for encoding fields with character data. If the target encoding is not set with px_set_targetencoding() this will be the encoding for character fields when records are being accessed with px_get_record() or px_retrieve_record().


Hi, steemit friends!💙
Colorful Danxia scenic spot covers a large area with three entrances, exits, and four stands in all. There are a great many attractions, such as Colorful Screen, Colorful Clouds, Colorful Mountain Range etc. Each scenic spot has its own unique characteristics. If you have enough time, you’re expected to enjoy the scenery one by one.
「旅行」Wandering in Northwest China 漫游大西北 (Chapter 6)
It is said that Zhangye Dan Xia appears to be much more gorgeous with the sun shining. Unfortunately we didn’t see the most beautiful Danxia scenery for it was cloudy that day.
We are still impressed with the colors here. Different colors can be found in a mountain, some white, some yellow, some brown and some black as if they were arranged in order. This have been described in a poem. I can imagine how fascinating it would be if it were in the sunshine.
Danxia is known for its natural beauty. Every mountain is carved in different shapes by nature. They look like humans, worms, birds or beasts and the most famous one is Sleeping Beauty.
If you have the opportunity to visit here, be sure to carefully appreciate these grand mountains and rocks, and also appreciate the wonders after long-term weathering. It’s a gift from nature.
I hope that netizens won’t overstate any attractions, which may result in people’s high expectations, although it does attract a large number of tourists. When seeing the real scenery, they may feel disappointed. Instead, they will miss more.
The End
七彩丹霞景区面积之大，有三个进出口，共四个看台，景点内又有许多大小景点，如七彩屏、七彩飞霞、七彩嫁衣等，每个小景点各有其特色，若是时间充裕，大可以逐个细细观赏。
据说张掖丹霞一定要在阳光的照耀下才显得出绚丽本色，可惜那天我们正是遇见阴天，并未能看见最美的丹霞景致。
我们依然感叹丹霞地貌的色彩之神奇，同一座山体，有的白、有的黄、有的褐、有的黑，可谓是色彩分
明、鳞次栉比，诗云：“色若渥丹，灿若明霞”，可以想象若是在阳光的照耀下，该是一番多么梦幻的景象。
丹霞之美源于自然，每一处山石都是出自大自然的精心雕刻，以形态各异、变化万千来形容丹霞再形象不过，似人、似虫、似鸟、似兽，最著名的莫过于丹霞睡美人。
倘若各位有机会来到这丹霞地貌，一定要仔细地欣赏这些林立的奇山怪石，用心体会这岁月和烈日风雨打磨后的奇观，这是大自然赠予我们的礼物。
更希望网上不要再肆意炒作任何一个景点，尽管一时间吸引许多游客，但人们必定心存过高期待，就会对真实的景色感到失望，于是便错过更多的美妙。
（完结）
!steemitworldmap 38.9697932 lat<PHONE_NUMBER> long d3scr
Posted from my blog with SteemPress : http://cnstm.org/blog/2019/09/23/%e3%80%8c%e6%97%85%e8%a1%8c%e3%80%8dwandering-in-northwest-china-%e6%bc%ab%e6%b8%b8%e5%a4%a7%e8%a5%bf%e5%8c%97-chapter-7-%e5%ae%8c%e7%bb%93%e7%af%87/
This page is synchronized from the post: ‘「旅行」Wandering in Northwest China 漫游大西北 (Chapter 7 完结篇)’


ProTip™ Feline cephalopod adhesives are great for decorating portable computation devices.
您好，为什么要用app.use(express.router(routes))
为什么第5章后就没有截图了？
markdown的使用有问题
自己实现一个 connect/express 中间件应该也不难，不过我没试过~你可以到 CNode 问问
01ac72c
update Post.getOne
cf9e5a2
Fix needs_rehash() cost comparison
Sorry that is correct in this version, in 2.1.4, actually checks if ( ($severity & error_reporting()) == $severity )
The @ error-control operator
I'd disagree, that's not what we're aiming for. But regardless, if error_reporting() does indeed return 0, see for yourself: php > var_dump((E_WARN…
error_reporting()
php > var_dump((E_WARN…
Well if a do something like: @filemtime('a/file/that/does/not/exists/') Should not log anything to the log file, because is been excluded explicit…
Got some tabs here as well that need to be removed.
As @vlakoff noted, there's a tab on this line - it must be empty.
Update web.php
Okay then, but before I can merge it I'd have to ask you to do some adjustments - add a changelog entry (as a bugfix) and ... I'll add inline comme…
Please explain what you're trying to do here. Also, submitting to one branch is enough, changes from one will be merged where appropriate.
8b7b64f
Shave off a few more CPU cycles
ecb74c7
Revert to previous PATH derivation
@narfbg Yes, I've tested it and used it for quite some time.
The driver won't happen in 3.0. Such large additions would require to give further time to the public to report any problems that would appear with…
As I said previously, I think bringing in would be easier as you'll have it as a driver #2158 (template driver parser) and then refactoring this fo…
And I assume you have tested it?
2aaecc8
NEW: Google static map plugin with unit test
ddf20f7
Simplify PATH derivation
6d0a5f9
Simplify BASE derivation
12e7b94
Merge pull request #2770 from kakysha/themostawesomebranchevercreated…
a3f91b9
DB call_function() bug : funny typo -or- smart autocomplete?
37fe56f
Merge pull request #2764 from refringe/feature/cookie_session
9719c5e
Update AUTHORS
Use our new and shiny tutorial to get started.


DIAMOND MEN
Reviewed by Harvey Karten DC Films/Sidekick Entertainment/Shipwreck Productions Director: Daniel M. Cohen Writer: Daniel M. Cohen Cast: Robert Forester, Donnie Wahlberg, Bess Armstrong, Jasmine Guy, George Coe, Kristin Minter, Nikki Fritz, Shannah Laumeister, Kate Rimmer, Paul Price Screened at: Preview 9 NYC 8/21/01
Torn from today's headlines about corporate downsizing and the rupture of trust between management and labor; pulled from the sociological debates of the seventies about the gap between the generations; "Diamond Men" is a clever, humorous, sardonic and exquisitely acted indie about contemporary life in America. Written and directed by Daniel M. Cohen, the picture starring Robert Forster as the thoroughly professional fifty-ish diamond salesman and Donnie Wahlberg as his brash 28-year-old trainee treats its two principal themes with the kind of skill seen in no other film this year. Delightfully underplayed and carefully developed, "Diamond Men" is a rejoinder to the groaners who complain that there's just nothing out there in the movie theaters any more: it's the first four-star picture of the year, a just-in-time, life-saving antidote to the barrel of swill called "Bubble Boy" which I swallowed just twenty-four hours previous to this screening.
Dan Cohen opens his movie on Robert Forster, who performs in the role of diamond salesman Eddie Miller, looking dazzling in a thousand-dollar suit as he confidently heads to his capacious car only to suffer a heart attack, after which he is Willie-Lomaned by his much younger boss presumably because he is no longer insurable. Asked to mentor Bobby Walker (Donnie Wahlberg), the arrogant young man who is to take his place, who has personality to burn but no special aptitude for the job, Eddie is put off by Bobby's youth culture (rock music, egotistical attitude, undiplomatic statements) while for his part Bobby has little use for the older man's inflexibility. During their long drives to clients in the Harrisburg, PA area, they get to know each other, become buddies, and while exchanging information about women and sharing real experience with them in bars, restaurants and other places, each casts a marked change on the other's life.
Dan Cohen's writing goes far toward making "Diamond Men" the gem that it is. Cohen would no more force a gag or a humorous situation on his audience than would Eddie high- pressure a customer to buy. At no point does the story skirt the borders of sit-com territory. The audience is made aware from the start of the flaws in each person's character. We root for Eddie to loosen up and for Bobby to become a mensch and we enjoy watching the clever way that the script brings the turnabout to fruition.  Robert Forster, almost needless to say, never disappoints. The stellar sixty-year-old performer first got the attention of the film industry through his performance as Stanley Kowalski in a 1967 production of "A Streetcar Named Desire" and gained wide recognition for his supporting role as Max Cherry in Quentin Tarantino's "Jackie Brown." This time it is he who is afforded the firm support of a troupe of performers, particularly Donnie Wahlberg as a true-to-life (if somewhat exaggerated) replica of modern youth; and Bess Armstrong, as Katie, a woman who is not what she seems to be but proves, like Bobby, to be adept at turning Eddie's life around.  "First you'll change her diapers, and then she'll be changing yours," jibes one of the players," but here again we see that things are not what they seem on the surface. The twists, the performances, the themes, the sincerity, the respect for the audience. They're all here. What more can you ask for?
Not Rated. Running time: 100 minutes. (C) 2001 by Harvey Karten<EMAIL_ADDRESS>========== X-RAMR-ID: 29289 X-Language: en X-RT-ReviewID: 245692 X-RT-TitleID: 10000666 X-RT-SourceID: 570 X-RT-AuthorID: 1123
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


| Contents | Previous Next |
The Human Evasion by Celia Green
Chapter 6 : The Sane Person Talks of Existence
When the sane person talks about life he sometimes mentions the Outside, but here a splendid confusion can be created from the simple fact that other people are, in a certain sense, outside relative to the individual. And so it is possible to find passages like the following:And what, too, would our reactions to (ESP) tell us about ourselves? That we feel safer living in splendid isolation, a huis clos? Or that we are prepared to face the possibility of being members of one another in a world which, as mathematicians already know, is first and foremost one of relationships, and which now, as a great mathematician, Hermann Weyl, has dramatically put it, is being made by modern science itself "to appear more and more as an open one... pointing beyond itself."[1]This, incidentally, provides a particularly ostentatious example of the use which is constantly made by sane people of words with two possible meanings.
Here the word "relationship" is used to assimilate the two concepts "human relationship" and "mathematical relationship". A little analytical thought should convince the reader that a person may be interested in human relationships without the slightest attraction towards mathematical ones, and vice versa.
A distinction may be made, though it is a difficult one for a sane mind to grasp, between the idea of a world "pointing beyond itself" to mathematical abstractions, and one "pointing beyond itself" to human mutuality and cohesion.
This passage also illustrates the habit of talking about human relationships as terrifying, difficult, dangerous, and the like. Conversely, any outlook not constantly preoccupied with human interactions isthough never describedimplied to be excessively conducive of feelings of safety, ease, and comfort.
There is no particular reason why these implications should correspond with the psychological facts. As we have already mentioned, 'sanity' shows many of the characteristics of recognized psychological syndromes. All psychological syndromes are ways of defending the individual from intolerable stress, and can only achieve this objective by concealing their true purpose. So one does not expect a high degree of objectivity in the statements ofsaya paranoid about his condition. In fact, one expects a characteristic kind of inversion on certain crucial points. (Pride replacing guilt, superiority concealing inferiority, and so on.)
Now if "sanity" is a device for protecting the individual from the impact of facts, in the same way that paranoia is a device for protecting the individual from feelings of humiliation, it is obviously under the same kind of necessity to conceal its true terms of reference.
So it is scarcely surprising that sane people should have an unfounded belief that they are adopting a difficult and strenuous attitude.
But what are the psychological facts? Is it actually the case that when people adopt a less anthropocentric outlook they find themselves overwhelmed by sensations of ease and self-aggrandizement? We cannot expect to find very much evidence either way, because people do not often adopt such an outlook, but such evidence as there is suggests that they actually feel alone and defenseless, not to say frightened.
In general I dreaded to be left alone. I remember wondering how other people could live, how I myself had ever lived, so unconscious of that pit of insecurity beneath the surface of life. My mother in particular, a very cheerful person, seemed to me a perfect paradox in her unconsciousness of danger, which you may well believe I was very careful not to disturb by revelations of my own state of mind.[2]I shall never forget that night of December in which the veil that concealed from me my own incredulity was torn. I hear again my steps in that narrow naked chamber where long after the hour of sleep had come I had the habit of walking up and down. I see again that moon, half-veiled by clouds, which now and again illuminated the frigid window-panes. The hours of the night flowed on and I did not note their passage. Anxiously I followed my thoughts, as from layer to layer they descended towards the foundation of my consciousness, and scattering one by one all the illusions which until then had screened its windings from my view, made them every moment more clearly visible. Vainly I clung to these last beliefs as a shipwrecked sailor clings to the fragments of his vessel; vainly, frightened at the unknown void in which I was about to float, I turned with them towards my childhood, my family, my country, all that was dear and sacred to me: the inflexible current of my thought was too strongparents, family, memory, beliefs, it forced me to let go of everything. The investigation went on more obstinate and more severe as it drew near its term, and did not stop until the end was reached. I knew then that in the depth of my mind nothing was left that stood erect.
The moment was a frightful one; and when towards morning I threw myself exhausted on my bed, I seemed to feel my earlier life, so smiling and so full, go out like a fire, and before me another life opened, somber and unpeopled, where in future I must live alone, alone with my fatal thought which had exiled me thither, and which I was tempted to curse. The days which followed this discovery were the saddest of my life.[3]
It is true that when people talk about life they do sometimes admit that being finite is rather awful. Sometimes they cannot even manage to say this without mentioning "other people" in every sentence. The following passage from Erich Fromm is interesting because it illustrates several kinds of question-begging simultaneously.
There is another element ... which makes the need to "belong" so compelling: the fact of subjective self-consciousness ... its existence confronts man with a problem which is essentially human: by being aware of himself as distinct from nature and other people, by being awareeven very dimlyof death, sickness, ageing, he necessarily feels his insignificance and smallness in comparison with the universe and all others who are not "he".Unless he belonged somewhere, unless his life had some meaning and direction, he would feel like a particle of dust and be overwhelmed by his individual insignificance ... he would be filled with doubt, and this doubt eventually would paralyse his ability to actthat is, to live.[4]
The first thing to notice is that Fromm implies (even before he has stated the problem) that what a person needs is "to belong". When he does state the problem he states two problems at once as if they were the same. (To feel insignificant and small in comparison with the universe is actually different from feeling those things in comparison with other people.) Fromm calls this problem (or problems) "essentially human"a reassuring description. He continues by implying that it is right and proper for a person to feel that he does "belong", and that his life does have "meaning and direction". This will prevent him from feeling like a particle of dust: if he did, he would be paralysed. This last is, of course, an unverified assumption.
There is no evidence that people who feel like particles of dust relative to the universe become paralysed and inactive, although it is a fact of clinical psychology that people who feel worthless relative to other people often spend a good deal of time in bed.
Virtually all categories of modern thinkers unite in chanting "There is no Outside". The existentialists, alone, say "There is an Outside". On account of their sane upbringing they feel that this is a difficult thing to say and they say it with a kind of metaphysical stutter, inventing new words profusely in their desperation to make themselves understood. Of course in a sense they are right in supposing that it is difficult; no sane person is likely to understand it. But the difficulty is emotional, not philosophical.
(Incidentally, how well the human evasion has arranged matters when anyone who would say "There is an Outside" is driven to express himself at enormous length, in all but unreadable books.)
Existentialists admit that there are certain states of consciousness in which ideas about death, existence, isolation, responsibility, urgency and so forth may have some emotional significance. But these are rare and transitory.
The weakness of the existentialists' case is that they do not distinguish sufficiently between a philosophical attitude and a psychological one. A sane person may be made to admit, as a philosophical point, that everything is fundamentally uncertain, but this will not give it any power as a motive force in his life. Even a person who wished to realize the fact of uncertainty would find it difficult to perceive it with any vividness, or to eliminate other emotional attitudes which he saw to be incompatible with it.
Having accepted that one may, at certain times, become startlingly aware of certain things, the existentialist argument usually goes on to talk of "authentic" and "inauthentic" being. If what is meant by "inauthentic being" is living without awareness of these things, then obviously everyone is very inauthentic indeed. "Authentic being" would mean to live in constant awareness of these things, with all the modifications that would entail. But this is a problem in psychology; it must be asked what forces are at work to prevent this awareness, whether it is possible to defeat them, and how. It is particularly useless to give prescriptions for "authentic being" by involvement or commitment in the world. If we realize that we are talking about states of consciousness, it becomes clear that the procedure being recommended is this: "If you should chance to have a flash of awareness of things of which you are not usually aware, you will realize that your life is full of things which seem meaningless to you so long as you are in this state of awareness. What are you to do to overcome your sense of meaninglessness?" There is a simple answer. "The awareness will pass. You can forget it easily and go on living as before. But since you want to convince yourself that you are doing something about this flash of awareness you have had, you are recommended to return to your former way of life, but more thoroughly and deliberately than before. Commit yourself to doing just the kind of thing which makes further flashes of awareness unlikely."
Here, of course, we are encountering one of those linguistic swerves away from the point so characteristic of the evasive mind. "Authentic being" may be used to refer to a state of dishonesty towards the facts of existence, or to a state of dishonesty towards other people. It is even true that the two things may be to some extent interconnected, since a person suffering from the human evasion is clearly not able to be honest towards anyone, if only because he is constantly trying to force them to shield him from reality, including the reality of his own perceptions and desires.
It should come as no surprise that existentialist writers are unable to distinguish clearly between "mauvaise foi" towards existence and "mauvaise foi" towards people.
And so this kind of thing is written:
Dasein, everyday life, is destructible, and we should not even desire its indefinite continuation. But Existenz, authentic selfhood, can be entered into now and its meaning is imperishable. Only by facing death realistically do we become formed, decisive, resolute, and reconciled to finitude. The threat of missing true selfhood is worse than the unavoidable fact of physical disintegration. And the reality of the latter makes me alert to the former.  Because I do not have forever, the question hangs over every moment: 'Are you living, feeling, realizing, choosing yourself or some feeble caricature of what you could be?' One who has lived for ends-in-themselves and who has entered into existential communication with others knows that what is important in his life and in the life of his friend cannot be annihilated by death.[5]What can be said of the statement that we can enter "authentic" selfhood "now"? Existential flashes are not easily had to order.
Even more dubious is the assertion that once you have entered this state "its meaning is imperishable". Can this mean "you will be able to remain in constant awareness of the unknowability of existence", or even "once you have been fully aware of existence your psychology will never be the same again"? Such psychological evidence we have would seem to indicate that existential awareness is usually momentary, and its permanent effects on a sane person are nil.
Our existentialist now tells us that "only by facing death realistically do we become ... reconciled to finitude". To be aware of one's finiteness is one thing; to be reconciled to it is quite another. Nearly everyone seems to manage to be reconciled without being aware; I should have thought it probable that anyone who was fully aware of it would find it intolerable.
[1] Rosalind Heywood, The Infinite Hive , Chatto and Windus, 1964, p.224. [2] Quoted in William James, The Varieties of Religious Experience, Random House, 1902, p.158. [3] Th. Jouffroy, quoted in William James, Varieties of Religious Experience, Random House, 1902, p.173. [4] Erich Fromm, The Fear of Freedom, Routledge and Kegan Paul, 1942, pp.16-17. [5] David E. Roberts (on Karl Jaspers), Existentialism and Religious Belief, Oxford University Press, New York, 1957, p.248.
| Contents | deoxy > thoughtcrime | Previous Next |


{% extends "base/base.html" %} {% load staticfiles %} {% block content %}
The results are published since: {{ poll.closing_date|date:"d/m/Y" }}, {{ poll.closing_date|time:"H:i" }}
You can access them: here


Inspired by team of The Trail Blazers Foundation and Safeway/Albertsons Foundation, UO has also started up with 5050 Central to offer the make it better Duck's 5050 Raffle in partnership with the Safeway/Albertsons Foundation during the 2016-17 NCAA Football season.
Fans purchased raffle tickets at home games for a chance to win half of the net proceeds raised for that game through two in-arena kiosks and mobile sellers throughout the arena.
At every game, the winning ticket received 50% of the net amount raised that night and the remaining 50% benefited the "UO Ducks Foundation" (made up) and a variety of local nonprofit organizations including this year’s five community partners: Adaptive Sports NW, Black Parent Initiative, Community Cycling Center, Girls Inc., and Latino Network.


You can use the Extract Variable refactoring even on incomplete statements. Just press &shortcut:IntroduceVariable;, and choose the desired expression:


WITNESS LIST Appropriations-S/C on General Government Committee (Subcommittee on Budget Oversight Charge #2) September 20, 2002-9:00A Interim Charge #2 For: May, Doug (Pecos Cty Spaceport Corp) On: Allen, David (Council on Environmental Technology) Ayala, Jesse (Pension Review Board) Beck, Jim (Secretary of State) Beckett, Sheila (Employees Retirement System) Bloom, Ed (Incentive and Productivity Comm) Colyandro, Helena (Secretary of State) Combs, Susan (Department of Agriculture) Hamilton, Billy (Office of the Comptroller) Logan, Linda (Animal Health Commission) Looke, William (Aerospace Commission) Matthews, Jerry (Council on Environmental Technology) McGeehan, Ann (Secretary of State) Perez, Ed (Office of State and Fed Relations) Shea, Gwyn (Secretary of State) Shelton, Steve (Pension Review Board) Shivers, Shari (Pension Review Board) Smith, Ginger (Pension Review Board) Sneed, John (General Land Office) Traylor, Richard (Animal Health Commission) Williams, Michael (Railroad Commission of Texas)


-c
, -r
, and -b
flags do in grep
by reading the manual.-c
stands for “count”. It will limit the output of grep to just the number of matches, not the matches themselves.-r
stands for “recursive”, and it will tell grep that it should look through the subdirectories of the requested path.-b
stands for “byte-offset” and it will tell you the line number, and position of grep’s matches.


Hi, welcome to Genesis Energy. I'm GENBO, your energy assistant. I can help you find what you want on our site, either by typing or voice
Let's Get Started!


DBC is all one big experiment
(one big enormously expensive experiment)
July 30, 2015
I watched part of Shereef's fireside chat. Here are my thoughts, which are mostly informed by his description of the two mindsets of cohorts (consumer/restaurant patron vs. creator/kitchen worker).
The DBC Experience: As with most things in life, you get out of experiences what you put into them. Completely cliche but hey, it's true. Life, and evidently DBC, are messy. If you sit around waiting for things to be handed you, it isn't going to happen (even if you paid $12k for the experience). Which you know initially sounds kind of ridiculous, to be honest. If I paid so much money SHOULDN'T my education be handed to me? Of course what I have paid for is an experience, not a good or service, and an experience means I need to be actively involved. But the money aspect definitely can lead down the entitlment/consumer rabbit hole, which I suppose is where mindfulness comes in: monitor your feelings, if you are starting to feel entitled/annoyed/like coasting through, catch yourself and switch gears. Also important to remember that it's not just about you, it's about your whole team/cohort/pair.
Impression of DBC: I'm still not sure what my impression of DBC is. It is overall positive. I'm only 4 days into Phase 0 but my cohort seems great solely passed on the Google Plus community. I'm excited to work with the people in my cohort. Everything so far has been really well organized and I feel like I'm being challenged by the week 1 curriculum. I'm mostly just enjoying myself. And as Shereef said if you don't like something about DBC, get in there and make it happen, it is your education.
How I see myself engaging with the DBC culture: I picked up and left a well-established career to go to DBC. My former coworkers think I'm insane but that's ok, it is sort of insane (and some of them are just jealous!). Leaving your job and upending your life is messy, and it sounds like DBC is going to be messy, and after a career of everything being pretty routine and rather oppressivly buttoned-up, I welcome the mess, the creativity and the freedom. I also like the idea of not going it alone, and working with a team of people who are also doing something radically new with their lives. I tend to be introverted, which doesn't mean I don't like people, it just means I like some downtime to myself. I might not be getting a ton of that when DBC onsite starts.
Have my expectations of DBC changed?: No. I expected to work hard, and I expected to ultimately be in control of my own education. I really am paying for the DBC structure (because while I know I could teach myself all of this, and have been trying for months, DBC seems to have a good system going with how to learn a ton of stuff in a short period of time) and learning with like-minded (and not so like-minded, although at least we all have made the decision to attend DBC, so we have that in common) people.
How I am feeling: Mostly excited. Also competitive (mainly with myself). A little nervous. One of the things Shereef talked about in the video is the two fears of students: some people have imposter syndrome, some people have I'm-too-good-for-this syndrome, and some people have both simultaneously. I think I might have a little bit of both. I've been self-studying since March, so it's a little weird to put up a blog post without any CSS and I'm having to remind myself that the requirement for week 1 is the content of the blog post, not how it looks. I've also been using Git and Github since March, but I had a serious case of "I didn't know how much I didn't know!" when I went through the week 1 curriculum on git--lots of stuff about branches and merging that I have never done before.


DiskCache
open class DiskCache
A specialized cache for storing data in disk. Based on Haneke Disk Cache and customized for the MapCache project.
-
Gets the root base folder to be used.
Declaration
Swift
open class func baseURL() -> URL
-
URL of the physical folder of the Cache in the file system.
Declaration
Swift
public let folderURL: URL
-
A shortcut for
folderURL.path
.Declaration
Swift
open var path: String { get }
-
Sum of the allocated size in disk for the cache expressed in bytes.
Note that, this size is the actual disk allocation. It is equivalent with the amount of bytes that would become available on the volume if the directory is deleted.
For example, a file may just contain 156 bytes of data (size listed in
ls
command), however its disk size is 4096, 1 volume block (as listed usingdu -h
)This size is calculated each time
Declaration
Swift
open var diskSize: UInt64
-
This is the sum of the data sizes of the files within the
DiskCache
This size is calculated each time it is used
Seealso
diskSize
Declaration
Swift
open var fileSize: UInt64? { get }
-
Maximum allowed cache disk allocated size for this
DiskCache
Defaults to unlimited capacity (
UINT64_MAX`)Declaration
Swift
open var capacity: UInt64 { get set }
-
Queue for making async operations.
Declaration
Swift
open lazy var cacheQueue: DispatchQueue { get set }
-
Constructor
Declaration
Swift
public init(withName cacheName: String, capacity: UInt64 = UINT64_MAX)
Parameters
withName
Name of the cache, will be the subfolder name too.
capacity
capacity of the cache in bytes. Defaults to virutally unlimited capacity (
UINT64_MAX
) -
Get the path for key.
Declaration
Swift
open func path(forKey key: String) -> String
-
Sets the data for the key asyncronously. Use this function for writing into the cache.
Declaration
Swift
open func setData(_ data: Data, forKey key: String)
-
Sets the data for the key synchronously.
Declaration
Swift
open func setDataSync(_ data: Data, forKey key: String)
-
Fetches the image data from storage synchronously.
Declaration
Swift
open func fetchDataSync(forKey key: String, failure fail: ((Error?) -> ())? = nil, success succeed: @escaping (Data) -> ())
Parameters
forKey
Key within the cache
failure
closure to be run in case of error
success
closure to be run once the data is ready
-
Removes asynchronously the data from the diskcache for the key passed as argument.
Declaration
Swift
open func removeData(withKey key: String)
Parameters
withKey
key to be removed
-
Removes asynchronously all data from the cache. Calls completition closure once the task is done.
Declaration
Swift
open func removeAllData(_ completion: (() -> ())? = nil)
Parameters
completition
closure run once all the files are deleted from the cache
-
Removes the cache from the system. This method not only removes the data, it also removes the cache folder.
Do not call any method after removing the cache, create a new instance instead.
Declaration
Swift
open func removeCache()
-
Asynchronously updates the access date of a file.
Declaration
Swift
open func updateAccessDate(_ getData: @autoclosure @escaping () -> Data?, key: String)
-
Calculates the size used by all the files in the cache.
Declaration
Swift
public func calculateDiskSize() -> UInt64
-
It checks if the capacity of the cache has been reached. If so, it removes the least recently used file (LRU).
Declaration
Swift
fileprivate func controlCapacity()
-
Updates the time a file was accessed for the last time.
Declaration
Swift
@discardableResult fileprivate func updateDiskAccessDate(atPath path: String) -> Bool
-
Removes a file syncrhonously.
Declaration
Swift
fileprivate func removeFile(atPath path: String)
-
Substracts from the cachesize the disk size passed as parameter. Logs an error message if the amount to be substracted is larger than the current used disk space.
Declaration
Swift
fileprivate func substract(diskSize: UInt64)
Parameters
diskSize
disksize to be deducted


{% extends 'portfolio/base.html' %}
{% block nav %} {% include "about/nav/education_nav.html" %} {% endblock nav %}
{% block content %}
this is the education view
Code Fellows
JULY 2017 - DECEMBER 2017
- Seattle, WA
- Advanced Software Development in Python
- Certificate
US Navy
AUGUST 2012 - SEPTEMBER 2013
- Fort Sam Houston, TX
- Advanced Radiographic Technician
- NEC 8452
US Navy
MARCH 2012 - JUNE 2012
- Fort Sam Houston, TX
- Hospital Corpsman Basic Training
- NEC 0000
{% endblock %}


Toll in Philippine quakes climbs to 21
MANILA, Nov 3 — The death toll in two powerful quakes that struck the southern Philippines in the past week has risen to 21, authorities said today, as survivors struggled to access food and water.
The 6.6-magnitude and 6.5-magnitude quakes hit the island of Mindanao two days apart, destroying buildings and displacing tens of thousands of residents.
Some villagers staying under tents near a highway were begging for help from passing motorists, carrying placards asking for food and water, TV footage showed.
Rescuers had found more bodies, many crushed by falling debris and landslides caused by the violent shaking, the national disaster council said.
The quakes also left 432 residents injured with two people still missing, it added.
Thursday’s big quake was the third since mid-October in the Mindanao region, which makes up a third of the Philippines.
Temporary shelters have been set up to house more than 20,000 displaced individuals — many already there since the first quake struck on October 16, leaving seven people dead.
Today, rescuers continued their evacuation of families whose houses were endangered by landslides, while several residents trapped in mountainous villages had been airlifted to safety.
The government said aid has reached affected communities and instructed people sleeping near the road to go to evacuation centres for help.
The Philippines suffers regular tremors as part of the Pacific “Ring of Fire”, an arc of intense seismic activity that stretches from Japan through Southeast Asia and across the Pacific basin. — AFP


Online store/shopping cart; website with content management system. Content management included products, product categories and groups, sizes, colors, offers, coupons, discounts, misc. content elements, product inventory, customers, auto-emails, and authentication/authorization model with users, roles and permissions. It was initially build in classic ASP, later partially rebuilt in C# due to the need for rather complex sales reports, implementing which in VBScript was unreasonable.


Hey! I'm a tech generalist and flamenco guitarist living in Seville, Spain.
Experiment with React Native apps by building, sharing and testing right in your browser.
Free online flamenco classes from artists in Seville.
Fast React Native app interation: easy sharing and contextual feedback.
The Noodle Soup Oracle.


This example uses Maptimize.AddressChooser with Maptimize service plugged on the map. Map is based on crunchpanorama data set.


Warehouse Keeper Mia:
Yes, I belong to a secret organization that buys and sells information.
We are called information dealers...
Shadow Fox is our chief, the senior information dealer.
But he takes great care to hide his identity -- given what he knows, he would certainly be captured or killed if his true name was known.
Keep listening.


These people have not followed the process properly, unfortunately.
{% for assignee_ad,tickets_data in incorrectly_marked_tickets.items() %}{{assignee_ad}}
Most probably, every one of these people have been receiving mail of shame every single day. Yet it’s still not fixed, so now this mail’s going to leads and PgMs also. Let’s fix these up?
Let’s aim for a week where we only see applause gif in this mail and I assure you the leads/PgMs would sponsor ice-cream for all. ;-)
{% endif %} {% if not incorrectly_marked_tickets %}This is awesome! Every one in the team has followed the process properly. This calls for an ice-cream for all.
{% endif %}