Saving Space When Saving Space
Problem
.bss
(Byte Saving Section 😉) sections are extremely useful for saving on size when dealing with uninitialized data. However in tiny executables where every byte counts they can take up more space in the binary than you might want.
Consider an entry in your PE's section table:
> dt -r IMAGE_SECTION_HEADER
uxtheme!IMAGE_SECTION_HEADER
+0x000 Name : [8] UChar
+0x008 Misc : _IMAGE_SECTION_HEADER::<unnamed-type-Misc>
+0x000 PhysicalAddress : Uint4B
+0x000 VirtualSize : Uint4B
+0x00c VirtualAddress : Uint4B
+0x010 SizeOfRawData : Uint4B
+0x014 PointerToRawData : Uint4B
+0x018 PointerToRelocations : Uint4B
+0x01c PointerToLinenumbers : Uint4B
+0x020 NumberOfRelocations : Uint2B
+0x022 NumberOfLinenumbers : Uint2B
+0x024 Characteristics : Uint4B
That's 36 bytes of header to describe a section table entry for your uninitialized data. Can we do better if we just want a place to stuff our uninitialized data?
Solution
One solution would be to use the very top of the allocated stack region (upper limit) as a place to store your data. Since the Windows loader will allocate pages for the stack of your main thread when your process is initialized, we can tell the loader to allocate a little extra for us to use for general purpose data storage.
To do this you have to take into consideration how Windows allocates memory for thread stacks.
Edit: A reader has notified me that the current thread's stack limit is actually in the TIB (a struct which is the first element of the TEB)! This is convenient and will save a few bytes as it's a single instruction. To do this one only has to do:
mov rax, gs:[0x10]
Now that that detour is over, let's get on to my original technique (slightly inferior but with some background) of getting the base of the allocated stack region:
Thread stacks and guard pages
The default stack size that most compilers and assemblers will specify to be reserved in your PE headers is going to be 1 MB. However the entire 1 MB of stack space isn't going to be usable all at once. The 1 MB portion of your process' address space is reserved meaning that there can be no other allocations that overlap that consecutive region but there is no backing page frame for the region in physical memory. To actually use the pages in that reserved region you have to commit the pages you want to use. This will locate free pages in physical memory to fill into the corresponding page table entries and reserve space in the page file should the pages need to be paged out. By default the first page at the bottom of the stack (BOS) is committed and immediately usable before your entry point is called by the loader.
How do the number of committed stack pages grow so that we can use the necessary memory as rsp
grows in the direction of the upper limit? That's the job of the stack guard page. Guard pages are special pages that will trigger an exception when accessed. You can register handler functions for these exceptions and do processing based on who touched the guarded page. In the case of a stack guard page, Windows will catch this exception, commit the page on demand, and make the subsequent stack page the next guard page. This allows the OS to not use physical memory for stacks unless absolutely needed. Why would this be needed? Imagine a process which has hundreds or even thousands of threads which all have stacks that are multiple megabytes. This can get expensive very quickly and committing on demand can help in saving physical memory. Once a page has been committed and the stack shrinks above it, it will not be uncomitted.
Implementing a guard page feature in an OS is fairly straightforward as all pages in the guard region need to be set as invalid in the page tables. On access, the kernel page fault handler can look in either the page tables or a data structure describing regions of the virtual address space to see if the page is really invalid and triggering an application exception, or if a callback needs to be fired off.
An interesting caveat of having stack guard pages arises when one wants to allocate a buffer on the stack greater than the guard page region:
As you can see, this would skip the guard page if the required stack region hasn't been committed before. For this reason, MSVC will implicitly call _chkstk
for large stack allocations behind the scenes to probe the stack and touch as many guard pages as necessary to make sure there is enough committed memory for the buffer.
All this to say, if we tried to blindly use the extra stack memory at the upper limit we requested it wouldn't be committed and segfault our process. Now that we understand the difference between memory being reserved and committed, this is a non-issue as we are able to specify to the loader how much of our stack we want to commit before our entry point is called.
Updating PE header stack sizes
We want to change the amount of memory that is both reserved and committed for our stack in our binary's PE headers. To do this we need to alter the two fields in IMAGE_OPTIONAL_HEADER
shown below:
> dt IMAGE_OPTIONAL_HEADER
uxtheme!IMAGE_OPTIONAL_HEADER
...
+0x048 SizeOfStackReserve : Uint8B
+0x050 SizeOfStackCommit : Uint8B
...
 Take note of how the SizeOfStackReserve
and SizeOfStackCommit
fields are assigned to the same value:
; Commit 2 MB of virtual address space for the stack instead of the
; normal 1 MB default. We'll use the upper meg for data storage
STACK_COMMIT equ 0x200000
; ...
IMAGE_OPTIONAL_HEADER:
IMAGE_NT_OPTIONAL_HDR64_MAGIC = 20Bh
IMAGE_SUBSYSTEM_WINDOWS_GUI = 2
.Magic dw IMAGE_NT_OPTIONAL_HDR64_MAGIC
.MajorLinkerVersion db 0
.MinorLinkerVersion db 0
.SizeOfCode dd 0
.SizeOfInitializedData dd 0C0h
.SizeOfUninitializedData dd 0
.AddressOfEntryPoint dd begin
.BaseOfCode dd IMAGE_NT_HEADERS
.ImageBase dq 140000000h
.SectionAlignment dd 10h
.FileAlignment dd 10h
.MajorOperatingSystemVer dw 5
.MinorOperatingSystemVer dw 2
.MajorImageVersion dw 0
.MinorImageVersion dw 0
.MajorSubsystemVersion dw 5
.MinorSubsystemVersion dw 2
.Win32VersionValue dd 0
.SizeOfImage dd end_file
.SizeOfHeaders dd begin
.CheckSum dd 0
.Subsystem dw IMAGE_SUBSYSTEM_WINDOWS_GUI
.DllCharacteristics dw 0
.SizeOfStackReserve dq STACK_COMMIT ; ATTENTION
.SizeOfStackCommit dq STACK_COMMIT ; ATTENTION
.SizeOfHeapReserve dq 100000h
.SizeOfHeapCommit dq 1000h
.LoaderFlags dd 0
.NumberOfRvaAndSizes dd 0
; ...
Note that the above header definition can be made even smaller with various methods that will be discussed in a later article. If you aren't building your headers manually or are using something like a packer or compressing linker then you can use the trusty editbin
to change SizeOfStackReserve
and SizeOfStackCommit
:
This will make our stack look like the following:
Additionally, the stack is larger than before and we can start storing data in the newly committed upper area. If there is concern of the stack growing into our uninitialized data block we can always bump up the reserved/committed stack size though deep stacks can be indicators of poor program design.
Locating the upper limit
Now that our stack is correctly initialized at load time it's not difficult to locate the upper limit to start placing our data in the newly committed space:
PAGE_SIZE = 1000h
; We first want to copy the current stack pointer into rax so that we can
; change it
mov rax, rsp
; We then want to align to the nearest page boundary. This is normally
; done like: (rax & ~(PAGE_SIZE - 1)). Because pages are normally 4 KB in
; size their hex representation is 1000h. To align to 4 KB boundaries we
; have to clear the bottom 3 nybbles which is 4*3 = 12 least significant
; bits to zero. We could also accomlish the alignment with shr and then
; immediately doing a shl to clear out the bottom 12 bits but it ends up
; being the same size as the single and instruction.
and rax, not (PAGE_SIZE - 1)
; Now we have the base address of the last page in our committed stack
; region in our process address space. We want to get to the start of
; our committed region which we know is of STACK_COMMIT size. All we
; have to do then is (rax - STACK_COMMIT) right? No, since we're not
; at the very end of the region and at the base of the last page, we have
; to roll rax back (STACK_COMMIT - PAGE_SIZE) to not overshoot our destination :)
sub rax, STACK_COMMIT - PAGE_SIZE
And there we have it, the upper limit is now going to be in rax
. We need to first align to the nearest page as we aren't sure exactly where in the BOS page we are after being called by the loader as part of process initialization on Windows runs in user mode on the main thread. We can now store as much data as we feel comfortable at the top of the stack.
Conclusion
That's it! 15 bytes of machine code to get the upper limit in rax
. You could have allocated from the heap to do something similar but it would have ended up costing more bytes depending on your use case. From here in fasm if you want to have multiple uninitialized values you can create a struct using the windows includes struct
macro:
struct BSS
Var1 dd ?
Var2 dw ?
Var3 dw ?
ends
; ...
; rax = base of uninitialize data area
mov [rax + BSS.Var1], 123
If you have a method to get the stack limit in fewer bytes please contact me!
© 2018 emsea


Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
HTML - CSS - JavaScript - Bootstrap
Portfolio
Contact me
Want to get in touch with me? Be it to request more info about myself or my experience, to ask for my resume, tips on how to solve your sudoku, random questions about the universe and the meaning of life... just feel free to drop me a line anytime.


| # |
Title |
Category |
Date |
|
| 1 |
Post One |
Web Development |
May 10 2018 |
Details
|
| 2 |
Post Two |
Tech Gadgets |
May 11 2018 |
Details
|
| 3 |
Post Three |
Web Development |
May 13 2018 |
Details
|
| 4 |
Post Four |
Business |
May 15 2018 |
Details
|
| 5 |
Post Five |
Web Development |
May 17 2018 |
Details
|
| 6 |
Post Six |
Health & Wellness |
May 20 2018 |
Details
|


{% extends "base.html" %} {% import 'media_partials/social_media_macros.html' as smm %} {% block title %}The Blue Alliance - Add Team Social Media{% endblock %} {% block meta_description %}Add team social media to The Blue Alliance.{% endblock %} {% block content %}
We'll review your suggestion and get it added to the site soon!
The URL you submitted has already been approved!
The URL you submitted is already pending review!
Sorry, but we are currently unable to support the URL you submitted. See below for currently supported formats.
Thanks for helping make The Blue Alliance better! Let us know about media so we can add them to the site!
Currently supported formats are:
https://facebook.com/theuberbots
https://twitter.com/team1124
Please note that we can only accept YouTube channels with custom urls, if you do not have one, please create one by following these instructions.
https://www.youtube.com/user/Uberbots1124
https://github.com/frc1124
https://gitlab.com/frc1124
https://www.instagram.com/4hteamneutrino
https://www.periscope.tv/Evolution2626
No existing social media accounts!
{% endif %}


Safari IT Books Language Constructs Functional Programming Haskell Safari IT Books Programming Programming Programming Bryan O'Sullivan Donald Bruce Stewart John Goerzen O'Reilly Media, Inc. Real World Haskell, 1st Edition1.8. A Simple ProgramLet's take a small leap ahead and write a
small program that counts the number of lines in its input. Don't expect
to understand this yet—it's just fun to get our hands dirty. In a text
editor, enter the following code into a file, and save it as WC.hs: -- file: ch01/WC.hs
-- lines beginning with "--" are comments.
main = interact wordCount
where wordCount input = show (length (lines input)) ++ "\n"
Find or create a text file; let's call it quux.txt: $cat quux.txt
Teignmouth, England
Paris, France
Ulm, Germany
Auxerre, France
Brunswick, Germany
Beaumont-en-Auge, France
Ryazan, Russia From a shell or command prompt, run the following
command: $runghc WC < quux.txt
7 We have successfully written a simple program that
interacts with the real world! In the chapters that follow, we will
continue to fill the gaps in our understanding until we can write programs
of our own. |


/*====================================================================* * * Copyright (c) 2011 Qualcomm Atheros Inc. * * Permission to use, copy, modify, and/or distribute this software * for any purpose with or without fee is hereby granted, provided * that the above copyright notice and this permission notice appear * in all copies.  IN NO EVENT SHALL * THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * *--------------------------------------------------------------------*/ /*====================================================================* * * plc.c - Qualcomm Atheros Powerline Data Structure; * * this structure contains information needed to perform various * operations on Qualcomm Atheros powerline devices; it represents * one instance of a device and could easily be converted to an * object in the future; * * this structure points to a channel and a message structure; * * * Contributor(s): * Charles Maier<EMAIL_ADDRESS>* Alex Vasquez<EMAIL_ADDRESS>* *--------------------------------------------------------------------*/ #ifndef PLC_SOURCE #define PLC_SOURCE #include "../plc/plc.h" #include "../ether/channel.h" struct plc plc = { (struct channel *) (&channel), (struct message *) (0), (void *) (0), 0, /* * Local Device Address (LDA) buffer needed by all operations; */ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* * Remote Device Address (RDA) buffer needed by selected operations; */ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, /* * Network Membership Key (NMK) needed by VS_SET_KEY operations; * The default is an encrypted version of password "HomePlugAV"; */ { 0x50, 0xD3, 0xE4, 0x93, 0x3F, 0x85, 0x5B, 0x70, 0x40, 0x78, 0x4D, 0xF8, 0x15, 0xAA, 0x8D, 0xB7 }, /* * Device Access Key (DAK) needed for VS_SET_KEY operations; * The default is an encrypted version of password "HomePlugAV"; */ { 0x68, 0x9F, 0x07, 0x4B, 0x8B, 0x02, 0x75, 0xA2, 0x71, 0x0B, 0x0B, 0x57, 0x79, 0xAD, 0x16, 0x30 }, /* * struct _file_ CFG; MAC software will be read from this file and * written to RAM for each device specified on the command line; * some tools use this file for the panther/lynx softloader; */ { (file_t) (-1), (char const *)(0) }, /* * struct _file_ cfg; SDRAM configuration will be read from flash * on the specified device and written to this file; */ { (file_t) (-1), (char const *)(0) }, /* * struct _file_ NVM; runtime firmware will be read from this file * and written to RAM for each device specified on the command line; */ { (file_t) (-1), (char const *)(0) }, /* * struct _file_ nvm; MAC software will be read from SDRAM on the * specified device and written to this file; interlocks elsewhere * in the code should prevent this file from being overwritten * multiple times, by accident, and ensure that it is created before * and new MAC software is written to device RAM; */ { (file_t) (-1), (char const *)(0) }, /* * struct _file_ PIB; PIB information will be read from this file * and written to RAM for each device specified on the command line; */ { (file_t) (-1), (char const *)(0) }, /* * struct _file_ pib; PIB information will be read from SDRAM on * the specified device and written to this file; interlocks elsewhere * in the code should prevent this file from being overwritten * multiple times, by accident, and ensure that it is created before * any new PIB software is written to device RAM; */ { (file_t) (-1), (char const *)(0) }, /* * struct _file_ XML; optional XML PIB edit instructions; this is an * advanced feature; */ { (file_t) (-1), (char const *)(0) }, /* * struct _file_ rpt; Watchdog Report data will be read from the device * and written to this file; */ { (file_t) (-1), (char const *)(0) }, /* * struct _file_ socket; */ { (file_t) (-1), (char const *)(0) }, /* * miscellaneous small integers used as needed when arguments * are required for an MME; */ HARDWAREID, SOFTWAREID, PLCSESSION, HOSTACTION, SECTORCODE, MODULECODE, PUSHBUTTON, READACTION, FLASH_SIZE, /* * various boolean flags; bailout causes exit on first failure; * timeout indicates a real timeout; count is the loop counter; * pause is a loop wait timer; values are declared as constants * above; */ PLC_STATE, PLC_TIMER, PLC_SLEEP, PLC_COUNT, PLC_INDEX, PLC_FLAGS, }; #endif


Thoughca1185.github.io
Century helicopter products Lama 6 Handbücher.
Century helicopter products Lama 6 Handbücher and Gutmann 11T581I Handbücher.


Your browser doesn't support the features required by impress.js, so you are presented with a simplified version of this presentation.
For the best experience please use the latest Chrome, Safari or Firefox browser.
Slide one
Slide two
Slide three
Slide four
Slide five
Slide six


Toggle navigation
Ban Suan Pim
ABOUT
HOW TO
MY FARM
CONTACT
Search
Search the fertilizer recipe that match your need
About
Share
Search
Your search filter
Plant name
Durian
Strawberries
Papaya
Mango
Any
What is your recipe good for?
N
Promotes rapid growth
Aids chlorophyll formation
Aids protein synthesis
P
Stimulates early root growth
Hastens maturity
Stimulates blooming
Aids seed formation
K
Increases resistance to drought and disease
Increases stalk and straw strength
Increases quality of grain and seed
Else
Bugs
Quality of soil
Type
Organic
Mixed
Any
In what weather is your recipe good for?
Hot
Cold
Rainy
Humid
Dry
Any
How long does it take?
Less than
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
day(s)
week(s)
month(s)
year(s)
Difficulty level
Hard
Intermediate
Easy
Any
Soil types
Sandy
Silty
Clay
Peaty
Saline
Any
Submit


--- layout: post title: '1' date: type: post parent_id: '0' published: false password: '' status: trash categories: [] tags: [] meta: _wpcom_is_markdown: '1' _wp_desired_post_slug: '' author: login: akropp email<EMAIL_ADDRESS>display_name: akropp first_name: '' last_name: '' permalink: "/2018/09/17/__trashed/" ---
1


{{ template "header-head" . }}
{{ template "header-nav" . }}
Home
n/a
Environment Tree
Event Details
Event Type
Status
Pull Request
GitHub User
Branch
Revision
Environment Name
Kubernetes Namespace
Config Processing Duration
Event Started
Event Completed
Elapsed
Reference Map
Repo
Ref
Debug Logs
{{ template "footer-scripts" . }}


<{include file="public/header"}>
往年案例欣赏
Works Show
>
True blue will never stain
>
sweet home
>
Practice makes perfect
>
Diamond cut diamond
>
Teach fish to swim
--
Great minds think alike
<{volist name='year' id='year' offset="5" }>
><{$year}>
<{/volist}>
<{include file="public/footer"}>
copyright©Xinye|版权所有©新叶工作室


The Dragon Reborn
Maps:
Tar Valon
Prologue: Fortress of the Light
Waiting
Saidin
News from the Plain
Shadows Sleeping
Nightmares Walking
The Hunt Begins
The Way Out of the Mountains
Jarra
Wolf Dreams
Secrets
Tar Valon
The Amyrlin Seat
Punishments
The Bite of the Thorns
The Gray Man
Hunters Three
The Red Sister
Healing
Awakening
Visitations
A World of Dreams
The Price of the Ring
Sealed
Scouting and Discoveries
Questions
Behind a Lock
Tel’aran’rhiod
A Way Out
A Trap to Spring
The First Toss
The Woman of Tanchico
The First Ship
Within the Weave
A Different Dance
The Falcon
Daughter of the Night
Fires in Cairhien
Maidens of the Spear
Threads in the Pattern
A Hero in the Night
A Hunter’s Oath
Easing the Badger
Shadowbrothers
Hunted
Caemlyn
A Message Out of the Shadow
To Race the Shadow
Following the Craft
A Storm in Tear
The Hammer
Bait for the Net
In Search of a Remedy
A Flow of the Spirit
Into the Stone
What is Written in Prophecy
People of the Dragon
Glossary
Book 3 of
The Wheel of Time
Robert Jordan
Index of Books
|
Next—Book Four:
The Shadow Rising


-
Made it to the Mainland!
-
Last dinner before we're back on the road
-
-
-
-
Mazatlan to Guadalajara was SO hot, we had had to many many breaks to drink something cool.
-
Talking with the girls in Main Street in Rosamorada, Nayarit
-
Main street. I loved this place.
-
-
Tacos Tacos Tacos
-
#givethelegsabreak
-
Racing the locals
-
The 2nd hardest day I've had since Alaska (The hardest was the freezing last day in the Yukon) It's always the weather that's the gamechanger
-
Exhausted but made it Tepic
-
Met up with Friends we met at Tuly's place in La Paz while we were in Tepic!
-
Tacos.
-
#squadgoals
-
-
-
Mainland Mexico had the biggest and best shoulders of the entire North and Central America route we did. Super impressed
-
-
-
Hanging out, doing handstands in the Plaza of Ixtlan
-
When we arrived to Ixtlan, a friendly Jose Luis invited us to stay at a migrant guest house that was filled with old books and plenty of traveler stories.
-
-
Meeting friends on the road
-
Bikelife - brushing the teeth on the side of the road.
-
A little detour to Tequila on our way to Guadalajara!
 We felt famous :)
-
Easily the craziest road we've been on. So glad we had an escort!
 Marcio joined us for the week while Robert went back home to work.
-
A couple of years ago I felt that my Spanish was lacking and through a friend, I met Dely. She welcomed me to live in her home with her children from 3 months. She befriended me, corrected my mistakes, and helped me to get involved with the community. Years later she is still the most kind-hearted, hospitable, amazing mother and friend who gave all of us a home again while we visited with old friends and relaxed in one of my favorite town in the word!
-
What an honor it was to get a tour of the new Banco de Alimentos (Food Bank) of Zapotlanejo. I had the pleasure of volunteering with them 3 years earlier when it was 1/5th the size. IT is so great to see such a genuinely caring, passionate, and hard-working group of people get the funding their NGO needs to reach more families and communities. They are now ale to expand on sustainable projects to include nutrition education and other social services.
-
With my very good friend, Tere <3
-
Con Ale :)
-
We had a wonderful dinner full of laughs with my old salsa group from Zapotlanejo.
-
Thanks Tun Tun bikes!

-
-
While the new highways in Mexico have smooth, huge shoulders perfect for cycling, we do enjoy making detours that take us through many small towns. One day at sundown we came across Pretoria. We passed Arturo (left) and asked him where a safe place to camp would be. He insisted we come stay with him and his family and let us know there were a few people still praying at his home (people are very devout here so we thought nothing of it). Turns out they were having a funeral for his mother, who seemed like a wonderful woman. Should have been awkward, right? This family welcomed us, shared stories about their life and asked about ours, and fed us delicious home cooked meals. What a family!


new Board(tileCnt)
Creates a board object
Parameters:
| Name | Type | Description |
|---|---|---|
tileCnt |
number | number of tiles of the sidelength of board |
Methods
getCityTile(count) → {Tile}
Recursive Algorithim which finds a tile with a city.
Worst Case is O(n^2), where n is the length of the board
Parameters:
| Name | Type | Description |
|---|---|---|
count |
number | how many times this function has been called |
Returns:
tile with a city
- Type
- Tile
getTile(x, y)
Returns a tile from a given x,y in the gameBoard
Parameters:
| Name | Type | Description |
|---|---|---|
x |
Integer | |
y |
Integer |


Doctor & Physical Therapist
Expert animal doctor and I specialize in farm animals.
124 Windsor Cresent, Iowa 50441
<EMAIL_ADDRESS>Personal Trainer
Personal trainer and endurance race expert. Let me get you fit!
1720 Central Ave E A, Hampton, IA 50441
MUSCLEMAN@EMAIL.COM


If your screen uses interlaced rendering, this text should be in a sans-serif font. If your screen uses progressive scanning, you should see a serif font.


Launching SQL tools
- psql (Launches PSQL)
- postgres (Launches postgres server)
Starting a project with a DB (Terminal)
- psql (Terminal)
- CREATE DATABASE db_name ( <- Create a database with the name of your choice)
- CREATE TABLE table_name (id serial PRIMARY KEY, parameter varchar) (( <- Create your tables ))
- CREATE DATABASE db_name_test WITH TEMPLATE db_name (Create a test version of this DB for your specs)
Next (app.rb)
- require('pg') ((In your app.rb))
- DB = PG.connect({:dbname => "db_name"}) ((Link your app.rb to a your DB))
Tips for working on a project
- When you add a new column to your DB, delete your test DB and remake it with the same Schema
- Use a spec_helper.rb file that will have repeated code like the code that deletes the test database each spec run
- require('spec_helper') ((In your app.rb))
PSQL Terminal Commands
- List all databases: \l
- Connect to database: \c database_name
- List tables in current database: \dt
- List columns in a table: \d table_name
- Exit out of help menu: \q
- See a list of all psql commands: \? (Press the down arrow to scroll through, or q to exit list.)
Common SQL Commands
- CREATE DATABASE database_name;
- CREATE TABLE table_name (id serial PRIMARY KEY, some_column varchar, another_column int, yet_another_column timestamp);
- ALTER TABLE table_name ADD column_name boolean;
- ALTER TABLE table_name DROP column_name;
- INSERT INTO contacts (name, age, birthday) VALUES ('Wes', 43, '1969-05-01') RETURNING id;
- SELECT * FROM table_name WHERE age >= 18;
- SELECT * FROM contacts WHERE NOT age >= 18;
- UPDATE contacts SET name = 'Wes Anderson' WHERE id = 1;
- DELETE FROM contacts WHERE id = 1;
- DROP TABLE table_name;
- DROP DATABASE test_database;


--- layout: page title: About header-img: "img/about-bg.png" ---
I’m just a guy with too many hobbies and personal interests than he has common sense.


Confirm module deletion
Are you sure to delete this module:
?
The ports on this module will also be deleted.
If network services (VLAN, LSP, PseudoWire, etc.) are using this module / port, it may not be deleted.


PhD Scholarships
first advertised on 6 March 2020
The QUT Centre for Robotics located in Brisbane, Australia, has openings for fully-funded PhDs for immediate start in the following research areas:
1) Visual learning and understanding
This is the program I am leading in the centre if you are interested in working with me on semantic SLAM, scene understanding, reinforcement learning from semantic maps, reliable deep learning or uncertainty techniques for deep learning, please contact me directly.
This program investigates the fundamental problem of how a robot can learn to reliably interpret its environment, and build an internal representation of its surroundings in order to decide on its actions. The program addresses research questions such as how machine learning for visual perception can be made safe, trustworthy, and reliable; how robots can understand and represent the geometry, semantics, and functionality of their surroundings and the task-relevant objects therein; and how robots can use this internal representation and learn to decide or plan their next actions in order to accomplish a useful task in a safe way.
2) Perception and localisation
This program addresses the fundamental problem of how a robot or autonomous vehicle uses perception to create maps and calculate and track its location in the world. Research questions include addressing how the appearance of a place changes in relation as a function of time, season, weather, viewpoint and environment type; how understanding context and semantics can enhance performance; how lifelong reliability can be achieved as the world continually changes; the relationship to neurological structures and behavioural mechanisms used in animal and human navigation; and how new perception technologies can be applied to this problem.
3) Decision and control
This program investigates how to reliably make autonomous decisions and control for robots in the presence of uncertainty through the advancement of model-based filtering, estimation, detection, decision and planning techniques for robotic systems. Research questions include how to design robotic systems capable of achieving specified performance outcomes in the presence of uncertainty, how to detect anomalous system conditions in weak measurement environments, and how to characterise and managed network systems.
4) Physical interaction
This program is concerned with how a robot interacts with the physical world and requires consideration of all three robotic capabilities. In tasks such as grasping an object, turning a door handle, or applying a grinding tool to a workpiece the robot and the object exert forces on each other. Research questions include how to control these interaction forces so as to achieve the desired motion; how to handle noisy sensor data; and how to transition from vision-mediated control to force-mediated.
5) Human interaction
This program is concerned with how robots can effectively interact socially with humans, which will be critical to their wider adoption in homes, workplaces and healthcare facilities. Research questions include how to program robots to recognise, understand and respond to human behaviours; how humans will interact, perceive and trust robots; how humans will use robots to achieve collaborative goals; how robots will learn social norms, roles and scripts over time; how robots can successfully integrate into society; and do robots need theory of mind, cognition and/or emotional intelligence to be effective with humans.
To apply
Please e-mail your CV and research area of interest to<EMAIL_ADDRESS>with the subject line “QCR PHD”.


hive.common package
Submodules
hive.common.base module
This module contains Base, a underlying class for most hive components,
pulls in config file and setups up rabbit consumer and rabbit subscriber
threads.
-
class hive.common.base.Base(name)[source]
Bases: object
A common base class for most hive components, pulls in config file and
setups up rabbit consumer and rabbit subscriber threads.
-
configureLogger(filelocation, level)[source]
Configure the logger format and logging level according to the
config file.
Function that will get called inside the start function for any
threads added in child classes.
-
han(signal, frame)[source]
-
loadConfig(filepath)[source]
Try to load config using ConfigObj and make sure it exists.
-
start(r)[source]
Start the threads for receiving messages.
hive.common.controller module
-
class hive.common.controller.Controller(config, channel)[source]
Bases: object
Parent class to all controllers in the apiary project, provides basic
setup such as logging and a simple publisher.
-
default(data, resp)[source]
A default and example controller action.
-
event(data, key=None)[source]
This provides a method for sending events out on to the message
bus.
-
models()[source]
Called from the constructor so it provides a known interface for
extended controllers to place their model code.
hive.common.longrunningproc module
This module contains the classes required to create and manage long running
processes using RabbitMQ.
-
class hive.common.longrunningproc.Proc(config)[source]
Bases: threading.Thread
A class that all subprocesses should extend providing a known interface
for the ProcHandler to use.
-
run()[source]
-
stop()[source]
-
class hive.common.longrunningproc.ProcHandler(config, subproc, queue)[source]
Bases: multiprocessing.process.Process
A wrapper class that provides a means of communication to and from the
background process and also provides a means to shut it down.
-
on_message(channel, method_frame, props, body)[source]
-
run()[source]
hive.common.lucenedriver module
A driver which encapsulates the use of lucene in a concurrent fashion.
The module provides interfaces for the setup and commnication with
Lucene worker processes.
-
class hive.common.lucenedriver.Driver(config, tablename)[source]
Bases: object
This is a wrapper object that is designed to provide a syncronous
interface into the work queue, it will push a task with an ID which it will
then wait for to get a return value.
-
index(fields, record)[source]
-
query(query)[source]
-
rebuildIndex(fields, records)[source]
-
removeindex(record)[source]
-
updateindex(fields, record)[source]
-
class hive.common.lucenedriver.Worker(config, queue, ret)[source]
Bases: multiprocessing.process.Process
This class represents the lucene worker object, which will run
concurrently with other workers, and contains the actual lucene logic.
-
buildDocument(fields, record)[source]
-
dictToFields(doc, record)[source]
-
index(data)[source]
-
query(data)[source]
-
rebuildIndex(data)[source]
-
removeindex(data)[source]
-
run()[source]
-
updateindex(data)[source]
-
hive.common.lucenedriver.setup(config, workers=4)[source]
Setup and start the workers.
This must be called once and only once somewhere in the program
thats using it.
hive.common.model module
This module provides an Active Record like wrapper around MongoDB with
methods for the most repeatedly used functionality.
-
class hive.common.model.Model(config)[source]
Bases: object
Database access code and ModelObject to database transfer, this class
will become the parent of other models classes which add fields and
indexes.
-
addcolumn(name)[source]
-
addindex(name)[source]
-
define()[source]
-
delete(model)[source]
-
find(id)[source]
-
findAll()[source]
-
loadIndexDriver()[source]
-
mongoQuery(query, fields={})[source]
-
my_import(name)[source]
-
new()[source]
-
query(query, timescale)[source]
-
rebuildIndex()[source]
-
save(model)[source]
-
setprimary(name)[source]
-
class hive.common.model.ModelObject(columns, data)[source]
Bases: object
Object wrapper for data thats saved or will be saved in the DB.
-
to_hash()[source]
hive.common.mongotextdriver module
-
class hive.common.mongotextdriver.Driver(config, tablename)[source]
Bases: object
-
index(fields, record)[source]
-
query(query)[source]
-
removeindex(fields, record)[source]
-
updateindex(fields, record)[source]
hive.common.rabbitconsumer module
A helper class for wrapping the creation and consuming of a queue using
rabbit with a response given.
-
exception hive.common.rabbitconsumer.RPCServerException[source]
Bases: exceptions.Exception
-
class hive.common.rabbitconsumer.RabbitConsumer(name, host, router, username, password)[source]
Bases: threading.Thread
-
closechannel()[source]
-
connect()[source]
-
jsonToHash(string)[source]
-
makeResponse(request, rpcresp)[source]
-
onRequest(ch, method, props, body)[source]
-
on_cancelok(frame)[source]
-
on_queue_declareok(method_frame)[source]
-
onchannel_closed(channel, reply_code, reply_text)[source]
-
onchannel_open(channel)[source]
-
onconnection_closed(connection, reply_code, reply_text)[source]
-
onconnection_open(unused_connection)[source]
-
onconsumer_cancelled(method_frame)[source]
-
reconnect()[source]
-
run()[source]
-
stop()[source]
hive.common.rabbitsubscriber module
A helper class for wrapping the creation and consuming of a queue using
rabbit without a response.
-
exception hive.common.rabbitsubscriber.RPCServerException[source]
Bases: exceptions.Exception
-
class hive.common.rabbitsubscriber.RabbitSubscriber(name, host, router, username, password, routingkeys)[source]
Bases: threading.Thread
-
closechannel()[source]
-
connect()[source]
-
jsonToHash(string)[source]
-
onRequest(ch, method, props, body)[source]
-
on_cancelok(frame)[source]
-
on_exchange_declareok(unused_frame)[source]
-
on_queue_declareok(method_frame)[source]
-
onbindok(unused_frame)[source]
-
onchannel_closed(channel, reply_code, reply_text)[source]
-
onchannel_open(channel)[source]
-
onconnection_closed(connection, reply_code, reply_text)[source]
-
onconnection_open(unused_connection)[source]
-
onconsumer_cancelled(method_frame)[source]
-
reconnect()[source]
-
run()[source]
-
stop()[source]
hive.common.routes module
This module provides the parent for a centralised router that directs
actions to the right method in the controller.
-
class hive.common.routes.Routes(config)[source]
Bases: object
Parent router.
This will be extended by other classes to add the routes using the
setupRoutes method.
-
action(name, func, controller)[source]
-
my_import(name)[source]
-
route(action, data, resp, channel)[source]
-
setupRoutes()[source]
-
exception hive.common.routes.RoutingException[source]
Bases: exceptions.Exception
hive.common.rpcresponse module
This module contains a wrapper class for RPC Responses in controllers.
-
class hive.common.rpcresponse.RPCResponse[source]
Bases: object
Wrapper class for RPC responses, it only allows for one call to respond
to protect the user from overriding his own data.
-
respond(data, action=None)[source]
-
exception hive.common.rpcresponse.RPCResponseException[source]
Bases: exceptions.Exception
hive.common.rpcsender module
A reusable rabbitMQ RPC sender, that allows for a syncronous call with
timeout incase the RPC fails.
-
class hive.common.rpcsender.RPCSender(config, channel=None)[source]
Bases: object
-
onQueueOk(method_frame)[source]
-
on_response(ch, method, props, body)[source]
-
send_request(action, to, body, machineid, fro, timeout=10, exchange='', key='')[source]
hive.common.simplepublisher module
A simple class that provides methods for publishing messages onto a topic
exchange.
-
class hive.common.simplepublisher.SimplePublisher(name, host='localhost', username='guest', password='guest', channel=None)[source]
Bases: object
-
publish_msg(msg, routing_key)[source]
Module contents


ARIA Date Picker (With Absolute Disabled Date Ranges)
No earlier than 1st January 2018, and no later than 3 days after today).
{
minDate: new Date(2018, 0, 1),
maxDate: 3
}
The calendar is keyboard accessible:
- When the calendar is opened, focus is set on the current date.
- Press the Left and Right arrow keys to navigate the row by week day.
- Press the Home and End keys to jump to the beginning or end of the current row.
- Press the Up and Down arrow keys to navigate between weeks on the same week day.
- Press the PageDown and PageUp keys to navigate backwards or forwards by month.
- Press Alt+PageDown and Alt+PageUp to navigate backwards or forwards by year.
- Press the Enter key to activate the selected date.
- Press Escape to close the calendar without making a selection.
- Mouse users can click the desired date buttons as usual.


Study Me uses an accelerometer, EDA sensor, and a pressure sensor to detect when someone has fallen asleep and automatically wakes them up via a loud, irritating buzz that has been set to the optimal frequency.
This device has the potential to increase focus when studying and even save lives.
This technology has applications ranging from maintaining focus while studying to keeping people awake at the wheel. It can help notify drivers when they need to take a break and rest a little. Coded in Arduino C, this device makes use of the Arduino Microcontroller and the BitAlino bio-signal processing kit. Using a pressure sensor, EDA (electro-dermal activity) sensor, and a heart rate sensor, it detects when a user is falling asleep. Once the user has started to doze off, the device emits a high frequency buzz to keep them awake.
A study by MIT showed that EDA typically peaks during REM sleep and starts to rise in the light sleep phase. This knowledge can be leveraged to determine when a user is starting to fall asleep.
Dozing off while studying can waste time, causing students to lose more quality sleep. Moreover, according to the National Sleep Foundation, more than 4% of drivers (~11 000 000 people) suffer accidents due to falling asleep while driving.
Learn More


| Invoice | |
|---|---|
|
Invoice Date : 23-Nov-2015 |
|
|
Name of the member :
No31
|
|
|
Address :
Address line :- Not provided Street / Locality :- Not provided City :- Not provided District / Department :- Not provided State / Provice :- Not provided Country :- Not provided Zipcode :- Not provided Website :- http:// |
|
|
Product :
- Pieace - {2 - bag} 2 >> ( 124 * 100) = 12400
|
|
|
Paid amount :
0
|
|
|
Total amount (in words) :
Indian Rupees Twelve Thousand Four Hundred & Only.
|
|
|
Balance amt due :
12400
|
Due date :
30-Nov-2015
|
| Member signature | Authorized signature |
| Non-Transferable | Non-Refundable |
|
Powered By MadMec©
|


Candidates
| # | First | Last | Position |
|---|---|---|---|
| 1 | Mark | Otto | Project Manager |
| 2 | Jacob | Thornton | JS developer |
| 3 | Larry | Bird | Back-end developer |
| 4 | Martin | Smith | Back-end developer |
| 5 | Kate | Mayers | Scrum master |
| # | First | Last | Position |
|---|---|---|---|
| 1 | Mark | Otto | Project Manager |
| 2 | Jacob | Thornton | JS developer |
| 3 | Larry | Bird | Back-end developer |
| 4 | Martin | Smith | Back-end developer |
| 5 | Kate | Mayers | Scrum master |


Syracuse inks forward Woody Newton, guard Kadary Richmond
SYRACUSE, N.Y. (AP) - Syracuse has signed forward Woody Newton and guard Kadary Richmond to national letters of intent.
The 6-foot-8 Newton, a Baltimore native, plays for Mt. Zion Prep and is ranked 79th overall in the 2020 class by 247Sports.com. Newton’s play helped the Warriors advance to the 2019 National Prep Championship.
The 6-5 Richmond is at Brewster Academy in New Hampshire this season and previously attended South Shore High School in Brooklyn, New York, where he led the Vikings to a Public Schools Athletic League championship in 2019 and was named the New York City Public School Player of the Year. He is ranked 98th overall in the 2020 class by 247Sports.com.
TOP STORIES
Adam Schiff cracking under 'point of order' pressure
Skeptics chuckle as climate activist Greta Thunberg sets sail for Europe on 'plastic yacht'
Franklin Graham calls on nation to pray for Trump as impeachment effort gains speed
For more AP college basketball coverage: https://apnews.com/Collegebasketball and http://twitter.com/AP_Top25
Sign up for Daily Newsletters
Copyright © 2019 The Washington Times, LLC.
Please read our comment policy before commenting.


Text rendering routines¶
-
class
sdl2.ext.
BitmapFont
(surface : Sprite, size : iterable[, mapping=None)¶ A bitmap graphics to character mapping. The
BitmapFont
class uses an image surface to find and render font character glyphs for text. It requires a mapping table, which denotes the characters available on the image.The mapping table is a list of strings, where each string reflects a line of characters on the image. Each character within each line has the same size as specified by the size argument.
A typical mapping table might look like
[ '0123456789', 'ABCDEFGHIJ', 'KLMNOPQRST', 'UVWXYZ ', 'abcdefghij', 'klmnopqrst', 'uvwxyz ', ',;.:!?+-()' ]
-
surface
¶ The
sdl2.SDL_Surface
containing the character bitmaps.
-
mapping
¶ The character mapping table, a list of strings.
-
size
¶ The size of an individual glyph bitmap on the font.
-
render
(text : string[, bpp=None]) → Sprite¶ Renders the passed text on a new
Sprite
and returns it. If no explicit bpp are provided, the bpp settings of thesurface
are used.
-
render_on
(surface : Sprite, text : string[, offset=(0, 0)]) -> (int, int, int, int)¶ Renders a text on the passed sprite, starting at a specific offset. The top-left start position of the text will be the passed offset and a 4-value tuple with the changed area will be returned.
-
contains
(c : string) → bool¶ Checks, whether a certain character exists in the font.
-
can_render
(text : string) → bool¶ Checks, whether all characters in the passed text can be rendered.
-
-
class
sdl2.ext.
FontManager
(font_path : str[, alias=None[, size=16[, color=Color(255, 255, 255)[, bg_color=Color(0, 0, 0)[, index=0]]]]])¶ Manage fonts and rendering of text.
One font path must be given to initialise the FontManager.
default_font
will be set to this font. size is the default font size in pixels. color and bg_color will give the FontManager a default color. index will select a specific font face from a file containing multiple font faces. The first face is always at index 0. It can be used for TTC (TrueType Font Collection) fonts.-
bg_color
¶ The
sdl2.ext.Color
to be used as background color.
-
color
¶ The
sdl2.ext.Color
to be used for rendering text.
-
default_font
¶ Returns the name of the current default font being used by the
FontManager
. On assigningdefault_font
, the value must be a loaded font alias.
-
size
¶ The default font size in pixels.
-
add
(font_path : str[, alias=None[, size=None[, index=0]]])) → sdl2.sdlttf.TTF_Font¶ Add a font to the
FontManager
. alias is by default the font name, any other name can be passed, size is the font size in pixels and defaults tosize
. index selects a specific font face from a TTC (TrueType Font Collection) file. Returns the font pointer stored infonts
.
-
close
()¶ Closes all fonts used by the
FontManager
.
-
render
(text : str[, alias=None[, size=None[, width=None[, color=None[, bg_color=None[, **kwargs]]]]]]) → sdl2.SDL_Surface¶ Renders text to a surface. This method uses the font designated by the passed alias or, if alias is omitted, by the set
default_font
. A size can be passed even if the font was not loaded with this size. A width can be given for automatic line wrapping. If no bg_color or color are given, it will default to the FontManager’sbg_color
andcolor
.
-


Market Analysis
Bitcoin Price Risks Falling Under $8.4K If the Bulls Don’t Step Up Now
by Michaël van de PoppeBitcoin (BTC) price is still retracing from the massive rally two weeks ago, which leads the sentiment to turn bearish. Several signs indicate that the price needs to reverse quite soon, or the whole upwards move is deleted from the charts.
Crypto market data. Source: Coin360
Bitcoin loses 200-Day MA and EMA for the second time in 2019
The daily chart shows that the price of Bitcoin once again can’t hold support on the 200-Day Moving Average (MA) and Exponential Moving Average (EMA). Such a move often leads to a bearish bias among traders as the 200-Day MA and EMA are crucial indicators for bull/bear perspectives.
BTC USD daily chart. Source: TradingView
Alongside with a drop below the crucial moving averages, the price of Bitcoin wasn’t able to break the downward trendline. This trendline started at the top at nearly $14,000 in June.
Breaking the trendline would provide a vital sign for bullish perspectives on the market. Additionally, the $7,300 level showed bottom signals with bullish divergences and a falling wedge structure, which resulted in the historic surge to $10,500.
However, this push couldn’t close above the crucial $9,500 resistance area and caused the price to retrace further downwards to the yellow zone. This yellow zone is classified as a potential support area since it previously served as resistance.
BTC USD 12-hour chart. Source: TradingView
However, the price of Bitcoin is currently hanging on a few key levels. First, it’s the previous resistance area seen in October, which can become support if buyers step in here. But the price also retraced towards the golden ratio (0.618-0.65 Fibonacci level) of the whole upwards push from $7,300 to $10,500. This means that bulls must now step in to reverse the downward trend seen so far this month.
Macroview still showing a bullish trend
BTC USD weekly chart. Source: TradingView
This current market cycle is still showing many similarities with the previous one, i.e. a breakout from the bear market, causing the price to move from $3,100 to $13,900.
This parabolic move has led to a range-bound period and accumulation at higher levels suggesting that a breakout before the next halving is possible.
During the last few months, the same movements occurred as the $7,300 level was marked with similar bullish divergences. This also marked the “low range” of the range-bound period, marked green in the chart.
But does this mean further bullishness is warranted? No, because in the short-term, the price is retracing. However, this is a natural move for an asset that pushed 42% overnight on Oct. 25.
As long as the green area holds as support and the price is moving above the 100-Week MA and EMA, investors don’t have anything to worry about. In fact, a potential bullish cross of these two moving averages is likely to occur, which was also a bullish signal in the previous market cycle.
Total market cap copying the movements from February 2019?
Total crypto market capitalization daily chart. Source: Tradingview
This chart is showing a clear breakout of the cryptocurrency markets at the end of October, as the falling wedge broke upwards. The bullish divergences were similar to the breakout in December 2018, which marked the bottom of the bear market of 2018.
Right now, consolidation is needed and backtesting levels must flip to become support. As the chart shows, the red area around $220 billion must turn into support to continue the bullish trend.
Another similarity with February 2019 is that a significant retracement also occurred before continuing to the upside.
Smaller time frames show that downtrend remains
BTC USD 3-hour chart. Source: TradingView
Smaller time frames still show that the downtrend since Nov. 5 is still intact. Additionally, previous support levels are now becoming resistance.
For example, $9,050 was broken as support, which caused the price to drop to the next support level at $8,700. This leads to a retest of the previous support at $9,050, only to confirm that it flipped to become resistance.
In downtrends, this is a continuous movement and, unfortunately for the bulls, this is still occurring on the smaller timeframes.
Bullish scenario
BTC USD bullish scenario. Source: TradingView
Therefore, bulls must break out of this downtrend, preferably with a double bottom confirmation or bullish divergences. After that, a breakout above $8,700 is needed in order to flip that resistance level into new support.
The yellow zone is crucial here and needs to hold (as this is also the golden ratio), followed by a clearcut break of the $8,800 area, preferably with high volume.
Bearish scenario
BTC USD bearish scenario. Source: TradingView
Nevertheless, as short-term momentum is still favoring bears, a continuation of the downtrend is more likely to occur. In this regard, a few scenarios are possible for a bearish outlook, which both lead to the same lower level.
In the first scenario, the price is unable to break out of this short downtrend and falls below the yellow zone and golden ratio. A potential bounce upwards could then provide a short opportunity. However, testing the green area around $7,400 is most likely to occur in such a move.
BTC USD second bearish scenario. Source: TradingView
The second scenario has the same conclusion as the first one, but a different approach. Here, the price is able to break out of the downtrend but lacks volume and is not able to go beyond $8,700. Such a fakeout often leads to a sharp dump during which bounces will also provide some good opportunities for shorting.
The views and opinions expressed here are solely those of the author and do not necessarily reflect the views of Cointelegraph. Every investment and trading move involves risk. You should conduct your own research when making a decision.


Welcome to OmicsTIDE!
OmicsTIDE is a web-based application for the interactive exploration of trends in multi-omics data.


with the parent directory of the top-level package, and supplying names of one or more packages you want to document:% javadoc -d /home/html -sourcepath /home/src java.awt java.awt.event- Case 4 - Run from any directory on explicit packages in multiple directory trees - This is the same as case 3, but for packages in separate directory trees. Run javadoc supplying
-sourcepath
with the path to each tree's root (colon-separated) and supply names of one or more packages you want to document. All source files for a given package do not need to be located under a single root directory -- they just need to be found somewhere along the sourcepath.% javadoc -d /home/html -sourcepath /home/src1:/home/src2 java.awt java.awt.eventResult: All cases generate HTML-formatted documentation for the public and protected classes and interfaces in packages
java.awt
andjava.awt.event
and save the HTML files in the specified destination directory (/home/html
). Because two or more packages are being generated, the document has three HTML frames -- for the list of packages, the list of classes, and the main class pages.Documenting One or More Classes
The second way to run the Javadoc tool is by passing in one or more source files (
.java
). You can run javadoc either of the following two ways -- by changing directories (withcd
) or by fully-specifying the path to the.java
files. Relative paths are relative to the current directory. The-sourcepath
option is ignored when passing in source files. You can use command line wildcards, such as asterisk (*), to specify groups of classes.
- Case 1 - Changing to the source directory - Change to the directory holding the
.java
files. Then run javadoc, supplying names of one or more source files you want to document.% cd /home/src/java/awt % javadoc -d /home/html Button.java Canvas.java Graphics*.javaThis example generates HTML-formatted documentation for the classesButton
,Canvas
and classes beginning withGraphics
. Because source files rather than package names were passed in as arguments to javadoc, the document has two frames -- for the list of classes and the main page.- Case 2 - Changing to the package root directory - This is useful for documenting individual source files from different subpackages off the same root. Change to the package root directory, and supply the source files with paths from the root.
% cd /home/src/ % javadoc -d /home/html java/awt/Button.java java/applet/Applet.javaThis example generates HTML-formatted documentation for the classesButton
andApplet
.- Case 3 - From any directory - In this case, it doesn't matter what the current directory is. Run javadoc supplying the absolute path (or path relative to the current directory) to the
.java
files you want to document.% javadoc -d /home/html /home/src/java/awt/Button.java /home/src/java/awt/Graphics*.javaThis example generates HTML-formatted documentation for the classButton
and classes beginning withGraphics
.Documenting Both Packages and Classes
You can document entire packages and individual classes at the same time. Here's an example that mixes two of the previous examples. You can use
-sourcepath
for the path to the packages but not for the path to the individual classes.% javadoc -d /home/html -sourcepath /home/src java.awt /home/src/java/applet/Applet.javaThis example generates HTML-formatted documentation for the package
java.awt
and classApplet
. (The Javadoc tool determines the package name forApplet
from the package declaration, if any, in theApplet.java
source file.)
The Javadoc tool has many useful options, some of which are more commonly used than others. Here is effectively the command we use to run the Javadoc tool on the Java platform API. We use 180MB of memory to generate the documentation for the 1500 (approx.) public and protected classes in the Java 2 Platform, Standard Edition, v1.2.
The same example is shown twice -- first as executed on the command line, then as executed from a makefile. It uses absolute paths in the option arguments, which enables the same
javadoc
command to be run from any directory.Command Line Example
This command line example is over 900 characters, which is too long for some shells, such as DOS. You can use a command line argument file (or write a shell script) to workaround this limitation.
% javadoc -sourcepath /java/jdk/src/share/classes \ -overview /java/jdk/src/share/classes/overview.html \ -d /java/jdk/build/api \ -use \ -splitIndex \ -windowtitle 'Java 2 Platform 5.0 API Specification' \ -doctitle 'JavaTM 2 Platform 5.0 API Specification' \ -header 'Java 2 Platform
5.0' \ -bottom 'Submit a bug or feature

Java is a trademark or registered trademark of Sun Microsystems, Inc. in the US and other countries.
Copyright 1993-1999 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.' \ -group "Core Packages" "java.*:com.sun.java.*:org.omg.*" \ -group "Extension Packages" "javax.*" \ -J-Xmx180m \ @packageswhere
packages
is the name of a file containing the packages to process, such asjava.applet java.lang
. None of the options should contain any newline characters between the single quotes. (For example, if you copy and paste this example, delete the newline characters from the-bottom
option.) See the other notes listed below.Makefile Example
This is an example of a GNU makefile. For an example of a Windows makefile, see creating a makefile for Windows.
javadoc -sourcepath $(SRCDIR) \ /* Sets path for source files */ -overview $(SRCDIR)/overview.html \ /* Sets file for overview text */ -d /java/jdk/build/api \ /* Sets destination directory */ -use \ /* Adds "Use" files */ -splitIndex \ /* Splits index A-Z */ -windowtitle $(WINDOWTITLE) \ /* Adds a window title */ -doctitle $(DOCTITLE) \ /* Adds a doc title */ -header $(HEADER) \ /* Adds running header text */ -bottom $(BOTTOM) \ /* Adds text at bottom */ -group $(GROUPCORE) \ /* 1st subhead on overview page */ -group $(GROUPEXT) \ /* 2nd subhead on overview page */ -J-Xmx180m \ /* Sets memory to 180MB */ java.lang java.lang.reflect \ /* Sets packages to document */ java.util java.io java.net \ java.applet WINDOWTITLE = 'Java 2 Platform v1.2 API Specification' DOCTITLE = 'JavaTM 2 Platform v1.2 API Specification' HEADER = 'Java 2 Platform
v1.2' BOTTOM = 'Submit a bug or feature

Java is a trademark or registered trademark of Sun Microsystems, Inc. in the US and other countries.
Copyright 1993-1999 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.' GROUPCORE = '"Core Packages" "java.*:com.sun.java.*:org.omg.*"' GROUPEXT = '"Extension Packages" "javax.*"' SRCDIR = '/java/jdk/1.2/src/share/classes'Single quotes are used to surround makefile arguments.
NOTES
- If you omit the
-windowtitle
option, the Javadoc tool copies the doc title to the window title. The-windowtitle
text is basically the same as the-doctitle
but without HTML tags, to prevent those tags from appearing as raw text in the window title.- If you omit the
-footer
option, as done here, the Javadoc tool copies the header text to the footer.- Other important options you might want to use but not needed in this example are -
classpath
and -link
.
General Troubleshooting
- Javadoc FAQ - Commonly-encountered bugs and troubleshooting tips can be found on the Javadoc FAQ
- Bugs and Limitations - You can also see some bugs listed at Important Bug Fixes and Changes.
- Version number - See version numbers.
- Documents only legal classes - When documenting a package, javadoc only reads files whose names are composed of legal class names. You can prevent javadoc from parsing a file by including, for example, a hyphen "-" in its filename.
Errors and Warnings
Error and warning messages contain the filename and line number to the declaration line rather than to the particular line in the doc comment.
"error: cannot read: Class1.java"
the Javadoc tool is trying to load the class Class1.java in the current directory. The class name is shown with its path (absolute or relative), which in this case is the same as./Class1.java
.
CLASSPATH
- Environment variable that provides the path which javadoc uses to find user class files. This environment variable is overridden by the
-classpath
option. Separate directories with a colon, for example:- .:/home/classes:/usr/local/java/classes
Javadoc is a trademark of Sun Microsystems, Inc.
(The javadoc
command itself does not require the
trademark symbol.)
Copyright © 1993, 2011, Oracle and/or its affiliates. All rights reserved. Please send comments using this Feedback page. |
Java Technology |


Ongoing Achievements
14%
M
T
W
T
F
S
S
You have 65% more to
reach your next acheivement
reach your next acheivement
0%
M
T
W
T
F
S
S
Scan your QR code to
start the achievement
start the achievement
Upcoming Achievements
Spend Rs.1500 & Get Rs.500 off
Order Daily and Get Promos
Spend Rs.500 & Get Rs.150 off
Order Weekly and Get Promos


open all
|
close all
Generated by
CHM Decoder
Need you translate this to other language?
Get
CHM Editor
Now!


sldtoppm(1) sldtoppm(1) NAME sldtoppm - convert an AutoCAD slide file into a portable pixmap SYNOPSIS sldtoppm [-adjust] [-dir] [-height|-ysize s] [-info] [-lib|-Lib name] [-scale s] [-verbose] [-width|-xsize s] [slidefile] DESCRIPTION Reads an AutoCAD® slide file and outputs a portable pixmap. If no slide‐ file is specified, input is read from standard input. The ppmdraw library is used to convert the vector and polygon information in the slide file to a pixmap; see the file ppmdraw.h for details on this pack‐ age. OPTIONS -adjust If the display on which the slide file was created had non-square pixels, when the slide is processed with sldtoppm and the -adjust option is not present, the following warning will appear: Warning - pixels on source screen were non-square. Specifying -adjust will correct image width to compensate. Specifying the -adjust option causes sldtoppm to scale the width of the image so that pixels in the resulting portable pixmap are square (and hence circles appear as true circles, not ellipses). The scaling is performed in the vector domain, before scan con‐ verting the objects. The results are, therefore, superior in appearance to what you'd obtain were you to perform the equivalent scaling with pnmscale after the bitmap had been created. -dir The input is assumed to be an AutoCAD slide library file. A directory listing each slide in the library is printed on standard error. -height size Scales the image in the vector domain so it is size pixels in height. If no -width or -xsize option is specified, the width will be adjusted to preserve the pixel aspect ratio. -info Dump the slide file header on standard error, displaying the orig‐ inal screen size and aspect ratio among other information. -lib name Extracts the slide with the given name from the slide library given as input. The specified name is converted to upper case. -Lib name Extracts the slide with the given name from the slide library given as input. The name is used exactly as specified; it is not converted to upper case. -scale s Scales the image by factor s, which may be any floating point value greater than zero. Scaling is done after aspect ratio adjustment, if any. Since scaling is performed in the vector domain, before rasterisation, the results look much better than running the output of sldtoppm through pnmscale. -verbose Dumps the slide file header and lists every vector and polygon in the file on standard error. -width size Scales the image in the vector domain so it is size pixels wide. If no -height or -ysize option is specified, the height will be adjusted to preserve the pixel aspect ratio. -xsize size Scales the image in the vector domain so it is size pixels wide. If no -height or -ysize option is specified, the height will be adjusted to preserve the pixel aspect ratio. -ysize size Scales the image in the vector domain so it is size pixels in height. If no -width or -xsize option is specified, the width will be adjusted to preserve the pixel aspect ratio. All flags can be abbreviated to their shortest unique prefix. BUGS Only Level 2 slides are converted. Level 1 format has been obsolete since the advent of AutoCAD Release 9 in 1987, and was not portable across machine architectures. Slide library items with names containing 8 bit (such as ISO) or 16 bit (Kanji, for example) characters may not be found when chosen with the -lib option unless sldtoppm has been built with character set conversion functions appropriate to the locale. You can always retrieve slides from libraries regardless of the character set by using the -Lib option and specifying the precise name of library member. Use the -dir option to list the slides in a library if you're unsure of the exact name. SEE ALSO AutoCAD Reference Manual: Slide File Format, pnmscale(1), ppm(5) AUTHOR John Walker Autodesk SA Avenue des Champs-Montants 14b CH-2074 MARIN Suisse/Schweiz/Svizzera/Svizra/Switzerland Usenet<EMAIL_ADDRESS>Fax: 038/33 88 15 Voice: 038/33 76 33 Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, without any conditions or restrictions. This software is provided ``as is'' without express or implied warranty. AutoCAD and Autodesk are registered trademarks of Autodesk, Inc. 10 October 1991 sldtoppm(1)


This service hosts the Ranger Incident Management System (IMS).
Web Interface
Create a new incident report
Events:


Preparation time
over 2 hours
Cooking time
10 to 30 mins
Serves
Serves 4
This makes an impressive prepare-ahead dinner party recipe. Have the parfait and chutney ready and you just need to make the melba toast at the last-minute.
For the chicken liver parfait, line a loaf tin with cling film.
Heat one tablespoon of the butter in a frying pan over a medium heat. When the butter is foaming, add the chicken livers. Fry for 1-2 minutes, or until just golden-brown.
Add the garlic, thyme and Madeira. Fry the chicken livers in the mixture for a further 1-2 minutes.
Transfer the mixture to a food processor, add the remaining butter and blend to a smooth paste. Season, to taste, with salt and freshly ground black pepper.
Spoon the parfait mixture into the lined loaf tin, pour over the clarified butter and top with the chives. Chill in the fridge for at least three hours, or until set.
For the shallot chutney, place the butter in a large frying pan and heat until melted. Add the shallots, cover and cook on a low heat until the shallots have softened and caramelised.
Add the sugar, thyme and vinegar and cook for a further 10 minutes.
For the melba toast, preheat the grill to its highest setting.
Place four of the slices of bread onto a baking tray and toast for 1-2 minutes on each side, or until crisp and golden-brown on both sides.
Slice the toast horizontally and return the toast to the baking tray, soft-sides facing upwards. Grill for 1-2 minutes, or until crisp and golden-brown.
Repeat the process with the remaining four slices of bread. Cut each slice of Melba toast into four triangles.
To serve, place a quenelle (or a slice) of parfait onto each of four plates and serve with the chutney and melba toast. Garnish with basil cress.


Copyright (c) 2006-2010: Nagler & Company
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
 IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
This is the holiday server. It provides a generic interface to a holiday calender for multiple users. Communication is done via an abstract interface, currently using NC::SocketServer. See the man page holiday for further details. Some features regarding production environments have been removed, but the code is the same.
This is the original imlementation. Thanks to Asmus Löwenhaupt, it had been a pleasure to setup this and use it for teaching software development and code versioning with you.
All the implementations in different languages are derived from this one. Therefore this one has least features, does not support command line arguments, etc.
Loads currently saved holiday calenders for all users.
Save currently held holiday calenders for all users
Currently a socket interface at the port chosen in the config file is used to access the holiday server. Communication is done by providing a line in this format:
Command|Arg1|Arg2
terminated with CR LF
. Result data sets are provided in the format
Par1|Par2|...
Results vary from zero to many lines of output. See the specification of NC::ServerSocket for technical protocol details.
Returns holiday calender for the given user.
Returns holiday calender for all users. See getu
for details. This adds
a first return parameter containing the user name.
Add/change holiday for a given user with a given first holiday date.
Returns one return line containing either an empty string or the error message.
Delete holiday for a given user with a given first holiday date.
Returns one return line containing either an empty string or the error message.
Requests holiday server to terminate, saving all holidays.
Returns one line either containing an error message or Done
.
Add user with the given group to the system. This is only allowed via privileged connections.
Returns one return line containing either an empty string or the error message.
Thorsten Rangwich (written for Nagler & Company, modified afterwards).
See file LICENSE for details.


Register
Please fill this fields... blah blah
Username
(max. 15 characters)
E-mail address
(
must
be valid)
Password
Screen name (optional)
Home page
Required information
Optional personal information


--- name: home.course-detail url: courses/detail/:id controller: CoursesCtrl as vm ---
You are not logged in.
Title:
Full name:
Term:


When I first opened Arizona's website it was very engaging right away. the images that you first see and the background of the website make it look like they spent a lot of time making this website look presentable. The website is also compatible with cell phone usage so that is another bonus.
When I go to click on the tabs, the margins are wide enough that you would be able to click the tabs while using a cell phone.
The design of the website looks good and the colors and images on each page make the website pop.
The website is easy to navigate through and isn't confusing to find where you want to go. The tabs at the top are pretty straight forward with the common things people search on state websites.
The coding looks more organized than most and looks fairly easy to navigate through if you were trying to find where to add things or fix things.
Overall, I really like this website and think if I was trying to find something and look up things in Arizona and what they can offer, I would be very pleased.


[gecode-users] Constraint graph available?
Mikael 'Zayenz' Lagerkvist
zayenz at gmail.com
Fri May 12 08:10:13 CEST 2006
Hi,
In addition to Grégoire's comments, I would like to add the following.
If you would extract a constraint graph from a Space, your example
would not be binary, since you use a distinct-constraint. This mean
that you would also have to transform the graph semantically to
account for the fact that distinct represents a clique of not-equals,
if you want a binary graph.
However, there is one piece of information about the constraint-graph
that is exposed. Using the degree()-member of an IntVar variable will
return the number of constraints that subscribe to this variable. This
is used for the variable selection strategies BVAR_DEGREE_MIN and
BVAR_DEGREEE_MAX for branching on IntVar's.
Cheers
Mikael
On 5/11/06, Martin Mann <mmann at informatik.uni-freiburg.de> wrote:
>
> I would like to use the structure of the constraint graph in my search
> strategy.
> The constraint graph will be binary and the whole CSP will be formulated
> with binary constraints.
>
> Is it possible to get a list of all NOT entailed constraints of a
> Gecode::Space? Or an other way to access this data without managing and
> updating an additional contraint graph in the space via adjacency list etc?
>
>
>
> In addition I would like to know if it's possible to insert a contraint
> X and hinder X to propagate. The propagation should be done by
> constraint Y and X only used to test if X is entailed or not. For example:
> 3 vars A,B,C
> 1 distinct (ABC) with ICL_DOM for full propagation
> 2 neq constraints (AB) (BC)
>
> (AB) and (BC) are included in (ABC), so they dont have to propagate.
> i want to use (AB) and (BC) to test if this variables are not equal or not.
> Or can I ask the global constraint (ABC) directly?
>
> Seems to be my week of questions.. ;)
> Hope you dont get bored!
>
> Thanks for answers
>
> Martin
>
>
> _______________________________________________
> Gecode users mailing list
> users at gecode.org
> https://www.gecode.org/mailman/listinfo/gecode-users
>
--
Mikael 'Zayenz' Lagerkvist, http://www.ict.kth.se/~zayenz/
More information about the gecode-users
mailing list


|
|
def | __init__ |
| |
|
def | entity_size |
| |
|
def | entity_list |
| |
|
def | entity |
| |
|
def | mutable_entity |
| |
|
def | add_entity |
| |
|
def | clear_entity |
| |
|
def | deferred_size |
| |
|
def | deferred_list |
| |
|
def | deferred |
| |
|
def | mutable_deferred |
| |
|
def | add_deferred |
| |
|
def | clear_deferred |
| |
|
def | in_order |
| |
|
def | set_in_order |
| |
|
def | clear_in_order |
| |
|
def | has_in_order |
| |
|
def | MergeFrom |
| |
|
def | Equals |
| |
|
def | IsInitialized |
| |
|
def | ByteSize |
| |
|
def | ByteSizePartial |
| |
|
def | Clear |
| |
|
def | OutputUnchecked |
| |
|
def | OutputPartial |
| |
|
def | TryMerge |
| |
|
def | __str__ |
| |
|
|
| entity_ |
| |
|
| deferred_ |
| |
|
| has_in_order_ |
| |
|
| in_order_ |
| |
|
|
int | has_in_order_ = 0 |
| |
|
int | in_order_ = 1 |
| |
|
int | kEntityGroup = 1 |
| |
|
int | kEntityentity = 2 |
| |
|
int | kEntitykey = 4 |
| |
|
int | kEntityversion = 3 |
| |
|
int | kdeferred = 5 |
| |
|
int | kin_order = 6 |
| |
The documentation for this class was generated from the following file:
- code/googleappengine-read-only/python/google/appengine/datastore/datastore_v3_pb.py


In this project, you'll use generative adversarial networks to generate new images of faces.
You'll be using two datasets in this project:
Since the celebA dataset is complex and you're doing GANs in a project for the first time, we want you to test your neural network on MNIST before CelebA. Running the GANs on MNIST will allow you to see how well your model trains sooner.
If you're using FloydHub, set data_dir
to "/input" and use the FloydHub data ID "R5KrjnANiKVhLWAkpXhNBe".
data_dir = './data'
# FloydHub - Use with data ID "R5KrjnANiKVhLWAkpXhNBe"
#data_dir = '/input'
"""
DON'T MODIFY ANYTHING IN THIS CELL
"""
import helper
helper.download_extract('mnist', data_dir)
helper.download_extract('celeba', data_dir)
show_n_images = 25
"""
DON'T MODIFY ANYTHING IN THIS CELL
"""
%matplotlib inline
import os
from glob import glob
from matplotlib import pyplot
mnist_images = helper.get_batch(glob(os.path.join(data_dir, 'mnist/*.jpg'))[:show_n_images], 28, 28, 'L')
pyplot.imshow(helper.images_square_grid(mnist_images, 'L'), cmap='gray')
The CelebFaces Attributes Dataset (CelebA) dataset contains over 200,000 celebrity images with annotations. Since you're going to be generating faces, you won't need the annotations. You can view the first number of examples by changing show_n_images
.
show_n_images = 25
"""
DON'T MODIFY ANYTHING IN THIS CELL
"""
mnist_images = helper.get_batch(glob(os.path.join(data_dir, 'img_align_celeba/*.jpg'))[:show_n_images], 28, 28, 'RGB')
pyplot.imshow(helper.images_square_grid(mnist_images, 'RGB'))
Since the project's main focus is on building the GANs, we'll preprocess the data for you. The values of the MNIST and CelebA dataset will be in the range of -0.5 to 0.5 of 28x28 dimensional images. The CelebA images will be cropped to remove parts of the image that don't include a face, then resized down to 28x28.

You'll build the components necessary to build a GANs by implementing the following functions below:
model_inputs
discriminator
generator
model_loss
model_opt
train
This will check to make sure you have the correct version of TensorFlow and access to a GPU
"""
DON'T MODIFY ANYTHING IN THIS CELL
"""
from distutils.version import LooseVersion
import warnings
import tensorflow as tf
# Check TensorFlow Version
assert LooseVersion(tf.__version__) >= LooseVersion('1.0'), 'Please use TensorFlow version 1.0 or newer. You are using {}'.format(tf.__version__)
print('TensorFlow Version: {}'.format(tf.__version__))
# Check for a GPU
if not tf.test.gpu_device_name():
warnings.warn('No GPU found. Please use a GPU to train your neural network.')
else:
print('Default GPU Device: {}'.format(tf.test.gpu_device_name()))
Implement the model_inputs
function to create TF Placeholders for the Neural Network. It should create the following placeholders:
image_width
, image_height
, and image_channels
.z_dim
.Return the placeholders in the following the tuple (tensor of real input images, tensor of z data)
import problem_unittests as tests
def model_inputs(image_width, image_height, image_channels, z_dim):
"""
Create the model inputs
:param image_width: The input image width
:param image_height: The input image height
:param image_channels: The number of image channels
:param z_dim: The dimension of Z
:return: Tuple of (tensor of real input images, tensor of z data, learning rate)
"""
inputs_real = tf.placeholder(tf.float32, (None, image_width,
image_height,
image_channels), name='input_real')
inputs_z = tf.placeholder(tf.float32, (None, z_dim), name='input_z')
learning_rate = tf.placeholder(tf.float32, None, name='learning_rate')
return inputs_real, inputs_z, learning_rate
"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
tests.test_model_inputs(model_inputs)
Implement discriminator
to create a discriminator neural network that discriminates on images
. This function should be able to reuse the variables in the neural network. Use tf.variable_scope
with a scope name of "discriminator" to allow the variables to be reused. The function should return a tuple of (tensor output of the discriminator, tensor logits of the discriminator).
def discriminator(images, reuse=False, alpha=0.2):
"""
Create the discriminator network
:param images: Tensor of input image(s)
:param reuse: Boolean if the weights should be reused
:return: Tuple of (tensor output of the discriminator, tensor logits of the discriminator)
"""
with tf.variable_scope('discriminator', reuse=reuse):
# Input layer is 28x28x3
x1 = tf.layers.conv2d(images, 128, 5, strides=2, padding='same')
bn1 = tf.layers.batch_normalization(x1, training=True)
relu1 = tf.maximum(alpha * bn1, bn1)
# 14x14x128
x2 = tf.layers.conv2d(relu1, 256, 5, strides=2, padding='same')
bn2 = tf.layers.batch_normalization(x2, training=True)
relu2 = tf.maximum(alpha * bn2, bn2)
# 7x7x256
# Flatten it
flat = tf.reshape(relu2, (-1, 7*7*256))
logits = tf.layers.dense(flat, 1)
out = tf.sigmoid(logits)
return out, logits
"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
tests.test_discriminator(discriminator, tf)
Implement generator
to generate an image using z
. This function should be able to reuse the variables in the neural network. Use tf.variable_scope
with a scope name of "generator" to allow the variables to be reused. The function should return the generated 28 x 28 x out_channel_dim
images.
def generator(z, out_channel_dim, is_train=True, alpha=0.2):
"""
Create the generator network
:param z: Input z
:param out_channel_dim: The number of channels in the output image
:param is_train: Boolean if generator is being used for training
:return: The tensor output of the generator
"""
with tf.variable_scope('generator', reuse= not is_train):
# First fully connected layer
x1 = tf.layers.dense(z, 7*7*512)
# Reshape it to start the convolutional stack
x1 = tf.reshape(x1, (-1, 7, 7, 512))
x1 = tf.layers.batch_normalization(x1, training=is_train)
x1 = tf.maximum(alpha * x1, x1)
# 7x7x512 now
x2 = tf.layers.conv2d_transpose(x1, 256, 5, strides=2, padding='same')
x2 = tf.layers.batch_normalization(x2, training=is_train)
x2 = tf.maximum(alpha * x2, x2)
# 14x14x256 now
x3 = tf.layers.conv2d_transpose(x2, 128, 5, strides=2, padding='same')
x3 = tf.layers.batch_normalization(x3, training=is_train)
x3 = tf.maximum(alpha * x3, x3)
# 28x28x128 now
# Output layer
logits = tf.layers.conv2d_transpose(x3, out_channel_dim, 5, strides=1, padding='same')
# 28x28x3 now
out = tf.tanh(logits)
return out
"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
tests.test_generator(generator, tf)
Implement model_loss
to build the GANs for training and calculate the loss. The function should return a tuple of (discriminator loss, generator loss).  Use tf.trainable_variables
to get all the trainable variables. Filter the variables with names that are in the discriminator and generator scope names. The function should return a tuple of (discriminator training operation, generator training operation).
def model_opt(d_loss, g_loss, learning_rate, beta1):
"""
Get optimization operations
:param d_loss: Discriminator loss Tensor
:param g_loss: Generator loss Tensor
:param learning_rate: Learning Rate Placeholder
:param beta1: The exponential decay rate for the 1st moment in the optimizer
:return: A tuple of (discriminator training operation, generator training operation)
"""
# Get weights and bias to update
t_vars = tf.trainable_variables()
d_vars = [var for var in t_vars if var.name.startswith('discriminator')]
g_vars = [var for var in t_vars if var.name.startswith('generator')]
# Optimize
with tf.control_dependencies(tf.get_collection(tf.GraphKeys.UPDATE_OPS)):
d_train_opt = tf.train.AdamOptimizer(learning_rate, beta1=beta1).minimize(d_loss, var_list=d_vars)
g_train_opt = tf.train.AdamOptimizer(learning_rate, beta1=beta1).minimize(g_loss, var_list=g_vars)
return d_train_opt, g_train_opt
"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
tests.test_model_opt(model_opt, tf)
"""
DON'T MODIFY ANYTHING IN THIS CELL
"""
import numpy as np
def show_generator_output(sess, n_images, input_z, out_channel_dim, image_mode):
"""
Show example output for the generator
:param sess: TensorFlow session
:param n_images: Number of Images to display
:param input_z: Input Z Tensor
:param out_channel_dim: The number of channels in the output image
:param image_mode: The mode to use for images ("RGB" or "L")
"""
cmap = None if image_mode == 'RGB' else 'gray'
z_dim = input_z.get_shape().as_list()[-1]
example_z = np.random.uniform(-1, 1, size=[n_images, z_dim])
samples = sess.run(
generator(input_z, out_channel_dim, False),
feed_dict={input_z: example_z})
images_grid = helper.images_square_grid(samples, image_mode)
pyplot.imshow(images_grid, cmap=cmap)
pyplot.show()
Implement train
to build and train the GANs. Use the following functions you implemented:
model_inputs(image_width, image_height, image_channels, z_dim)
model_loss(input_real, input_z, out_channel_dim)
model_opt(d_loss, g_loss, learning_rate, beta1)
Use the show_generator_output
to show generator
output while you train. Running show_generator_output
for every batch will drastically increase training time and increase the size of the notebook. It's recommended to print the generator
output every 100 batches.
class GAN:
def __init__(self, image_h, image_w, image_ch, z_size, learning_rate, alpha=0.2, beta1=0.5):
tf.reset_default_graph()
self.input_real, self.input_z, lr = model_inputs(image_h, image_w, image_ch, z_size)
self.d_loss, self.g_loss = model_loss(self.input_real, self.input_z, image_ch, alpha=alpha)
self.d_opt, self.g_opt = model_opt(self.d_loss, self.g_loss, learning_rate, beta1)
def scale(x):
x *= 2
return x
def train(epoch_count, batch_size, z_dim, learning_rate, beta1, get_batches, data_shape, data_image_mode):
"""
Train the GAN
:param epoch_count: Number of epochs
:param batch_size: Batch Size
:param z_dim: Z dimension
:param learning_rate: Learning Rate
:param beta1: The exponential decay rate for the 1st moment in the optimizer
:param get_batches: Function to get batches
:param data_shape: Shape of the data
:param data_image_mode: The image mode to use for images ("RGB" or "L")
"""
steps = 0
print_every = 10
show_every = 100
# extract image format
image_h = data_shape[1]
image_w = data_shape[2]
image_ch = 1
if data_image_mode == "RGB":
image_ch = 3
losses = []
alpha = 0.2
# Init the net
net = GAN(image_h, image_w, image_ch, z_dim, learning_rate, alpha=alpha, beta1=beta1)
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
for epoch_i in range(epoch_count):
for batch_images in get_batches(batch_size):
steps += 1
# scaling up to [-1,1] range
batch_images = scale(batch_images)
#print(batch_images[0])
# Sample random noise for G
batch_z = np.random.uniform(-1, 1, size=(batch_size, z_dim))
# Run optimizers
_ = sess.run(net.d_opt, feed_dict={net.input_real: batch_images, net.input_z: batch_z})
_ = sess.run(net.g_opt, feed_dict={net.input_z: batch_z, net.input_real: batch_images})
if steps % print_every == 0:
# At the end of each epoch, get the losses and print them out
train_loss_d = net.d_loss.eval({net.input_z: batch_z, net.input_real: batch_images})
train_loss_g = net.g_loss.eval({net.input_z: batch_z})
print("Epoch {}/{}...".format(epoch_i+1, epochs),
"Discriminator Loss: {:.4f}...".format(train_loss_d),
"Generator Loss: {:.4f}".format(train_loss_g))
# Save losses to view after training
losses.append((train_loss_d, train_loss_g))
if steps % show_every == 0:
show_generator_output(sess, 16, net.input_z, image_ch, data_image_mode)
# Show final
show_generator_output(sess, 32, net.input_z, image_ch, data_image_mode)
# print the losses
ax = pyplot.subplots()
losses = np.array(losses)
pyplot.plot(losses.T[0], label='Discriminator', alpha=0.5)
pyplot.plot(losses.T[1], label='Generator', alpha=0.5)
pyplot.title("Training Losses")
pyplot.legend()
print('done.')
Test your GANs architecture on MNIST. After 2 epochs, the GANs should be able to generate images that look like handwritten digits. Make sure the loss of the generator is lower than the loss of the discriminator or close to 0.
batch_size = 32
z_dim = 100
learning_rate = 0.0005
beta1 = 0.4
"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
epochs = 2
mnist_dataset = helper.Dataset('mnist', glob(os.path.join(data_dir, 'mnist/*.jpg')))
with tf.Graph().as_default():
train(epochs, batch_size, z_dim, learning_rate, beta1, mnist_dataset.get_batches,
mnist_dataset.shape, mnist_dataset.image_mode)
Run your GANs on CelebA. It will take around 20 minutes on the average GPU to run one epoch. You can run the whole epoch or stop when it starts to generate realistic faces.
batch_size = 32
z_dim = 200
learning_rate = 0.0005
beta1 = 0.6
"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
epochs = 1
celeba_dataset = helper.Dataset('celeba', glob(os.path.join(data_dir, 'img_align_celeba/*.jpg')))
with tf.Graph().as_default():
train(epochs, batch_size, z_dim, learning_rate, beta1, celeba_dataset.get_batches,
celeba_dataset.shape, celeba_dataset.image_mode)
When submitting this project, make sure to run all the cells before saving the notebook. Save the notebook file as "dlnd_face_generation.ipynb" and save it as a HTML file under "File" -> "Download as". Include the "helper.py" and "problem_unittests.py" files in your submission.


mating genes locus gene partita using reads type gametologs Ulva scaffolds gametes sequences green sex types Chlamydomonas chromosomes expression values (Supplementary data evolution haploid Volvox Table genomic individual type-specific (Fig. Supplementary analysis DNA RWP-RK diploid identified loci species used {border-style genome containing long molecular performed px;} #ffffff;} autosomal gametogenesis substitution Fig. RNA-seq gametophytes regions similar transposable protein showed MTS genes, method shown Evolution RWP addition, alga analyses cells low mapped proteins strains (). MGEC- MID SDR determination life maximum-likelihood motifs rates Molecular amino chromosome evolutionary highly locus, nucleotide obtained respectively. results scaffold structure types, (mt CDSs PacBio SDRs based classified codon cycle determined different domain-containing elements higher indicate levels locus. organisms phase region synonymous . ± . Biology Tables conserved dN/dS degeneration gametolog level phylogeny suggesting systems ./j.-...x Chlamydomonas, Genetics Gonium PCR Plant accumulation acid defined encoding gamete indicated model non-synonymous progeny px; ratio ratios selection suggest usage {font-family (ver. Illumina Neurospora Phycology RNA approximate assembled changes chromosomes. compressa differences expected font-size gametogenesis. gametophytes, genetic mRNA method. models multicellular mutations neighboring numbers opposite order partita, partita. reinhardtii seaweed sequencing small structures types. unicellular variants visualized (Ulvales, FPKM Genome Genomic MIDs Marchantia Thus, Volvocales [], comparison differentiation distances distinct double; early estimated fragments functions gametophyte generated genomes high identified. including length lengths located occurs patterns phylogenetic positions provide read resulting sets shows significantly splicing total °C, (#, (MT) ./j.-..tb.x . Gb Charlesworth Current Figure Finally, HMTS Hiraoka However, Japanese Mating Microbotryum Nature Sci Sciences, University accession algal aligned alignment border-color border-width calculated collected compare compared contained cycles database domain extracted factor gametologs, genes. history homologous induction isomorphic liverwort locus/SDR lower male mated meiosis particular plant plotted population previously program putative reads, recombination scaffolds, short size sizes solid; stage successive terms zoospores {font-style {font-weight .%, .), ./genetics.. ./j.cub... BLAST BLASTX Bioinformatics Bootstrap Chlorophyta) Coccomyxa Commons Comparison Creative Ectocarpus Ectocarpus, Expression Graduate K.I. Kit MIDs, Mean Micromonas Motif National Phylogenetic School Science Suzuki UpaRWP XY/ZW Zhang according accurate adjacent algae allelic areas assemblies assembly asymmetry bars bias bold brown chromosomes, clade clades constructed contain content courier; culture cultured default deleterious denaturation determine develops difference differentiate domain, element em; end examined expansion exposed female gametes. gametophytes. genomes, hand, haploid-diploid harbored homology identify included increased induced information isolated known larger library light line, linkage loci, loci. material methods motif moving multicellularity organisms. ortholog orthologs outside package phases position predicted present prolonged pt;} purifying rearrangement regulation related relaxed repeats reported reproduction respectively respectively, revealed reveals selection, sequenced sex-determining sexual sporophyte sporophytes statistical strains. studies study substitutions suggests sum sums surrounding systems, time total, transcription unique vegetative


AngularJS-CRUD-PHP named release by Semantic Versioning 2.0.0, it is a x.y.z version pattern.
Latest Version
Release
Release is a more stable version that completed the testing which include all minified code and docs. Recommended for who start using AngularJS-CRUD-PHP on development.
Include testing version of the new features, original source with unminified lines of code and docs. Recommended for who would like to improve or contribute on the source code.