HackInTheNorth is the annual Hackathon organized at Indian Institute of Information Technology, Allahabad. It is one of the largest student-organized hackathons in India.
Who runs Hack In The North?
Hack In The North is run by students of IIIT Allahabad.
Yes.You can either apply individually or as a team of two(2) to four(4). For those applying individually,we will have a session where you can form your team for the event. Team applications won't be considered individually.
How and when will I hear back?
We would start shortlisting the candidates from mid January. You will get a mail from us if you get shortlisted.
If you are enrolled in a high school or university, or if you left univeristy during the current year, you are good to go!!
Laptop, Charger and Change of clothes. If you want to hack on Arduino, PI, Oculus Rift or any other hardware we recommend you to bring that too if you have one. You won't need food or drinks; we've got you covered there.
What do people normally make?
You can make anything you like. Most of the hacks revolve around web or phone apps, or working with hardware.
What are you looking for in an application?
Above anything else -- passion . Tell us what you care about, what excites you. We want to know what'll drive you to start and continue hacking, whether it's your first time or your fifteenth. If there's something about you that stands out from the "typical" hacker, we'd love to hear about that, too!
How to reach IIIT Allahabad?
Allahabad is well connected to all major cities of India by Train. There is also a domestic airport in Allahabad which have daily serice to Delhi. Varansi International Airport is 3 hour drive from Allahabad while Lucknow International Airport is 5 hour away.
What if my teammates opted for individual registration,but some have been selected while some not?
You can email us to reconsider such applications.But please note that the decision of our registration team will stand final.
What is the criteria for selection of a team?
We will select a team if atleast 50% of the members of any team would have qualified for the hackathon had they applied individually.
Do you provide any travel reimbursements for the event?
Not quite. But in certain cases where we find the profile of a developer/team to be extra-ordinary,we may consider it again.In any case,we will need valid proof that you cannot afford travelling to Allahabad.Contact us in such a case.
When am I expected to reach Allahabad?
Hack In The North is a 36-hour hackathon that will start on 23rd of March,2017 at 11:59 PM. You are expected to reach us latest by 23rd March,5:00 PM as there will be an orientation and session for team-formation before the hackathon starts.
How much does it cost to attend?
Zero. HackInTheNorth is free for everyone. We won't charge you anything.


In POSIX sh, printf %q
is undefined.
(or "In dash, ... is not supported." when using dash
)
ssh host "cat $(printf "%q" "$remotefile")"
There is not really a good, built-in way to escape a string for a remote shell in POSIX sh. However, you can replace each '
in the input with '\''
and then wrap the whole results in single quotes:
escape() { printf "'%s'\\n" "$(printf '%s' "$1" | sed -e "s/'/'\\\\''/g")"; }
ssh host "cat $(escape "$remotefile")"
Alternatively, switch to a shell that does support printf %q
like ksh
or bash
.
printf %q
is a bash and ksh extension. It's not supported on POSIX sh or dash.
If the command is gated by a check for the correct shell, you can [[ignore]] this warning.


Registration successful
You have successfully registered. To activate Your account check your Email and confirm your registration


Web Developer | Graphic Designer
|
3868686416
|
<EMAIL_ADDRESS>About
Me
Overview
Webdeveloper located in Daytona Beach, FL. Specialized in responsive web development with over 4 years of experience in the field.
Skills
Proficiency in Adobe Photoshop, HTML & CSS, JavaScript & jQuery, SASS, Git VCS, responsive web development, WordPress and Boostrap.
Mission
My main mission is to provide excellent web development and graphic design services.


Neuroscience Lab Meeting
@ Lattimore 256
·
Neurochemical Foundations of Behavior
The theories of borgeuoise republics and their images depicted in the media are poor representations of the entire domestic culture. The theories of borgeuoise republics and their images depicted in the media are poor representations of the entire domestic culture


OxygenOS 10.0.6 rolling out for OnePlus 7T, 7T Pro gets OxygenOS 10.0.4
by Damien WildeOxygenOS 10.0.6 is now rolling out for the superb OnePlus 7T while the OnePlus 7T Pro is now receiving OxygenOS 10.0.4 with both updates providing various bug fixes and enhancements for the latest ‘flagship killers’.
Both updates were officially confirmed over on the official OnePlus forums with the OnePlus 7T Pro receiving the most attention in terms of enhancements and improvements. OxygenOS 10.0.4 brings the October 2019 security patch, optimizes power consumption, and fixes the black bar issue when charging or playing videos, among other tweaks.
As for the more widely available OnePlus 7T, the OxygenOS 10.0.6 OTA update fixes some performance and power-related issues. Standby power consumption has been optimized, while Bluetooth connectivity when using in-car entertainment systems is also improved. The expanded screenshot feature has also been tweaked for better overall performance.
OxygenOS 10.0.4 for the OnePlus 7T
-
System
- Optimized standby power consumption
- Improved system stability and general bug fixes
- Optimized the Bluetooth connectivity in automobiles
- Optimized the expanded screenshot feature
OxygenOS 10.0.6 for the OnePlus 7T Pro
-
System
- Optimized standby power consumption
- Improved system stability and general bug fixes
- Updated Android security patch to 2019.10
- Fixed the black bar issue while charging or playing a video
- Optimized the Bluetooth connectivity in automobiles
- Optimized the expanded screenshot feature
As these are both incremental updates, we didn’t expect any major inclusions or enhancements. That said, the regularity of updates and fixes is great for those that have picked up either OnePlus flagship.
Expect to see the OxygenOS 10.0.6 and 10.0.4 updates rolling out over the coming days and weeks depending on your region. If you simply cannot wait, you may want to try flashing the OTA update files using Oxygen Updater.
More on OnePlus:
- OnePlus Care app could come to North America in late November
- The OnePlus 7 Pro 5G won’t get Android 10 until Q1 2020
- OnePlus seeking beta testers for the OxygenOS Zen Mode mindfulness app
FTC: We use income earning auto affiliate links. More.


Agriculture is the essence of life and symbolises nature and has cultural implications too! We are here to discover the cultural blend of crops which people across the world consumes most!!


(click here for a full screen image)
The latest versions of this code can be obtained from my GitHub account here."In the beginning of creation, when Marc made the website, the website was without form and void, with darkness over the face of the HTML, and a mighty script that swept over the surface of the IDE. Marc said, 'Let there be a database spider UI', and there was a database spider UI; and Marc saw that the UI was good, and he separated primary keys from foreign keys. He called the foreign keys parent/child relationships, and the darkness Ruby on Rails. So evening came, and morning came, the first day."
I've been wanting to create a database navigator, what a friend of mine termed a "Spider UI", for quite some time now. I originally wrote an implementation in WinForms for an Oracle database but that never went as far as I wanted it to go. Currently, I'm working a lot with Ruby on Rails and also encountered a couple layers called Slim ("a lightweight templating engine") and Sass ("Syntactically Awesome Style Sheets") in another project. Wanting to learn more about how Slim and Sass work together, I came up with this project idea. In its full glory, I'm wanting to add all sorts of interesting features, such as custom layout for editing, but first, I wanted to get some basic functionality in place first.
Internally, the website must support:
The user interface must support:
What I'm leaving for "Day 2" are several metadata features:
"Day 3" will consist of supporting:
"Day 4" will consist of:
What comes after that will probably involve the support of custom processing of data during transactions (both code and PL/SQL calls) using Ruby as well as server-side triggers on transactions. We'll see!
Code Project is primarily (at the time of this writing!) a site for all things Microsoft, so if this is the first time you're encountering Ruby on Rails, I'd recommend reading through some of my other articles on the Ruby language and Ruby on Rails:
as these are more tutorial based for developing Ruby on Rails (RoR) applications. This article assumes that you already have some familiarity with the project structure of a RoR application.
This article uses Microsoft's example database, Adventure Works, to demonstrate Ruby on Rails connectivity to SQL Server as well as example dataset for all the screenshots in this article.
You'll notice that I tend to write very short Ruby functions - this is intended to promote the clarity of higher-level functions, which can otherwise detract from the purpose of the function when embedding idiomatic Ruby and arcane operations. I also like to explicitly state what the return value of a function is, even when it's unnecessary. This promotes further clarity to someone who is unfamiliar with the application code.
I've tried to keep the markup concise and I've put comments where it seems appropriate to describe the intent of the markup. This is especially salient in the Sass markup, where the intention behind the styling is not necessarily obvious.
Gems are Ruby on Rails' plug-in mechanism for adding functionality from the vast amount of free and open source components that people have contributed to over the years. Besides the Rails gems, the ones I'm taking advantage of are:
gem 'tiny_tds' gem 'activerecord-sqlserver-adapter' gem 'sqlite3' gem 'slim' gem 'thin' gem 'sass' gem 'will_paginate'
The gem tiny_tds necessary for connecting to SQL Server. TinyTDS requires a SQL Server Authentication login, as opposed to a Windows Authentication login. I have a short blog entry here on connecting to SQL Server Express from Ruby which covers configuring SQL Server Express and testing the TinyTDS connectivity. In this application, TinyTDS is used to acquire the schema information from SQL Server -- see the section "Schema Class" below.
This gem uses the "dblib" connection mode which in turn is dependent upon TinyTDS. What this gem enables you to do is to work with the Rails ActiveRecord API for all transactions with the database. It's important that we use ActiveRecord for table queries because the pagination system relies on our Model classes being derived from ActiveRecord::Base. In future articles, we'll also be relying, in part, on ActiveRecord for other transactions on the table records.
Rails expects the connection information to be specified in the config\database.yml file. Here we set up our development connection, specifying the sqlserver adapter which the above gem provides us, along with the connection information required by TinyTDS.
development: adapter: sqlserver database: AdventureWorks2008 dataserver: localhost\SQLEXPRESS username: ruby password: rubyist1
One of the requirements of this application is to not change the schema of the database that we're "spidering." Also, there's a lot of session information that is being preserved -- too much to place is session cookies on the client. We're using Sqlite3 for storing session information independent of our SQL Server database and this gem provides the connectivity. To see how this is done, read the section on "Storing Session Information in a Separate Database."
This gem eliminates the angle brackets and ending tags of the HTML script. Here's a simple example of the lighter-weight syntax:
doctype html head title Database Spider = stylesheet_link_tag "application", media: "all" = javascript_include_tag "application" = csrf_meta_tags body = yield
Notice how indentation is used to determine where the closing tags should go in the generated HTML.
This gem is also "lightens" the description of CSS and works very well in conjunction with Slim. You'll see Slim/Sass used such that the structure of the Slim and Sass markup are identical. Here's a short example taken from the user table list markup:
.table_list_region p Tables: .table_list ul - @tables.each do |table_name| li = link_to(table_viewer_path(table_name: table_name)) do t #{table_name}
Notice how Slim knows how to work with both HTML and Ruby script in the markup!
.table_list_region width: 240px height: 700px float: left p text-align: left margin-bottom: 2px .table_list text-align: left border: 1px solid border-radius: 3px width: 100% height: 100% line-height: 1.5em ul width: 190px height: 99% overflow: auto margin-top: 2px li list-style-type: none margin-left: -30px a:visited color: #000000 a:link color: #000000 text-decoration: none a:hover color: #0000FF
You can see how Sass markup can follow the same structure as the Slim markup.
The problem with this approach is that it obfuscates re-use of CSS. For
example, I might want to re-use the table_list
styling but since it's a child of table_list_region
, I can't
(at least not without a table_list_region
container).
However, I can certainly outdent the styling:
.table_list_region width: 240px height: 700px float: left p text-align: left margin-bottom: 2px .table_list text-align: left ... etc ...
without affecting the structure of the Slim markup. Now
This is an amazing gem that paginates your data and provides a variety of pre-existing styling and also the ability to customize the styling of the pagination bar. And of course, one of the advantages of using pagination is that for tables with large numbers of records, only the records for that page are returned from the database, greatly improving usability.
I'm not going to go into every detail of the code, but I will point out some of the more interesting features.
This class (schema.rb) encapsulates the static functions we need for connecting to SQL Server directly and obtaining schema information and thus relies on the TinyTDS gem for the direct SQL connection. The main workhorse is this function:
def self.execute(sql) client = create_db_client result = client.execute(sql) records = result.each(as: :array, symbolize_keys: true) array = convert_to_array_of_hashes(result.fields, records) array end
We rely on these helper methods (helpers\my_utils.rb) to create a client connection:
# create a client connection. def create_db_client config = get_current_database_config config_as_symbol = symbolize_hash_key(config) client = TinyTds::Client.new(config_as_symbol) client end # Returns the current database config has a dictionary of string => string def get_current_database_config Rails.configuration.database_configuration[Rails.env] end # Given a dictionary of string => string, returns :symbol => string # Example: config_as_symbol = symbolize_hash_key(config) def symbolize_hash_key(hash) hash.each_with_object({}){|(k,v), h| h[k.to_sym] = v} end
Once the records are returned from TinyTDS, I want to package them into an array of hashes (field => value) so that there's a consistent representation of the resulting data. This requires a couple post-processing functions:
# Convert the array of records from the TinyTDS query into an array of hashes, where # the keys are the field names. def self.convert_to_array_of_hashes(fields, records) array = [] records.each { |record| dict = hash_from_key_value_arrays(fields, record) array << dict } array end # Given two arrays of equal length, 'keys' and 'values', returns a hash of key => value def hash_from_key_value_arrays(keys, values) Hash[keys.zip values] end
We can now define the three functions that we need for our Spider UI:
In the last two functions, we replace the string "[table]" with the table name before executing the query:
sql.sub!('[table]', table_name.partition('.')[2])
What we're not dealing with at the moment is that the table name being passed in is fully qualified (it includes also the schema name) but the query doesn't pay attention to the schema name, hence we need to extract just the table name from the parameter value. This is one of those "TODO" items for a later date.
These functions rely on our storing the actual queries in a "queries.yml" file, which is a hierarchical file similar to XML in concept but very different in implementation. In this file, we store our schema queries:
Schema: user_tables: " select s.name + '.' + o.name as table_name from sys.objects o left join sys.schemas s on s.schema_id = o.schema_id where type_desc = 'USER_TABLE'" get_parents: " SELECT f.parent_object_id as ChildObjectID, SCHEMA_NAME(f.schema_id) SchemaName, OBJECT_NAME(f.parent_object_id) TableName, COL_NAME(fc.parent_object_id,fc.parent_column_id) ColName, SCHEMA_NAME(ref.schema_id) ReferencedSchemaName, OBJECT_NAME(f.referenced_object_id) ReferencedTableName, COL_NAME(fc.referenced_object_id, fc.referenced_column_id) ReferencedColumnName FROM sys.foreign_keys AS f INNER JOIN sys.foreign_key_columns AS fc ON f.OBJECT_ID = fc.constraint_object_id INNER JOIN sys.tables t ON t.object_id = fc.referenced_object_id INNER JOIN sys.tables ref ON ref.object_id = f.referenced_object_id WHERE OBJECT_NAME (f.parent_object_id) = '[table]'" get_children: " SELECT f.parent_object_id as ChildObjectID, SCHEMA_NAME(f.schema_id) SchemaName, OBJECT_NAME(f.parent_object_id) TableName, COL_NAME(fc.parent_object_id,fc.parent_column_id) ColName, SCHEMA_NAME(ref.schema_id) ReferencedSchemaName, OBJECT_NAME(f.referenced_object_id) ReferencedTableName, COL_NAME(fc.referenced_object_id, fc.referenced_column_id) ReferencedColumnName FROM sys.foreign_keys AS f INNER JOIN sys.foreign_key_columns AS fc ON fc.constraint_object_id = f.OBJECT_ID INNER JOIN sys.tables t ON t.OBJECT_ID = fc.referenced_object_id INNER JOIN sys.tables ref ON ref.object_id = f.referenced_object_id WHERE OBJECT_NAME (f.referenced_object_id) = '[table]'"
and we again use a small helper function to retrieve the text:
# Gets the specified query from the config.yml file # Example: sql = get_query("Schema", "user_tables") # TODO: cache keys def get_query(key1, key2) sql = YAML.load_file(File.expand_path('config/queries.yml')) sql[key1][key2] end
Here's another "TODO" item for later: eventually this structure will be "refactored" to include the database context, because of course querying the schema of a database is very database specific!
This function simply returns a collection of user table names:
# Returns an array of strings containing the user tables in the database to which we're connecting. def self.get_user_tables client = create_db_client sql = get_query("Schema", "user_tables") result = client.execute(sql) records = result.each(as: :array, symbolize_keys: true) names = get_column(records, 0) names end
This function returns the foreign key associations of the current table, resulting in an array of all parent tables along with schema information describing the columns of both child and parent tables that describe the foreign key relationship:
# Returns an array of hashes (column name => value) of the parent table schemas of the specified table. def self.get_parent_table_info_for(table_name) sql = get_query("Schema", "get_parents") sql.sub!('[table]', table_name.partition('.')[2]) execute(sql) end
This function returns the child tables and their foreign key column relationships to the specified parent table. This query has a similar structure as what is returned in the previous function, courtesy of how the SQL is formatted (see earlier.)
# Returns an array of hashes (column name => value) of the child table schemas of the specified table. def self.get_child_table_info_for(table_name) sql = get_query("Schema", "get_children") sql.sub!('[table]', table_name.partition('.')[2]) execute(sql) end
We need to tell Rails in initializers\session_store.rb that we want to use a database rather than cookies for storing session information:
DatabaseSpider::Application.config.session_store :active_record_store
However, we want to tell Rails not to use the SQL Server database, so we also need:
ActiveRecord::SessionStore::Session.establish_connection(:sessions)
and finally, we need to put the session definition in the config\database.yml file:
# use sqlite3 as the DB for storing session information. sessions: adapter: sqlite3 database: db/session.sqlite3 pool: 5 timeout: 5000
Another requirement is to avoid creating a concrete Model class for every physical table in the database. To accomplish this, we derive a class from ActiveRecord::Base but specify the table name to which it is associated:
class DynamicTable < ActiveRecord::Base # Returns an array of records for the specified table. def set_table_data(table_name) DynamicTable::table_name = table_name end # Returns the field names given at least one record. def get_record_fields(records) fields = [] fields = records[0].attributes.keys if records.count > 0 fields end end
This enables us to interact with the table just as we would with any other ActiveRecord instance.
The function get_record_fields is used to return the field names for the record - we arbitrarily pick the first record for the field list, assuming any records exist at all. This is a bit problematic because even if there are no records returned, we'd like the table to at least display the field names. So one of the "TODO" items is to use a TinyTDS query with "where 1=0", which, though it returns zero rows, will populate the field names for us.
The index
function of the TableViewerController
is the main workhorse of the
website:
def index initialize_attributes update_model_page_numbers if self.table_name restore_page_number_on_nav # restores the page number when navigating back along the breadcrumbs self.last_page_num = self.model_page_nums[self.table_name+'_page'] # preserve the page number so selected navigation records are selected from the correct page. @data_table = load_DDO(self.table_name, self.last_page_num, self.qualifier, MAIN_TABLE_ROWS) add_hidden_index_values(@data_table) load_navigators(self.table_name) @parent_dataset = load_fk_tables(@parent_tables) @child_dataset = load_fk_tables(@child_tables) # Update the parent tab index based on the existence and value of the selected_parent_table_index parameter update_parent_child_tab_indices end end
Various attributes are initialized, of most important are:
There are several session variables defined in the controller:
attr_session_accessor :table_name # the selected user table attr_session_accessor :qualifier # the qualifier currently being used to filter the selected user table attr_session_accessor :breadcrumbs # the breadcrumb trail attr_session_accessor :last_page_num # the last page number of the user table attr_session_accessor :force_page_num # if set, forces the pagination to a different page, used with breadcrumbs attr_session_accessor :model_page_nums # dictionary of page numbers for all the models being displayed.
which help preserve the state of the page between posts.
I get tired of having to write code like this:
@qualifier = session[:qualifier] session[:table_name] = @table_name
so I wrote a custom attribute accessor that simplifies getting and setting session values:
# Adds an "attr_session_accessor" declarator that, in addition to setting/getting the value # to the attribute, it also gets/sets the value from the session. # Usage inside the class defining the attribute: self.foobar = 1 # Note that "self." must prefix the usage of the attribute. class Class def attr_session_accessor(*args) args.each do |arg| self.class_eval("def #{arg}; @#{arg}=session['#{arg}']; end") self.class_eval("def #{arg}=(val); @#{arg}=val; session['#{arg}']=val; end") end end end
For the getter, this code initializes the specified attribute from the
session name, and is equivalent to writing (for the variable qualifier
):
@qualifier = session[:qualifier]
The setter initializes both the attribute and the session key with the
specified value, and is the equivalent of writing (for the variable table_name
):
@table_name = val session[:table_name] = @table_name
Thus, we can code like this (this is the handler for clicking on a breadcrumb):
# Navigate back to the selected table in the nav history and pop the stack to that point. # Use the qualifier that was specified when navigating to this table. # Restore the page number the user was previously on for this table. def nav_back stack_idx = params[:index].to_i breadcrumb = self.breadcrumbs[stack_idx] # get the current breadcrumb self.table_name = breadcrumb.table_name # we want to go back to this table and its qualifier self.qualifier = breadcrumb.qualifier self.breadcrumbs = self.breadcrumbs[0..stack_idx] # remove all the other items on the stack self.force_page_num = breadcrumb.page_num redirect_to table_viewer_path+"/index" end
I suppose it would be more readable if I named these variables with some
prefix, perhaps "sess_" to make it clear to the reader that we're accessing
session data, however, an more useful "TODO" would be to put together a Session
class that has all the session attributes that the controller referenecs.
Internally, this class could still use my custom attribute accessor, but it
would also allow intellisense to work within the IDE, improving the programmer's
experience and providing clarity as to what is going on behind the scenes.
One of the issues I encountered was with SQL Server fields that were using byte encoding. This gave Rails fits and required a helper method, applied to each field value:
# Fixes encoding to UTF-8 for certain field types that cause problems. # http://stackoverflow.com/questions/13003287/encodingundefinedconversionerror helper_method :fix_encoding def fix_encoding(value) value.to_s.encode('UTF-8', {:invalid => :replace, :undef => :replace, :replace => '?'}) end
Certain fields that are found in the Adventure Works database can simply always be hidden. Also, the paginator adds a column that it uses internally for keeping track of what page the user is viewing, and finally, I add a column that the checkbox on each row uses to identify the selected row. None of these need to be displayed, therefore we have a couple helper methods:
# Return true if the field can be displayed. # All sorts of interesting things can be done here: # Hide primary keys, ModifiedDate, rowguid, etc. helper_method :display_field? def display_field?(table_name, field_name) # '__rn' is something that will_paginate adds. # '__idx' is my hidden column for creating a single column unique ID to identify selected rows, since # we can't guarantee single-field PK's and we need some way to identify a row uniquely other than the actual data. return false if ['__rn', '__idx', 'rowguid', 'ModifiedDate'].include?(field_name) true end # Returns only the visible fields helper_method :get_visible_fields def get_visible_fields(data_table) data_table.fields.keep_if {|f| display_field?(data_table.table_name, f)} end
The user interface consists of six areas:
I decided to put each of these sections into their own render block, thus the resulting index.html.slim file is simply:
=form_for @table_viewer do |f| = render 'breadcrumbs' = render 'user_tables' - # The selected table data - if<EMAIL_ADDRESS>= render 'parent_tables' = render 'selected_table' = render 'navigation', f: f = render 'child_tables' - # Restore current page selections javascript: select_fk_tab('#parent_tab', '#parent_tab_content', #{@parent_tab_index}, <EMAIL_ADDRESS>select_fk_tab('#child_tab', '#child_tab_content', #{@child_tab_index}, <EMAIL_ADDRESS>The breadcrumbs is a clickable list of tables that the user has already navigated to using the "navigate to parent" and/or "navigate to child" options. When a breadcrumb is selected, any selection that was made to qualify the data for that table is restored as well as the table's data.
- # The navigation breadcrumbs .navigation_history p = "Nav History:" br - if @breadcrumbs - @breadcrumbs.each_with_index do |breadcrumb, index| - table_name = breadcrumb.table_name = link_to content_tag(:span, "#{table_name.partition('.')[2]}"), navigate_back_path(index: index), {:class => "button"}, :onclick => 'this.blur();'
This is simply an alphabetical list of user tables.
- # The list of all tables. .table_list_region p Tables: .table_list ul - @tables.each do |table_name| li = link_to(table_viewer_path(table_name: table_name)) do t #{table_name}
The selected user table is displayed with a checkbox on each row so that the user can select a specific row or rows and navigate to a child or parent table whose resulting data is displayed in the same box but qualified by the selection. If no selection is made, then all the parent or child data is displayed. At the bottom of the table is the paginator (see the parent and child table data for visual examples.)
- # The selected user table data. .table_data_region p<EMAIL_ADDRESS>= render "table_data", data_table: @data_table .digg_pagination = will_paginate @data_table.records, param_name: @data_table.table_name+"_page"
Note that this code (and the code used for child and table navigation) all re-use another render called "table_data".
This is file used in common for rendering the table data in the selected table, parent tables and child tables:
- # render for table data. The paginator is separate because it requires additional parameters that are specific - # to the data being paginated. .table_data - visible_fields = get_visible_fields(data_table) table - # Display header tr - # Dummy header column for checkbox th - # Header of field names - visible_fields.each do |field_name| th = field_name - # Display records - data_table.records.each do |record| tr class=cycle('row0', 'row1') td - # __idx is added by the controller to uniquely identify a record. = check_box_tag 'selected_records[]', record["__idx"] - visible_fields.each_with_index do |field_name, field_index| - # Extends the last column out to the right edge of the table. - if field_index == visible_fields.length - 1 td.last = fix_encoding(record[field_name]) - else td = fix_encoding(record[field_name])
The interesting part of this markup is figuring out when the last column is being rendered and to change the styling slightly so that the row color extends to the right edge of the table box:
Also notice the snazzy cycle function of Ruby:
tr class=cycle('row0', 'row1')
which cycles through the class styling strings for the rows, achieving the alternating colors:
tr.row0 // alternating row colors background-color: #ffffff tr.row1 background-color: #ddffdd
The Navigation area lets the user select which parent or child table to navigate to. If rows have been selected in the user table display, the parent/child records are qualified by the selected records. In that case, to show unqualified records, the user clicks on Show All Records. To return to the qualified records, click on the last breadcrumb button, as the navigation "breadcrumb" trail preserves the qualifiers.
The selected user table is treated as the child table, with foreign keys to the parent table. If no rows in the user table have been selected, then all rows of the parent table are displayed. If one or more rows has been selected (using checkboxes) then all columns involved in the foreign key relationship to the parent table are considered to construct the qualifying "where" clause. For example, if there are two columns, one for billing address and one for shipping address, that refer to an address, then both address records of the parent (assuming the child has different values for the foreign key ID) will be displayed when navigating to the parent.
Here the selected user table is considered to be the parent, and the table selected in the combobox "Navigate to child:" is inspected for foreign key fields that map to the primary key fields of the selected user table. If no rows in the user table have been selected (using checkboxes) then all child records are displayed. If rows have been selected, then the qualifier is constructed programmatically to limit the child records to only those records that reference the selected rows.
- # table navigation .navigation fieldset legend View and Navigation: br .nav_button = f.submit("Show All Records", name: 'navigate_show_all') - # Separate div because 'Go' buttons are left padded. .nav_options br Navigate to parent: = select_tag "cbParents", options_from_collection_for_select(@parent_tables, 'id', 'name') = f.submit("Go", name: 'navigate_to_parent') br Navigate to child: = select_tag "cbChildren", options_from_collection_for_select(@child_tables, 'id', 'name') = f.submit("Go", name: 'navigate_to_child')
These two regions of the page are almost identical except for how the pagination is handled and of course the tables and their records that they display. The checkboxes in these tables don't do anything, yet.
The fun part about this markup is that the tabs are styled columns of a table row, and we utilize a scrollbar for when there are more tabs that fit on the screen.
- # if we have a selected table and it has parent tables, show the parent tables. - if<EMAIL_ADDRESS>&& @parent_tables.length > 0 .tab_region .tab_list table tr - @parent_tables.each_with_index do |table_info, index| td id="parent_tab#{index}" a title="View #{table_info.name}" onclick="select_fk_tab('#parent_tab', '#parent_tab_content', #{index}, #{@parent_tables.count})" span = "#{table_info.name}" - # table_info isn't used because this data is formatted for the comboboxes. - # What we're actually simply interested in here is the index. - @parent_tables.each_with_index do |table_info, index| .tab_content id="parent_tab_content#{index}" .tab_table_data_region = render "table_data", data_table: @parent_dataset[index] .digg_pagination = will_paginate @parent_dataset[index].records, param_name: @parent_dataset[index].table_name+"_page", params: {selected_parent_table_index: index }
Finally, we need a tiny amount of Javascript to put it all together, which handles selecting a tab and rendering the page after a post or refresh:
/* Deselect all the parent tabs and hide all the content, then select the specified tab and show the desired content */ function select_fk_tab(tab_selector, content_selector, index, num_tabs) { for (var i=0; i<num_tabs; i++) { $(tab_selector + i.toString()).removeClass('current'); $(content_selector + i.toString()).hide(); } $(tab_selector + index.toString()).addClass('current'); $(content_selector + index.toString()).show(); }
When all is said and done, we have:


?Iffilllliw
.
-J-
0
1
cm
2
3
4
5
fi
7
R
Q
10
6
7
8
The
New
York
copyright
reserved
botanical
Garden
NEW
YORK
BOTANICAL
GARDEN
01
447742
New
York
Botanical
Garden
OebtŇfLecCl
(ctClU(HiA.
faff
itj)'I
V
ą
bidrieU
/9
?(
Herbarium,
University
of
Pennsylvania
1
Dr.
J.
W.
HarshbergerŇs
Bermuda
Collection
JUNE,19OS
Loc.
Date
v/j
Coll.
/rfs/t/.
└└TOfUst',
C-
01447742
Legend -
Level of confidence that token is an accurately-transcribed word
extremely low
very low
low
undetermined
medium
high
very high


Created by Frank Anderson / @frobdfas
frob on Drupal.org, Github, and IRC.
Visual Diffs from screenshots that are generated from controlled sources.
Taking a sequence of screenshots and diffing them with a tool such as ImageMagick Compare.
Developed in Ruby by BBC, uses PhantomJS, (or SlimerJS), optionally with CasperJS, to provide a website that houses your diffs and settings to help you manage them.
Simple to run, easy to setup (after installation), very powerfull.
Run wraith setup or setup_casper
Configuration happens in two files.
domains:
github: "http://frob.github.io"
selfhosted: "https://www.frobiovox.com"
screen_widths:
- 320
- 768
- 1024
paths:
home: /
tutorials: /tutorials.html
rants: /rants.html
everything: /river.html
fuzz: '20%'
Javascript that wraith uses with phantom and casper to generate the screenshots.
gem install wraith
It's ruby so it just works, right?
brew tap homebrew/versions
brew install phantomjs198
install rbenv if not installed
brew install rbenv ruby-build
eval "$(rbenv init -)"
rbenv install 2.1.2
rbenv shell 2.1.2
gem install wraith
Orignal note: Wholy crap they have a dockerfile.
Any Questions?


The IRA Starter window is used to set parameters for the Gnu Radio receiver subsystem, then start the main IRA application.
This control is used to set the desired observing bandwidth (and thus, the underlying sampling rate) for the receiver subsystem.
The choices for a USRP1 are:
250KHz
500KHz
1MHz
2MHz
3.2Mhz
4MHz
6.4MHz
8MHz
16MHz
The choices for a USRP2/N2XX are:
250KHz
500Khz
1Mhz
2MHz
2.5Mhz
5MHz
10MHz
16.67MHz
25MHz
You should pick a bandwidth that is compatible both with your observing regime, and the compute power available to you. For example, a dual-CPU Pentium D 925 system running at 3.2GHz can observe a single channel at 4 to 5MHz bandwidth, with only occasional buffer overruns from Gnu Radio.
A more modern, multi-core system running at 3.5GHz can handle a 10MHz to 25MHz stream.
This input area allows you to enter your local longitude, which is required in calculating your local mean sidereal time (LMST). Use decimal format, with negative values used to indicate longitudes that are WEST of the prime meridian. For example, -63.500 is 63 degrees, 30 minutes WEST longitude, while 63.50 is 63 degrees, 30 minutes EAST longitude. Remember to press ENTER to have the entered longitude take effect.
RA MODE
This choice control sets the mode used to determine RA (Right Ascension) during an observation run with IRA. The choices are:
manual
RA is input manually in the RA input area of the IRA control panel
transit
The RA is set dynamically to the current LMST—which is useful for instruments set up in meridian transit mode, in which the azimuth axis is fixed on a line that runs exactly NORTH-SOUTH through the axis of the dish, and only the declination (elevation) axis is movable.
external
This mode allows IRA to get RA (Right Ascension) information from an external file. When this choice is selected, a file browser will pop-up, to allow you to select a file from which RA information is determined dynamically. While operating in this mode, IRA will inspect the selected file once per second to determine current RA information. This allows external tracking and telescope control software to control the antenna, while informing the receiver where the antenna is pointed.
DEC MODE
This choice control sets the mode used to determine DEC (Declination) during and observation run with IRA. The choices are:
manual
DEC is input manually in the DEC input area of the IRA control panel
external
This mode allows IRA to get DEC (Declination) information from an external file. When this choice is selected, a file browser will pop-up, to allow you to select a file from which DEC information is determined dynamically. While operating in this mode, IRA will inspect the selected file once per second to determine current DEC information. This allows external tracking and telescope control software to control the antenna, while informing the receiver where the antenna is pointed.
This input area is used to enter your license key. If you don't have a license key, the software will automatically expire approximately 30 days after you receive it. If you don't have a license key, enter the word “none” in this area. Remember to press ENTER to have the entered license key data take effect.
START RA RECEIVER
This button control causes the IRA main control panel to start, and this starter panel to be closed. The IRA control panel will use the parameters provided in the startup panel.
EXIT
This button control allows you to exit the IRA starter, without causing the IRA main control panel to start. This is useful for changing stored settings, without starting the IRA main control panel.
This document is displayed in the Firefox browser, when you press this button.


class Slice:
This class has Slice relative parameters and is used to implement the mapping between service requirements and slice configuration.
| Method | __init__ |
Undocumented |
| Instance Variable | reqDelay |
Undocumented |
| Instance Variable | reqThroughputDL |
Undocumented |
| Instance Variable | reqThroughputUL |
Undocumented |
| Instance Variable | reqAvailability |
Undocumented |
| Instance Variable | reqDLconnections |
Undocumented |
| Instance Variable | reqULconnections |
Undocumented |
| Instance Variable | band |
Undocumented |
| Instance Variable | PRBs |
Undocumented |
| Instance Variable | signLoad |
Undocumented |
| Instance Variable | scs |
Undocumented |
| Instance Variable | ttiBms |
Undocumented |
| Instance Variable | robustMCS |
Undocumented |
| Instance Variable | mimoMd |
Undocumented |
| Instance Variable | layers |
Undocumented |
| Instance Variable | tddSymb |
Undocumented |
| Instance Variable | schType |
Undocumented |
| Instance Variable | label |
Undocumented |
| Instance Variable | tdd |
Undocumented |
| Instance Variable | dm |
Undocumented |
| Instance Variable | rcvdBytes |
Undocumented |
| Instance Variable | metric |
Undocumented |
| Instance Variable | schedulerDL |
Undocumented |
| Instance Variable | schedulerUL |
Undocumented |
| Method | createSliceSched |
This method initializes and returns slice UL or DL scheduler. Scheduler algorithm is selected according to the Slice attribute schType. |
| Method | setInitialConfig |
This method sets initial Slice configuration according to service requirements. |
| Instance Variable | numRefFactor |
Undocumented |
| Method | dly2scs |
This method sets Slice numerology depending on delay requirements. |
| Method | updateConfig |
This method updates Slice allocated PRBs. |
Undocumented
This method initializes and returns slice UL or DL scheduler. Scheduler algorithm is selected according to the Slice attribute schType.


Posted by Baoling on April 17, 2018
Posted by Baoling on December 29, 2017
Posted by Baoling on December 07, 2017
Posted by Baoling on March 18, 2017
Posted by Baoling on November 05, 2016
Posted by Baoling on September 27, 2016
Posted by Baoling on April 18, 2016
Posted by Baoling on May 29, 2016
Posted by Baoling on May 6, 2016
Posted by Baoling on April 10, 2016
Posted by Baoling on March 25, 2015
Posted by Baoling on October 11, 2015
Posted by Baoling on January 22, 2016
Posted by Baoling on December 30, 2015
Posted by Baoling on January 12, 2016
Posted by Baoling on August 31, 2015
Posted by Baoling on November 12, 2015
Posted by Baoling on February 01, 2016
Posted by Baoling on October 01, 2015
Posted by Baoling on July 15, 2015
Posted by Baoling on August 09, 2015


This is a paragraph
This is a sample paragraph.
Here is a paragraph with emphasized text and important text.
Girl Develop It Link Text E-mail us!


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)
"""
# TODO: Implement Function
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, 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 variabes 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 generator, tensor logits of the generator).
def discriminator(images, reuse=False):
"""
Create the discriminator network
:param image: 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)
"""
# TODO: Implement Function
alpha=0.2
with tf.variable_scope('discriminator', reuse=reuse):
cell = tf.layers.conv2d(images, 64, 5, strides=2, padding='same')
cell = tf.maximum(alpha*cell, cell)
cell = tf.layers.conv2d(cell, 128, 5, strides=2, padding='same')
cell = tf.layers.batch_normalization(cell, training=True)
cell = tf.maximum(alpha*cell, cell)
cell = tf.layers.conv2d(cell, 256, 5, strides=2, padding='same')
cell = tf.layers.batch_normalization(cell, training=True)
cell = tf.maximum(alpha*cell, cell)
cell = tf.reshape(cell, (-1, 4*4*256))
logits = tf.layers.dense(cell, 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 variabes 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):
"""
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
"""
# TODO: Implement Function
alpha = 0.2
with tf.variable_scope('generator', reuse=not is_train):
cell = tf.layers.dense(z, 7*7*256)
cell = tf.reshape(cell, [-1, 7, 7, 256])
cell = tf.layers.batch_normalization(cell, training = is_train)
cell = tf.maximum(alpha*cell, cell)
cell = tf.layers.conv2d_transpose(cell, 128, 5, strides = 2, padding='same')
cell = tf.layers.batch_normalization(cell, training = is_train)
cell = tf.maximum(alpha*cell, cell)
logits = tf.layers.conv2d_transpose(cell, out_channel_dim, 5, strides=2, padding='same')
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 the following functions you implemented:
discriminator(images, reuse=False)
generator(z, out_channel_dim, is_train=True)
def model_loss(input_real, input_z, out_channel_dim):
"""
Get the loss for the discriminator and generator
:param input_real: Images from the real dataset
:param input_z: Z input
:param out_channel_dim: The number of channels in the output image
:return: A tuple of (discriminator loss, generator loss)
"""
# TODO: Implement Function
g_model = generator(input_z, out_channel_dim)
d_model_real, d_logits_real = discriminator(input_real)
d_model_fake, d_logits_fake = discriminator(g_model, reuse=True)
d_loss_real = tf.reduce_mean(
tf.nn.sigmoid_cross_entropy_with_logits(logits=d_logits_real,labels=tf.ones_like(d_model_real)))
d_loss_fake = tf.reduce_mean(
tf.nn.sigmoid_cross_entropy_with_logits(logits=d_logits_fake, labels=tf.zeros_like(d_model_fake)))
g_loss = tf.reduce_mean(
tf.nn.sigmoid_cross_entropy_with_logits(logits=d_logits_fake, labels=tf.ones_like(d_model_fake)))
d_loss = d_loss_real + d_loss_fake
return d_loss, g_loss
"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
tests.test_model_loss(model_loss)
Implement model_opt
to create the optimization operations for the GANs. 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)
"""
# TODO: Implement Function
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.
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")
"""
tf.reset_default_graph()
input_real, input_z, _ = model_inputs(data_shape[1], data_shape[2], data_shape[3], z_dim)
d_loss, g_loss = model_loss(input_real, input_z, data_shape[3])
d_opt, g_opt = model_opt(d_loss, g_loss, learning_rate, beta1)
steps = 0
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):
batch_images = batch_images * 2
steps += 1
batch_z = np.random.uniform(-1, 1, size=(batch_size, z_dim))
_ = sess.run(d_opt, feed_dict={input_real: batch_images, input_z: batch_z})
_ = sess.run(g_opt, feed_dict={input_z: batch_z, input_real: batch_images})
if steps % 100 == 0:
# At the end of every 10 epochs, get the losses and print them out
train_loss_d = d_loss.eval({input_z: batch_z, input_real: batch_images})
train_loss_g = g_loss.eval({input_z: batch_z, input_real: batch_images})
print("Epoch {}/{}...".format(epoch_i+1, epochs),
"Discriminator Loss: {:.4f}...".format(train_loss_d),
"Generator Loss: {:.4f}".format(train_loss_g))
_ = show_generator_output(sess, 1, input_z, data_shape[3], data_image_mode)
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 = 500
learning_rate = 0.005
beta1 = 0.5
"""
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 = 500
learning_rate = 0.005
beta1 = 0.5
"""
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.


Name, Profile Pic, etc
Payment info and account charges
Edit profiles and tweak GetSmater Alerts
Edit visibility and block contacts
Media and history options
Maps, Preview settings
Invite friends to join GetSmarter
Help, Location and FAQs


Question 1/10
var qpt = "QualityPointTechnologies";
var result = qpt.indexOf("Tech");
document.write(result);
What is the output?
11
12
15
13


Click on a filename to open the file (for test purpose this wil redirect to Google)
Select a folder or file by clicking on the name
Drag the folder or file icon to sort the file tree


Moving in
What are your choices?
The following options are available to all modules, please note Option A will greatly benefit our students:
Option A - fresh start
ET will help you get the best out of the new Learning Space by offering:
- Consultation
- Best practice guidance
- Providing a USB Stick with pre-existing content
- Providing a clean module ready to go
- Training to suit your needs
- Continued one-to-one sessions as usual
Option B – bring your old module structure
We will try to make it fit by offering:
- Best Practice guidance
- You will inherit all your old files (including unwanted data)
- Training to suit your needs
- Continued one-to-one sessions
Whilst we will endeavour to find you and help you through this change, please make contact with Damien to schedule the best time to suit you and your team.
etsupport@falmouth.ac.uk


the and that {background ANPA influenza margin ANP {border-style polymerase ANPB px;} #ffffff;} proteins virus viral al., host activity avian from px; {font-family The are cells chicken font-size for human support with Long double; have species their was which asparagine border-color border-width different has into new replicate solid; these this use viruses {font-style {font-weight (Long ANPA, ANPC Microbiology RNA Zhang acid al. amino birds bold but can chickens courier; em; evolution evolutionary gene history identified its not only protein pt;} role â€"


rotten > Library > Biographies > US Officials > Marion Barry
Marion Barry
Marion Barry is easily one of the most colorful public officals in United States history. After serving as mayor of Washington, DC for 12 years, he was arrested for smoking crack in a hotel room in 1990 (caught on hidden camera no less) and forced to step down. After serving six months in a federal prison, he was inexplicibly re-elected in 1994. Perhaps Mayor Barry's legacy can best be described in his own words:
-
"If you take out the killings, Washington actually has a very very low crime rate."
- "First, it was not a strip bar, it was an erotic club. And second, what can I say? I'm a night owl."
- "The brave men who died in Vietnam, more than 100% of which were black, were the ultimate sacrifice."
- "I am a great mayor; I am an upstanding Christian man; I am an intelligent man; I am a deeply educated man; I am a humble man."
|
Barry is a former Eagle Scout.
Pornopolis |
Rotten |
Faces of Death |
Famous Nudes
|


Paris is the capital and most populous city of France, with an administrative-limits area of 105 square kilometers and a population of 2.2 million. The city is a commune and 12,012-square-kilometer Île-de-France region (colloquially known as the 'Paris Region'), whose 12.1 million population represents roughly 18 percent of the population of France. By the 17th century, Paris had become one of Europe's major centers of finance, commerce, fashion, science, and the arts, a position that it retains still today. The Paris Region had a GDP of €649.6 billion in 2014, accounting for 30.4 percent of the GDP of France. According to official estimates, in 2013-14 the Paris Region had the third-highest GDP in the world and the largest regional GDP in the European Union.


Use machine learning to recognize food images and estimate weights, and give prediction of its calories. Calorie Predictor doesn't need users to know the weight of foods or enter names of foods, all it needs is a picture.
<1> I, the college student who try to keep on diet in order to lose weights.
<2> I, the professional bodybuilder, who try to keep very strict diet before my show.
<3> I, the patient, who have health problem needed to avoid eating high calorie foods, need to know the energy of foods.
1. An user interface that allow users to input foods images.
2. Capability of reconizing foods and measuring weights.
3. Calculate calories based on calorie table


(.) HV intervention obesity body childhood control parents family weight composition prevention study interventions Health children baseline {border-style (− ., Guelph group outcomes Family px;} vs. #ffffff;} compared home-based parental BMI home results Study family-based health mass parent GFHS behaviours participants research (−., -months changes pilot significant -month Body behaviour reductions University anthropometrics change measures n = observed conducted families lower weight-related Canadian Obes data interventions, px; sample {font-family months − . children, dynamics follow-up font-size group, impact intervention. physical randomized review treatment trial using visits < kg/m (CI = − ., However, Theory activity baseline, beneficial children’s circumference double; effects evidence groups important improve − .) BMI, adults analysis average border-color border-width child effect examine fathers improved improvements mailed n = , outcome outcomes. overweight parents. participant primary provide provided significantly similar solid; stratified support sustained tailored {font-style {font-weight $$\end{document} %FM (e.g., -months, ./s--- . kg . kg/m BMC Clin Ethics Int Med Nutr Pediatr Public Research Systems WC, \begin{document}$$ \documentclass[pt]{minimal} \setlength{\oddsidemargin}{-pt} \usepackage{amsbsy} \usepackage{amsfonts} \usepackage{amsmath} \usepackage{amssymb} \usepackage{mathrsfs} \usepackage{upgreek} \usepackage{wasysym} age analytic anthropometric based bold composition. consider courier; current decrease development em; emails, group. healthy household incentives increases informed intake involved lead number n = ) overweight/obese post preliminary prevent preventing pt;} reported setting sleep status systematic time, waist BMI BMI ≥ kg/m M)


|
vb2Py Online - Convert Visual Basic to Python in your Browser |
|
||||||||||||||||
|
You can convert Visual Basic code directly to Python using the text box below. Simply paste your code and hit Convert - your Python code will appear ... Note: if you are pasting form code, please only paste the VB Code not the form definition (ie remove the bit between the Begin VB.Form and the End).
Notes: 1.
Please be patient - this is a cgi-script and it can take a while |
||||||||||||||||


{% include head.html %}
{% include header.html %}
Home Office: Open Source Projects
{{ content }}
{% include footer.html %}


Forms with jFramework
Custom form element with hashPath helper - GET method
Using GET method will have all parameter add to url. If url becomes to large then it could cause problem for browser,
and it may be distract. However, it could maintain it state and add be able to book-mark.
<form id="customForm" someAtrr="other" method="get" onsubmit="$.jf.formSubmitHandler(event);" action="@@hashPath('simpleModel')">
Custom form element with hashPath helper - POST method
Using post method to hide all submit input value. If users refresh right away, the state is able to maintain - simulate the browser
behavior; however, when come back later, it's no longer hold true.
<form id="customForm" someAtrr="other" method="post" onsubmit="$.jf.formSubmitHandler(event);" action="@@hashPath('simpleModel')">
Custom form element with hashPath helper - POST method
Using post method to hide all submit input value. If users refresh right away, the state is able to maintain - simulate the browser
behavior; however, when come back later, it's no longer hold true.
<form id="multiSelect" method="get" onsubmit="$.jf.formSubmitHandler(event);" action="@@hashPath('plainText')">


I've just finished re-reading Nathaniel Talbott's post, “Merge pull request” Considered Harmful and I'm in complete agreement. I'm not sure I'd like to use Hub though, as it ties things too closely to GitHub. I wonder if there's a good way, just using Git? What I ended up doing was:
git fetch https://github.com/sitaktif/pg8000.gitgit rebase FETCH_HEAD
Then when I was happy I just did a git push
as normal. Is this a good approach?


I was particularly lucky to have done a BSc degree at Nanjing University, Department for Intensive Instruction (now Kuang Yaming Honors School). Here's an incomplete list of my classmates (Entering class 1995, in total 40 students). Information is believed to be accurate when entered in 11/2020.
| Zhenghua An | Professor of Physics, Fudan University, China |
| Lu Bai | Associate Professor of Biochemistry and Molecular Biology, Pennsylvania State University, USA |
| Xin Chen | Associate Professor of Electrical Engineering, Xi'an Jiaotong University, China |
| Jason Duan | Associate Professor of Econometrics, McCombs School of Business, University of Texas at Austin, USA |
| Donglei Fan | Associate Professor, Robert & Jane Mitchell Endowed Faculty Fellowship in Engineering, University of Texas at Austin, USA |
| Dazhen Gu | Research Engineer, National Institute of Standards & Technology, Colorado, USA |
| Jianghui Hou | Associate Professor of Medicine, Division of Nephrology, Washington University in St. Louis, USA |
| Congjun Wang | Research Scientist, National Energy Technology Laboratory, USA |
| Dong Wang | Associate Professor of Biochemistry and Molecular Biology, University of Massachusetts Amherst, USA |
| Jianbai Wang | Patent Attorney, Morgan Lewis & Bockius LLP, CA, USA |
| Jiang Xia | Associate Professor of Chemistry, Chinese University of Hong Kong |
| Ningning Yang | Associate Professor of Pharmacy, The Lake Erie College of Osteopathic Medicine (LECOM), USA |
| Jian Yang | Professor of Bioinformatics, Chinese Academy of Medical Sciences and Peking Union Medical College, China |
| Xiang Zhang | Research Scientist, Novartis AG, Switzerland |


What is Lorem Ipsum Lorem Ipsum is simply dummy text of the
printing and typesetting industry Lorem Ipsum has been the industry's standard dummy text e
ver since the 1500s
when an unknown printer took a galley of type and scrambled it to make a type specimen book it has?


|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface AnnotationVisualResource
Visual Resources that display and/or edit annotations. This type of resources can be used to either display or edit existing annotations or to create new annotations.
| Method Summary | |
|---|---|
void |
cancelAction()
Called by the GUI when the user has pressed the "Cancel" button. |
boolean |
canDisplayAnnotationType(String annotationType)
Checks whether this viewer/editor can handle a specific annotation type. |
void |
editAnnotation(Annotation ann,
AnnotationSet set)
Changes the annotation currently being edited. |
boolean |
editingFinished()
Checks whether the annotation currently being edited can be considered complete. |
Annotation |
getAnnotationCurrentlyEdited()
|
AnnotationSet |
getAnnotationSetCurrentlyEdited()
|
boolean |
isActive()
Checks whether the annotation editor is active (shown on screen and ready to edit annotations. |
void |
okAction()
Called by the GUI when the user has pressed the "OK" button. |
boolean |
supportsCancel()
Checks whether this editor supports the cancel option |
| Methods inherited from interface gate.VisualResource |
|---|
setHandle, setTarget |
| Methods inherited from interface gate.Resource |
|---|
cleanup, getParameterValue, init, setParameterValue, setParameterValues |
| Methods inherited from interface gate.util.FeatureBearer |
|---|
getFeatures, setFeatures |
| Methods inherited from interface gate.util.NameBearer |
|---|
getName, setName |
| Method Detail |
|---|
void okAction() throws GateException
GateException
void cancelAction() throws GateException
GateException
boolean supportsCancel()
boolean canDisplayAnnotationType(String annotationType)
void editAnnotation(Annotation ann, AnnotationSet set)
ann
- the new annotation.set
- the set to which the new annotation belongs.boolean editingFinished()
boolean isActive()
Annotation getAnnotationCurrentlyEdited()
AnnotationSet getAnnotationSetCurrentlyEdited()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


04 - Using the Shadow DOM
Paragraph text in the outer application.
Some more paragraph text in the outer application.


Provides a near drop-in replacement for base::Sys.sleep() that allows more types of input to produce delays in the execution of code and can silence/prevent typical sources of error.
| Version: | 1.3.0 |
| Imports: | methods, lubridate |
| Suggests: | testthat, covr, knitr, rmarkdown |
| Published: | 2017-02-23 |
| Author: | Russell S. Pierce [aut, cre], Timothy Gann [aut] |
| Maintainer: | Russell S. Pierce <russell.s.pierce at gmail.com> |
| BugReports: | https://github.com/drknexus/naptime/issues |
| License: | GPL-2 |
| URL: | URL: https://github.com/drknexus/naptime |
| NeedsCompilation: | no |
| Materials: | README NEWS |
| CRAN checks: | naptime results |
| Reference manual: | naptime.pdf |
| Vignettes: |
Why and How to Nap |
| Package source: | naptime_1.3.0.tar.gz |
| Windows binaries: | r-devel: naptime_1.3.0.zip, r-release: naptime_1.3.0.zip, r-oldrel: naptime_1.3.0.zip |
| OS X binaries: | r-release: naptime_1.3.0.tgz, r-oldrel: naptime_1.3.0.tgz |
| Old sources: | naptime archive |
Please use the canonical form https://CRAN.R-project.org/package=naptime to link to this page.


Jurgen Klopp explains how he's preparing for Liverpool's Man City showdown
The Reds host the Premier League champions at Anfield next weekend, six points clear at the top of the table
by Alex Richards, https://www.facebook.com/AARichards/Jurgen Klopp is yet to think about Liverpool's crunch clash with champions Manchester City next weekend.
The Reds host Pep Guardiola's champions at Anfield next Sunday, in a mouthwatering encounter between the Premier League's top two.
But the Anfield chief, whose side sit six points clear at the top, says he isn't even thinking about the visit of City.
Liverpool came from behind to beat Aston Villa on Saturday, with Sadio Mane's injury-time winner giving them a 2-1 victory - having trailed at half-time.
But Klopp's side face Genk in the Champions League in midweek and that is his new focus after the win in the West Midlands.
He insists he hasn't spent any time thinking of next week's fixture and that it didn't cross his mind while speaking to his side at the break.
Klopp said: “I never thought a second about the Man City game and the Aston Villa game together.
"I never thought, ‘OK, you should win that, because maybe we lose next week and then we are on a level [points] or whatever.’
“As yet, I have no clue about any Premier League results from other teams, I didn’t ask, it was not too important."
And even now that three points at Villa Park have been claimed, the German's focus is firmly on their return meeting with Genk, whom they beat 4-1 in Belgium.
“We play Genk and then we play City," added Klopp.
"Yes, it’s important, away at Aston Villa, the way they set up, really important, really difficult, but we did it and that’s good.
"And now we have to again collect the bounce and prepare for the next challenge - Genk.”


Motor1.com's Best Spy Shots Of The Week
Here's a weekly review of the vehicles that automakers don't want you to see.
by Chris BruceThings move pretty fast in the secret world of automotive development. Manufacturers are constantly testing prototypes in real-world environments, sometimes years before the debut of a new model. Meanwhile, spy photographers all around the world do their best to catch these machines so we may have a glimpse of what’s to come.
This Week's Big Drives:
We're kept busy posting the latest information on a daily basis, but in case you missed something along the way, here’s a quick summary of all the latest SUVs, sedans, trucks, hatchbacks, and supercars we saw out and about this week.
Alpina XB7
The Alpina XB7 will be a more powerful and more luxurious take on the BMW X7. These shots show some of the minor exterior modifications.
Alpina XB7 Spied Wearing A Little Camo At The Nürburgring
Alpina's Big SUV:
Aston Martin Vantage Volante
Aston Martin doesn't bother to conceal the upcoming Vantage Volante. Instead, the company just gives it a matte-finish body wrap and includes an announcement of the vehicle's debut in 2020.
Aston Martin Vantage Volante Spied Looking Dark On A Foggy Day
See The Vantage:
BMW 4 Series
We've seen the BMW 4 Series plenty of times before, but these shots provided something special by revealing the interior without any camouflage. The look is familiar in comparison to other recent BMWs.
BMW 4 Series Spied Revealing Its Unconcealed Cabin
More Glimpses At The 4 Series:
BMW M3
Production of the new BMW M3 reportedly doesn't begin until late 2020, and the company is continuing to put highly camouflaged examples on the road. This one wears the production lights.
2021 BMW M3 Loses Some Camouflage In New Spy Shots
Info On The New M3:
Jaguar E-Pace
Jaguar dresses this refreshed E-Pace is swirling camouflage. The covering suggests there are design tweaks at the front and rear but no other major styling changes. Look for this revised model to debut in the latter half of 2020.
Jaguar's E-Pace Spied Getting Ready For A Minor Facelift
The Latest E-Pace News:
Opel Insignia
Opel strips off some camouflage from the revised Insignia, particularly the top GSI trim. It's not a design overhaul but keeps the vehicle looking refresh.
Facelifted Opel Insignia, Insignia GSi Spied Looking Ready For Debut
The Signs Of The New Insignia:
Porsche Cayenne Turbo S E-Hybrid Coupe
The Porsche Cayenne Turbo S E-Hybrid Coupe will be the range-topping model in the vehicle's lineup. Rumors suggest that it could use an updated version of the existing model's powertrain that could make in excess of 800 horsepower (597 kilowatts).
Hot Porsche Cayenne Turbo S E-Hybrid Coupe Spied Testing
The boxier Cayenne Turbo S E-Hybrid:
Volvo S90
This Volvo S90 showcases minor styling tweaks at the front and rear, including revised headlight and textured grille slats.


{{ partial "header.html" . }}
Arrested DevOps is a bi-weekly podcast hosted by Matt Stratton, Trevor Hess, and Bridget Kromhout, where we introduce you to the basics of DevOps. The show is panel-based and we talk to cool people. Don't forget to subscribe to keep up to date!


If you're new to the Maps Data API, here's how we recommend you get started:
The Google Maps Data API allows client applications to view, store and update map data in the form of Google Data API feeds using a data model of features (placemarks, lines and shapes) and maps (collections of features).


BIG DATA: The amount of data in our world has been exploding, and analyzing large data sets—so-called big data—will become a key basis of competition, productivity growth, innovation, and consumer surplus.
Big data is a term for data sets that are large and complex. The data mining process includes analysis, capture, search, sharing, storage, transfer, visualization and information privacy. The term often refers simply to the use of predictive analytics or certain other advanced methods to extract value from data. Accuracy in big data may lead to more confident decision making, and better decisions can result in greater operational efficiency, cost reduction and reduced risk. *source*
Big data allows digital advertisers to better target users with more personalized ads that they most likely want to see. Google, and now Facebook—the dominant players in digital advertising—have gotten very good at creating and delivering more appealing ads in non-intrusive ways. Ads featuring products and services we might actually want and use to better our lives. And these more personalized and targeted ads are all based on massive amounts of personal data we constantly provide about what we’re doing, saying, liking, sharing and even your current location. *source*
Several issues will have to be addressed to capture the full potential of big data. Policies related to privacy, security, intellectual property, and even liability will need to be addressed in a big data world. *source*


Three hours of lecture per week. This course introduces the intellectual foundations of information organization and retrieval: conceptual modeling, semantic representation, vocabulary and metadata design, classification, and standardization, as well as information organization and retrieval practices, technology, and applications, including computational processes for analyzing information in both textual and non-textual formats. Students will learn how information organization and retrieval is carried out by professionals, authors, and users; by individuals in association with other individuals, and as part of the business processes in an enterprise and across enterprises. This is a required introductory course for MIMS Master's students, integrating perspectives and best practices from a wide range of disciplines.
Three hours of lecture and one hour of laboratory per week. Course must be completed for a letter grade to fulfill degree requirement. Technological foundations for computing and communications: computer architecture, operating systems, networking, middleware, security. Programming paradigms: object oriented-design, design and analysis of algorithms, data structures, formal languages. Distributed-system architectures and models, inter-process communications, concurrency, system performance.


Resources used fo the project
- https://www.w3schools.com/jquery/
- https://developers.google.com/maps/documentation/javascript/geolocation
- https://developer.mozilla.org/en-US/docs/Web/API/Geolocation_API/Using_the_Geolocation_API
- https://www.w3schools.com/howto
- https://cloud.google.com/blog/products/maps-platform/how-calculate-distances-map-maps-javascript-api
- Parallax images: https://drive.google.com/drive/folders/1L_23PjPL1qrMN1Z2JUxKXvlFG_76tN3P
- https://www.w3schools.com/howto/howto_css_parallax.asp
- https://www.w3schools.com/howto/howto_js_accordion.asp


Our designers create attractive websites that showcase your brand to your target customers and make your site stand out from your competitors.
At Appify, we provide the technical flexibility and web development ingenuity to deliver quality solutions. From day one, the team building your website is involved in planning for your website. That means we hit the ground running and you get the build you need – not just a site that meets a set of specifications, but a true business solution.
Developing unique and custom websites. Our work engages the best website design practices for SEO and responsive web design. Building attractive, professional and user-friendly websites is essential for any business to succeed. Seeing your business succeed is our passion.
The design is about practical imagination, both functional and amazing at the same time. As an iOS app development company, Appify creates intuitive UI/UX designs with all features under your fingertips. We pay great attention to your app’s icon and logo design, in order to attract more users and increase the number of downloads from the App Store.
We can develop iOS apps for each form factor and device that you may be interested in. We understand the inner specifics of each one's hardware and ensure a flawless performance of our app by testing it against all devices, from iPhone and iPad to Apple TV and iWatch.
We are familiar with all risky situations that may affect the app's approval and have successfully submitted iOS apps for years. Appify doesn't just blindly code. We make apps that meet Apple’s technical content and design guidelines.
Our development team works as a plugin to your organization, bringing talented professionals, tools and processes that are integrated smoothly into your operations.
As a professional Android application development firm, we can’t afford to sacrifice quality by making hybrid apps. We go the extra mile to make your custom app better. By strictly adheres to Android application development requirements, including logo & icon design, UI/UX design, etc.—Everything is done in accordance with material design guidelines for Android.
Appify knows all the "ins and outs" of Android project development. We use top-notch development tools and techs to achieve stunning results and outperform your expectations.
Well-crafted software is precise, efficient, secure, scalable and stable -- mixed with a splash of creative genius. We approach the development of your project keeping this in mind. Strictly following our custom agile process results in a high-quality product that works just the way you envisioned.
Backed by market analysis and customer archetypes, our design services aim to maximize user acquisition and retention. Our scope of design extends from fast-growing startups to industry leading brands. We challenge the norms in designing your unique product to be, well, unique – and successful.
We guide you through our proven product strategy process, leveraging our experience and best practices to help define your objectives, apply vigorous research, determine your core concept and ensure a valid product structure. We build your product roadmap to ensure your vision has a clear road to success.


Ex-Arsenal star Henry to coach Montreal Impact
Paris - Ex-Arsenal star Thierry Henry has been appointed coach at MLS franchise Montreal Impact on a two-year contract, the Canadian club announced Thursday.
"Welcome to Montreal @ThierryHenry!" the Major League Soccer (MLS) club tweeted.
Henry, whose baptism of fire as a manager ended in disaster at French club Monaco when he was fired in January, will coach the Canadian club for a minimum of two seasons, Montreal Impact said.
"Henry signed a two-year deal, with an option for 2022," the club said on its website.
Henry, 42, who helped France win the World Cup in 1998, is familiar with the MLS, having played from 2010 to 2014 with the New York Red Bulls.


Settings
Salesforce Utility
Edit Info
Cancel
Save
Nick
Username
Password
Org Type
(C) Prashant Gupta, 2018
About Us


The IBM Watson Language Translator service converts text input in one language into a destination language for the end user using background from domain-specific models. Translation is available among Arabic, Chinese, English, French, Portuguese, German, and Spanish (some languages may not be available for all domains).
Resources:
Just like a doctor is skilled in medical terms, domain-specific models have been trained in terminology from various fields. They help to provide higher quality translations when used in the right context.
Copy output from this field to clipboard.


asac_locations.Rd
Dataset was scraped from the ASAC website. This database contains ASAC location data for the State of Iowa
Name of the facility
Street Address for the facility
City, State, and Zip contained in one column separated by a space
Name of the city where the facility is located
5 digit Zip
State Abbreviation
address used in the Google API geocoding
sf object of geographic locations
column used for identification for filtering
asac_locations
An object of class sf
(inherits from data.frame
) with 15 rows and 9 columns.
http://www.asac.us/about/locations/
library(ggplot2) library(dplyr) asac_locations %>% ggplot() + geom_sf(data = ia_counties) + # iowa county shapes geom_sf() # add pointslibrary(leaflet) library(sf) asac_locations %>% leaflet() %>% addTiles() %>% addPolygons(data = ia_counties, weight = 1, color="#333333") %>% addCircleMarkers(radius = 1, stroke = 0.1, label=~name)


a "current" developer from a different era
from the greater St. Louis area (Metro East)
I have been actively involved in software development for 40 years,
of which the last half has been in consulting. My emphasis is in
application-level software development, and is a full stack developer
with expertise in Functional and Object Oriented Technologies,
Distributed Management, Client/Server Computing, Web Development, GUI
Development, and Engineering Applications.
I hold a Computer Science degree from the University of Missouri
Rolla. I am very pragmatic, and production oriented, and enjoy
working in all aspects of the software development life cycle.

I have started biking. My son and daughter-in-law (a seasoned
triathlete) inspired me to get more exercise.
I keep current in
JavaScript (es6),
Node.js,
Svelte, and
React.
My React stack includes
redux,
redux-logic, and
feature-u.
I have contributed to
Open Source Software ,
publishing several
libraries
and
articles
Full stack rules engine development, with extensive front-end work in both Web 2.0 and subsequently Angular ... using Java, JavaScript, Groovy, WebService, Oracle ... more detail
A local startup developing a series of mobile apps prior to smart phone existance (mid RGA work) ... using J2ME (Java Micro Edition) ... more detail
Development of biotech systems used by molecular breeding scientists ... using Java, Corba, Servlets, Struts, Swing, Applets, and Java2D ... more detail
Specialty Distribution Systems in the pharmaceutical industry ... using Java, Corba, Oracle, Jess, Clips ... more detail
Online investing systems interfacing end user access to on-line trading ... using Java Servlets, EJB, Oracle ... more detail
Convert legacy mainframe systems to a client/server architecture, initially with C++ under UNIX X-Windows, subsequently Java Applets/Servlets, and JavaScript ... more detail
Develop one of MasterCard's first client/server apps ... using C++, Visual C++, Oracle ... more detail
Developed a proof-of-concept for Network Management ... using C++ and Corba ... more detail
Developed a commercial ATM switch (Asynchronous Transfer Mode) for the tele-communication industry ... using C++ ... more detail
Developed multiple systems, including a detailed scheduler ... using Pascal, and an innovative hydro-mechanical/electrical design engineering analysis tool (including schematic capture, control law definition, and simulation) with a full featured symbolic debugger ... using C++ under UNIX X-Windows ... more detail
Developed an Electrical CAD/CAM Engineering Design tool ... ... using PL/I under IBM MVS ... more detail
Development of Bill of Material systems in support of both manufacturing and engineering processes ... using PL/I under MVS with IBM's IMS DB ... more detail
BS Computer Science, GPA 3.5/4.0, Magna Cum Laude Upsilon Pi Epsilon (President) ... more detail
Summer internship developing statistical interfaces to in-house structural analysis programs ... using FORTRAN ... more detail
This section contains some of my Tech Links of interst ...
I can talk about the following ...
I have published the following articles ...
I have been contributing to open source since 2015,
and published several libraries
here are some highlights ...
Feature-Based Development ...
redux utilities ...
gitbook plugins ...
fun apps ...
My Son's 7th grade Science Fair was a Computer Science project ...


Read books, share your collection and socializing all at once. Enjoy the experience wherever, whenever with everyone.
Find lots of friends and make new connection. Stay up-to-date of your friend’s activity.
It takes only 60 second to register and enjoy Jokowi Digital Library
Make a quote and share to inspire others
Wherever you are, you can connect and recommend your favorite books to your friends.
Desktop VersionWe offer a wide range of social features that are designed for all of you especially the young at heart.
Find your favorite e-books and enjoy the new reading experience with enjoyable features.
Get it now!
© 2018 Aksaramaya. All Rights Reserved.