📜 [專欄新文章] Reason Why You Should Use EIP1167 Proxy Contract. (With Tutorial)
✍️ Ping Chen
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
EIP1167 minimal proxy contract is a standardized, gas-efficient way to deploy a bunch of contract clones from a factory.
1. Who may consider using EIP1167
For some DApp that are creating clones of a contract for its users, a “factory pattern” is usually introduced. Users simply interact with the factory to get a copy. For example, Gnosis Multisig Wallet has a factory. So, instead of copy-and-paste the source code to Remix, compile, key in some parameters, and deploy it by yourself, you can just ask the factory to create a wallet for you since the contract code has already been on-chain.
The problem is: we need standalone contract instances for each user, but then we’ll have many copies of the same bytecode on the blockchain, which seems redundant. Take multisig wallet as an example, different multisig wallet instances have separate addresses to receive assets and store the wallet’s owners’ addresses, but they can share the same program logic by referring to the same library. We call them ‘proxy contracts’.
One of the most famous proxy contract users is Uniswap. It also has a factory pattern to create exchanges for each ERC20 tokens. Different from Gnosis Multisig, Uniswap only has one exchange instance that contains full bytecode as the program logic, and the remainders are all proxies. So, when you go to Etherscan to check out the code, you’ll see a short bytecode, which is unlikely an implementation of an exchange.
0x3660006000376110006000366000732157a7894439191e520825fe9399ab8655e0f7085af41558576110006000f3
What it does is blindly relay every incoming transaction to the reference contract 0x2157a7894439191e520825fe9399ab8655e0f708by delegatecall.
Every proxy is a 100% replica of that contract but serving for different tokens.
The length of the creation code of Uniswap exchange implementation is 12468 bytes. A proxy contract, however, has only 46 bytes, which is much more gas efficient. So, if your DApp is in a scenario of creating copies of a contract, no matter for each user, each token, or what else, you may consider using proxy contracts to save gas.
2. Why use EIP1167
According to the proposal, EIP is a “minimal proxy contract”. It is currently the known shortest(in bytecode) and lowest gas consumption overhead implementation of proxy contract. Though most ERCs are protocols or interfaces, EIP1167 is the “best practice” of a proxy contract. It uses some EVM black magic to optimize performance.
EIP1167 not only minimizes length, but it is also literally a “minimal” proxy that does nothing but proxying. It minimizes trust. Unlike other upgradable proxy contracts that rely on the honesty of their administrator (who can change the implementation), address in EIP1167 is hardcoded in bytecode and remain unchangeable.
That brings convenience to the community.
Etherscan automatically displays code for EIP1167 proxies.
When you see an EIP1167 proxy, you can definitely regard it as the contract that it points to. For instance, if Etherscan finds a contract meets the format of EIP1167, and the reference implementation’s code has been published, it will automatically use that code for the proxy contract. Unfortunately, non-standard EIP1167 proxies like Uniswap will not benefit from this kind of network effect.
3. How to upgrade a contract to EIP1167 compatible
*Please read all the steps before use, otherwise there might have problems.
A. Build a clone factory
For Vyper, there’s a function create_with_code_of(address)that creates a proxy and returns its address. For Solidity, you may find a reference implementation here.
function createClone(address target) internal returns (address result){ bytes20 targetBytes = bytes20(target); assembly { let clone := mload(0x40) mstore(clone, 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000) mstore(add(clone, 0x14), targetBytes) mstore(add(clone, 0x28), 0x5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000) result := create(0, clone, 0x37) }}
You can either deploy the implementation contract first or deploy it with the factory’s constructor. I’ll suggest the former, so you can optimize it with higher runs.
contract WalletFactory is CloneFactory { address Template = "0xc0ffee"; function createWallet() external returns (address newWallet) { newWallet = createClone(Template); }}
B. Replace constructor with initializer
When it comes to a contract, there are two kinds of code: creation code and runtime code. Runtime code is the actual business logic stored in the contract’s code slot. Creation code, on the other hand, is runtime code plus an initialization process. When you compile a solidity source code, the output bytecode you get is creation code. And the permanent bytecode you can find on the blockchain is runtime code.
For EIP1167 proxies, we say it ‘clones’ a contract. It actually clones a contract’s runtime code. But if the contract that it is cloning has a constructor, the clone is not 100% precise. So, we need to slightly modify our implementation contract. Replace the constructor with an ‘initializer’, which is part of the permanent code but can only be called once.
// constructorconstructor(address _owner) external { owner = _owner;}// initializerfunction set(address _owner) external { require(owner == address(0)); owner = _owner;}
Mind that initializer is not a constructor, so theoretically it can be called multiple times. You need to maintain the edge case by yourself. Take the code above as an example, when the contract is initialized, the owner must never be set to 0, or anyone can modify it.
C. Don’t assign value outside a function
As mentioned, a creation code contains runtime code and initialization process. A so-called “initialization process” is not only a constructor but also all the variable assignments outside a function. If an EIP1167 proxy points to a contract that assigns value outside a function, it will again have different behavior. We need to remove them.
There are two approaches to solve this problem. The first one is to turn all the variables that need to be assigned to constant. By doing so, they are no longer a variable written in the contract’s storage, but a constant value that hardcoded everywhere it is used.
bytes32 public constant symbol = "4441490000000000000000000000000000000000000000000000000000000000";uint256 public constant decimals = 18;
Second, if you really want to assign a non-constant variable while initializing, then just add it to the initializer.
mapping(address => bool) public isOwner;uint public dailyWithdrawLimit;uint public signaturesRequired;
function set(address[] _owner, uint limit, uint required) external { require(dailyWithdrawLimit == 0 && signaturesRequired == 0); dailyWithdrawLimit = limit; signaturesRequired = required; //DO SOMETHING ELSE}
Our ultimate goal is to eliminate the difference between runtime code and creation code, so EIP1167 proxy can 100% imitate its implementation.
D. Put them all together
A proxy contract pattern splits the deployment process into two. But the factory can combine two steps into one, so users won’t feel different.
contract multisigWallet { //wallet interfaces function set(address[] owners, uint required, uint limit) external;}contract walletFactory is cloneFactory { address constant template = "0xdeadbeef"; function create(address[] owners, uint required, uint limit) external returns (address) { address wallet = createClone(template); multisigWallet(wallet).set(owners, required, limit); return wallet; }}
Since both the factory and the clone/proxy has exactly the same interface, no modification is required for all the existing DApp, webpage, and tools, just enjoy the benefit of proxy contracts!
4. Drawbacks
Though proxy contract can lower the storage fee of deploying multiple clones, it will slightly increase the gas cost of each operation in the future due to the usage of delegatecall. So, if the contract is not so long(in bytes), and you expect it’ll be called millions of times, it’ll eventually be more efficient to not use EIP1167 proxies.
In addition, proxy pattern also introduces a different attack vector to the system. For EIP1167 proxies, trust is minimized since the address they point to is hardcoded in bytecode. But, if the reference contract is not permanent, some problems may happen.
You might ever hear of parity multisig wallet hack. There are multiple proxies(not EIP1167) that refer to the same implementation. However, the wallet has a self-destruct function, which empties both the storage and the code of a contract. Unfortunately, there was a bug in Parity wallet’s access control and someone accidentally gained the ownership of the original implementation. That did not directly steal assets from other parity wallets, but then the hacker deleted the original implementation, making all the remaining wallets a shell without functionality, and lock assets in it forever.
https://cointelegraph.com/news/parity-multisig-wallet-hacked-or-how-come
Conclusion
In brief, the proxy factory pattern helps you to deploy a bunch of contract clones with a considerably lower gas cost. EIP1167 defines a bytecode format standard for minimal proxy and it is supported by Etherscan.
To upgrade a contract to EIP1167 compatible, you have to remove both constructor and variable assignment outside a function. So that runtime code will contain all business logic that proxies may need.
Here’s a use case of EIP1167 proxy contract: create adapters for ERC1155 tokens to support ERC20 interface.
pelith/erc-1155-adapter
References
https://eips.ethereum.org/EIPS/eip-1167
https://blog.openzeppelin.com/on-the-parity-wallet-multisig-hack-405a8c12e8f7/
Donation:
pingchen.eth
0xc1F9BB72216E5ecDc97e248F65E14df1fE46600a
Reason Why You Should Use EIP1167 Proxy Contract. (With Tutorial) was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
同時也有4部Youtube影片,追蹤數超過44萬的網紅MakeLearningFun,也在其Youtube影片中提到,Programming become more and more important nowadays. Some people may think it is different to learn, but actually it is not! With the right tools and ...
「c return value」的推薦目錄:
- 關於c return value 在 Taipei Ethereum Meetup Facebook 的最讚貼文
- 關於c return value 在 YC Lew - 17去旅行 Facebook 的最讚貼文
- 關於c return value 在 Arisa Chow Facebook 的最佳解答
- 關於c return value 在 MakeLearningFun Youtube 的最佳解答
- 關於c return value 在 SACHEU Youtube 的精選貼文
- 關於c return value 在 prasertcbs Youtube 的最讚貼文
- 關於c return value 在 What does it mean to return a value from a C program? - Stack ... 的評價
- 關於c return value 在 C Programming Tutorial - 57 - Return Values - YouTube 的評價
- 關於c return value 在 MISRA-C Check return value of a non-void function #9884 的評價
- 關於c return value 在 [C語言] - function returning a pointer | Ivan's Blog 的評價
- 關於c return value 在 Forwarding return value of shell script to C/C++ [closed] - Unix ... 的評價
- 關於c return value 在 No, really, moving a return value is easy -- StackOverflow 的評價
- 關於c return value 在 Pass/Return by Value/Pointer/Reference - GitHub 的評價
c return value 在 YC Lew - 17去旅行 Facebook 的最讚貼文
English version 「🇮🇸Budget to go Iceland🇮🇸」
In planning this Iceland road trip around I do not refer to other people's travels routes. So some attractions I might missed. Also, do not think Iceland will certainly see the aurora. We have 10 days there but only 2 days we have chance to see. One day is kp5, one day is kp1 Bale. There are also people who have not seen it in 10 days. In addition to the Aurora, Iceland is so beautiful of the landscape.
Day 1
Kuala Lumpur - Istanbul - London - Iceland
On October 24, 2017, we departed from Kuala Lumpur International Airport to Iceland because of the cheap airfare.
So we need to transfer to Istanbul from Istanbul.
Then transfer from London to Iceland.
Although it is a waste of time but save money, it does not matter!
From Kuala Lumpur to Iceland took a total of 24 hours.
Day 2
Arrived in London at 9:30 in the morning.
The flight time to Iceland is 12:55.
Worried about too many people waiting in line so we buy online Premium Passport Lane.
With that pass, we do not need to line up with the customs.
VIP Lane can go directly.
Feel like VIP!
From customs clearance to get baggage no more than 15 minutes.
Walk from South to North terminal, Icelandair in North.
About 3 hours flight from London to Iceland, the first thing to Iceland is to change the local currency.
After that we pick up the car and we have a 9-day car rental with Thrifty.
Last added unlimited wireless Internet access, 15 euros a day.
Car must buy full insurance, Iceland has too much sand accident, it is easy to scratch.
In order to save money, we rented a manual car.
Take the car directly to the nearby Bonus supermarket to buy some food for next few days.
We spent RM160.
After an hour and a half by car to our hostel.
This homestay is located in a remote downtown area.
We reached there about 7:30PM.
Quickly prepare dinner, friends shouted after dinner. Aurora!!!
Everyone ran out to see the aurora.
I did not expect so strong aurora, the naked eye directly saw.
Also lasted a few hours, due to too excited, forget the jet lag.
Can not sleep, 12 o'clock to sleep, 5 o'clock and got up and continue to see Aurora.
And the sky full of star, is the most beautiful night i have ever seen.
Day 3
Sleep for 2 hours and enjoyed bathtub outside the house.
Hot springs so comfortable!
The sky started to light up at about 8 o'clock.
Prepare our breakfast, then we started today's attractions.
We are taking the most basic Golden Circle attractions.
Geysir Fountain - Goldfoss Gold Falls --bingvellir National Park
We went to Geysir Fountain and Gullfoss Golden Waterfall
Geysir fountain is so special! Is the geothermal valley, water from the ground.
Gold Falls is spectacular, remember to bring a raincoat, or will be drenched.
As we live in the middle of these two attractions, we have lunch back home trip.
Then go to bingvellir National Park
This is UNESCO, a lot of scenery to see, if you like the wild scenery must come to this.
Feel the Soul Out Rip in the Rift Valley at Singgweler National Park.
From 10 am until 6 pm in the evening.
Dinner at home.
We do not spent any money today
Day 4
Slept early last night, so everyone got up early.
After breakfast will go to other place.
The sky was covered with rain clouds.
We left at 8:30PM and went to Keiro Crater.
Tickets are required here, one for 400 kroner.
After continuing to the east, on the way through the Volcano Experience Hall.
We do not know to buy tickets, the result we accidentally [free] into the museum to watch the video.
The beautiful Seljalandsfoss Falls pass on the way.
Very worth visiting ~
Come to today's highlight - D3 wreckage
This is the story I heard.
"It was a miracle that on November 24, 1973, a U.S. Navy aircraft (C-47 SkyTrain, also known as Dakota) was forced to land on Sólheimasandur's dark beach in southern Iceland and all crew members survived. It was said that due to the cost of repairs too It has been quietly staying in the corner of Iceland.
But since the plane's own metal lines matched the landscape of the Icelandic land, making it a must-see for many tourists, photographers visit the must-see places of Iceland and even plan their own exclusive routes, gradually becoming more lively. "
Iceland is really a place of praise like the explosion, any weather, she has become a landscape.
However, under the well-known, but also brought a lot of burden.
Last March, the owner of the area announced the closure of the road to the wreck because it could not afford to take any more damage.
Photographers and tourists love it, bring it to fame, but also brought loss. Although they are unintentional, this is an indisputable fact.
All along, everyone can only rely on GPS (google coordinates: 63.459523, -19.364618), go wild to find the location of the wreckage, strangers in unfamiliar places, drove a four-wheel drive (usually go to the wreckage need four-wheel drive) , Will inevitably cause some damage to the environment.
Now we all choose to park the car on the road around the island, 5 km on foot to see the wreckage.
Sometimes I have to admit that foreigners have a very strong sense of protection for the environment. In their eyes, people are the same as nature and need rest and love and need to get along well with each other.
If you give me a choice, I think I will still go in.
But it must be chosen in a sunny day rather than in a storm of wind that blows away people today.
To the last body, including underwear are soaked, the mood has also been destroyed, the next attractions do not want to go.
Just want to back to stay for a change.
Want to go to the wreckage, remember to choose the right weather, the wrong choice can make people very upset.
Tonight we will be staying in Kirkjubæjarklaustur, a beautiful little town that will allow us to travel to the eastern part of Iceland early tomorrow morning.
Day 5
As usual to prepare our own breakfast to go out today than usual out.
Because we want to drive 420 km, estimated 5 hours and a half drive.
Departure from the southern city of Kirkjubæjarklaustur to the eastern city of Reyðarfjörður.
We do not have any plans today.
What attractions stop, unexpectedly found the roadside unknown waterfall creek.
There will be glaciers along the way, so spectacular too!
The Glacier Lagoon will come again, but we will not go in the direction of the tourists.
We stopped in the car park 1 km before the entrance, and then climb down the mountain to Avoid crowded.
After that we continue our road trip to east.
Then you must not miss the fjord view to the east.
We all drive the car on the left side of the mountain, on the right is the Atlantic Coastal Road.
Fjord scenery super beautiful, super magnificent.
However, it should be noted that the wind in Iceland is very strong, and several times our car was displaced by strong winds.
It's hard to drive when the weather is not good, after all, there is no fence around the road.
Minute wind will blow the car down the Atlantic.
The most dangerous place than the 95 road.
Well, I carefully driving carefully to bring everyone to the east.
Reyðarfjörður is a small city.
In fact, choose to live here is not because of what attractions.
Instead, it is here as a rest stop before we heading to the north tomorrow.
Tomorrow will continue to open 297 kilometers about 3 hours and we already on half away.
Day 6
From the east to the north, 240 km and about 3 and a half hours away.
Iceland is a very interesting place, yesterday we saw the magnificent fjord style.
Today we cross a few snow-capped mountains actually came to Iceland's famous volcanic area.
Kaffle Volcano is Iceland's most active volcano.
We drive along the road so there is no attraction recommended, nor go to the waterfall of Iceland God Goðafoss.
Because we worry of road in the mountains, our 2WD car will be more difficult to drive.
We are moving along the Lake District.
Finally, we go to a small number of tourists, not commercial Mývatn Hot Springs.
Mývatn water quality is good, after all, not many people the most important price is half cheaper than the Blue Lake.
The most exciting things is from the toilet to the spa although there’s a short distance.
Super cold! ! ! ! ! ! ! !
After that we will continue to Akureyri, the second largest city in Iceland.
After a few days of running around, we will stay here for 2 days as a resting place.
Day 7
If longer holidays, I will arrange a half-day trip in the middle of the trip.
After a few days of long run, we still stay in Akureyri today.
And we do not have any plan, we wake up to sleep naturally.
Go to the local supermarket stroll, explore the price, buy ingredients.
Walk around Akureyri Botanical Garden, the famous local church.
Then decide to go to an unknown tourist spot.
We decided to go to Dalvik.
Since this is not Route 1, we drive Route 82, so the road is not that good.
But the beautiful scenery along the way is so beautiful.
Lake, sea, snow-capped mountains.
And the mirror-like lake reflected the shadow of snow-capped mountains on the water.
Nobody walked by the road as we sat in the middle of the road taking pictures.
Alpine waterfall directly down the sea to the scenery now feel unforgettable.
Due to the lack of itinerary, we will be staying in only 3 hours outside.
Today is easy and casual.
Charge good tomorrow continue to move north and west.
To stay in a farmhouse.
Day 8
Today's trip is easy, so we sleep later.
We are staying in a farm in the north today.
We also deliberately avoided the well-traveled Route 1 and headed for the cliff coastline.
The scenery along the way is so beautiful.
However, since the farm was not far away, we returned to the farm very early.
After lunch, we sneak into the farm and play with the cute Icelandic horse.
As the weather is too cold, we have been in the bed and breakfast where to go.
Day 9
Today it is necessary to drive back from the north to our last city, Reykjavik
On the way we turned into the Sea Lion Museum, in order to see wild sea lions.
We drove the car into Route 74.
Along the road are stone road, hard to open ah!
Finally, unfortunately did not meet wild sea lions.
But I saw the road map seems to be through the Snæfellsnes
So we decided to drive into the Sinai Peninsula, then do not take the 1st.
In order to reach the Sinai Peninsula more quickly, we choose to drive the car into the Route 59, the whole road is sand stone.
And no white lines, only allow a car to drive.
I drove the car into fearlessly.
The rolling hills are on our left hand side and the right hand side is the sea.
There’s no signal along the road.
There are not many people living along the road.
Up and down the ramp absolutely can not see the opposite of the car, there are also on the slope to a big turn immediately.
I accidentally put the car into the sea, I was serious.
As we went to the Snæfellsnes to see Kirkjufell, so we travel longer.
Because it’s too late. So that we rushed back to Reykjavik and failed to stop taking pictures.
After all, the sky quickly darkened.
Today is our last accommodation in Iceland and we have to enjoy tonight.
In order to save money, plus the flight at 6 o'clock in the morning, tomorrow will overnight at the airport.
Day 10
Today is our last day, we wake up naturally.
Due to the car parked in Reykjavik parking.
We need pay parking hourly.
First we went to visit Reykjavik Cathedral.
Nice church, and Akureyri's church is the same designer!
As there are still a lot of public funds, we decided to take to eat Buffet.
Iceland has a great value Buffet.
This restaurant is located in the city center, restaurant reykjavik.
There are pickled fish, shrimp, desserts have.
And a talent 2250 kroner.
We had eaten for nearly two hours before we came out because we had booked Blue Lake in the morning.
We have to arrive at the time of booking.
Too early to go out too cold, very uncomfortable.
After finally soak to the legendary Blue Lake it!
A lot of guests here, more business, water quality is relatively clean, but more water meters rice mineral.
As the plane is 8 am tomorrow, I specifically do not arrange accommodation.
Want to say we can drive to chase aurora, how to know a large cloud of sky, plus the outside of the cold.
We did not want to go out at all, so return the car early.
Waiting to the airport ~
In Iceland, our spending is really not much!
If you are willing to cook their own meals, we are absolutely able to afford the consumption of Iceland Oh!
-------------------------------
About transportation
I'm booking with Thifty
www.rentalcars.com
-------------------------------
About accommodation
If you have not registered Airbnb, then you can click on the link I gave.
Because you can get RM105 discount Oh!
Click on the following web page to register
https \: //abnb.me/e/Cp1WcwtYSH
Day 1 + 2 Laugarvatn's Cabin Accommodations RM1550
Location is located in the Golden Circle, to see the Golden Falls and the National Park are very convenient
The most important if the weather is good, you can see the Aurora outside
Finnish bath outside the house can be while watching the Aurora bath
A room, a bathroom kitchen, can accommodate up to 5 people, the house is relatively small
https \: //www.airbnb.com.tw/rooms/4821490? s = 51
Day 3 Kirkjubæjarklaustur Small House RM875
It is also a detached house, with 1 bedroom, 1 living room, kitchen and bathroom
Comfortable and quiet environment, can accommodate 4 people, spacious house
https://www.airbnb.com.tw/rooms/12113836?s=51
Day 4 Reyðarfjörður ultra cozy Nordic small room RM570
The owner lives downstairs and our suite is on the second floor.
There is kitchen, living room, room and bathroom.
Warm environment, the owner friendly, can accommodate 4 people, the house spacious
https://www.airbnb.com.tw/rooms/9488392?s=51
Day 5 + 6 RM930
The house is clean and tidy, the room and the kitchen are separated.
Can accommodate 4 people
https://www.airbnb.com.tw/rooms/5870156?s=51
Day 7 RM450
Live in the pasture, experience ranch life, hot springs can bubble.
Shared kitchen and shared bathroom.
https://www.airbnb.com.tw/rooms/13055866?s=51
Day 8 RM680
Agoda booking for Central Guesthouse
Super good location, easy to find.
Day 9
Sleeping airport, early morning return to London
-------------------------------
About spending
Round trip ticket Kuala Lumpur - London RM2100 / person Turkish Airlines
Round trip ticket Iceland - London RM900 / person Icelandic Airlines
Car rental 9 days RM2900 = 725 / person
Wi-Fi machine 9 days RM680 = 170 / person
8 days stay RM1265 / person
BlueLagoon RM400 / person
Keira crater tickets 400 kr = RM16 / person
Rice Lake Tickets 4300 Crowns = RM170 (person)
RM5746
The daily living expenses (in Iceland krona, all multiplied by 0.0395, for 4 people)
Day 1-0
Day 2 - daily necessities + ingredients 4000
Day 3-0
Day 4 - oil 4500, 2200 ingredients
Day 5 - Oil 6105
Day 6 - Ingredients 239
Day 7 - ingredients 2200
Day 8- Fighting 6404
Day 9 - ingredients 1200, 1000 tolls
Day 10 - Oil 8463, buffet 9000
CZK 45311 x 0.0395 = RM1790
Except 4 people = RM448
Total cost RM6191
PS: The above is the basic spending, does not include shopping buy souvenir.
Photo shooting: Northern Lights Canon G7X, all other photos shot by Note 8.
c return value 在 Arisa Chow Facebook 的最佳解答
Thank you for making VAX happen! :)
I don't usually write lengthy thank you posts on FB, but after three years, and finally a positive outcome, I think it's time I paid my dues. It's a very long list so here's my #VAX2017 appreciation post.
First of all, I'd like to thank the staff members of Shah Alam Convention Centre (SACC) Official for the faith, kindness and generosity afforded to us. We hope to host a better con there next year. You guys need to get used to seeing make up kits in the men's toilets.
To YB Nik Nazmi Nik Ahmad and the many officers at the Selangor State Government who have continued to support us since 2015, thank you very much.
Many thanks also to OISHI Malaysia for thousands and thousands of cans of tea as well as Grab for the discount code to SACC. More drinks next year, please?
I'd like to thank inui tatsumi, Pierre Sugiura, Studio MAPPA and Studio TRIGGER and AiRI for gracing us with your presence. You made VAX2017 a very special occasion for all the fans who came to see you. I hope you had a great time in Malaysia and recommend all your friends to join us here!
Many love and thanks to Kazutaka Sato and IOEA for welcoming us in Tokyo and for connecting us with the many individuals and organizations in Japan. We will see you again very soon!
I'd like to thank our event partners AniManGaki, Kitamen, Gundam Toy Shop and 星空 Ent. for your support in putting this event together. Also to our friends at Macross Malaysia Synergy Lego Users Group and Hobby & Collectibles Community for bringing great exhibits to our show floor.
Special thanks to Shawn Ngu for bringing yet another foreign guest to run a cosplay workshop. Let's do a better one next year!
To all the colleges who helped us with the early bird sales, thank you so much. Special thanks to EMiNA – Society of Modern Visual Culture for being the ever reliable backbone and jack-of-all-trades. ACG events would never have come this far without your heritage and legacy.
To all the local studios who exhibited with us, I hope you had a great time exhibiting with us and we hope to host you again next year. To all vendors and doujin groups, I hope you are happy with the facilities we provided and that you made great sales. You play a huge part in ensuring medium-scale events like VAX are well populated with content and activity.
Special thanks to Tariq Mohd Noh for having me with you during TGS2016. You have no idea how much that trip added value to us. Join us in the hall next year, yea?
To all the panelists who presented in the room and on stage, thank you for enriching the weekend with your words and passion. You are the beating heart of VAX and it will not have been what it is without you. Special thanks to Amir Fujiwara and Yuan Wong and co. for being with us in both the room and stage.
For the HYDRAs, you are our pride and joy. I regret not being able to afford you the simple luxury of proper meals and accommodation at the event. In the future, we hope to able to give you better perks and benefits in return for your selfless commitment and outstanding service.
On to individuals:
To our emcees Syauqi Dante Jamil and Siraj Kumar thank you for gracing our stage for the past 3 years. I could not have asked for a better pair to hype up the focal point of every VAX. Thank you so much
To D-vj Paramont Sanjay, thank you for the awesome AV systems despite our very modest budget. There are very few people on earth that I know who is capable of doing what you do with all the financial restraints we have.
Thanks Mogi Yg Jahat for the super cool animated logo used on our stage and for the 2016 video montage used in our sponsorship pitch. I love you, bro
On to our the standing committee in the VAX Team, the real heroes here:
Major props to 宮崎 のどか our Stage Manager for handling all the scheduling and panels with finesse and patience. I know how hard it can be to run the stage, but it's the best seat in the house and I am very proud of you.
Zymz, thank you for not only handling the doujin registrations and deployment, but also for running the most efficient structure of filing and tracking all the registration, invoices and receipts. I'd tag your name, but it appears Zuckerberg doesn't like you on his website.
Austin Yap thank you for managing all our vendors. Most of them have come away from the event with very good sales and a good experience on the floor. You have grown a lot since you joined us last year.
Shiro Tan thank you for communicating with all the local studios. Our local heroes deserve more love from the audience. Let's bring in more of them next year!
Our resident techs Faizal Dar-Sandur and Raymond Choo, thank you for maintaining our website and more importantly, for creating and maintaining the first ever proprietary online ticketing system for ACG events in Malaysia. I'm extremely proud of your work.
Faris Danial and Loke Chun Kit our resident saltbucket and memelord, thank you for managing the Special Interest Panels. The SIPs has always been my favourite component of VAX since Day 1, and I cannot thank you enough for making my little dream come to life.
桜井海斗, thank you for handling our workshops with Liberatus and Gundam Toy Shop. Also for being the point man in all our roadshows, ensuring that our little booth at every other event runs smoothly and that we always make some sale every time. Special thanks to Evangeline Young for being with us on the road, too. At this point, you're pretty much an honorary member of the VAX Team.
Sharil Abdul Rahman, one of my oldest and dearest friends, thank you for managing our social media presence and maintaining our relationships with the media at large. Your skill, fingertip knowledge and resourcefulness is matched only by the sheer size of your heart.
Tin Sen who first started out handling doujins, then went MIA for a while to focus on work and studies. Thank you for coming back to us as HR. Your work is essential to ensure that each department operates at their best.
To 椿崙, our resident designer who flew all the way from Hokkaido just to attend and help out at VAX over the weekend. Thank you for creating all the graphics used in our socmed postings. You're our little wireless mouse clicking so far away from home.
Elyn Chai thank you for all communications you've sent out with 3rd parties in our desperate search for partners and sponsors. Also, good job running the VAX shop with Faizal. I think I can safely leave it in your hands again.
To Chris Lee who joined the team this year, thank you not only for affording us the space to keep our stock and host our meetings, but also for your creativity, wisdom and business experience. Your shop is almost the unofficial VAX HQ. We've got a lot to talk about for the future.
Mohd Amirul B Hisham our resident FB manager, thank you for ensuring that the VAX page is constantly alive with trailers and news. Without your work, we'd be digitally absent from the eyes of the community for the rest of the year.
Wan Azlan Shah our resident head of security, thank you for recruiting our HYDRAs and ensuring that we encountered no security issues. We had a fun and safe con environment thanks to you.
Rachael Youdontknowme our head of guest liaisons and the GL team, thank you so much for taking care of our guests during their stay. I'm sorry for all the pain I've put you through. I owe you and the liaisons a little dinner and good chat.
Yap Wei Kit our head of ticketing, thank you for liaising with all colleges and making sure our over-the-counter sales run smoothly. Your work ensures that we have money to pay the bills. After all, we can't spell T-I-C-K-E-T-I-N-G without K-I-T
Our handymen Dinesh Roy and Justin Looi thank you for handling our logistics department and making sure we have our hardware and furnitures in check. Next time we start early and watch out for that 2-meter gap, yea?
Thanks also to Ian Johari for handling our portfolio review sessions. I think this year is probably our most successful edition to date, considering how the guests have told me what a great time they had reviewing the works of local talents.
Exo Des has been with us since day 1, phasing in and out of existence but always reliable and trustworthy. Despite his slacker reputation, Exo always comes through when we needed him the most. Thanks bro.
Kimberly Wong thank you for serving as our team secretary this year. It's been a challenging one so far, but you have also been a dear friend and confidant to me. Thank you, sweetheart.
Tian-I Goh who literally joined the team only weeks before event, swooped in and helped us score an exhibitor and a sponsor! We've got our work cut out for 2018 and this roller-coaster shitshow is just getting started :D
And saving the best men for last:
Shout out to Shaun Lopez, my cherished and beloved chocolate brother whom I have known the longest in this committee. He is also the one who got us started on this crazy journey back in 2013. Without your commitment, work ethic, love and undying support, we wouldn't have come this far.
And finally, Christopher Low, my brother who has been by my side since the glory days of EMiNA Cyber. He has been an endless source of ideas, creativity and motivation, and easily one whom I cannot do VAX without.
Thank you, each and everyone one of you. Please have all my love, and for all the fans who came all the way to Shah Alam, I look forward to another great year ahead.
See you at VAX2018!
c return value 在 MakeLearningFun Youtube 的最佳解答
Programming become more and more important nowadays. Some people may think it is different to learn, but actually it is not! With the right tools and resources, we believe every one can learn programming!
In this video, we explain hello world c++ program in detail such as iostream,
cout, less than operators, end , main function and return value of the program.
We also demonstration how the compiler can help us and some experiments about the return value.
If you want to watch more video from us, please
-do subscribe us!
-like the video and share to you friend who have kid on the facebook, tweeter, google+....etc
how to learn math
https://www.youtube.com/playlist?list...
stem projects
https://www.youtube.com/playlist?list...
Anpanman Educational Toys
https://www.youtube.com/playlist?list...
Learn Shapes for kids
https://www.youtube.com/playlist?list...
Learn letter A to Z
https://www.youtube.com/playlist?list...
Learn names of fruits and vegetables
https://www.youtube.com/playlist?list...
Learning street vehicles names and vehicle sounds
https://www.youtube.com/playlist?list...
Learn names of animal with animal sound
https://www.youtube.com/playlist?list...

c return value 在 SACHEU Youtube 的精選貼文
Use code "SPRINGSAVE" for all tiers!
sign up for Sephora's Beauty Insider Program here:
https://go.magik.ly/ml/w9e6/
Rouge - 4/17 - 5/1 save 20%
VIB - 4/21 - 4/29 - save 15%
Insiders - 4/23/ 4/27 save 10%
FTC Disclosure: I partnered with Sephora for this video. Some of the links shared are affiliate links and I earn a small commission from any purchases made!
P R O D U C T S M E N T I O N E D:
- HUDA BEAUTY Pastel Obsessions Eyeshadow Palette in Mint https://go.magik.ly/ml/w8b1/
- Kilian Voulez-Vous Coucher Avec Moi with clutch https://go.magik.ly/ml/w8b3/
- Charlotte Tilbury Glowgasm Face Palette https://go.magik.ly/ml/w8b7/
- Dior Backstage Custom Eye Palette https://go.magik.ly/ml/w8ba/
- ROEN beauty 75 degrees palette https://go.magik.ly/ml/w8bc/
- MARC JACOBS Glow Away Bronzing Coconut Body Stick in tantastic https://go.magik.ly/ml/w8bg/
- NARS Afterglow Lip Balm in Laguna https://go.magik.ly/ml/w8bd/
- MARC JACOBS Poutliner Longwear Lip Liner Pencil in Oh cocoa https://go.magik.ly/ml/w8bh/
- TARTE BB Tinted Treatment 12-Hour Primer Broad Spectrum SPF 30 in light https://go.magik.ly/ml/w8bk/
- Olaplex Hair Perfector No. 3 https://go.magik.ly/ml/w8bm/
- ANASTASIA BEVERLY HILLS Highlighting Duo Pencil in shell/lacehttps://go.magik.ly/ml/w8bo/
- KOSAS wet lip oil gloss in jellyfish https://go.magik.ly/ml/w8br/
- NARS Soft Matte Complete Concealer in Custard https://go.magik.ly/ml/w8bs/
- MARC JACOBS Highliner Gel Eye Crayon Eyeliner in Earthquake https://go.magik.ly/ml/w8be/
- MARC JACOBS Highliner Gel Eye Crayon Eyeliner in out of the blue https://go.magik.ly/ml/w8be/
- Fenty Beauty Amber Match six https://go.magik.ly/ml/w8ay/
FREE Shipping on all orders! No minimum purchase required. Use code FREESHIP. Available in the US and Canada for a limited time
#sephorahaul
@sephora @MagicLinks
*20% offer valid for Rouge members 4/17/20 - 5/1/20 at 11:59pm PT; 15% offer valid for VIB members 4/21/20 - 4/29/20 at 11:59pm PT; and 10% offer valid for Insider members 4/23/20 - 4/27/20 at 11:59pm PT. Offer only valid on merchandise purchases made in Sephora U.S. and Canada stores, Sephora inside JCPenney stores, on sephora.com and sephora.ca. Offer not valid on jcp.com. On 4/17/20, a VIB or Insider member who is a guest of a Rouge member is eligible to receive 20% off Rouge offer along with Rouge member. Limitations: one Dyson item and five Morphe items per SKU per transaction. Not valid on The Ordinary products, MAC Cosmetics VIVA GLAM products, previous purchases, gift wrapping, packaging, taxes, or shipping & handling charges. Return of discounted merchandise will be for price actually paid. Sephora is not responsible for damaged, lost, or stolen offer materials or barcodes. Offer has no cash value and may not be altered, sold, bartered or transferred. Applicable Beauty Insider status must be attained prior to redemption. No minimum purchase required. Due to heavy demand, Sephora FLASH delivery times cannot be guaranteed for this offer. Not valid on orders shipping outside the U.S. or Canada. Cannot be used in conjunction with other offer or reward. Sephora and JCPenney employees are not eligible. Sephora may modify or cancel offer at any time. See Beauty Insider Terms for details, including exclusions on what purchases qualify toward spend thresholds.
Available in the US and Canada for a limited time.”
F I N D M E H E RE ! ✨
Instagram: @sacheu
Snapchat: @sacheu
Twitter: @chinesebritney
Facebook: @heysacheu
TikTok: @sacheu
B U S I N E S S I N Q U I R I E S :
sarah@select.co
Thanks for watching/subscribing!
------------------------------------------
Camera: Canon G7x
Editing software: FCPx
Music by

c return value 在 prasertcbs Youtube 的最讚貼文
เข้าใจความแตกต่างระหว่าง method หรือ function ที่มีการส่งค่ากลับมายังตัวแปรได้ กับ method ที่ไม่มีการส่งค่ากลับมา (void method)
============
playlist สอนภาษา C# เบื้องต้น
https://www.youtube.com/watch?v=bu6kwrpOqFM&list=PLoTScYm9O0GE4trr-XPozJRwaY7V9hx8K
============
playlist สอนภาษา C เบื้องต้น
https://www.youtube.com/watch?v=Z_u8Nh_Zlqc&list=PLoTScYm9O0GHHgz0S1tSyIl7vkG0y105z
============
playlist สอนภาษา C++ เบื้องต้น
https://www.youtube.com/watch?v=_NHyJBIxc40&list=PLoTScYm9O0GEfZwqM2KyCBcPTVsc6cU_i
============
playlist สอนภาษาจาวา Java เบื้องต้น
https://www.youtube.com/watch?v=O3rW9JvADfU&list=PLoTScYm9O0GF26yW0zVc2rzjkygafsILN
============
playlist สอนการทำ Unit Test ภาษาจาวา Java
https://www.youtube.com/watch?v=R11yg8hKApU&list=PLoTScYm9O0GHiK3KNdH_PrNB0G3-kb1Bi
============
playlist สอนภาษาไพธอน Python เบื้องต้น
https://www.youtube.com/watch?v=DI7eca5Kzdc&list=PLoTScYm9O0GH4YQs9t4tf2RIYolHt_YwW
============
playlist สอนภาษาไพธอน Python การเขียนโปรแกรมเชิงวัตถุ (OOP: Object-Oriented Programming)
https://www.youtube.com/watch?v=4bVBSluxJNI&list=PLoTScYm9O0GF_wbU-7layLaSuHjzhIRc9
============
playlist สอนภาษา R เบื้องต้น
https://www.youtube.com/watch?v=oy4qViQLXsI&list=PLoTScYm9O0GF6qjrRuZFSHdnBXD2KVICp
============
playlist สอนภาษา PHP เบื้องต้น
https://www.youtube.com/watch?v=zlRDiXjYVo4&list=PLoTScYm9O0GH_6LARFxozL_viEsXV2wgO
============
เชิญสมัครเป็นสมาชิกของช่องนี้ได้ที่
https://www.youtube.com/subscription_center?add_user=prasertcbs

c return value 在 MISRA-C Check return value of a non-void function #9884 的推薦與評價
It returns the number of characters printed. There are no places in Zephyr where its return value is actually used for anything, so it's safe to ... ... <看更多>
c return value 在 What does it mean to return a value from a C program? - Stack ... 的推薦與評價
... <看更多>
相關內容