text:
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: constraint_solver/search_limit.proto

#ifndef PROTOBUF_constraint_5fsolver_2fsearch_5flimit_2eproto__INCLUDED
#define PROTOBUF_constraint_5fsolver_2fsearch_5flimit_2eproto__INCLUDED

#include <string>

#include <google/protobuf/stubs/common.h>

#if GOOGLE_PROTOBUF_VERSION < 3000000
#error This file was generated by a newer version of protoc which is
#error incompatible with your Protocol Buffer headers.  Please update
#error your headers.
#endif
#if 3000000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers.  Please
#error regenerate this file with a newer version of protoc.
#endif

#include <google/protobuf/arena.h>
#include <google/protobuf/arenastring.h>
#include <google/protobuf/generated_message_util.h>
#include <google/protobuf/metadata.h>
#include <google/protobuf/message.h>
#include <google/protobuf/repeated_field.h>
#include <google/protobuf/extension_set.h>
#include <google/protobuf/unknown_field_set.h>
// @@protoc_insertion_point(includes)

namespace operations_research {

// Internal implementation detail -- do not call these.
void protobuf_AddDesc_constraint_5fsolver_2fsearch_5flimit_2eproto();
void protobuf_AssignDesc_constraint_5fsolver_2fsearch_5flimit_2eproto();
void protobuf_ShutdownFile_constraint_5fsolver_2fsearch_5flimit_2eproto();

class SearchLimitParameters;

// ===================================================================

class SearchLimitParameters : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:operations_research.SearchLimitParameters) */ {
 public:
  SearchLimitParameters();
  virtual ~SearchLimitParameters();

  SearchLimitParameters(const SearchLimitParameters& from);

  inline SearchLimitParameters& operator=(const SearchLimitParameters& from) {
    CopyFrom(from);
    return *this;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const SearchLimitParameters& default_instance();

  void Swap(SearchLimitParameters* other);

  // implements Message ----------------------------------------------

  inline SearchLimitParameters* New() const { return New(NULL); }

  SearchLimitParameters* New(::google::protobuf::Arena* arena) const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const SearchLimitParameters& from);
  void MergeFrom(const SearchLimitParameters& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const {
    return InternalSerializeWithCachedSizesToArray(false, output);
  }
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(SearchLimitParameters* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return _internal_metadata_.arena();
  }
  inline void* MaybeArenaPtr() const {
    return _internal_metadata_.raw_arena_ptr();
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional int64 time = 1;
  void clear_time();
  static const int kTimeFieldNumber = 1;
  ::google::protobuf::int64 time() const;
  void set_time(::google::protobuf::int64 value);

  // optional int64 branches = 2;
  void clear_branches();
  static const int kBranchesFieldNumber = 2;
  ::google::protobuf::int64 branches() const;
  void set_branches(::google::protobuf::int64 value);

  // optional int64 failures = 3;
  void clear_failures();
  static const int kFailuresFieldNumber = 3;
  ::google::protobuf::int64 failures() const;
  void set_failures(::google::protobuf::int64 value);

  // optional int64 solutions = 4;
  void clear_solutions();
  static const int kSolutionsFieldNumber = 4;
  ::google::protobuf::int64 solutions() const;
  void set_solutions(::google::protobuf::int64 value);

  // optional bool smart_time_check = 5;
  void clear_smart_time_check();
  static const int kSmartTimeCheckFieldNumber = 5;
  bool smart_time_check() const;
  void set_smart_time_check(bool value);

  // optional bool cumulative = 6;
  void clear_cumulative();
  static const int kCumulativeFieldNumber = 6;
  bool cumulative() const;
  void set_cumulative(bool value);

  // @@protoc_insertion_point(class_scope:operations_research.SearchLimitParameters)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  bool _is_default_instance_;
  ::google::protobuf::int64 time_;
  ::google::protobuf::int64 branches_;
  ::google::protobuf::int64 failures_;
  ::google::protobuf::int64 solutions_;
  bool smart_time_check_;
  bool cumulative_;
  mutable int _cached_size_;
  friend void  protobuf_AddDesc_constraint_5fsolver_2fsearch_5flimit_2eproto();
  friend void protobuf_AssignDesc_constraint_5fsolver_2fsearch_5flimit_2eproto();
  friend void protobuf_ShutdownFile_constraint_5fsolver_2fsearch_5flimit_2eproto();

  void InitAsDefaultInstance();
  static SearchLimitParameters* default_instance_;
};
// ===================================================================

// ===================================================================

#if !PROTOBUF_INLINE_NOT_IN_HEADERS
// SearchLimitParameters

// optional int64 time = 1;
inline void SearchLimitParameters::clear_time() {
  time_ = GOOGLE_LONGLONG(0);
}
inline ::google::protobuf::int64 SearchLimitParameters::time() const {
  // @@protoc_insertion_point(field_get:operations_research.SearchLimitParameters.time)
  return time_;
}
inline void SearchLimitParameters::set_time(::google::protobuf::int64 value) {

  time_ = value;
  // @@protoc_insertion_point(field_set:operations_research.SearchLimitParameters.time)
}

// optional int64 branches = 2;
inline void SearchLimitParameters::clear_branches() {
  branches_ = GOOGLE_LONGLONG(0);
}
inline ::google::protobuf::int64 SearchLimitParameters::branches() const {
  // @@protoc_insertion_point(field_get:operations_research.SearchLimitParameters.branches)
  return branches_;
}
inline void SearchLimitParameters::set_branches(::google::protobuf::int64 value) {

  branches_ = value;
  // @@protoc_insertion_point(field_set:operations_research.SearchLimitParameters.branches)
}

// optional int64 failures = 3;
inline void SearchLimitParameters::clear_failures() {
  failures_ = GOOGLE_LONGLONG(0);
}
inline ::google::protobuf::int64 SearchLimitParameters::failures() const {
  // @@protoc_insertion_point(field_get:operations_research.SearchLimitParameters.failures)
  return failures_;
}
inline void SearchLimitParameters::set_failures(::google::protobuf::int64 value) {

  failures_ = value;
  // @@protoc_insertion_point(field_set:operations_research.SearchLimitParameters.failures)
}

// optional int64 solutions = 4;
inline void SearchLimitParameters::clear_solutions() {
  solutions_ = GOOGLE_LONGLONG(0);
}
inline ::google::protobuf::int64 SearchLimitParameters::solutions() const {
  // @@protoc_insertion_point(field_get:operations_research.SearchLimitParameters.solutions)
  return solutions_;
}
inline void SearchLimitParameters::set_solutions(::google::protobuf::int64 value) {

  solutions_ = value;
  // @@protoc_insertion_point(field_set:operations_research.SearchLimitParameters.solutions)
}

// optional bool smart_time_check = 5;
inline void SearchLimitParameters::clear_smart_time_check() {
  smart_time_check_ = false;
}
inline bool SearchLimitParameters::smart_time_check() const {
  // @@protoc_insertion_point(field_get:operations_research.SearchLimitParameters.smart_time_check)
  return smart_time_check_;
}
inline void SearchLimitParameters::set_smart_time_check(bool value) {

  smart_time_check_ = value;
  // @@protoc_insertion_point(field_set:operations_research.SearchLimitParameters.smart_time_check)
}

// optional bool cumulative = 6;
inline void SearchLimitParameters::clear_cumulative() {
  cumulative_ = false;
}
inline bool SearchLimitParameters::cumulative() const {
  // @@protoc_insertion_point(field_get:operations_research.SearchLimitParameters.cumulative)
  return cumulative_;
}
inline void SearchLimitParameters::set_cumulative(bool value) {

  cumulative_ = value;
  // @@protoc_insertion_point(field_set:operations_research.SearchLimitParameters.cumulative)
}

#endif  // !PROTOBUF_INLINE_NOT_IN_HEADERS

// @@protoc_insertion_point(namespace_scope)

}  // namespace operations_research

// @@protoc_insertion_point(global_scope)

#endif  // PROTOBUF_constraint_5fsolver_2fsearch_5flimit_2eproto__INCLUDED


text:
package main

import (
	"log"
	"math/rand"
	"os"
	"time"

	"github.com/nsf/termbox-go"
	tbui "github.com/xenoryt/termboxui-go"
)

func DrawBufferTo(buffer [][]termbox.Cell, v *tbui.View) {
	for y, row := range buffer {
		for x, cell := range row {
			v.SetCell(x, y, cell.Ch, cell.Fg, cell.Bg)
		}
	}
}

func HandleInput(ev termbox.Event, v *tbui.View) bool {
	switch ev.Type {
	case termbox.EventKey:
		switch ev.Key {
		case termbox.KeyEsc:
			return true
		case termbox.KeyArrowRight:
			v.ClearDefault()
			v.Move(1, 0)
		case termbox.KeyArrowLeft:
			v.ClearDefault()
			v.Move(-1, 0)
		default:
			switch ev.Ch {
			case 'q':
				return true
			}
		}
	case termbox.EventError:
		panic(ev.Err)
	}
	return false
}

func RandColor() termbox.Attribute {
	return termbox.Attribute(rand.Intn(int(termbox.ColorWhite)))
}

func RandomizeColor(cells []*termbox.Cell) {
	for _, cell := range cells {
		cell.Fg = RandColor()
	}
}

func main() {
	//Initialize log
	f, err := os.Create("log")
	if err != nil {
		panic(err)
	}
	defer f.Close()
	log.SetOutput(f)

	// Initialize termbox
	err = termbox.Init()
	if err != nil {
		panic(err)
	}
	defer termbox.Close()

	v := tbui.NewView()
	v.Move(3, 3)
	v.Resize(10, 10)

	const BufferSize = 10

	buffer := make([][]termbox.Cell, BufferSize)
	border := make([]*termbox.Cell, 0, BufferSize*4-4)

	for y := range buffer {
		buffer[y] = make([]termbox.Cell, BufferSize)
		for x, _ := range buffer[y] {
			cell := &buffer[y][x]
			if x == 0 || x == len(buffer[y])-1 || y == 0 || y == len(buffer)-1 {
				cell.Ch = '#'
				border = append(border, cell)
			} else {
				cell.Ch = ' '
			}
			cell.Bg = termbox.ColorDefault
			cell.Fg = termbox.ColorDefault
		}
	}

	// Check for user input
	inp := make(chan termbox.Event, 3)
	go func() {
		for {
			ev := termbox.PollEvent()
			inp <- ev
		}
	}()

	ticker := time.NewTicker(time.Second)

mainloop:
	for {
		v.Clear(termbox.ColorDefault, termbox.ColorDefault)
		RandomizeColor(border)
		DrawBufferTo(buffer, v)
		termbox.Flush()
		select {
		case ev := <-inp:
			log.Print("handling input")
			if HandleInput(ev, v) {
				break mainloop
			}
		case <-ticker.C:
		}
	}
}

redpajama_set_name: RedPajamaGithub


text:
#import "AppDelegate.h"

#import <React/RCTBundleURLProvider.h>
#import <React/RCTRootView.h>

#if RCT_DEV
#import <React/RCTDevLoadingView.h>
#endif

#import <RNBranch/RNBranch.h>

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
#ifdef DEBUG
  [RNBranch useTestInstance];
#endif // DEBUG
  [RNBranch initSessionWithLaunchOptions:launchOptions isReferrable:YES];

  NSURL *jsCodeLocation;

#ifdef DEBUG
  jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
#else
  jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
#endif

  RCTBridge *bridge = [[RCTBridge alloc] initWithBundleURL:jsCodeLocation
                                            moduleProvider:nil
                                             launchOptions:launchOptions];
#if RCT_DEV
  [bridge moduleForClass:[RCTDevLoadingView class]];
#endif

  RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge
                                                   moduleName:@"browser_example"
                                            initialProperties:nil];
  rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];

  self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
  UIViewController *rootViewController = [UIViewController new];
  rootViewController.view = rootView;
  self.window.rootViewController = rootViewController;
  [self.window makeKeyAndVisible];
  return YES;
}

- (BOOL)application:(UIApplication *)app continueUserActivity:(nonnull NSUserActivity *)userActivity restorationHandler:(nonnull void (^)(NSArray * _Nullable))restorationHandler
{
    return [RNBranch.branch continueUserActivity:userActivity];
}

@end


text:
layout: data_model
title: FragmentType
this_version: 1.1
---

  Heads up! These docs are for STIX 1.1, which is not the latest version (1.2). View the latest!

FragmentTypeNetwork Packet Object Schema

Specifies the fields of the Fragment header, which is used by an IPv6 source to send a packet larger than would fit in the path MTU. http://tools.ietf.org/html/rfc2460.

      <form id="nav-version">
        <select>

            <option value="1.2" >STIX 1.2</option>

            <option value="1.1.1" >STIX 1.1.1</option>

            <option value="1.1" selected="selected">STIX 1.1</option>

            <option value="1.0.1" >STIX 1.0.1</option>

            <option value="1.0" >STIX 1.0</option>

        </select>
      </form>

Fields

      Field Name
      Type
      Description

      Fragment_Header0..1

          FragmentHeaderType

Each fragment has a header containing next header information, the offset of the fragment, an M flag specifying whether or not it is the last fragment, and an identification value.

      Fragment0..1

          HexBinaryObjectPropertyType

The fragment of the packet that corresponds to the fragment header. The length of the fragment must fit with the MTU of the path to the packets' destination.


text:
import { IMapFactory, IOptions } from "./interfaces";
export { IMapFactory, IOptions };
export default function createMapper(options?: IOptions): IMapFactory;
export function setValue(baseObject: any, destinationKey: string, fromValue: any): any;
export function getValue(fromObject: any, fromKey: string): any;


text:
Chaos Monkey can send email notifications about terminations of instances and other chaos events. This is helpful to raise awareness that failures are being injected.

To set up notifications, you need to define the following configuration properties:

| Key | Value |
| --- | ----- |
| /simianarmy/chaos/notification/global/enabled | Must be `true` to enable notifications |
| /simianarmy/chaos/notification/sourceemail | Set source email address for sending notifications |
| /simianarmy/chaos/notification/receiveremail | Set recipient email address for notifications |
| /simianarmy/aws/email/region | Optionally configure a different AWS region of SES |

*Both* source and recipient email addresses have to be verified in Amazon Simple Email Service (SES); otherwise SES will refuse to send any emails.

Note that the Docker image doesn't support ASG-specific email notifications, nor does it allow to change the subject or body format of emails.

## Slack

Rather than getting (even more) emails, you might prefer notifications to show up in your chat room. Slack's builtin [email integration](https://get.slack.help/hc/en-us/articles/206819278-Sending-emails-to-Slack) allows you to forward emails from Chaos Monkey to Slack. It doesn't get much easier than this!


text:
package com.bafomdad.realfilingcabinet.blocks;

import net.minecraft.block.Block;
import net.minecraft.block.BlockHorizontal;
import net.minecraft.block.material.Material;
import net.minecraft.block.properties.PropertyDirection;
import net.minecraft.block.state.BlockStateContainer;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumBlockRenderType;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.EnumHand;
import net.minecraft.util.NonNullList;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import net.minecraftforge.common.ForgeHooks;
import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import vazkii.botania.api.mana.IManaItem;

import com.bafomdad.realfilingcabinet.RealFilingCabinet;
import com.bafomdad.realfilingcabinet.TabRFC;
import com.bafomdad.realfilingcabinet.api.IFilingCabinet;
import com.bafomdad.realfilingcabinet.blocks.tiles.TileManaCabinet;
import com.bafomdad.realfilingcabinet.helpers.StringLibs;
import com.bafomdad.realfilingcabinet.init.RFCIntegration;
import com.bafomdad.realfilingcabinet.integration.BotaniaRFC;
import com.bafomdad.realfilingcabinet.items.ItemKeys;
import com.bafomdad.realfilingcabinet.utils.NBTUtils;

public class BlockManaCabinet extends Block implements IFilingCabinet {

	public static final PropertyDirection FACING = BlockHorizontal.FACING;

	public BlockManaCabinet() {

		super(Material.ROCK);
		setRegistryName("manacabinet");
		setTranslationKey(RealFilingCabinet.MOD_ID + ".manacabinet");
		setHardness(5.0F);
		setResistance(1000.0F);
		setCreativeTab(TabRFC.instance);

		setDefaultState(blockState.getBaseState().withProperty(FACING, EnumFacing.NORTH));
	}

	@Override
	protected BlockStateContainer createBlockState() {

		return new BlockStateContainer(this, FACING);
	}

    @Override
    public boolean isSideSolid(IBlockState state, IBlockAccess world, BlockPos pos, EnumFacing side) {

    	if (side == EnumFacing.DOWN || side.getIndex() == state.getValue(FACING).getIndex()) {
    		return false;
    	}
    	return true;
    }

    @Override
    public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) {

    	if (hand == EnumHand.MAIN_HAND) {
        	TileEntity tile = world.getTileEntity(pos);
        	if (tile != null && tile instanceof TileManaCabinet)
        		rightClick(tile, player, facing, hitX, hitY, hitZ);

            return true;
    	}
    	return false;
    }

	@Override
	public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase entity, ItemStack stack) {

		world.setBlockState(pos, state.withProperty(FACING, entity.getHorizontalFacing().getOpposite()), 2);
		TileEntity tile = world.getTileEntity(pos);
		if (tile instanceof TileManaCabinet) {
			if (stack.hasTagCompound())
				((TileManaCabinet)tile).readInv(stack.getTagCompound());
		}
	}

	@Override
	public IBlockState getStateFromMeta(int meta) {

		return getDefaultState().withProperty(FACING, EnumFacing.byHorizontalIndex(meta));
	}

	@Override
	public int getMetaFromState(IBlockState state) {

		return state.getValue(FACING).getHorizontalIndex();
	}

	@Override
    public boolean removedByPlayer(IBlockState state, World world, BlockPos pos, EntityPlayer player, boolean willHarvest) {

    	if (player.capabilities.isCreativeMode && !world.isRemote) {
    		this.harvestBlock(world, player, pos, state, world.getTileEntity(pos), player.getActiveItemStack());
    	}
    	return willHarvest || super.removedByPlayer(state, world, pos, player, false);
    }

	@Override
	public void harvestBlock(World world, EntityPlayer player, BlockPos pos, IBlockState state, TileEntity tile, ItemStack stack) {

		super.harvestBlock(world, player, pos, state, tile, stack);
		world.setBlockToAir(pos);
	}

	@Override
	public void getDrops(NonNullList<ItemStack> drops, IBlockAccess world, BlockPos pos, IBlockState state, int fortune) {

		ItemStack s = new ItemStack(this);
		TileEntity tile = world.getTileEntity(pos);
		if (!(tile instanceof TileManaCabinet)) return;

		NBTTagCompound tag = new NBTTagCompound();
		((TileManaCabinet)tile).writeInv(tag, true);
		if (!tag.isEmpty()) {
			s.setTagCompound(tag);
			drops.add(s);
			return;
		}
	}

	@Override
	public void leftClick(TileEntity tile, EntityPlayer player) {}

	@Override
	public void rightClick(TileEntity tile, EntityPlayer player, EnumFacing side, float hitX, float hity, float hitZ) {

		TileManaCabinet tileMana = (TileManaCabinet)tile;
		ItemStack stack = player.getHeldItem(EnumHand.MAIN_HAND);

		if (tileMana.isCabinetLocked()) {
			if (!tileMana.getCabinetOwner().equals(player.getUniqueID()) && !tileMana.hasKeyCopy(player, tileMana.getCabinetOwner()))
				return;
		}
		if (!player.isSneaking() && !stack.isEmpty()) {
			if (stack.getItem() instanceof ItemKeys) {
				if (!tileMana.isCabinetLocked()) {
					if (stack.getItemDamage() == 0)
						tileMana.setOwner(player.getUniqueID());
				}
				else {
					if (tileMana.getCabinetOwner().equals(player.getUniqueID()) && stack.getItemDamage() == 0) {
						tileMana.setOwner(null);
						return;
					}
					if (tileMana.getCabinetOwner().equals(player.getUniqueID()) && stack.getItemDamage() == 1) {
						if (!stack.hasTagCompound() || (stack.hasTagCompound() && !stack.getTagCompound().hasKey(StringLibs.RFC_COPY))) {
							NBTUtils.setString(stack, StringLibs.RFC_COPY, player.getUniqueID().toString());
							NBTUtils.setString(stack, StringLibs.RFC_FALLBACK, player.getDisplayNameString());
						}
					}
				}
				return;
			}
			if (stack.getItem() == BotaniaRFC.manaFolder && tileMana.isOpen) {
				for (int i = 0; i < tileMana.getInv().getSlots(); i++) {
					ItemStack tileStack = tileMana.getInv().getStackInSlot(i);
					if (tileStack.isEmpty()) {
						tileMana.getInv().setStackInSlot(i, stack);
						player.setHeldItem(EnumHand.MAIN_HAND, ItemStack.EMPTY);
						tileMana.markBlockForRenderUpdate();
						break;
					}
				}
				return;
			}
		}
		if (!player.isSneaking() && stack.isEmpty()) {
			if (!tileMana.getWorld().isRemote) {
				if (tileMana.isOpen)
					tileMana.isOpen = false;
				else
					tileMana.isOpen = true;
				tileMana.markDirty();
			}
			tileMana.markBlockForUpdate();
		}
		if (player.isSneaking() && stack.isEmpty() && tileMana.isOpen) {
			for (int i = tileMana.getInv().getSlots() - 1; i >= 0; i--) {
				ItemStack folder = tileMana.getInv().getStackInSlot(i);
				if (!folder.isEmpty()) {
					tileMana.getInv().setStackInSlot(i, ItemStack.EMPTY);
					player.setHeldItem(EnumHand.MAIN_HAND, folder);
					tileMana.markBlockForUpdate();
					break;
				}
			}
		}
	}

	@Override
	@SideOnly(Side.CLIENT)
	public boolean shouldSideBeRendered(IBlockState state, IBlockAccess world, BlockPos pos, EnumFacing side) {

		return false;
	}

	@Override
	public boolean isBlockNormalCube(IBlockState state) {

		return false;
	}

	@Override
	public boolean isOpaqueCube(IBlockState state) {

		return false;
	}

	@Override
    public boolean isFullCube(IBlockState state) {

		return false;
    }

	@Override
    public EnumBlockRenderType getRenderType(IBlockState state)
    {
        return EnumBlockRenderType.ENTITYBLOCK_ANIMATED;
    }

	@Override
    public float getPlayerRelativeBlockHardness(IBlockState state, EntityPlayer player, World world, BlockPos pos) {

		TileManaCabinet tileMana = (TileManaCabinet)world.getTileEntity(pos);
		if (tileMana != null && tileMana.isCabinetLocked()) {
			if (!tileMana.getCabinetOwner().equals(player.getUniqueID()))
				return -1.0F;
		}
		return ForgeHooks.blockStrength(state, player, world, pos);
	}

	@Override
	public TileEntity createNewTileEntity(World worldIn, int meta) {

		return new TileManaCabinet();
	}
}


text:
	<form method="post" action="{{$smarty.const.__ACTION__&action=add|url}}" class="pageForm required-validate" onsubmit="return validateCallback(this, navTabAjaxDone);">

变量名称:

<input name="varname" class="required" type="text" size="40" value=""/>

变量值:

<input name="value" class="" type="text" size="40" value=""/>

变量类型:

{{html_radios name="type" options=$type checked='string'}}

			<dlclass="nowrap">

参数说明:

					<textarea class="required" name="info" rows="4" cols="50"></textarea>

所属组:

					<select name="groupid" class="combox required">
						{{html_options options=$group}}
					</select>

<button type="submit">添加</button>

<button type="reset">重置</button>

<button type="button" class="close">取消</button>

	</form>


text:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.notbed.muonline</groupId>
	<artifactId>gameserver</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>MuOnline Game Server</name>
	<description>
 </description>

	<dependencies>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>1.7.7</version>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-simple</artifactId>
			<version>1.7.7</version>
		</dependency>
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-lang3</artifactId>
			<version>3.1</version>
		</dependency>

		<dependency>
			<groupId>c3p0</groupId>
			<artifactId>c3p0</artifactId>
			<version>0.9.1.2</version>
		</dependency>

		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.11</version>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.1</version>
				<configuration>
					<source>1.7</source>
					<target>1.7</target>
				</configuration>
			</plugin>
		</plugins>
	</build>

</project>


text:
@interface ArtViewController : YILINBaseViewController

@end


text:
Faraday v1.3.0 is the first release to officially support Ruby 3.0 in the CI pipeline 🎉 🍾!

This is also the first release with a previously "included" adapter (Net::HTTP) being isolated into a [separate gem](https://github.com/lostisland/faraday-net_http) 🎊!
The new adapter is added to Faraday as a dependency for now, so that means full backwards-compatibility, but just to be safe be careful when upgrading!

This is a huge step towards are Faraday v2.0 objective of pushing adapters and middleware into separate gems.
Many thanks to the Faraday Team, @JanDintel and everyone who attended the [ROSS Conf remote event](https://www.rossconf.io/event/remote/)

### Features

* Improves consistency with Faraday::Error and Faraday::RaiseError (#1229, @qsona, @iMacTia)

### Fixes

* Don't assign to global ::Timer (#1227, @bpo)

### Documentation

* CHANGELOG: add releases after 1.0 (#1225, @olleolleolle)
* Improves retry middleware documentation. (#1228, @iMacTia)

### Misc

* Move out Net::HTTP adapter (#1222, @JanDintel, @iMacTia)
* Adds Ruby 3.0 to CI Matrix (#1226, @iMacTia)

## [v1.2.0](https://github.com/lostisland/faraday/releases/tag/v1.2.0) (2020-12-23)

### Features

* Introduces `on_request` and `on_complete` methods in `Faraday::Middleware`. (#1194, @iMacTia)

### Fixes

* Require 'date' to avoid retry exception (#1206, @rustygeldmacher)
* Fix rdebug recursion issue (#1205, @native-api)
* Update call to `em_http_ssl_patch` (#1202, @kylekeesling)
* `EmHttp` adapter: drop superfluous loaded? check (#1213, @olleolleolle)
* Avoid 1 use of keyword hackery (#1211, @grosser)
* Fix #1219 `Net::HTTP` still uses env proxy (#1221, @iMacTia)

### Documentation

* Add comment in gemspec to explain exposure of `examples` and `spec` folders. (#1192, @iMacTia)
* Adapters, how to create them (#1193, @olleolleolle)
* Update documentation on using the logger (#1196, @tijmenb)
* Adjust the retry documentation and spec to align with implementation (#1198, @nbeyer)

### Misc

* Test against ruby head (#1208, @grosser)

## [v1.1.0](https://github.com/lostisland/faraday/releases/tag/v1.1.0) (2020-10-17)

### Features

* Makes parameters sorting configurable (#1162 @wishdev)
* Introduces `flat_encode` option for multipart adapter. (#1163 @iMacTia)
* Include request info in exceptions raised by RaiseError Middleware (#1181 @SandroDamilano)

### Fixes

* Avoid `last arg as keyword param` warning when building user middleware on Ruby 2.7 (#1153 @dgholz)
* Limits net-http-persistent version to < 4.0 (#1156 @iMacTia)
* Update `typhoeus` to new stable version (`1.4`) (#1159 @AlexWayfer)
* Properly fix test failure with Rack 2.1+. (#1171 @voxik)

### Documentation

* Improves documentation on how to contribute to the site by using Docker. (#1175 @iMacTia)
* Remove retry_change_requests from documentation (#1185 @stim371)

### Misc

* Link from GitHub Actions badge to CI workflow (#1141 @olleolleolle)
* Return tests of `Test` adapter (#1147 @AlexWayfer)
* Add 1.0 release to wording in CONTRIBUTING (#1155 @olleolleolle)
* Fix linting bumping Rubocop to 0.90.0 (#1182 @iMacTia)
* Drop `git ls-files` in gemspec (#1183 @utkarsh2102)
* Upgrade CI to ruby/setup-ruby (#1187 @gogainda)

## [v1.0.1](https://github.com/lostisland/faraday/releases/tag/v1.0.1) (2020-03-29)

### Fixes

* Use Net::HTTP#start(&block) to ensure closed TCP connections (#1117)
* Fully qualify constants to be checked (#1122)
* Allows `parse` method to be private/protected in response middleware (#1123)
* Encode Spaces in Query Strings as '%20' Instead of '+' (#1125)
* Limits rack to v2.0.x (#1127)
* Adapter Registry reads also use mutex (#1136)

### Documentation

* Retry middleware documentation fix (#1109)
* Docs(retry): precise usage of retry-after (#1111)
* README: Link the logo to the website (#1112)
* Website: add search bar (#1116)
* Fix request/response mix-up in docs text (#1132)

## v1.0

Features:

* Add #trace support to Faraday::Connection #861 (@technoweenie)
* Add the log formatter that is easy to override and safe to inherit #889 (@prikha)
* Support standalone adapters #941 (@iMacTia)
* Introduce Faraday::ConflictError for 409 response code #979 (@lucasmoreno)
* Add support for setting `read_timeout` option separately #1003 (@springerigor)
* Refactor and cleanup timeout settings across adapters #1022 (@technoweenie)
* Create ParamPart class to allow multipart posts with JSON content and file upload at the same time #1017 (@jeremy-israel)
* Copy UploadIO const -> FilePart for consistency with ParamPart #1018, #1021 (@technoweenie)
* Implement streaming responses in the Excon adapter #1026 (@technoweenie)
* Add default implementation of `Middleware#close`. #1069 (@ioquatix)
* Add `Adapter#close` so that derived classes can call super. #1091 (@ioquatix)
* Add log_level option to logger default formatter #1079 (@amrrbakry)
* Fix empty array for FlatParamsEncoder `{key: []} -> "key="` #1084 (@mrexox)

Bugs:

* Explicitly require date for DateTime library in Retry middleware #844 (@nickpresta)
* Refactor Adapter as final endpoints #846 (@iMacTia)
* Separate Request and Response bodies in Faraday::Env #847 (@iMacTia)
* Implement Faraday::Connection#options to make HTTP requests with the OPTIONS verb. #857 (@technoweenie)
* Multipart: Drop Ruby 1.8 String behavior compat #892 (@olleolleolle)
* Fix Ruby warnings in Faraday::Options.memoized #962 (@technoweenie)
* Allow setting min/max SSL version for a Net::HTTP::Persistent connection #972, #973 (@bdewater, @olleolleolle)
* Fix instances of frozen empty string literals #1040 (@BobbyMcWho)
* remove temp_proxy and improve proxy tests #1063 (@technoweenie)
* improve error initializer consistency #1095 (@technoweenie)

Misc:

* Convert minitest suite to RSpec #832 (@iMacTia, with help from @gaynetdinov, @Insti, @technoweenie)
* Major effort to update code to RuboCop standards. #854 (@olleolleolle, @iMacTia, @technoweenie, @htwroclau, @jherdman, @Drenmi, @Insti)
* Rubocop #1044, #1047 (@BobbyMcWho, @olleolleolle)
* Documentation tweaks (@adsteel, @Hubro, @iMacTia, @olleolleolle, @technoweenie)
* Update license year #981 (@Kevin-Kawai)
* Configure Jekyll plugin jekyll-remote-theme to support Docker usage #999 (@Lewiscowles1986)
* Fix Ruby 2.7 warnings #1009 (@tenderlove)
* Cleanup adapter connections #1023 (@technoweenie)
* Describe clearing cached stubs #1045 (@viraptor)
* Add project metadata to the gemspec #1046 (@orien)

## v0.17.3

Fixes:

* Reverts changes in error classes hierarchy. #1092 (@iMacTia)
* Fix Ruby 1.9 syntax errors and improve Error class testing #1094 (@BanzaiMan,
  @mrexox, @technoweenie)

Misc:

* Stops using `&Proc.new` for block forwarding. #1083 (@olleolleolle)
* Update CI to test against ruby 2.0-2.7 #1087, #1099 (@iMacTia, @olleolleolle,
  @technoweenie)
* require FARADAY_DEPRECATE=warn to show Faraday v1.0 deprecation warnings
  #1098 (@technoweenie)

## v0.17.1

Final release before Faraday v1.0, with important fixes for Ruby 2.7.

Fixes:

* RaiseError response middleware raises exception if HTTP client returns a nil
  status. #1042 (@jonnyom, @BobbyMcWho)

Misc:

* Fix Ruby 2.7 warnings (#1009)
* Add `Faraday::Deprecate` to warn about upcoming v1.0 changes. (#1054, #1059,
    #1076, #1077)
* Add release notes up to current in CHANGELOG.md (#1066)
* Port minimal rspec suite from main branch to run backported tests. (#1058)

## v0.17.0

This release is the same as v0.15.4. It was pushed to cover up releases
v0.16.0-v0.16.2.

## v0.15.4

* Expose `pool_size` as a option for the NetHttpPersistent adapter (#834)

## v0.15.3

* Make Faraday::Request serialisable with Marshal. (#803)
* Add DEFAULT_EXCEPTIONS constant to Request::Retry (#814)
* Add support for Ruby 2.6 Net::HTTP write_timeout (#824)

## v0.15.2

* Prevents `Net::HTTP` adapters to retry request internally by setting `max_retries` to 0 if available (Ruby 2.5+). (#799)
* Fixes `NestedParamsEncoder` handling of empty array values (#801)

## v0.15.1

* NetHttpPersistent adapter better reuse of SSL connections (#793)
* Refactor: inline cached_connection (#797)
* Logger middleware: use $stdout instead of STDOUT (#794)
* Fix: do not memoize/reuse Patron session (#796)

Also in this release:

* Allow setting min/max ssl version for Net::HTTP (#792)
* Allow setting min/max ssl version for Excon (#795)

## v0.15.0

Features:

* Added retry block option to retry middleware. (#770)
* Retry middleware improvements (honour Retry-After header, retry statuses) (#773)
* Improve response logger middleware output (#784)

Fixes:

* Remove unused class error (#767)
* Fix minor typo in README (#760)
* Reuse persistent connections when using net-http-persistent (#778)
* Fix Retry middleware documentation (#781)
* Returns the http response when giving up on retrying by status (#783)

## v0.14.0

Features:

* Allow overriding env proxy #754 (@iMacTia)
* Remove legacy Typhoeus adapter #715 (@olleolleolle)
* External Typhoeus Adapter Compatibility #748 (@iMacTia)
* Warn about missing adapter when making a request #743 (@antstorm)
* Faraday::Adapter::Test stubs now support entire urls (with host) #741 (@erik-escobedo)

Fixes:

* If proxy is manually provided, this takes priority over `find_proxy` #724 (@iMacTia)
* Fixes the behaviour for Excon's open_timeout (not setting write_timeout anymore) #731 (@apachelogger)
* Handle all connection timeout messages in Patron #687 (@stayhero)

## v0.13.1

* Fixes an incompatibility with Addressable::URI being used as uri_parser

## v0.13.0

Features:

* Dynamically reloads the proxy when performing a request on an absolute domain (#701)
* Adapter support for Net::HTTP::Persistent v3.0.0 (#619)

Fixes:

* Prefer #hostname over #host. (#714)
* Fixes an edge-case issue with response headers parsing (missing HTTP header) (#719)

## v0.12.2

* Parse headers from aggregated proxy requests/responses (#681)
* Guard against invalid middleware configuration with warning (#685)
* Do not use :insecure option by default in Patron (#691)
* Fixes an issue with HTTPClient not raising a `Faraday::ConnectionFailed` (#702)
* Fixes YAML serialization/deserialization for `Faraday::Utils::Headers` (#690)
* Fixes an issue with Options having a nil value (#694)
* Fixes an issue with Faraday.default_connection not using Faraday.default_connection_options (#698)
* Fixes an issue with Options.merge! and Faraday instrumentation middleware (#710)

## v0.12.1

* Fix an issue with Patron tests failing on jruby
* Fix an issue with new `rewind_files` feature that was causing an exception when the body was not an Hash
* Expose wrapped_exception in all client errors
* Add Authentication Section to the ReadMe

## v0.12.0.1

* Hotfix release to address an issue with TravisCI deploy on Rubygems

## v0.12.0

Features:

* Proxy feature now relies on Ruby `URI::Generic#find_proxy` and can use `no_proxy` ENV variable (not compatible with ruby < 2.0)
* Adds support for `context` request option to pass arbitrary information to middlewares

Fixes:

* Fix an issue with options that was causing new options to override defaults ones unexpectedly
* Rewind `UploadIO`s on retry to fix a compatibility issue
* Make multipart boundary unique
* Improvements in `README.md`

## v0.11.0

Features:

* Add `filter` method to Logger middleware
* Add support for Ruby2.4 and Minitest 6
* Introduce block syntax to customise the adapter

Fixes:

* Fix an issue that was allowing to override `default_connection_options` from a connection instance
* Fix a bug that was causing newline escape characters ("\n") to be used when building the Authorization header

## v0.10.1

- Fix an issue with HTTPClient adapter that was causing the SSL to be reset on every request
- Rescue `IOError` instead of specific subclass
- `Faraday::Utils::Headers` can now be successfully serialised in YAML
- Handle `default_connection_options` set with hash

## v0.10.0

Breaking changes:
- Drop support for Ruby 1.8

Features:
- Include wrapped exception/reponse in ClientErrors
- Add `response.reason_phrase`
- Provide option to selectively skip logging request/response headers
- Add regex support for pattern matching in `test` adapter

Fixes:
- Add `Faraday.respond_to?` to find methods managed by `method_missing`
- em-http: `request.host` instead of `connection.host` should be taken for SSL validations
- Allow `default_connection_options` to be merged when options are passed as url parameter
- Improve splitting key-value pairs in raw HTTP headers

## v0.9.2

Adapters:
- Enable gzip compression for httpclient
- Fixes default certificate store for httpclient not having default paths.
- Make excon adapter compatible with 0.44 excon version
- Add compatibility with Patron 0.4.20
- Determine default port numbers in Net::HTTP adapters (Addressable compatibility)
- em-http: wrap "connection closed by server" as ConnectionFailed type
- Wrap Errno::ETIMEDOUT in Faraday::Error::TimeoutError

Utils:
- Add Rack-compatible support for parsing `a[][b]=c` nested queries
- Encode nil values in queries different than empty strings. Before: `a=`; now: `a`.
- Have `Faraday::Utils::Headers#replace` clear internal key cache
- Dup the internal key cache when a Headers hash is copied

Env and middleware:
- Ensure `env` stored on middleware response has reference to the response
- Ensure that Response properties are initialized during `on_complete` (VCR compatibility)
- Copy request options in Faraday::Connection#dup
- Env custom members should be copied by Env.from(env)
- Honour per-request `request.options.params_encoder`
- Fix `interval_randomness` data type for Retry middleware
- Add maximum interval option for Retry middleware

## v0.9.1

* Refactor Net:HTTP adapter so that with_net_http_connection can be overridden to allow pooled connections. (@Ben-M)
* Add configurable methods that bypass `retry_if` in the Retry request middleware.  (@mike-bourgeous)

## v0.9.0

* Add HTTPClient adapter (@hakanensari)
* Improve Retry handler (@mislav)
* Remove autoloading by default (@technoweenie)
* Improve internal docs (@technoweenie, @mislav)
* Respect user/password in http proxy string (@mislav)
* Adapter options are structs.  Reinforces consistent options across adapters
  (@technoweenie)
* Stop stripping trailing / off base URLs in a Faraday::Connection. (@technoweenie)
* Add a configurable URI parser. (@technoweenie)
* Remove need to manually autoload when using the authorization header helpers on `Faraday::Connection`. (@technoweenie)
* `Faraday::Adapter::Test` respects the `Faraday::RequestOptions#params_encoder` option. (@technoweenie)


text:
<!DOCTYPE html>

  <meta charset="utf-8">
  <title>Web Survey Report 2018 | Node.js</title>

  <link rel="apple-touch-icon" href="/static/apple-touch-icon.png">
  <link rel="icon" sizes="32x32" type="image/png" href="/static/favicon.png">

  <meta property="og:site_name" content="Node.js">
  <meta property="og:title" content="Web Survey Report 2018 | Node.js">
  <meta property="og:image" content="https://nodejs.org/static/images/logo-hexagon-card.png">
  <meta property="og:image:type" content="image/png">
  <meta property="og:image:width" content="224">
  <meta property="og:image:height" content="256">

  <meta name="twitter:card" content="summary" />
  <meta name="twitter:site" content="@nodejs">
  <meta name="twitter:title" content="Web Survey Report 2018 | Node.js">
  <meta name="twitter:image" content="https://nodejs.org/static/images/logo-hexagon-card.png">
  <meta name="twitter:image:alt" content="The Node.js Hexagon Logo">

  <link rel="stylesheet" href="style.css">
  <link rel="stylesheet" href="bootstrap.min.css">
  <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet" >

2018 Node.js User Survey Report

              Overview

              Business/Personal Profile

                  Personal Characteristics

                  International Presence

                  Professional Profile

                  Profile by Region

              Node.js Usage Profile

                  Experience with Node.js

                  Development Focus

                  Profile by Development Area

                  Where Deploy Code

                  Types of Development Work

                  Tools/Technologies Used

                  Correlated Technologies

                  Transpilers and Bundlers

                  Primary OS/Distro

              Languages Used

                  Languages Used

                  Expected Change Node Usage

                  Expected Change Other Languages

              Package Managers

                  Package Manager Usage

                  Managing Different Packages

                  Availability of Multiple Registries

              Learning Node.js

                  Informal Education

                  How Learned Node

                  Ease of Learning Node

                  Learning Resources

                  Resources Used

              Node.js Versions & LTS

                  Version Managers

                  Release Line

                  LTS Support

                  Understanding Newer Node Users

              Node.js Impact & Getting Involved

                  Words to Describe Node.js

                  Business Impact

              Methodology

Download as PDF

Get the raw data (Excel)

                  Back to top

            Overview

This is the third annual Node.js User Survey conducted by the Node.js Foundation. The survey was fielded in English and Chinese from October 2017 through January 2018, yielding 1,626 respondents. The primary objective of the research is to profile Node.js users, understand how they use Node and gauge satisfaction with and anticipated future use of Node and other related technologies. To ensure data integrity and unbiased interpretation, data analysis and reporting was conducted by Research Collaborative, an independent market research firm.

Node.js is continuing to have a positive impact on users particularly around developer productivity and satisfaction; when asked to describe Node.js, respondents use mostly positive terms like – "fast", "easy", "awesome", "powerful", "flexible" and even "fun".

                The largest percentage of users deploy on Amazon Web Services followed by on-premise infrastructure. Though a significant number of users deploy to Heroku, DigitalOcean, Google Cloud Platform and Microsoft Azure.

                Web Apps remain the most popular use case for Node, with 85% of respondents indicating they use Node for this work. 43% of respondents indicate they use Node for enterprise applications.

                Integration with databases, front-end frameworks and load balancing are at the forefront of the range of technologies integrated with Node.js.

                Most users expect to increase their use of Node.js, particularly in Latin America and EMEA.

                Babel is the leading transpiler, but back-end, full stack and 'other' developers are increasing their use of Typescript. Among Module Bundlers, Webpack seems to be consolidating its lead across most regions and development areas.

                is becoming increasingly important to users to manage different packages for multiple environments. npm is by far the most widely used package manager, but Yarn is gaining in popularity in many segments.

Node.js continues to see it's popularity grow on every continent and in a very broad set of use cases due to its flexibility and utility for a wide variety of use cases.

            Business/Personal Profile

                As with last year, the typical Node.js user is male, age 31 and college educated.

                A majority are developers (as opposed to dev managers), in small (<100 employees) companies, with 5+ years of professional development experience.

                Although many have 10+ years total development experience, this year's respondents are less experienced in terms of total development experience.

                Respondents come from across the globe, but most are in US/CA or EMEA.

                Collectively, respondents speak over 60 languages, but for nearly half English is primary.

                The mix of countries has changed somewhat versus last year – with fewer from US and China and more from India and Canada.

                There are considerable differences in personal and business characteristics, with those from US/CA older, more experienced, and from larger companies than users elsewhere.

            Personal Characteristics

                The typical Node.js user is male, age 31, college educated and white.

                Respondents are slightly older in this wave, but gender and education are unchanged.

                    Tweet

            International Presence

                As in the prior study, respondents come from across the globe, but the mix of countries has changed slightly with fewer respondents from the US and China, and more from India and Canada.

                Fewer than half consider English their primary language.

                    Tweet

            Professional Profile

                The typical respondent is a developer in a small (<100 employees) firm, with 5 years professional experience,

                Although many have 10+ years total development experience, respondents are somewhat less experienced overall in this wave.

                    Tweet

            Profile by Region

                There are notable differences in business and personal profile by region.

                Those in the US/CA are older, more experienced and work in larger companies than their peers around the globe.

                EMEA respondents are particularly highly educated.

                The profile of APAC respondents has changed in many respects vs. last wave – perhaps not surprising given the drop in China as a percentage of APAC respondents this year.  APAC respondents are relatively new to development.

Business Characteristics

(By Region)

US/CA

EMEA

APAC

LatAm

Personal Characteristics

(By Region)

US/CA

EMEA

APAC

LatAm

                    Tweet

            Node.js Usage Profile

                As with last year, the typical user has been working with Node over 2 years, and spends more than half of his development time using it. The vast majority are developing web apps.

                Most respondents are primarily back-end or full stack development-focused, and they use Node.js more regularly at work than others do.

                Relatively few users are primarily focused on "other" non-traditional development areas, but those who are tend to be older and more highly educated than others.

                Users are deploying to a variety of platforms, but AWS is most widely used for production and On-premise or AWS for development. Heroku seems to be growing in popularity in APAC and Latin America.

                More than 4 in 5 back-end and full stack developers are using Node.js frameworks; Express is tops, but Graph QL is increasingly prevalent this wave.

                Most are using a transpiler and module bundler (especially full stack and front-end developers). Babel is the preferred transpiler, but Typescript is growing. Webpack continues to dominate the module bundler space.

                Ubuntu is the primary OS/Distro used in production, and MAC OS in development – but Windows seems to be growing in popularity for both (especially in US/CA and EMEA).

            Experience with Node.js

                There has been no change in the Node.js usage profile since last wave.

                The typical respondent has been using Node for just over 2 years, and spends more than half of his development time with Node.

                    Tweet

            Development Focus

                Three in four Node.js users are focused primarily on back-end or full stack development.

                There has been a slight drop in this wave in those who have any focus on back-end development.

                US/CA respondents are more focused on full stack than back-end.

                Ops/DevOps is really only a focus in US/CA – although even here, it is not widely focused on.

Primary Development Focus by Region

US/CA

EMEA

APAC

LatAm

                    Tweet

            Profile by Development Area

                There are some differences in users' business and personal characteristics based on development focus.

                Full stack developers have been using Node the longest, and along with back-end developers, spend the most time with it.

                Those outside of the three traditional development areas tend to be older and more highly educated than others.

Business Characteristics

(By Primary Development Focus)

Back-end

FullStack

Front-end

Other

Personal Characteristics

(By Primary Development Focus)

Back-end

FullStack

Front-end

Other

                    Tweet

            Where Deploy Code

                AWS is the primary place where respondents deploy code for production, and it seems to be growing for use in development.

                On-Premise infrastructure is also widely used, but has dropped for use in production since last year.

                    Tweet

                EMEA respondents are less likely than others to use AWS, preferring on-premise infrastructure.   US/CA respondents are also likely to be deploying via on-premise infrastructure.

                Heroku is growing in both APAC and Latin America, and is one of the top choices for deployment for development in Latin America.

Where Primarily Deploy Node.js Code

(By Region)

For Production

US/CA

EMEA

APAC

LatAm

For Development

US/CA

EMEA

APAC

LatAm

                    Tweet

                Deployment also varies somewhat based on development focus.

                AWS is widely used by back-end, full stack and front-end developers, but less so for others.

                Heroku is relatively popular among full-stack developers.

Where Primarily Deploy Node.js Code

(By Primary Development Focus)

For Production

Back-end

FullStack

Front-end

Other

For Development

Back-end

FullStack

Front-end

Other

                    Tweet

            Types of Development Work

                As before, the vast majority of respondents are spending time developing web apps, particularly those in full stack or front end positions.

                A notable minority also engage in enterprise and/or hobbyist work.

                Those outside the traditional development areas are more likely to be working on embedded systems.

Type of Work By Primary Development Focus

Back-End

FullStack

Front-End

Other

                    Tweet

            Tools/Technologies Used

                Respondents are using a range of tools with Node.js including, primarily: databases, libraries and Node.js frameworks.

                There is considerable variation based on primary development focus – with back-end and full stack developers most likely to use a range of tools.

                Messaging systems and CI are less commonly used than other tools – and usage has dropped since last year.

Type of Tools By Primary Development Focus

Back-End

FullStack

Front-End

Other

                    Tweet

                Respondents are using a range of tools within each category, although in most categories, one or two tools dominate.

                There has been a drop in usage for many specific tools – but some have increased since last year, including Angular 2, Vue, GraphQL, Docker and Kubernetes.

Specific Tools/Technologies Used with Node.js

(in Past 12 Months)

DATABASES

FRONT-END
FRAMEWORKS

NODE.JS
FRAMEWORKS

LOAD
BALANCING

CONTAINERS/
CLOUD NATIVE

CI

MESSAGING
SYSTEMS

                    Tweet

              Correlated Technologies (Beta)

                  This interactive map shows the relationships between Node and other technologies used by survey respondents.

                  Select a Developer Segment and the connection types - All will show all the other tools/tech these developers use with Node.js. Strong will show only the technologies they use most, and Strong and Medium will show the next level of correlated tech.

                  You can Double Click on any circle to see just the technologies used with it. To go back, hit draw again.

                  Size of the circle represents popularity of a given tech among respondents.

                  There may be a few second delay after you hit draw before the map appears.

                    Tweet

            Transpilers and Bundlers

                Most respondents use a transpiler and module bundler – particularly front-end and full stack developers.

                Use of transpilers has risen since last year; Babel is most common, but use of Typescript is on the rise.

                Webpack seems to be solidifying its notable lead among module bundlers.

                    Tweet

            Primary OS/Distro

                Ubuntu is the primary OS/Distro used in production, while MAC OS is primary in development

                Use of Windows – in both production and development – has increased since last year, particularly in US/CA, EMEA and in smaller companies (among other segments).

                    Tweet

                Distro use varies somewhat by region, with Ubuntu more popular in APAC and Latin America, and MAC OS more popular in US/CA.

                Debian-based Linux, while not widely used anywhere for development, is somewhat popular in EMEA and Latin America in production

Primary OS/Distro Used

(By Region)

Production

US/CA

EMEA

APAC

LatAm

Development

US/CA

EMEA

APAC

LatAm

                    Tweet

                Primary distro varies somewhat by development focus.

                Ubuntu is most popular among back-end and full stack developers, while Windows is more popular among front-end and "other" developers (where it is the #1 choice for both production and development).

Primary OS/Distro Used

(By Primary Development Focus)

Production

US/CA

EMEA

APAC

LatAm

Development

Back-End

FullStack

Front-End

Other

                    Tweet

            Languages Used

                Node.js users are using a range of other languages besides Node  – more than 3 on average, including primarily JavaScript, Python, Java and PHP.

                A third are using ES2017 or above – three times as many as with last year.

                APAC users use fewer languages on average than others, while those outside traditional development areas use more – particularly C++ and C.

                Most expect to increase their use of Node.js over the next 12 months – and the number is rising.  Growth will likely come from outside the US/CA – particularly in Latin America or EMEA.

                Use of other languages is also expected to increase – including Rust, Go and JavaScript.

                Usage of Ruby has dropped, and users are far more likely to say they will "decrease" usage than increase over the next 12 months.

                PHP is less popular in US/CA and among "other" developers; and, many of those who use it say they will decrease usage over the next 12 months.

                Go and Swift may be stealing the attention of Node.js users – many of those who plan to maintain/decrease with Node.js will increase with Go or Swift in the next 12 months.

            Languages Used

                Respondents are using at least 3 other languages on average besides Node – typically JavaScript and then Python, Java or PHP.

                More than a third of respondents are using ES2017 or above.

                    Tweet

                Language usage varies somewhat by region and development focus.

                Among other differences, PHP is less popular in US/CA and among those outside of traditional programming areas.

                Despite being less likely to use JavaScript and PHP, those "other" developers use more languages on average (closer to 4), including C++ and C.

Other Languages Used Addition to Node

(Past 12 Months)
Top Mentions

By Region

US/CA

EMEA

APAC

LatAm

By Primary Development Focus

Back-End

FullStack

Front-End

Other

                    Tweet

            Expected Change Node Usage

                Three quarters of respondents say they plan to increase their use of Node over the next 12 months – up from last year.

                The rise in increased usage is attributable to back-end developers and those in EMEA, although Latin American respondents are most likely to say they will increase their usage.

                    Tweet

            Expected Change Other Languages

                Use of other languages will also increase among current users – including Rust, Go, and JavaScript.

                Usage of PHP and Ruby appears to be on the decline – although many of those in Asia/Pacific plan to increase their usage of PHP.

                    Tweet

                Planned usage does not vary considerably across the three main developer segments – except that back-end developers are particularly likely to decrease their use of Java and front-end developers are less likely to decrease their use of PHP.

                    Tweet

                Those who plan to increase their use of Node.js will be increasing their use of a number of other languages as well.

                Many of those who will just maintain/decrease with Node will be increasing their focus on Go or Swift.

                    Tweet

            Package Managers

                NPM is by far the most widely used package manager, but Yarn is gaining in popularity.

                Node users search for packages primarily on ptmjs.org or Google/search engines; the use of Google/search engines has increased since last year.

                is becoming increasingly important to users to manage different packages for multi environments. Those in APAC and Latin American regions are most likely to see this as a priority.

                Availability of multiple registries is not widely seen as important in certain segments like EMEA, US/CA and small companies.

                Latin America is the only area where having multiple registries is an important priority.

            Package Manager Usage

                NPM is, by far, the most widely used package manager – but Yarn is gaining in popularity in many subgroups.

                Respondents search for packages almost entirely on npmjs.org or through Google/search engine, which are gaining popularity in APAC and among other developers.

                    Tweet

            Managing Different Packages

                is becoming increasingly important to be able to manage different packages for multi environments – the rise most evident among full stack developers and those in US/CA.

                These rises notwithstanding, managing different packages is particularly important to those in APAC and Latin America.

                    Tweet

            Availability of Multiple Registries

                The availability of multiple registries is not widely seen as important – at least not outside Latin America.

                EMEA respondents, and those in companies with fewer than 100 employees are least likely to value access to multiple registries.

                    Tweet

            Learning Node.js

                The main way Node users learn a new language is through online courses without an instructor, especially outside the US/CA

                Nearly all users learned Node in English – but for more than half, it was not their native language.

                EMEA and Latin American users are most likely to have learned in a non-native language.

                There has been a rise in those who say it is easy to learn Node.js, and improvement in scores for availability and quality of resources in several topic areas.

                Latin American users, despite having learned in non-native language, give particularly high scores for availability, quality and overall ease of learning.

                There are some differences perceptions by subgroup, with APAC and EMEA having some concerns, and mid-size companies perhaps faring better than others.

                Newer Node users are less enthusiastic about availability and quality of resources than longer term users, although most are still positive.

                Documentation and Stack Overflow are the main sources users rely on when learning a new language – but free online courses and tutorial videos are also important and something users would like more of (especially new users and those in Latin America.

            Informal Education

                The primary way respondents are gaining informal coding education is via online courses without an instructor – particularly outside US/CA.

                While not widely used, tutoring is more popular in APAC than in other regions.

                    Tweet

            How Learned Node

                Nearly all respondents learned Node in English – which is non-native for more than half of respondents (up since last year).

                certain regions – including EMEA and (especially) Latin America – a vast majority of respondents learned Node in a non-native Language.

                    Tweet

            Ease of Learning Node

                About half of respondents say it was generally easy to learn Node.js – up slightly from last year.  Very few complain that it is difficult.

                Surprisingly, those in Latin America – who are most likely to have learned in a non-native language – are particularly upbeat about ease of learning.

                Newer Node users are less enthusiastic than those using it 2+ years – suggesting that more could be done to improve the learning experience.

                    Tweet

            Learning Resources

                There have been notable improvements in access to and/or quality of learning resources – particularly for General Node.js programming and Asynchronous programming.

                Still, more needs to be done to improve ratings for resources around managing node in production and Node.js and security – for both areas, high negative scores are a red flag.

                    Tweet

                Perceptions of availability of resources vary considerably by region – with those in Latin America generally more upbeat, but those in APAC and EMEA having concerns in some specific topic areas.

                    Tweet

                A similar pattern exists with regard to quality: Latin America respondents are more pleased with quality while APAC and (less so) EMEA have concerns.

                    Tweet

                Respondents in mid-size companies perceive greater access to some learning resources than those in larger and smaller firms, but perceived quality is only marginally better.

                To the extent there has been an improvement in perceptions of availability of resources, it's coming from midsize and smaller companies.

                    Tweet

                Newer Node users give lower scores than others on availability in several topic areas.

                While still low, their higher negative ratings are worthy of note.

                    Tweet

            Resources Used

                Respondents use many resources when learning a new language – documentation and Stack Overflow chief among them.

                Tutorial videos are also widely used – more than in last year.

                While documentation and Stack Overflow are still top, newer Node users are more likely than others to also use free & paid online courses and tutorial videos.

Resources Used By Years Using Node.js

<2 yrs

2+ yrs

                    Tweet

                To the extent users want more learning resources, documentation, free online courses and tutorial videos top the list.

                Consistent with their current usage, new Node users are particularly likely to want free online courses and tutorial videos.

Resources Used By Years Using Node.js

<2 yrs

2+ yrs

                    Tweet

                Latin American users are particularly open to new learning resources – particularly around free online courses, tutorial videos, conferences and (increasingly) conference talk videos.

                Front end developers are less likely than others (and than last wave) to want more meet-up events.

Resources Would Like More Of

(Top Mentions)

By Region

US/CA

EMEA

APAC

LatAm

By Primary Development Focus

Back-End

FullStack

Front-End

Other

                    Tweet

            Node Versions & LTS

                Most Node users use a version manager – typically Nvm.

                Just over half use LTS release line, but use of current release line is increasing – particularly among Full stack and "other" developers, and in smaller companies.

                is important to most users to have LTS for Node.js, although it is somewhat less important to those in small companies or in EMEA.

                There has been a drop in those who say the LTS schedule support timeframe is 'clear', down to just half of users.  Those least likely to see as clear are front-end developers, APAC and those in smaller companies.

                New users are less likely to use a version manager, and are more likely to use Apt-Get than their more seasoned peers.

                Importantly, only a minority of new users report a good understanding of the LTS schedule/support timeframe.

            Version Managers

                Three in four Node users say they use a Node.js version manager – typically NVM.

                    Tweet

            Release Line

                More than half of users rely on LTS release line – but that number is slipping.

                Current is particularly popular among small companies, and newer Node users.

                    Tweet

            LTS Support

                is important to most users to have LTS for Node.js.

                Users in EMEA and smaller companies are less likely to see it as a priority, but even here, more than half say it is important.

                    Tweet

                While many say the LTS Schedule/Support timeframe is clear, that number has dropped significantly since last year – overall and across multiple segments.

                APAC users, front-end developers and those in small companies are least likely to see LTS schedule/support timeframe as clear.

                    Tweet

            Understanding Newer Node Users

                Newer Node users are less likely than their more seasoned peers in their use of version manager, and are more likely to use Apt-Get.

                While it is not as important to them to have LTS support, most novice users still do want it, and their understanding of the schedule/support timeframe is weak.

                    Tweet

            Node.js Impact & Getting Involved

                Users are very upbeat and excited about Node.js – with words like "fast" "easy" "awesome" "simple" "powerful" and "fun" widely used to describe Node.js

                Node.js is continuing to have a positive impact on many users – primarily through increased productivity and satisfaction, reduced development costs and increased app performance.

                The impacts may not be immediately clear however: new users are less likely to report positive impacts in many areas.

                While it's not the most widely felt benefit, users in US/CA are more likely than others to say Node.js has helped with recruiting.

                Despite their positive perceptions, few have been contributing to open source projects for Node.js.

                There is growing interest in getting involved, however: nearly a third say they are interested in contributing and nearly half say they might be open to mentoring others (both up from last year).

                Those most interested in being involved include users in Latin America, APAC, and back-end and full stack developers.

                The main barriers are time and inexperience – but some Node users don't know how to contribute, or feel the community can be more welcoming.

            Words to Describe Node.js

                their own words, respondents used mostly positive adjectives to describe Node.js

                They particularly like that it is fast, simple, easy, yet powerful and flexible.

            Business Impact

                As with last year, many users say that Node.js has had a positive impact on their business – chiefly through increased developer productivity and satisfaction.

                Reduced development costs and increased application performance are also important outcomes tied to Node.js.

                Perhaps not surprisingly, longer-tenured users are far more likely than novices to report an impact from Node.js.

Impact by Years Using Node

(Top Impacts)

<2 yrs

2+ yrs

                    Tweet

                Users in Latin America are particularly likely to note positive impacts – particularly around productivity, application performance and uptime.

                Node has helped with recruiting in the US/CA more than other regions.

How Node.js Has Impacted Your Business

(Top Impacts)

US/CA

EMEA

APAC

LAT AM

                    Tweet

            Methodology

                This report presents selected findings from the 2017 Node.js User Survey.

                The primary objective of the research was to profile Node.js users and identify potential areas of improvement.  The findings will be used for program development, marketing and PR/external communications.

                The study was conducted online from Oct 5, 2017 to January 7, 2018 via a self-administered survey.

                The survey was fielded worldwide in English and Chinese to encourage maximum response.

                The survey link was distributed by the Node Foundation through a number of channels including email, Twitter, conferences, blogs and word of mouth (meet-ups).

                A total of 1,626 individuals responded to at least some questions in the survey.

                To ensure data integrity and unbiased interpretation, data analysis and reporting was conducted by Research Collaborative, an independent market research firm.

                Where appropriate, statistically significant differences are noted as follows:

                indicates a score is higher/lower than one or more other subgroup score(s) at 95% confidence level

                indicates a score is higher/lower than prior wave (last year) score at 95% confidence level (prior wave data not always shown)

                Additionally, significant differences may be noted in callout boxes:

                Numbers may not total to 100% due to rounding

Copyright © 2018 The Linux Foundation®. All rights reserved. Node.js is a trademark of Joyent, Inc. and is used with its permission. Please review the Trademark Guidelines of the Node.js Foundation document.  The Linux Foundation has registered trademarks and uses trademarks. For a list of trademarks of The Linux Foundation, please see our Trademark Usage page.  Linux is a registered trademark of Linus Torvalds.  Privacy Policy and Terms of Use


text:
#pragma checksum "..\..\ProfileGraphFromMap.xaml" "{406ea660-64cf-4c82-b6f0-42d48172a799}" "782452928CEB3AEE0978336D264612D6"
//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:4.0.30319.34014
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

using ESRI.ArcGIS.OperationsDashboard;
using Microsoft.Windows.Controls;
using Microsoft.Windows.Controls.Primitives;
using System;
using System.Diagnostics;
using System.Windows;
using System.Windows.Automation;
using System.Windows.Controls;
using System.Windows.Controls.DataVisualization;
using System.Windows.Controls.DataVisualization.Charting;
using System.Windows.Controls.DataVisualization.Charting.Primitives;
using System.Windows.Controls.Primitives;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Markup;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Media.Effects;
using System.Windows.Media.Imaging;
using System.Windows.Media.Media3D;
using System.Windows.Media.TextFormatting;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Shell;

namespace OperationsDashboardAddIns {

    /// <summary>
    /// ProfileGraphFromMap
    /// </summary>
    public partial class ProfileGraphFromMap : System.Windows.Controls.UserControl, System.Windows.Markup.IComponentConnector {

        private bool _contentLoaded;

        /// <summary>
        /// InitializeComponent
        /// </summary>
        [System.Diagnostics.DebuggerNonUserCodeAttribute()]
        [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
        public void InitializeComponent() {
            if (_contentLoaded) {
                return;
            }
            _contentLoaded = true;
            System.Uri resourceLocater = new System.Uri("/OperationsDashboardAddIns;component/profilegraphfrommap.xaml", System.UriKind.Relative);

            #line 1 "..\..\ProfileGraphFromMap.xaml"
            System.Windows.Application.LoadComponent(this, resourceLocater);

            #line default
            #line hidden
        }

        [System.Diagnostics.DebuggerNonUserCodeAttribute()]
        [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
        [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")]
        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
        [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
        void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
            switch (connectionId)
            {
            case 1:

            #line 28 "..\..\ProfileGraphFromMap.xaml"
            ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.AddGraphics_Click);

            #line default
            #line hidden
            return;
            case 2:

            #line 37 "..\..\ProfileGraphFromMap.xaml"
            ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.ClearGraphics_Click);

            #line default
            #line hidden
            return;
            case 3:

            #line 99 "..\..\ProfileGraphFromMap.xaml"
            ((System.Windows.Controls.DataVisualization.Charting.AreaSeries)(target)).SelectionChanged += new System.Windows.Controls.SelectionChangedEventHandler(this.LineSeries_SelectionChanged);

            #line default
            #line hidden
            return;
            }
            this._contentLoaded = true;
        }
    }
}


text:
        <?php
        if($item_moreImages) {
            $moreImages = explode(",", $item_moreImages);
            foreach($moreImages AS $moreImage){ ?>
                <img class="itemImage img-responsive" src="<?= $moreImage ?>" alt="">
            <?php
            }
        } else { ?>
            <img class="itemImage img-responsive" src="<?= $item_image ?>" alt="">
        <?php
        } ?>

<img src="<?= $user_post->profilePicture ?>" alt="" class="profile-picture img-responsive">

<?= $user_post->fname ?> <?= $user_post->lname ?>

<?= getTime($createDate) ?>

 <span data-commentsNum="<?= $_id ?>"><?= $numOfComments ?>

<a href="javascript:giveLove(<?= $_id ?>)"> <span data-lovesNum="<?= $_id ?>"><?= $numOfLoves ?>

            <?php if($user_experience): ?>
<?= nl2br($user_experience) ?>
<?php endif; ?>

    <div class="row commentsHolder" data-id="<?= $_id ?>">

                    <label for="newComment<?= $_id ?>">Comment
                    <textarea class="form-control sizing newComment" id="newComment<?= $_id ?>" placeholder="Your comment here"></textarea>


text:
{% extends 'base/base.html' %}
{% block tabs %}
    {{ select_tab('GALLERYS') }}
{% endblock %}


text:
package org.oliot.khronos.persistent.recipe;

import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicInteger;

import org.oliot.epcis.service.query.EPCTime;
import org.oliot.khronos.common.LoopPipeFunction;
import org.oliot.khronos.common.TemporalType;
import org.oliot.khronos.common.Tokens.AC;
import org.oliot.khronos.common.Tokens.FC;
import org.oliot.khronos.common.Tokens.Position;
import org.oliot.khronos.persistent.engine.ExternalTraversalEngine;

import com.tinkerpop.pipes.PipeFunction;

public class PersistentBreadthFirstSearchExternal {

	private ConcurrentHashMap<String, Long> gamma = new ConcurrentHashMap<String, Long>();

	public static AtomicInteger length;

	@SuppressWarnings("rawtypes")
	public Map compute(String epc, Long startTime, AC tt) {

		// order = forward / backward
		EPCTime source = new EPCTime(epc, startTime);
		gamma.put(epc, startTime);

		PipeFunction<EPCTime, Boolean> exceedBound2 = new PipeFunction<EPCTime, Boolean>() {
			@Override
			public Boolean compute(EPCTime ve) {
				if (gamma.containsKey(ve.epc) && (ve.time >= gamma.get(ve.epc))) {
					return false;
				}
				return true;
			}
		};

		PipeFunction<List<EPCTime>, Object> storeGamma = new PipeFunction<List<EPCTime>, Object>() {
			@Override
			public Object compute(List<EPCTime> vertexEvents) {
				vertexEvents.parallelStream().forEach(ve -> {
					gamma.put(ve.epc, ve.time);
				});
				return null;
			}
		};

		LoopPipeFunction exitIfEmptyIterator = new LoopPipeFunction() {
			@Override
			public boolean compute(Object argument, Map<Object, Object> currentPath, int loopCount) {

				List list = (List) argument;
				System.out.println(list.size());
				if (list == null || list.size() == 0)
					return false;

				return true;
			}
		};
		// Event Collection
		// ChronoGraph g = new ChronoGraph("epcis");

		// input이 epc 이고 시간이 그 뒤인 output 들과 그 시간을 가져온다

		// collection.find()

		ExternalTraversalEngine pipeLine = new ExternalTraversalEngine(null, source, false, true, String.class);
		pipeLine = pipeLine.as("s");
		pipeLine = pipeLine.scatter();
		pipeLine = pipeLine.oute(null, TemporalType.TIMESTAMP, tt, null, null, null, null, null, null, Position.first);
		pipeLine = pipeLine.filter(exceedBound2);
		pipeLine = pipeLine.gather();
		// 방문한 버텍스 중 최소만을 꼽는다 해당 스텝에서 도달 한 것 중
		pipeLine = pipeLine.elementDedup(FC.$min);
		// lower bound 보다 크면 필터한다.
		// lower bound 가 없는 것은 무한대
		// pipeLine = pipeLine.transform(exceedBound, List.class);
		pipeLine = pipeLine.sideEffect(storeGamma);
		// pipeLine = pipeLine.pathEnabledTransform(historyPipe, List.class);
		// pipeLine.storeTimestamp(bound);
		// pipeLine.pathFilter(bound, );
		// pipeLine = pipeLine.sideEffect(storeCurrentVertexEvents);
		pipeLine = pipeLine.loop("s", exitIfEmptyIterator);
		return pipeLine.path();
	}
}


text: CHIMP_OPTIONS="--format=pretty --sync=false --browser=firefox" meteor --settings settings.json


text:
package org.test.temp.bean;

/**
 * @author Boleslav Bobcik
 * @version 1.0.0
 */
public final class SimpleBeanStaticPropertyDelegate {

    public static String getX(SimpleBean bean) {
        return bean.getX();
    }

    public static void setX(SimpleBean bean, String x) {
        final String x2 = '#' + x + '#';
        bean.setX(x2);
    }

    public static int getY(SimpleBean bean) {
        return bean.getY();
    }

    public static void setY(SimpleBean bean, int y) {
        final int y2 = y + 2;
        bean.setY(y2);
    }

    private SimpleBeanStaticPropertyDelegate() {
        throw new AssertionError("only static methods");
    }

}


text:
title:  Pelajaran ini masih dalam pengerjaan
date:  15/11/2021
---

### Kami sedang mengerjakan pelajaran ini
Silahkan kembali lagi nanti


text:
<?xml version="1.0" encoding="utf-8"?>
<PRONOM-Report xmlns="http://pronom.nationalarchives.gov.uk">
  <report_format_detail>
    <FileFormat>
      <FormatID>1105</FormatID>
      <FormatName>Microsoft Front Page Binary Tree Index</FormatName>
      <FormatVersion>
      </FormatVersion>
      <FormatAliases>
      </FormatAliases>
      <FormatFamilies>
      </FormatFamilies>
      <FormatTypes>
      </FormatTypes>
      <FormatDisclosure>
      </FormatDisclosure>
      <FormatDescription>This is an outline record only, and requires further details, research or authentication to provide information that will enable users to further understand the format and to assess digital preservation risks associated with it if appropriate. If you are able to help by supplying any additional information concerning this entry, please return to the main PRONOM page and select 'Add an Entry'.</FormatDescription>
      <BinaryFileFormat>
      </BinaryFileFormat>
      <ByteOrders>
      </ByteOrders>
      <ReleaseDate>
      </ReleaseDate>
      <WithdrawnDate>
      </WithdrawnDate>
      <ProvenanceSourceID>1</ProvenanceSourceID>
      <ProvenanceName>Digital Preservation Department / The National Archives</ProvenanceName>
      <ProvenanceSourceDate>29 Jun 2011</ProvenanceSourceDate>
      <ProvenanceDescription>Ongoing DROID signature research.</ProvenanceDescription>
      <LastUpdatedDate>29 Jun 2011</LastUpdatedDate>
      <FormatNote>
      </FormatNote>
      <FormatRisk>
      </FormatRisk>
      <TechnicalEnvironment>
      </TechnicalEnvironment>
      <FileFormatIdentifier>
        <Identifier>fmt/359</Identifier>
        <IdentifierType>PUID</IdentifierType>
      </FileFormatIdentifier>
      <ExternalSignature>
        <ExternalSignatureID>1128</ExternalSignatureID>
        <Signature>btr</Signature>
        <SignatureType>File extension</SignatureType>
      </ExternalSignature>
      <InternalSignature>
        <SignatureID>528</SignatureID>
        <SignatureName>Microsoft FrontPage Binary Tree Index</SignatureName>
        <SignatureNote>Character sequence taken from beginning of file. File format is sufficiently distinct from more general Microsoft FrontPage Server Configuration Files for separate identification.</SignatureNote>
        <ByteSequence>
          <ByteSequenceID>653</ByteSequenceID>
          <PositionType>Absolute from BOF</PositionType>
          <Offset>0</Offset>
          <MaxOffset>
          </MaxOffset>
          <IndirectOffsetLocation>
          </IndirectOffsetLocation>
          <IndirectOffsetLength>
          </IndirectOffsetLength>
          <Endianness>
          </Endianness>
          <ByteSequenceValue>1C010000{272}0C0000002C000000{4}FFFFFFFF0002</ByteSequenceValue>
        </ByteSequence>
      </InternalSignature>
    </FileFormat>
    <SearchCriteria>Criteria</SearchCriteria>
  </report_format_detail>
</PRONOM-Report>


text:
namespace chromeos {

class ScreenContextTest : public testing::Test {
 public:
  ScreenContextTest() {}
  virtual ~ScreenContextTest() {}

  virtual void SetUp() {
    context_.reset(new ScreenContext());
  }

  virtual void TearDown() {
  }

 protected:
  ScreenContext& context() { return *context_.get(); }

 private:
  scoped_ptr<ScreenContext> context_;
};

TEST_F(ScreenContextTest, Simple) {
  ASSERT_FALSE(context().HasChanges());

  ASSERT_FALSE(context().HasKey("key0"));

  bool rv = context().SetBoolean("key0", true);
  ASSERT_TRUE(rv);
  ASSERT_TRUE(context().HasKey("key0"));
  ASSERT_TRUE(context().GetBoolean("key0"));
  ASSERT_TRUE(context().GetBoolean("key0", false));
  ASSERT_TRUE(context().HasChanges());

  rv = context().SetBoolean("key0", true);
  ASSERT_FALSE(rv);

  rv = context().SetBoolean("key0", false);
  ASSERT_TRUE(rv);
  ASSERT_TRUE(context().HasKey("key0"));
  ASSERT_FALSE(context().GetBoolean("key0"));
  ASSERT_FALSE(context().GetBoolean("key0", true));
  ASSERT_TRUE(context().HasChanges());

  ASSERT_FALSE(context().HasKey("key1"));

  ASSERT_EQ(1, context().GetInteger("key1", 1));
  rv = context().SetInteger("key1", 2);
  ASSERT_TRUE(rv);
  ASSERT_TRUE(context().HasKey("key1"));
  ASSERT_EQ(2, context().GetInteger("key1"));
  ASSERT_EQ(2, context().GetInteger("key1", 1));
}

TEST_F(ScreenContextTest, Changes) {
  ASSERT_FALSE(context().HasChanges());

  bool rv = context().SetInteger("key0", 2);
  ASSERT_TRUE(rv);
  ASSERT_EQ(2, context().GetInteger("key0"));
  ASSERT_TRUE(context().HasChanges());

  DictionaryValue changes;
  context().GetChangesAndReset(&changes);
  ASSERT_FALSE(context().HasChanges());

  ASSERT_EQ(1u, changes.size());
  int value;
  rv = changes.GetInteger("key0", &value);
  ASSERT_TRUE(rv);
  ASSERT_EQ(2, value);

  rv = context().SetInteger("key0", 3);
  ASSERT_TRUE(rv);
  ASSERT_EQ(3, context().GetInteger("key0", 3));
  ASSERT_TRUE(context().HasChanges());

  rv = context().SetInteger("key0", 2);
  ASSERT_TRUE(rv);
  ASSERT_TRUE(context().HasChanges());
}

TEST_F(ScreenContextTest, ComplexChanges) {
  ASSERT_FALSE(context().HasChanges());

  context().SetString("key0", "value0");
  context().SetBoolean("key1", true);
  context().SetDouble("key2", 3.14159);
  ASSERT_TRUE(context().HasChanges());

  // Get all changes and verify them.
  DictionaryValue changes;
  context().GetChangesAndReset(&changes);
  ASSERT_FALSE(context().HasChanges());
  ASSERT_EQ(3u, changes.size());

  std::string string_value;
  bool bool_value;
  double double_value;
  bool rv = changes.GetString("key0", &string_value);
  ASSERT_TRUE(rv);
  rv = changes.GetBoolean("key1", &bool_value);
  ASSERT_TRUE(rv);
  rv = changes.GetDouble("key2", &double_value);
  ASSERT_TRUE(rv);
  ASSERT_EQ("value0", string_value);
  ASSERT_EQ(true, bool_value);
  ASSERT_DOUBLE_EQ(3.14159, double_value);

  context().SetString("key0", "value1");
  ASSERT_TRUE(context().HasChanges());

  context().SetString("key0", "value0");
  ASSERT_TRUE(context().HasChanges());

  context().GetChangesAndReset(&changes);
  ASSERT_FALSE(context().HasChanges());
  ASSERT_EQ(1u, changes.size());
  rv = changes.GetString("key0", &string_value);
  ASSERT_TRUE(rv);
  ASSERT_EQ("value0", string_value);
}

TEST_F(ScreenContextTest, ApplyChanges) {
  ASSERT_FALSE(context().HasChanges());

  DictionaryValue changes;
  changes.SetString("key0", "value0");
  changes.SetInteger("key1", 1);
  changes.SetBoolean("key2", true);

  std::vector<std::string> keys;
  context().ApplyChanges(changes, &keys);

  ASSERT_EQ(3u, keys.size());
  std::sort(keys.begin(), keys.end());
  ASSERT_EQ("key0", keys[0]);
  ASSERT_EQ("key1", keys[1]);
  ASSERT_EQ("key2", keys[2]);

  ASSERT_FALSE(context().HasChanges());
  ASSERT_EQ("value0", context().GetString("key0"));
  ASSERT_EQ(1, context().GetInteger("key1"));
  ASSERT_TRUE(context().GetBoolean("key2"));
}

}  // namespace chromeos


text:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace RepositorioClases
{
    public partial class Comments
    {
        [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int CommentId { get; set; }

        [Required]
        [Display(Name = "Usuario creador")]
        public int iDUsuario { get; set; }

        [Required]
        [Display(Name = "Número evento")]
        public long EventId { get; set; }

        [Required]
        public DateTime Fecha { get; set; }

        [Required]
        public DateTime FechaUltimaActualizacion { get; set; }

        public long? ComentarioPadre { get; set; }

        [Required]
        [StringLength(3000, ErrorMessage = "No se permite que el comentario sea mayor a los 5000 carácteres")]
        public string Comentario { get; set; }

        public int Like { get; set; }

        public int UnLike { get; set; }

        public Estado Estado { get; set; }

        public virtual Events Event { get; set; }

        [ForeignKey("CommentId")]
        public virtual List<CommentsReportes> Reportes { get; set; }

    }

    public partial class CommentsReportes
    {
        [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int ReporteId { get; set; }

        public int CommentId { get; set; }

        public int IdUsuario { get; set; }

        [Required]
        [StringLength(300)]
        public string Observacion { get; set; }

        public DateTime Fecha { get; set; }

        public bool? Resuelto { get; set; }

        public virtual Comments Coments { get; set; }
        public virtual Users User { get; set; }
    }

    public enum Estado
    {
        Activo = 1,
        Reportado = 2,
        Bloqueado = 3, // Cuando el administrador lo bloquea
        Eliminado = 4 // Por el usuario
    }
}


text:
![gopher-fly](assets/gopher-fly-240.png)
###### gopherfly

A data structure translation library for go that leverages annotations and reflection.

## Introduction
Metamorphosis allows the use of special "delta" annotation tags to control the translation of one go type struct into another type struct.

## Usage

Add a annotation to the fields in your type structs that begins with the **∆** *(delta)* character followed by the package and type name in dot notation. The value of the annotation tag should be the name of the field in the target type.

In the following example, Frog Species maps to Prince Nationality and the Prince Nationality Maps back to Frog Species

````
package royal

import "github.com/caimeo/metamorphosis/mutator"

type Frog struct {
	Name        string `∆.royal.Prince:"Name"`
	Species     string `∆.royal.Prince:"Nationality"`
	Legs        int    `∆.royal.Prince:"Limbs"`
}

type Prince struct {
	Name        string `∆.royal.Frog:"Name"`
	Nationality string `∆.royal.Frog:"Species"`
	Limbs       int    `∆.royal.Frog:"Legs"`
}
````

Next define mutator type functions and generate the mutators.
Mutator type functions are simple from/to functions types that define the transformation.

````
type Magic func(Prince) Frog
type Kiss func(Frog) Prince

var magic Magic
var kiss Kiss

mutator.Create(&magic)
mutator.Create(&kiss)

````

Note that you must create an instance of the function and pass it's pointer to the mutator.Create function.  After the mutator has been created, the functions are now usable.

````
p := Prince{Name:"Harry", Title:"Prince Henry of Wales", Nationality:"English"}
frogHarry := magic(p)   // magic turns a prince into a frog

fmt.Pirntln(reflect.TypeOf(frogHarry)) //-> "royal.Frog"
fmt.Println(frogHarry.Name)            //-> "Harry"
fmt.Println(frogHarry.Species)         //-> "English"

princeHarry := kiss(frogHarry)  // a kiss turns him back into a prince

fmt.Pirntln(reflect.TypeOf(princeHarry)) //-> "royal.Prince"
fmt.Println(princeHarry.Name)            //-> "Harry"
fmt.Println(princeHarry.Nationality)     //-> "English"

````

## Notes

- It is possible to define multiple ∆ tags on that each point to a different type and field.
- Both source and destination fields must be exported from their package
- The current version only operates on simple single level data structures

### Generic / Templating

Metamorphosis is an example of using reflection to obtain a a Java like generic or C++ like template in go. The actual behavior is a cross between the two.

Similar to Java generics, the code of the generic function is untyped and operates on untyped (reflect) values and is evaluated for type correctness at runtime.

Similar to a C++ template, to use the function on a specific type, that specific type implementation of the function must be declared. This function definition while calling the generic code internally is externally type safe.

Unlike either, the actual instantiation of this type specific implementation of the generic function takes place at runtime when you call the ***mutator.Create*** function.

## Roadmap
These are features coming soon

- recursive data structures (structures inside structures)
- map to function (allow field values to be sent to functions instead of fields)